డౌన్ స్క్రిప్ట్ లేదా ఫైర్వాల్ నియమం: లీక్ను ఏది ఆపుతుంది?
డిస్కనెక్ట్ సమయంలో ఇంటర్ఫేస్లను దించడం కఠినం మరియు తరచుగా అనుమతులు లేకుండా నడుస్తుంది. పతనం తర్వాత కూడా నిలిచి ఖాళీని మూసే ఫైర్వాల్ నియమంతో దాన్ని పోల్చండి.
రెండు నమూనాలు ఒకటే విషయాన్ని వాగ్దానం చేస్తాయి: సొరంగం పడిపోయినప్పుడు, ఏదీ బహిరంగంగా బయటకు వెళ్లదు. ఒకటి టియర్డౌన్లో స్క్రిప్ట్ నడిపి ఇంటర్ఫేస్లను కత్తిరిస్తుంది. మరొకటి ఫైర్వాల్ నియమాన్ని అమలులో ఉంచి VPN క్లయింట్ను ఏమీ అడగదు. ఎవరికి చర్య తీసుకునే అనుమతి ఉంది, ఖాళీ సమయంలో ఏం జరుగుతుంది, తర్వాత యంత్రం ఎలా తిరిగి ఆన్లైన్కు వస్తుంది అనే విషయాల్లో అవి భిన్నంగా ఉంటాయి. ఈ మూడు అంశాలపై పోల్చడం ఏది కఠినమైనదని వాదించడం కంటే ఉపయోగకరం.
ఒకే పని, రెండు మార్గాలు
ప్రొఫైల్ స్క్రిప్ట్ నడపడానికి అనుమతిస్తే, సొరంగం పైకి వచ్చినప్పుడు మరియు టియర్డౌన్ అయినప్పుడు క్లయింట్ హుక్లను నడపవచ్చు. ఆ హుక్ క్లయింట్ జీవిత చక్రం లోపల, కనెక్షన్ మూసుకుపోతున్న క్షణంలో నడుస్తుంది. ఫైర్వాల్ నియమం మాత్రం వ్యవస్థకు చెందుతుంది, క్లయింట్ నడుస్తున్నదా, క్రాష్ అయిందా లేదా చంపబడిందా అని అది పట్టించుకోదు.
| Property | Teardown script | Firewall unit |
|---|---|---|
| Runs when the client is killed | No | Yes |
| Needs privilege at teardown time | Usually yes | Configured once, at boot |
| Acts on the whole machine | Often, including recovery paths | Only on the flows it matches |
ఆ పట్టికే మొత్తం వాదన. శుభ్రమైన మూసివేతలో మాత్రమే నడిచే స్క్రిప్ట్ మీకు అత్యల్ప ఆందోళన ఉన్న సందర్భాన్ని కవర్ చేస్తుంది; ముఖ్యమైన సందర్భం క్రాష్ లేదా నెట్వర్క్ మాయమైపోవడం, రెండూ శుభ్రమైన టియర్డౌన్ ఇవ్వవు.
టియర్డౌన్ హుక్ ఏమి చేయగలదు, ఏమి చేయలేదు
నమోదైన నమూనా నెట్వర్క్ ఇంటర్ఫేస్ల గుండా వెళ్లి loopback తప్ప అన్నింటినీ దిగదీస్తుంది. భౌతిక పరికరం కింద ఉన్నప్పుడు సొరంగం బయటకు ఏదీ తప్పించుకోలేదు, అదే సరైన ఉద్దేశం.
#!/bin/sh
for dev in /sys/class/net/*; do
name=$(basename "$dev")
[ "$name" = lo ] || ip link set dev "$name" down
done
ఇది స్థానిక నెట్వర్క్, యంత్రం హోస్ట్ చేసే ఏ సేవనైనా మరియు సమస్యను సరిచేయడానికి మీరు వాడే మార్గాన్ని కూడా దిగదీస్తుంది. ల్యాప్టాప్లో వైర్లెస్ పరికరాన్ని తర్వాత కొన్నిసార్లు చేతితో మార్చాల్సి ఉంటుంది, కాబట్టి చిన్న అంతరాయం మరమ్మతు సెషన్గా మారుతుంది. అంతకంటే దారుణం, హుక్కు ఇవేవీ చేయడానికి అనుమతి ఉండకపోవచ్చు: క్లయింట్ అనుమతులు వదులుకున్నప్పుడు, టియర్డౌన్ స్క్రిప్ట్ అనుమతి లేని ఖాతాలో నడుస్తుంది, ప్రతి ఇంటర్ఫేస్ మార్పు అనుమతి లోపంతో విఫలమవుతుంది; ఆ లోపం ఎవరూ లాగ్ చదవని అదే క్షణంలో రాయబడుతుంది.
హుక్ను నమ్మే ముందు క్లయింట్ ఎలా ప్రారంభమవుతుందో తనిఖీ చేయండి. rootగా చేతితో నడిపినప్పుడు పనిచేసే స్క్రిప్ట్, బూట్లో ప్రారంభమయ్యే సేవ గురించి ఏమీ నిరూపించదు.
ఫైర్వాల్ నియమం ఏమి భిన్నంగా చేస్తుంది
సొరంగం ట్రాఫిక్ను మాత్రమే అనుమతించే నియమం, క్లయింట్ ప్రాసెస్ పోయినా పనిచేస్తూనే ఉంటుంది, ఎందుకంటే కెర్నల్ ఆ ప్రాసెస్పై ఆధారపడదు. నియమం మరింత సన్నంగా ఉంటుంది: సరిపోయే ప్రవాహాలనే నిరోధిస్తుంది మరియు loopback, స్థానిక సబ్నెట్, పునరుద్ధరణ మార్గాన్ని ఒంటరిగా వదిలేస్తుంది, అందుకే యంత్రాన్ని ఇరుక్కోనివ్వదు.
ధర ఏమిటంటే, నియమాన్ని హోస్ట్ ఫైర్వాల్ యజమాని రాసి నిర్వహించాలి, మరియు అది క్లయింట్ నిజంగా సృష్టించే సొరంగ పరికరాన్ని పేర్కొనాలి. అంటే నియమం మరియు ప్రొఫైల్ కలిసే నిర్వహించాలి; పేరు మార్చిన ఇంటర్ఫేస్ అన్నింటినీ నిరోధించి ఏమీ వివరించని ఫైర్వాల్ను వదిలివేస్తుంది.
ఏ మార్గమూ మరొకదాన్ని అనవసరం చేయదు. సవరణ తర్వాత ఎప్పుడూ మళ్లీ లోడ్ కాని ఫైర్వాల్ నియమం, ఎప్పుడూ నడవని స్క్రిప్ట్ అంత కాల్పనికమే.
ఖాళీ ఉందా లేదా అని persist-tun నిర్ణయిస్తుంది
సొరంగ పరికరం డిస్కనెక్ట్ను తట్టుకుని నిలిచినట్లయితే, దాని వైపు వెళ్లే మార్గాలూ నిలుస్తాయి. అప్పుడు ట్రాఫిక్ మళ్లీ మళ్లించడం బదులు పడవేయబడుతుంది, కాబట్టి డిఫాల్ట్ మార్గం భౌతిక గేట్వే వైపు తిరిగి పడిపోదు. ఏ ఫైర్వాల్ నియమం జోక్యం చేసుకోకముందే లీక్ను అసంభవం చేసేది ఈ ప్రవర్తనే.
ఈ సెట్టింగ్ లేకుంటే పరికరం మార్గాలతో సహా తొలగించబడుతుంది, డిఫాల్ట్ మార్గం మళ్లీ భౌతిక గేట్వే వైపు చూపవచ్చు. అలా జరుగుతుందా లేదా అనేది ప్లాట్ఫారమ్ మరియు క్లయింట్పై ఆధారపడుతుంది, అందుకే స్థితిని ఊహించకుండా గమనించాలి. సెట్టింగ్ను kill switchలో భాగంగా భావించండి, పనితీరు ఎంపికగా కాదు.
పునఃకనెక్షన్ మార్గాన్ని సజీవంగా ఉంచి, తర్వాత నాలుగు స్థితులను పరీక్షించండి
కఠిన నిరోధం క్లయింట్ తిరిగి కనెక్ట్ కావడాన్ని కూడా ఆపవచ్చు, ఎందుకంటే మిగతావన్నీ తిరస్కరించబడుతున్నప్పుడు క్లయింట్కు భౌతిక గేట్వే ద్వారా సర్వర్కు మార్గం ఇంకా కావాలి. సొరంగం పైకి రాకముందే ఆ ఒక చిరునామాకు హోస్ట్ మార్గాన్ని ఇన్స్టాల్ చేయండి, ముందుగా పేరును పరిష్కరించండి, ఎందుకంటే మీకు అవసరమైన సమయానికి DNS నిరోధించబడి ఉండవచ్చు.
ip route add 198.51.100.20/32 via 192.168.0.1 dev wlan0
తర్వాత లేబుల్ కాదు, స్థితులను ధృవీకరించండి. నాలుగు క్షణాలను ఉద్దేశపూర్వకంగా అనుభవించండి: సొరంగం లేని చల్లని ప్రారంభం, ఆరోగ్యకరమైన సెషన్, ఎవరూ అడగని పతనం, మరియు పునరుద్ధరణ తర్వాత సెషన్. ప్రతి క్షణంలో డిఫాల్ట్ మార్గాన్ని చదివి, నిర్గమ చిరునామా కనిపించే ఒక అభ్యర్థన చేయండి. సొరంగం కింద ఉన్నప్పుడు లొంగిపోయే అప్లికేషన్ మెయిల్ క్లయింట్ లేదా అప్డేటర్ గురించి ఏమీ చెప్పదు, కాబట్టి చివరి తనిఖీని ఒక నేపథ్య అప్లికేషన్తో పునరావృతం చేయండి. నియమం, ఇంటర్ఫేస్ పేర్లు, పునరుద్ధరణ దశలను రాసి ఉంచండి, ఎందుకంటే ఎవరూ ధృవీకరించలేని kill switch ఒక పుకారు మాత్రమే.