OpenVPNలో SMB సంస్థ యొక్క రిమోట్ పని యొక్క సంస్థ

సమస్య యొక్క ప్రకటన

ఆర్టికల్ ఓపెన్ సోర్స్ ఉత్పత్తులపై ఉద్యోగుల కోసం రిమోట్ యాక్సెస్ యొక్క సంస్థను వివరిస్తుంది మరియు పూర్తిగా స్వయంప్రతిపత్త వ్యవస్థను నిర్మించడానికి రెండింటినీ ఉపయోగించవచ్చు మరియు ఇప్పటికే ఉన్న వాణిజ్య వ్యవస్థలో లైసెన్స్‌ల కొరత లేదా దాని పనితీరు సరిపోనప్పుడు విస్తరణకు ఉపయోగపడుతుంది.

ఆర్టికల్ యొక్క లక్ష్యం ఒక సంస్థకు రిమోట్ యాక్సెస్‌ని అందించడానికి పూర్తి సిస్టమ్‌ను అమలు చేయడం, ఇది “10 నిమిషాల్లో OpenVPNని ఇన్‌స్టాల్ చేయడం” కంటే కొంచెం ఎక్కువ.

ఫలితంగా, వినియోగదారులను ప్రామాణీకరించడానికి ధృవపత్రాలు మరియు (ఐచ్ఛికంగా) కార్పొరేట్ యాక్టివ్ డైరెక్టరీ ఉపయోగించబడే సిస్టమ్‌ను మేము పొందుతాము. ఆ. మేము రెండు ధృవీకరణ కారకాలతో సిస్టమ్‌ను పొందుతాము - నా దగ్గర ఉన్నది (సర్టిఫికేట్) మరియు నాకు తెలిసినవి (పాస్‌వర్డ్).

myVPNUsr సమూహంలో వారి సభ్యత్వం ఒక వినియోగదారుని కనెక్ట్ చేయడానికి అనుమతించబడుతుందనడానికి సంకేతం. సర్టిఫికేట్ అధికారం ఆఫ్‌లైన్‌లో ఉపయోగించబడుతుంది.

పరిష్కారాన్ని అమలు చేసే ఖర్చు చిన్న హార్డ్‌వేర్ వనరులు మరియు సిస్టమ్ అడ్మినిస్ట్రేటర్ యొక్క 1 గంట పని మాత్రమే.

మేము CetntOS 3లో OpenVPN మరియు Easy-RSA వెర్షన్ 7తో కూడిన వర్చువల్ మెషీన్‌ని ఉపయోగిస్తాము, దీనికి 100 కనెక్షన్‌లకు 4 vCPUలు మరియు 4 GiB RAM కేటాయించబడుతుంది.

ఉదాహరణలో, మా సంస్థ యొక్క నెట్‌వర్క్ 172.16.0.0/16, దీనిలో 172.16.19.123 చిరునామాతో VPN సర్వర్ సెగ్మెంట్ 172.16.19.0/24, DNS సర్వర్లు 172.16.16.16 మరియు 172.16.17.17.net172.16.20.0, 23, XNUMX. సెగ్మెంట్‌లో ఉంది. .XNUMX/XNUMX VPN క్లయింట్‌ల కోసం కేటాయించబడింది.

బయటి నుండి కనెక్ట్ చేయడానికి, పోర్ట్ 1194/udp ద్వారా కనెక్షన్ ఉపయోగించబడుతుంది మరియు మా సర్వర్ కోసం DNSలో A-record gw.abc.ru సృష్టించబడింది.

SELinuxని డిసేబుల్ చేయమని ఖచ్చితంగా సిఫార్సు చేయబడలేదు! భద్రతా విధానాలను నిలిపివేయకుండా OpenVPN పనిచేస్తుంది.

