VPN మాత్రమే ఉన్న iptables హోస్ట్: tun పరికరానికి పేరు పెట్టండి, tun+ కాదు
tun+ యంత్రంలోని ప్రతి సొరంగంతో సరిపోలుతుంది. ఒక పరికర పేరును స్థిరపరచండి, endpoint మినహాయింపును మొదట ఉంచండి మరియు విధానాన్ని పరీక్షిస్తున్నప్పుడు పునరుద్ధరణ మార్గాన్ని ఉంచుకోండి.
-o tun+ రాయడం ఖచ్చితమైన సూచనలా అనిపిస్తుంది మరియు వాస్తవానికి ఇది కర్నెల్ కలిగి ఉన్న ప్రతి సొరంగంతో సరిపోలే వైల్డ్కార్డ్. రెండవ VPN క్లయింట్, ఒక కంటైనర్ వంతెన లేదా క్రాష్ అయిన సెషన్ వదిలివేసిన ఇంటర్ఫేస్ — అన్నీ దీన్ని తృప్తిపరుస్తాయి, ఆ తర్వాత హోస్ట్ విధానం నిరోధించాలనుకున్న ట్రాఫిక్ను అనుమతిస్తుంది. కింది విధానం ఒక పరికర పేరును స్థిరపరుస్తుంది, సొరంగం నిజంగా ఏర్పడేలా మినహాయింపులను క్రమబద్ధీకరిస్తుంది మరియు నియమాలు దారుణంగా పడితే తిరిగి వెళ్లే మార్గాన్ని వదిలిస్తుంది. ప్రతి దశ దానంతట అదే రద్దు చేయగలిగేంత చిన్నది.
దశ 1: ఇప్పుడు ఉన్న నియమాలను నమోదు చేయండి
డిఫాల్ట్ విధానాన్ని మార్చే ముందు ప్రస్తుత స్థితిని సేవ్ చేయండి, తద్వారా రోల్బ్యాక్ జ్ఞాపకం కాదు ఆదేశం అవుతుంది. iptables-save > /root/iptables.pre ప్రతి పట్టికను మీరు పునరుద్ధరించగలిగే ఫైల్కు రాస్తుంది, మరియు మీరు సెట్ చేయబోయే విధానం దాన్ని మోసే కనెక్షన్ను తెంచినప్పుడు root సెషన్ తెరిచిన రెండవ టెర్మినల్ అతిగా భయపడటం కాదు. మీరు దూరం నుండి పని చేస్తుంటే, flush ఒకటి కూడా అత్యవసర స్విచ్గా షెడ్యూల్ చేయండి.
తర్వాత ఇంటర్ఫేస్లను జాబితా చేయండి, ఎందుకంటే మీరు ఊహించిన పేరు మీరు చదవాల్సిన పేరు: ip -br link ఇప్పుడు ఏమి ఉందో చూపిస్తుంది, సొరంగం పైకి వచ్చే వరకు కనిపించదు. చదివేటప్పుడే పరికరాల పేర్లను రాసుకోండి.
దశ 2: సొరంగానికి దాని స్వంత పేరు పెట్టండి
OpenVPN క్లయింట్ కాన్ఫిగరేషన్లో dev tun_work అంగీకరిస్తుంది, ఆ తర్వాత Linux tun0 కేటాయించే బదులు సరిగ్గా ఆ పేరుతో ఇంటర్ఫేస్ సృష్టిస్తుంది. మరేదీ దానిపై దావా వేయనంత కాలం మళ్లీ కనెక్ట్ అయ్యే మధ్య పేరు స్థిరంగా ఉంటుంది, పరికరాన్ని పేర్కొనే నియమాన్ని అర్థవంతం చేసేది అదే.
పేరును నియంత్రించలేని చోట, సొరంగ చిరునామా లేదా ప్యాకెట్ గుర్తుతో సరిపోల్చండి. రెండూ పని చేస్తాయి, రెండూ చదవడానికి కష్టం, సొరంగం తిరిగి సంఖ్యలు మార్చినప్పుడు రెండూ మరింత నిశ్శబ్దంగా విఫలమవుతాయి. ఏదేమైనా, ఒకే విషయంతో సరిపోల్చండి మరియు ఏదో స్పష్టంగా చెప్పండి.
దశ 3: endpoint మినహాయింపును మొదట ఉంచి విధానం రాయండి
VPN మాత్రమే ఉన్న హోస్ట్ అంటే చిన్న మినహాయింపు జాబితాతో కూడిన డిఫాల్ట్-నిరాకరణ హోస్ట్, అత్యంత ముఖ్యమైన మినహాయింపు సొరంగం ఉనికిని అనుమతించేది. సొరంగ-పరికర నియమానికి ముందు endpoint నియమాన్ని ఉంచి ఈ క్రమంలో నిర్మించండి, తద్వారా చేతులు కలపడానికి వెళ్లే చోటు ఉంటుంది:
# allow the tunnel to be built, then everything the tunnel carries
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -d 198.51.100.7 -p udp --dport 1194 -j ACCEPT
iptables -A OUTPUT -o tun_work -j ACCEPT
iptables -A INPUT -i tun_work -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPTendpoint యొక్క అక్షరార్థ చిరునామా మరియు పోర్ట్ మీ ప్రొవైడర్కు చెందుతాయి, ఈ పేజీకి కాదు. endpoint హోస్ట్నేమ్ అయితే, ఒకసారి పరిష్కరించి ఫలితాన్ని స్థిరపరచండి, ఎందుకంటే నియమం పేరును వెతకలేదు మరియు తిరిగే సమాధానం తదుపరి DNS మార్పు తర్వాత విధానాన్ని నిశ్శబ్దంగా విరగ్గొడుతుంది. పోర్ట్ను కూడా తనిఖీ చేయండి, ఎందుకంటే మిమ్మల్ని TCP 443కి మార్చే ప్రొవైడర్లకు లేకుంటే ఎవరూ రాయని నియమం అవసరమవుతుంది. ఒకే ప్రోటోకాల్పై పని చేసే సొరంగం సాధారణంగా ఈ మినహాయింపే, ఫైర్వాల్ లోపం కాదు.
రౌటర్లో అదే ఆకారం దాని వెనుక ఉన్న క్లయింట్ల కోసం FORWARD చైన్లోకి వెళ్తుంది, రౌటర్ స్వంత ట్రాఫిక్కు స్వంత నియమాలు కావాలి. ఫార్వార్డ్ చేసిన ప్యాకెట్లను మాత్రమే కవర్ చేసే నియమ సముదాయం SSH మరియు DNSను పాత మార్గంలోనే వదిలేస్తుంది, సొరంగం పైకి వచ్చే క్షణంలో రౌటర్ చేరుకోలేనిదిగా మారడానికి కారణం అదే.
దశ 4: ఉనికిని మాత్రమే కాదు, క్రమాన్ని తనిఖీ చేయండి
నియమాలు క్రమంగా మూల్యాంకనం అవుతాయి, కాబట్టి ముందు వచ్చే ACCEPT తర్వాత జోడించిన REJECTను కేవలం దాచుతుంది. established మరియు related సరిపోలికే సాధారణ ఇన్బౌండ్ మార్గాన్ని తెరవకుండా మీ స్వంత అవుట్బౌండ్ అభ్యర్థనలకు సమాధానాలు తిరిగి రావడానికి అనుమతిస్తుంది, సొరంగ అంగీకారం తర్వాత దాన్ని ఉంచడం అంటే పడిపోయిన సొరంగం కూడా తన ఇంటర్ఫేస్పై తిరిగి వచ్చే ట్రాఫిక్ను దాటిస్తుంది.
నియమాల సంఖ్యను ఒక స్క్రీన్పై చదవగలిగేంత చిన్నగా ఉంచండి. మీరు ఆడిట్ చేయలేని నియమ సముదాయమే మీరు పైన మినహాయింపులు జోడించి ప్యాచ్ చేసేది, డిఫాల్ట్-నిరాకరణ విధానాలు క్రమంగా డిఫాల్ట్-అనుమతి అంచును పొందడం అలాగే. మార్పు ముందు మరియు తర్వాత ACCEPTలను లెక్కించండి.
దశ 5: బూట్ మరియు చిరునామా కుటుంబం రెండింటినీ దాటి నిలిచేలా చేయండి
చేతితో ఇచ్చిన నియమాలు రీబూట్లో మాయమవుతాయి, కాబట్టి డిస్ట్రిబ్యూషన్ ఫైర్వాల్ సేవ నుండి లేదా సొరంగ ఇంటర్ఫేస్ ఉన్న తర్వాత నడిచే unit నుండి వాటిని లోడ్ చేయండి. OpenVPN ప్రారంభం కాకముందే నడిచే స్క్రిప్ట్లో tun_work గురించి ప్రస్తావించడం పడిపోయిన ట్రాఫిక్ బూట్ లూప్ సృష్టించే సాధారణ మార్గం.
తర్వాత IPv6ను విడిగా తనిఖీ చేయండి, ఎందుకంటే IPv4 కోసం మంచి డిఫాల్ట్-నిరాకరణ విధానం మరో కుటుంబం గురించి ఏమీ చెప్పదు. IPv4 మాత్రమే నిర్వహించే సొరంగం చుట్టూ ట్రాఫిక్ను తీసుకెళ్లగల మార్గం హోస్ట్కు ఉందా అని ip -6 route చెబుతుంది, ip6tables లేదా nftablesకు దానికి సమానమైన నియమాలు కావాలి. నియమ సముదాయం యొక్క సమరూపతను నమ్మడం బదులు IPv6-only గమ్యస్థానంతో పరీక్షించండి.
దశ 6: ధృవీకరించి పునరుద్ధరించడానికి సిద్ధంగా ఉండండి
సొరంగాన్ని పైకి తీసుకురండి, మీరు ఉద్దేశించిన సేవ పని చేస్తుందో నిర్ధారించండి, తర్వాత విధానం నిరాకరించాల్సిన దాన్ని ప్రయత్నించండి. సమాధానం మిమ్మల్ని ఆశ్చర్యపరిస్తే iptables-restore < /root/iptables.pre ఉపయోగించి పునరుద్ధరించండి, ఆ తర్వాతే నియమాలను సవరించడం ప్రారంభించండి. స్థిరత్వం మరియు పరీక్షించిన పునరుద్ధరణ మార్గం కలిసే దీన్ని మీరు రెండుసార్లు చేయగల మార్పుగా చేస్తాయి.