FORWARD, OUTPUT మరియు IPv6ని కవర్ చేసే రౌటర్ కిల్ స్విచ్
FORWARDలో మాత్రమే ఉన్న కిల్ స్విచ్ రౌటర్ను స్వేచ్ఛగా లీక్ అవ్వనిస్తుంది, మరియు IPv4 నియమాలు మాత్రమే IPv6ని తెరిచి ఉంచుతాయి. చైన్లను క్రమంగా అమర్చి టన్నెల్ ఆఫ్ ఉన్నప్పుడు పరీక్షించండి.
మీరు రౌటర్లో లాగిన్ అవుతారు, ఫోరమ్ పోస్ట్ నుండి కిల్ స్విచ్ నియమాల సెట్ను పేస్ట్ చేస్తారు, మరియు టన్నెల్ పడిన క్షణంలోనే LAN బ్రౌజ్ చేయడం ఆగిపోతుంది. రెండు రోజుల తర్వాత కూడా రౌటర్ సాధారణ WAN ద్వారా తన డైనమిక్ DNS రికార్డ్ను అప్డేట్ చేస్తూనే ఉంటుంది, మరియు అతిథి ల్యాప్టాప్ ఇప్పటికీ IPv6 సైట్లను చేరుతుంది. రెండు ప్రవర్తనలూ సాధారణమే, ఎందుకంటే పేస్ట్ చేసిన నియమాలు ఒక చైన్ మరియు ఒక చిరునామా కుటుంబాన్ని కవర్ చేశాయి, అవి ఏవీ పూర్తి రౌటర్ కావు. ప్యాకెట్ల మార్గాలను క్రమంగా దాటడం ద్వారా ఏమి మిస్ అయిందో సరిగ్గా కనిపిస్తుంది.
ల్యాప్టాప్ నుండి కాదు, రౌటర్ నుండి ప్రారంభించండి
రౌటర్ స్థాయి విధానం చిన్న కార్యాలయానికి ఆకర్షణీయం, ఎందుకంటే దాని వెనుక ఉన్న ప్రతి పరికరం అదే ప్రవర్తనను వారసత్వంగా పొందుతుంది మరియు ఎవరూ క్లయింట్పై స్విచ్ను ఆన్ చేయడం మరచిపోలేరు. ప్రతి ఫర్మ్వేర్ అప్డేట్ తర్వాత పరీక్షించడానికి ఒకే చోటును కూడా ఇస్తుంది. ఇవ్వనిది రౌటర్ స్వంత ట్రాఫిక్ లేదా రెండవ చిరునామా కుటుంబం యొక్క ఆటోమేటిక్ కవరేజ్, మరియు ఇవే చాలా విఫలమైన డిప్లాయ్మెంట్ల వెనుక ఉన్న రెండు లోతులు.
ఏదైనా మార్చే ముందు కాగితంపై మూడు వాస్తవాలను రాయండి: WAN ఇంటర్ఫేస్ పేరు, LAN బ్రిడ్జ్ పేరు, మరియు VPN ఎండ్పాయింట్ చిరునామా మరియు పోర్ట్. మూడూ నియమాలలో అవసరం అవుతాయి, మరియు ఇంటర్ఫేస్ పేర్లను ఊహించడం సరైనదిగా కనిపించే నియమాల సెట్ ఏమీ చేయకపోవడానికి అత్యంత సాధారణ కారణం.
ప్యాకెట్ తీసుకోగల మూడు మార్గాలను దాటండి
ల్యాప్టాప్ నుండి ఇంటర్నెట్కు ట్రాఫిక్ ఫార్వర్డ్ అవుతుంది, కాబట్టి అది FORWARD చైన్ గుండా వెళుతుంది. రౌటర్ స్వయంగా సృష్టించే ట్రాఫిక్, ఉదాహరణకు DNS ఫార్వర్డింగ్, NTP క్వెరీలు, DDNS అప్డేట్లు మరియు VPN నియంత్రణ ఛానెల్, OUTPUT గుండా వెళుతుంది. రౌటర్కు ఉద్దేశించిన నిర్వహణ ట్రాఫిక్ INPUT ద్వారా వస్తుంది.
అందువల్ల FORWARDలో మాత్రమే నిర్మించిన కిల్ స్విచ్ క్లయింట్లను రక్షిస్తుంది, మరేమీ కాదు. ప్రారంభ దృశ్యంలోని లీక్ ఎందుకు మర్మమైనది కాదు, ముందే ఊహించగలిగేది అని పట్టిక చూపిస్తుంది.
| Packet path | Example | Chain that sees it |
|---|---|---|
| LAN client to WAN or tunnel | Browser request | FORWARD |
| Router-originated | DDNS update, NTP | OUTPUT |
| Addressed to the router | SSH from the LAN | INPUT |
చాలా డిజైన్లలో మీకు INPUTపై కిల్ స్విచ్ అవసరం లేదు, కానీ టన్నెల్ ఆఫ్ ఉన్నప్పుడు నిర్వహణ ప్రాప్తి పనిచేస్తూనే ఉండాలి. లేకపోతే VPN మొదటిసారి విఫలమైనప్పుడు మీరు కన్సోల్ కేబుల్తో కార్యాలయానికి వెళ్తారు.
టన్నెల్ ఇంకా పైకి రాగలిగేలా నియమాలను అమర్చండి
పనిచేసే కిల్ స్విచ్ అంటే తిరస్కారంతో ముగిసే అనుమతుల జాబితా, మరియు దాన్ని కిల్ స్విచ్గా చేసేది క్రమమే, ఇటుక కాదు. మొదట loopback, VPN ఎండ్పాయింట్, స్థాపిత ఫ్లోలకు ప్రతిస్పందనలు మరియు టన్నెల్ ఇంటర్ఫేస్కు అనుమతి ఇవ్వండి; మిగిలినవి చివర్లో తిరస్కరించండి.
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -d 198.51.100.7 -p udp --dport 51820 -j ACCEPT
iptables -A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o wg0 -j ACCEPT
iptables -A OUTPUT -o eth0 -j REJECT
ఈ దశలో ఎండ్పాయింట్ ఒక చిరునామా అయి ఉండాలి, హోస్ట్నేమ్ కాదు. తుది తిరస్కారం DNSను బ్లాక్ చేసిన వెంటనే, ప్రొవైడర్ హోస్ట్నేమ్ను పేర్కొనే నియమాన్ని ఇకపై పరిష్కరించలేము, మరియు టన్నెల్ రీబూట్ తర్వాత మళ్లీ ఎప్పటికీ పైకి రాదు. ప్రొవైడర్ ఎండ్పాయింట్లను మారుస్తుంటే, విధానం వర్తించే ముందు పేరును పరిష్కరించి ఆ నియమాన్ని అదే స్క్రిప్ట్ నుండి రిఫ్రెష్ చేయండి.
క్లయింట్ ట్రాఫిక్ కోసం అదే ఆకృతిని FORWARDలో పునరావృతం చేయండి, మరియు తిరస్కారం పైన స్పష్టమైన నిర్వహణ నియమాన్ని ఉంచండి. ఆ నిర్వహణ నియమాన్ని ఇరుకైనదిగా కానీ చేరుకోగలిగేలా ఉంచి, మొదటి SSH సెషన్ను మూసే ముందు రెండవ సెషన్ను తెరిచి ధృవీకరించండి. కిల్ స్విచ్ మార్పు సమయంలో మిమ్మల్ని బయట లాక్ చేసుకోవడం ప్రణాళిక వేసుకోవాల్సినంత సాధారణం. WireGuard నడిపే రౌటర్లో పీర్ allowed-ips టన్నెల్లోకి ఏమి వెళ్తుందో నిర్ణయిస్తాయి, అయితే ఈ నియమాలు అది లేకుండా ఏమి బయటకు వెళ్లవచ్చో నిర్ణయిస్తాయి.
IPv6కు దాని సొంత తలుపు కావాలి
పైనున్నదంతా IPv4. మీ LANలో IPv6 పనిచేస్తూ టన్నెల్ IPv4 మాత్రమే మోసుకెళ్తే, ప్రతి కవర్ చేయబడిన పరికరానికి మీ కొత్త నియమాలు ఎప్పుడూ చూడని ఇంటర్నెట్కు నేరుగా మార్గం ఇంకా ఉంటుంది. ద్వంద్వ స్టాక్ ల్యాప్టాప్ దాన్ని సంతోషంగా ఎంచుకుంటుంది, మరియు కిల్ స్విచ్ IPv4తో పరీక్షించే వ్యక్తికి మాత్రమే పాడైనట్లు కనిపిస్తుంది.
ip6tables -A FORWARD -i br-lan -j REJECT
ip6tables -A OUTPUT -o eth0 -j REJECT
ip6tables -A OUTPUT -o lo -j ACCEPT
ఇక్కడ కూడా క్రమం ముఖ్యం: loopback అనుమతి WAN తిరస్కారానికి ముందు రావాలి, లేకపోతే రౌటర్పై స్థానిక సేవలు వింతగా విఫలం కావడం ప్రారంభిస్తాయి. నెట్వర్క్ IPv6ని అసలే ఉపయోగించకపోతే, దాన్ని WAN మరియు LANపై నిలిపివేయడం సులభం మరియు మరచిపోవడానికి ఏమీ మిగలదు.
కొన్ని VPN క్లయింట్లు IPv4కు మాత్రమే డిఫాల్ట్ మార్గాన్ని ఇన్స్టాల్ చేసి, ఉన్న IPv6 డిఫాల్ట్ మార్గాన్ని తాకకుండా వదిలేస్తాయి. టన్నెల్ కనెక్ట్ అయిన తర్వాత రూటింగ్ పట్టికను తనిఖీ చేయండి, క్లయింట్ చూసుకుందని భావించడం బదులు.
టన్నెల్ ఆఫ్ ఉన్నప్పుడు దీన్ని నిరూపించండి
రౌటర్ నుండి టన్నెల్ను ఆపి మూడు ప్రదేశాల నుండి ఈ క్రమంలో పరీక్షించండి:
# systemctl stop wg-quick@wg0
# ip route get 203.0.113.1
# curl -m 5 -sS http://example.com || echo blocked
# iptables -vnL OUTPUT | head
# ip6tables -vnL OUTPUT | head
మార్గ శోధన ప్యాకెట్ ఎక్కడికి వెళ్తుందో చెబుతుంది, కౌంటర్లు మీ నియమాలు ఎప్పుడైనా సరిపోలాయా అని చెబుతాయి. విఫలమైన పరీక్ష తర్వాత సున్నా ప్యాకెట్ల నియమం ఏమీ రక్షించదు, మరియు సాధారణ కారణం మీరు టైప్ చేసినదానికి భిన్నమైన ఇంటర్ఫేస్ పేరు. రౌటర్ సృష్టించే ట్రాఫిక్ను స్పష్టంగా పరీక్షించండి, ఎందుకంటే LAN వైపు నుండి పరీక్ష OUTPUTను నడపలేదు.
అవసరం కాకముందే వైఫల్య మోడ్ను నిర్ణయించండి. fail-closed టన్నెల్ తిరిగి వచ్చే వరకు క్లయింట్లను ఆఫ్లైన్లో ఉంచుతుంది; fail-open సాధారణ WAN ప్రాప్తిని పునరుద్ధరిస్తుంది మరియు మీకు ముఖ్యమైన ట్రాఫిక్ యొక్క ఉద్దేశాన్ని పాడు చేస్తుంది. అధిక మెట్రిక్తో VPN పూల్ వైపు blackhole మార్గం fail-closed డిజైన్లకు ఉపయోగకరమైన రెండవ పొర, ఎందుకంటే టన్నెల్ మార్గం మాయమైనప్పుడు అది డిఫాల్ట్కు తిరోగమించకుండా నిలబడుతుంది.
LAN క్లయింట్, రౌటర్ సృష్టించిన అభ్యర్థన మరియు IPv6 అభ్యర్థన మూడూ టన్నెల్ ఆఫ్ ఉన్నప్పుడు విఫలమై, టన్నెల్ లేచినప్పుడు మూడూ మళ్లీ పనిచేసినప్పుడే సెటప్ను అంగీకరించండి.