కంటెంట్

  1. OS మరియు అప్లికేషన్ సాఫ్ట్‌వేర్ యొక్క ఇన్‌స్టాలేషన్
  2. క్రిప్టోగ్రఫీని సెటప్ చేస్తోంది
  3. OpenVPNని సెటప్ చేస్తోంది
  4. AD ప్రమాణీకరణ
  5. స్టార్టప్ మరియు డయాగ్నస్టిక్స్
  6. సర్టిఫికేట్ జారీ మరియు రద్దు
  7. నెట్‌వర్క్ కాన్ఫిగరేషన్
  8. తదుపరి ఏమిటి

OS మరియు అప్లికేషన్ సాఫ్ట్‌వేర్ యొక్క ఇన్‌స్టాలేషన్

మేము CentOS 7.8.2003 పంపిణీని ఉపయోగిస్తాము. మేము OS ని కనీస కాన్ఫిగరేషన్‌లో ఇన్‌స్టాల్ చేయాలి. దీన్ని ఉపయోగించి దీన్ని చేయడం సౌకర్యంగా ఉంటుంది వెంటనే ప్రారంభించు, గతంలో ఇన్‌స్టాల్ చేసిన OS ఇమేజ్ మరియు ఇతర మార్గాలను క్లోనింగ్ చేయడం.

ఇన్‌స్టాలేషన్ తర్వాత, నెట్‌వర్క్ ఇంటర్‌ఫేస్‌కు చిరునామాను కేటాయించడం (టాస్క్ 172.16.19.123 నిబంధనల ప్రకారం), మేము OSని నవీకరిస్తాము:

$ sudo yum update -y && reboot

మా మెషీన్‌లో టైమ్ సింక్రొనైజేషన్ నిర్వహించబడిందని కూడా మేము నిర్ధారించుకోవాలి.
అప్లికేషన్ సాఫ్ట్‌వేర్‌ను ఇన్‌స్టాల్ చేయడానికి, మీకు openvpn, openvpn-auth-ldap, easy-rsa మరియు vim ప్యాకేజీలు ప్రధాన ఎడిటర్‌గా అవసరం (మీకు EPEL రిపోజిటరీ అవసరం).

$ sudo yum install epel-release
$ sudo yum install openvpn openvpn-auth-ldap easy-rsa vim

వర్చువల్ మెషీన్ కోసం అతిథి ఏజెంట్‌ను ఇన్‌స్టాల్ చేయడం ఉపయోగకరంగా ఉంటుంది:

$ sudo yum install open-vm-tools

VMware ESXi హోస్ట్‌ల కోసం లేదా oVirt కోసం

$ sudo yum install ovirt-guest-agent

క్రిప్టోగ్రఫీని సెటప్ చేస్తోంది

సులభమైన-rsa డైరెక్టరీకి వెళ్లండి:

$ cd /usr/share/easy-rsa/3/

వేరియబుల్ ఫైల్‌ను సృష్టించండి:

$ sudo vim vars

కింది కంటెంట్:

export KEY_COUNTRY="RU"
export KEY_PROVINCE="MyRegion"
export KEY_CITY="MyCity"
export KEY_ORG="ABC LLC"
export KEY_EMAIL="[email protected]"
export KEY_CN="allUsers"
export KEY_OU="allUsers"
export KEY_NAME="gw.abc.ru"
export KEY_ALTNAMES="abc-openvpn-server"
export EASYRSA_CERT_EXPIRE=3652

షరతులతో కూడిన సంస్థ ABC LLC కోసం పారామితులు ఇక్కడ వివరించబడ్డాయి; మీరు వాటిని నిజమైన వాటికి సరిచేయవచ్చు లేదా ఉదాహరణ నుండి వదిలివేయవచ్చు. పారామితులలో అత్యంత ముఖ్యమైన విషయం చివరి పంక్తి, ఇది రోజులలో సర్టిఫికేట్ యొక్క చెల్లుబాటు వ్యవధిని నిర్ణయిస్తుంది. ఉదాహరణ 10 సంవత్సరాలు (365*10+2 లీపు సంవత్సరాలు) విలువను ఉపయోగిస్తుంది. వినియోగదారు ధృవపత్రాలు జారీ చేయడానికి ముందు ఈ విలువను సర్దుబాటు చేయాలి.

తరువాత, మేము స్వయంప్రతిపత్త ధృవీకరణ అధికారాన్ని కాన్ఫిగర్ చేస్తాము.

సెటప్‌లో వేరియబుల్‌లను ఎగుమతి చేయడం, CA ప్రారంభించడం, CA రూట్ కీ మరియు సర్టిఫికేట్ జారీ చేయడం, Diffie-Hellman కీ, TLS కీ మరియు సర్వర్ కీ మరియు సర్టిఫికేట్ ఉన్నాయి. CA కీని జాగ్రత్తగా రక్షించాలి మరియు రహస్యంగా ఉంచాలి! అన్ని ప్రశ్న పారామీటర్‌లను డిఫాల్ట్‌గా వదిలివేయవచ్చు.

cd /usr/share/easy-rsa/3/
. ./vars
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-dh
./easyrsa gen-req myvpngw nopass
./easyrsa sign-req server myvpngw
./easyrsa gen-crl
openvpn --genkey --secret pki/ta.key

ఇది క్రిప్టోగ్రాఫిక్ మెకానిజంను సెటప్ చేయడంలో ప్రధాన భాగాన్ని పూర్తి చేస్తుంది.

OpenVPNని సెటప్ చేస్తోంది

OpenVPN డైరెక్టరీకి వెళ్లి, సేవా డైరెక్టరీలను సృష్టించండి మరియు ఈజీ-ఆర్‌ఎస్‌ఏకి లింక్‌ను జోడించండి:

cd /etc/openvpn/
mkdir /var/log/openvpn/ /etc/openvpn/ccd /usr/share/easy-rsa/3/client
ln -s /usr/share/easy-rsa/3/pki/ /etc/openvpn/

ప్రధాన OpenVPN కాన్ఫిగరేషన్ ఫైల్‌ను సృష్టించండి:

$ sudo vim server.conf

కింది విషయాలు

port 1194
proto udp
dev tun
ca /etc/openvpn/pki/ca.crt
cert /etc/openvpn/pki/issued/myvpngw.crt
key /etc/openvpn/pki/private/myvpngw.key
crl-verify /etc/openvpn/pki/crl.pem
dh /etc/openvpn/pki/dh.pem
server 172.16.20.0 255.255.254.0
ifconfig-pool-persist ipp.txt
push "route 172.16.0.0 255.255.255.0"
push "route 172.17.0.0 255.255.255.0"
client-config-dir ccd
push "dhcp-option DNS 172.16.16.16"
push "dhcp-option DNS 172.16.17.17"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append  /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
username-as-common-name
plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so /etc/openvpn/ldap.conf

పారామితులపై కొన్ని గమనికలు:

  • సర్టిఫికేట్ జారీ చేసేటప్పుడు వేరే పేరు పేర్కొనబడితే, దానిని సూచించండి;
  • మీ పనులకు అనుగుణంగా చిరునామాల పూల్‌ను పేర్కొనండి*;
  • ఒకటి లేదా అంతకంటే ఎక్కువ మార్గాలు మరియు DNS సర్వర్లు ఉండవచ్చు;
  • AD**లో ప్రమాణీకరణను అమలు చేయడానికి చివరి 2 పంక్తులు అవసరం.

*ఉదాహరణలో ఎంచుకున్న చిరునామాల పరిధి గరిష్టంగా 127 క్లయింట్‌లను ఏకకాలంలో కనెక్ట్ చేయడానికి అనుమతిస్తుంది, ఎందుకంటే /23 నెట్‌వర్క్ ఎంచుకోబడింది మరియు OpenVPN /30 మాస్క్‌ని ఉపయోగించి ప్రతి క్లయింట్ కోసం సబ్‌నెట్‌ను సృష్టిస్తుంది.
ప్రత్యేకించి అవసరమైతే, పోర్ట్ మరియు ప్రోటోకాల్‌ను మార్చవచ్చు, అయినప్పటికీ, పోర్ట్ పోర్ట్ నంబర్‌ను మార్చడం వలన SELinuxని కాన్ఫిగర్ చేయవలసి ఉంటుందని గుర్తుంచుకోవాలి మరియు tcp ప్రోటోకాల్‌ని ఉపయోగించడం వలన ఓవర్‌హెడ్ పెరుగుతుంది, ఎందుకంటే TCP ప్యాకెట్ డెలివరీ నియంత్రణ ఇప్పటికే సొరంగంలో కప్పబడిన ప్యాకెట్ల స్థాయిలో నిర్వహించబడుతుంది.

** ADలో ప్రమాణీకరణ అవసరం లేకపోతే, వాటిని వ్యాఖ్యానించండి, తదుపరి విభాగాన్ని దాటవేయండి మరియు టెంప్లేట్‌లో auth-user-pass లైన్‌ను తీసివేయండి.

AD ప్రమాణీకరణ

రెండవ అంశానికి మద్దతు ఇవ్వడానికి, మేము ADలో ఖాతా ధృవీకరణను ఉపయోగిస్తాము.

మాకు డొమైన్‌లో సాధారణ వినియోగదారు మరియు సమూహం యొక్క హక్కులతో కూడిన ఖాతా అవసరం, దీనిలో కనెక్ట్ చేసే సామర్థ్యాన్ని నిర్ధారిస్తుంది.

కాన్ఫిగరేషన్ ఫైల్‌ను సృష్టించండి:

/etc/openvpn/ldap.conf

కింది విషయాలు

<LDAP>
        URL             "ldap://ldap.abc.ru"
        BindDN          "CN=bindUsr,CN=Users,DC=abc,DC=ru"
        Password        b1ndP@SS
        Timeout         15
        TLSEnable       no
        FollowReferrals yes
</LDAP>
<Authorization>
        BaseDN          "OU=allUsr,DC=abc,DC=ru"
        SearchFilter    "(sAMAccountName=%u)"
        RequireGroup    true
        <Group>
                BaseDN          "OU=myGrp,DC=abc,DC=ru"
                SearchFilter    "(cn=myVPNUsr)"
                MemberAttribute "member"
        </Group>
</Authorization>

కీ పారామితులు:

  • URL “ldap://ldap.abc.ru” - డొమైన్ కంట్రోలర్ చిరునామా;
  • BindDN “CN=bindUsr,CN=Users,DC=abc,DC=ru” - LDAP (UZ - abc.ru/Users కంటెయినర్‌లో bindUsr)కి బైండింగ్ చేయడానికి కానానికల్ పేరు;
  • పాస్వర్డ్ b1ndP@SS — బైండింగ్ కోసం వినియోగదారు పాస్వర్డ్;
  • BaseDN “OU=allUsr,DC=abc,DC=ru” — వినియోగదారు కోసం శోధించడం ప్రారంభించే మార్గం;
  • BaseDN “OU=myGrp,DC=abc,DC=ru” – అనుమతించే సమూహం యొక్క కంటైనర్ (కంటైనర్ abc.rumyGrpలో myVPNUsr సమూహం);
  • SearchFilter "(cn=myVPNUsr)" అనేది అనుమతించే సమూహం పేరు.

స్టార్టప్ మరియు డయాగ్నస్టిక్స్

ఇప్పుడు మనం మా సర్వర్‌ని ఎనేబుల్ చేసి ప్రారంభించడానికి ప్రయత్నించవచ్చు:

$ sudo systemctl enable [email protected]
$ sudo systemctl start [email protected]

ప్రారంభ తనిఖీ:

systemctl status [email protected]
journalctl -xe
cat /var/log/messages
cat /var/log/openvpn/*log

సర్టిఫికేట్ జారీ మరియు రద్దు

ఎందుకంటే సర్టిఫికేట్‌లతో పాటు, మీకు కీలు మరియు ఇతర సెట్టింగ్‌లు అవసరం; ఇవన్నీ ఒకే ప్రొఫైల్ ఫైల్‌లో చుట్టడం చాలా సౌకర్యంగా ఉంటుంది. ఈ ఫైల్ వినియోగదారుకు బదిలీ చేయబడుతుంది మరియు ప్రొఫైల్ OpenVPN క్లయింట్‌లో దిగుమతి చేయబడుతుంది. దీన్ని చేయడానికి, మేము సెట్టింగ్‌ల టెంప్లేట్ మరియు ప్రొఫైల్‌ను రూపొందించే స్క్రిప్ట్‌ను సృష్టిస్తాము.

మీరు ప్రొఫైల్‌కు రూట్ సర్టిఫికేట్ (ca.crt) మరియు TLS కీ (ta.key) ఫైల్‌ల కంటెంట్‌లను జోడించాలి.

యూజర్ సర్టిఫికెట్లు జారీ చేసే ముందు సర్టిఫికెట్ల కోసం అవసరమైన చెల్లుబాటు వ్యవధిని సెట్ చేయడం మర్చిపోవద్దు పారామితుల ఫైల్‌లో. మీరు దీన్ని చాలా పొడవుగా చేయకూడదు; మిమ్మల్ని గరిష్టంగా 180 రోజులకు పరిమితం చేసుకోవాలని నేను సిఫార్సు చేస్తున్నాను.

vim /usr/share/easy-rsa/3/vars

...
export EASYRSA_CERT_EXPIRE=180

vim /usr/share/easy-rsa/3/client/template.ovpn

client
dev tun
proto udp
remote gw.abc.ru 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
verb 3
auth-user-pass

<ca>
-----BEGIN CERTIFICATE-----
PUT YOUR CA CERT (ca.crt) HERE
-----END CERTIFICATE-----
</ca>

key-direction 1
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
PUT YOUR TA KEY (ta.key) HERE
-----END OpenVPN Static key V1-----
</tls-auth>

వ్యాఖ్యలు:

  • పంక్తులు మీవి పెట్టండి... కంటెంట్‌కి మార్చండి సొంత సర్టిఫికెట్లు;
  • రిమోట్ డైరెక్టివ్‌లో, మీ గేట్‌వే పేరు/చిరునామాను పేర్కొనండి;
  • auth-user-pass డైరెక్టివ్ అదనపు బాహ్య ప్రమాణీకరణ కోసం ఉపయోగించబడుతుంది.

హోమ్ డైరెక్టరీలో (లేదా ఇతర అనుకూలమైన ప్రదేశం) మేము సర్టిఫికేట్‌ను అభ్యర్థించడానికి మరియు ప్రొఫైల్‌ను రూపొందించడానికి స్క్రిప్ట్‌ను సృష్టిస్తాము:

vim ~/make.profile.sh

#!/bin/bash

if [ -z "$1" ] ; then
 echo Missing mandatory client name. Usage: $0 vpn-username
 exit 1
fi

#Set variables
basepath=/usr/share/easy-rsa/3
clntpath=$basepath/client
privpath=$basepath/pki/private
certpath=$basepath/pki/issued
profile=$clntpath/$1.ovpn

#Get current year and lowercase client name
year=`date +%F`
client=${1,,}
echo Processing $year year cert for user/device $client

cd $basepath

if [  -f client/$client* ]; then
    echo "*** ERROR! ***"
    echo "Certificate $client already issued!"
    echo "*** ERROR! ***"
    exit 1
fi

. ./vars
./easyrsa --batch --req-cn=$client gen-req $client nopass
./easyrsa --batch sign-req client $client

#Make profile
cp $clntpath/template.ovpn $profile

echo "<key>" >> $profile
cat $privpath/$1.key >> $profile
echo "</key>" >> $profile

echo -e "n" >> $profile
openssl x509 -in $certpath/$1.crt -out $basepath/$1.crt

echo "<cert>" >> $profile
cat $basepath/$1.crt >> $profile
echo "</cert>" >> $profile
echo -e "n" >> $profile

#remove tmp file
rm -f $basepath/$1.crt

echo Complete. See $profile file.

cd ~

ఫైల్‌ని ఎక్జిక్యూటబుల్ చేయడం:

chmod a+x ~/make.profile.sh

మరియు మేము మా మొదటి ప్రమాణపత్రాన్ని జారీ చేయవచ్చు.

~/make.profile.sh my-first-user

రీకాల్

సర్టిఫికేట్ రాజీ విషయంలో (నష్టం, దొంగతనం), ఈ ప్రమాణపత్రాన్ని ఉపసంహరించుకోవడం అవసరం:

cd /usr/share/easy-rsa/3/
./easyrsa revoke my-first-user
./easyrsa gen-crl

జారీ చేయబడిన మరియు రద్దు చేయబడిన ప్రమాణపత్రాలను వీక్షించండి

జారీ చేయబడిన మరియు రద్దు చేయబడిన సర్టిఫికేట్‌లను వీక్షించడానికి, ఇండెక్స్ ఫైల్‌ను వీక్షించండి:

cd /usr/share/easy-rsa/3/
cat pki/index.txt

అర్థము:

  • మొదటి పంక్తి సర్వర్ సర్టిఫికేట్;
  • మొదటి పాత్ర
    • V (చెల్లుబాటు అయ్యేది) - చెల్లుబాటు అయ్యేది;
    • R (రద్దు చేయబడింది) - గుర్తుచేసుకున్నారు.

నెట్‌వర్క్ కాన్ఫిగరేషన్

చివరి దశలు ట్రాన్స్మిషన్ నెట్‌వర్క్‌ను కాన్ఫిగర్ చేయడం - రూటింగ్ మరియు ఫైర్‌వాల్‌లు.

స్థానిక ఫైర్‌వాల్‌లో కనెక్షన్‌లను అనుమతిస్తుంది:

$ sudo firewall-cmd --add-service=openvpn
$ sudo firewall-cmd --add-service=openvpn --permanent

తర్వాత, IP ట్రాఫిక్ రూటింగ్‌ని ప్రారంభించండి:

$ sudo sysctl net.ipv4.ip_forward=1
$ sudo echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/50-sysctl.conf

కార్పొరేట్ వాతావరణంలో, సబ్‌నెట్టింగ్ జరిగే అవకాశం ఉంది మరియు మా VPN క్లయింట్‌ల కోసం ఉద్దేశించిన ప్యాకెట్‌లను ఎలా పంపాలో మేము రూటర్(లు)కి చెప్పాలి. కమాండ్ లైన్‌లో మేము ఆదేశాన్ని పద్ధతిలో అమలు చేస్తాము (ఉపయోగించిన పరికరాలను బట్టి):

# ip route 172.16.20.0 255.255.254.0 172.16.19.123

మరియు కాన్ఫిగరేషన్‌ను సేవ్ చేయండి.

అదనంగా, బాహ్య చిరునామా gw.abc.ru అందించబడిన సరిహద్దు రౌటర్ ఇంటర్‌ఫేస్‌లో, udp/1194 ప్యాకెట్‌ల మార్గాన్ని అనుమతించడం అవసరం.

సంస్థ కఠినమైన భద్రతా నియమాలను కలిగి ఉన్నట్లయితే, మా VPN సర్వర్‌లో కూడా ఫైర్‌వాల్ తప్పనిసరిగా కాన్ఫిగర్ చేయబడాలి. నా అభిప్రాయం ప్రకారం, iptables FORWARD చైన్‌లను సెటప్ చేయడం ద్వారా గొప్ప సౌలభ్యం అందించబడుతుంది, అయినప్పటికీ వాటిని సెటప్ చేయడం తక్కువ సౌకర్యవంతంగా ఉంటుంది. వాటిని ఏర్పాటు చేయడం గురించి కొంచెం ఎక్కువ. దీన్ని చేయడానికి, ఫైల్‌లో నిల్వ చేయబడిన “ప్రత్యక్ష నియమాలు” - ప్రత్యక్ష నియమాలను ఉపయోగించడం చాలా సౌకర్యవంతంగా ఉంటుంది /etc/firewalld/direct.xml. నియమాల యొక్క ప్రస్తుత కాన్ఫిగరేషన్ క్రింది విధంగా కనుగొనవచ్చు:

$ sudo firewall-cmd --direct --get-all-rule

ఫైల్‌ను మార్చడానికి ముందు, దాని బ్యాకప్ కాపీని చేయండి:

cp /etc/firewalld/direct.xml /etc/firewalld/direct.xml.`date +%F.%T`.bak

ఫైల్ యొక్క సుమారు విషయాలు:

<?xml version="1.0" encoding="utf-8"?>
<direct>
 <!--Common Remote Services-->
  <!--DNS-->
    <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o ens192 -p udp --dport 53 -j ACCEPT</rule>
  <!--web-->
    <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -p tcp -d 172.16.19.200 --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT</rule>
    <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -p tcp -d 172.16.19.201 --dport 443 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT</rule>
  <!--Some Other Systems-->
    <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -p udp -d 172.16.19.100 --dport 7000 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT</rule>
  <!--just logging-->
    <rule priority="1" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -j LOG --log-prefix 'forward_fw '</rule>
</direct>

వివరణలు

ఇవి తప్పనిసరిగా సాధారణ iptables నియమాలు, లేకపోతే ఫైర్‌వాల్డ్ వచ్చిన తర్వాత ప్యాక్ చేయబడతాయి.

డిఫాల్ట్ సెట్టింగ్‌లతో డెస్టినేషన్ ఇంటర్‌ఫేస్ tun0, మరియు టన్నెల్ కోసం బాహ్య ఇంటర్‌ఫేస్ భిన్నంగా ఉండవచ్చు, ఉదాహరణకు, ens192, ఉపయోగించిన ప్లాట్‌ఫారమ్‌పై ఆధారపడి ఉంటుంది.

పడిపోయిన ప్యాకెట్లను లాగింగ్ చేయడం కోసం చివరి పంక్తి. లాగింగ్ పని చేయడానికి, మీరు ఫైర్‌వాల్డ్ కాన్ఫిగరేషన్‌లో డీబగ్ స్థాయిని మార్చాలి:

vim /etc/sysconfig/firewalld
FIREWALLD_ARGS=--debug=2

సెట్టింగ్‌లను వర్తింపజేయడం అనేది సెట్టింగ్‌లను మళ్లీ చదవడానికి సాధారణ ఫైర్‌వాల్డ్ ఆదేశం:

$ sudo firewall-cmd --reload

మీరు ఇలా పడిపోయిన ప్యాకెట్‌లను చూడవచ్చు:

grep forward_fw /var/log/messages

తదుపరి ఏమిటి

ఇది సెటప్‌ను పూర్తి చేస్తుంది!

క్లయింట్ వైపు క్లయింట్ సాఫ్ట్‌వేర్‌ను ఇన్‌స్టాల్ చేయడం, ప్రొఫైల్‌ను దిగుమతి చేయడం మరియు కనెక్ట్ చేయడం మాత్రమే మిగిలి ఉంది. Windows ఆపరేటింగ్ సిస్టమ్‌ల కోసం, పంపిణీ కిట్ ఆన్‌లో ఉంది డెవలపర్ వెబ్‌సైట్.

చివరగా, మేము మా కొత్త సర్వర్‌ని మానిటరింగ్ మరియు ఆర్కైవింగ్ సిస్టమ్‌లకు కనెక్ట్ చేస్తాము మరియు అప్‌డేట్‌లను క్రమం తప్పకుండా ఇన్‌స్టాల్ చేయడం మర్చిపోవద్దు.

స్థిరమైన కనెక్షన్!

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి