macOS లో, కిల్ స్విచ్ దాని వెనుక ఉన్న ప్యాకెట్ ఫిల్టర్ విధానం అంత మాత్రమే మంచిది, మరియు pf ఆ విధానాన్ని అమలు చేసే భాగం. విధానం ఒకే సమయంలో రెండు వ్యతిరేక పనులు చేయాలి: సొరంగం ఉండేలా క్లయింట్ తన సర్వర్ను చేరుకోవడానికి అనుమతించడం, మరియు మిగతా అన్నీ నేరుగా బయటకు వెళ్లకుండా ఆపడం. ప్రచురిత నియమ సమితుల్లో చాలావరకు రెండవది చేసి మొదటిది మరచిపోతాయి, అందువల్ల యంత్రం రక్షణ పొందడం బదులు కనెక్టివిటీని కోల్పోతుంది. పనిచేసే సంస్కరణ చివరి బిందువు, పరిష్కర్త మరియు సొరంగాన్ని పేర్కొంటుంది, అంతకు మించి ఏమీ లేదు.

ప్యాకెట్ ఫిల్టర్ ఏమి నిర్ణయించగలదు, ఏమి కాదు

pf ఇంటర్ఫేస్లు, చిరునామాలు, ప్రోటోకాల్ సంఖ్యలు మరియు పోర్ట్లను చూస్తుంది, అక్కడే ఆగుతుంది. ఏ ప్రక్రియ సాకెట్ తెరిచిందో అది ఎప్పుడూ తెలుసుకోదు, కాబట్టి ఒక ప్రోగ్రామ్ కోసం రాసిన అనుమతి అదే పోర్టును చేరుకోగల ప్రతి ప్రోగ్రామ్కు అనుమతి అవుతుంది. ఇలాగే ఉదార UDP మినహాయింపు కిల్ స్విచ్ను తిరిగి సాధారణ నెట్వర్క్గా మారుస్తుంది. అనువర్తనం తెలిసిన నిరోధం క్లయింట్ లేదా సిస్టమ్ పొడిగింపుకు చెందుతుంది, ఈ ఫైల్కు కాదు.

ఫిల్టర్ మార్గాలను కూడా సృష్టించదు. క్లయింట్ పడిపోయినప్పుడు, డిఫాల్ట్ మార్గం ఇప్పటికీ చనిపోయిన సొరంగాన్ని సూచించవచ్చు, మరియు pf దానిని Wi-Fiకి నిశ్శబ్దంగా తిరిగి వెళ్లడం బదులు నిరోధించిన ప్యాకెట్లుగా మారుస్తుంది. నిరోధం ఉద్దేశించిన ఫలితం, తప్పించుకోవాల్సిన లోపం కాదు.

నియమం పాఠం కంటే క్రమం ఫలితాన్ని ఎక్కువసార్లు నిర్ణయిస్తుంది. quick లేకుండా pf సరిపోలిక తర్వాత కూడా మూల్యాంకనం కొనసాగిస్తుంది మరియు చివరిగా సరిపోలే నియమం గెలుస్తుంది, కాబట్టి క్రింద ఉన్న విశాలమైన అనుమతి పైన ఉన్న జాగ్రత్త మినహాయింపులను రద్దు చేస్తుంది. అనుమతులను quick గా గుర్తిస్తే మొదటి సరిపోలికే ఆఖరిది అవుతుంది, విధాన రచయిత సాధారణంగా ఉద్దేశించేది అదే.

మొదట ఇంటర్ఫేస్ మరియు చివరి బిందువు వాస్తవాలను చదవండి

ప్రతి Mac లో వైర్లెస్ ఇంటర్ఫేస్లు ఒకే విధంగా సంఖ్యలు పొందవు, సొరంగ పరికరం బూట్ల మధ్య మారగల సంఖ్యను పొందుతుంది. లేని పరికరాన్ని పేర్కొనే నియమం పార్సింగ్ సమయంలో విఫలమవుతుంది, అది గట్టిగా వినిపించి పట్టుకోవడం సులభం, అయితే తప్పు ఉన్న పరికరాన్ని పేర్కొనే నియమం శుభ్రంగా పార్స్ అయి మీరు ఆపాలనుకున్న ట్రాఫిక్ను అనుమతిస్తుంది.

క్లయింట్ కనెక్ట్ అయి ఉన్నప్పుడే వాస్తవాలను సేకరించండి, ఎందుకంటే సొరంగ పరికరం అప్పుడే ఉంటుంది. మీకు డిఫాల్ట్ మార్గాన్ని కలిగి ఉన్న ఇంటర్ఫేస్, క్లయింట్ సృష్టించిన పరికరం, మరియు అది డయల్ చేసే సర్వర్ చిరునామా మరియు పోర్ట్ అవసరం. ఆ చివరి విలువను చాలా నియమ సమితులు వదిలేస్తాయి, దాన్ని వదలడమే నకలు చేసిన సమితి తన సొంత సొరంగాన్ని నిరోధించడానికి కారణం.

route -n get default
ifconfig -l
scutil --nc list

మొదటి ఆదేశం ఇప్పుడు గెలుస్తున్న ఇంటర్ఫేస్ను పేర్కొంటుంది, రెండవది కెర్నల్కు తెలిసిన ప్రతి పరికరాన్ని జాబితా చేస్తుంది, మూడవది సిస్టమ్ ప్రారంభించగల VPN కాన్ఫిగరేషన్లను చూపుతుంది. ఆ సమాధానాలను రాసుకోండి, తర్వాత క్లయింట్ సొంత కాన్ఫిగరేషన్ నుండి సర్వర్ చిరునామా మరియు పోర్ట్ను చదవండి.

సొరంగ మార్గం చుట్టూ నియమ సమితిని రాయండి

క్రింది ఫైల్ డిఫాల్ట్గా తిరస్కరించి ఐదు విషయాలను తిరిగి అనుమతిస్తుంది: లూప్బ్యాక్, సొరంగ పరికరం, క్లయింట్ తన సర్వర్కు వెళ్లే మార్గం, సొరంగం ఏర్పడక ముందు ఉపయోగించే పరిష్కర్త, మరియు వైర్లెస్ లింక్ను ఉపయోగకరంగా ఉంచే రెండు మార్పిడులు. ఇంటర్ఫేస్ పేర్లు మరియు సర్వర్ చిరునామా మీ యంత్రం నుండి వస్తాయి, కాబట్టి మీరు నిర్ధారించిన విలువలను పెట్టండి. సొరంగ సంఖ్య కూడా మీదితో సరిపోలదు.

set skip on lo0
block all
pass out quick on utun0
# maintain this line when the server address changes
pass out quick on en1 inet proto udp to 203.0.113.10 port 1194
# only the resolver the client uses before the tunnel exists
pass out quick on en1 inet proto udp to 192.0.2.53 port 53
pass out quick on en1 inet proto udp from any port 68 to any port 67
pass out quick on en1 inet proto udp to 224.0.0.251 port 5353

Mac చిరునామా ఉండక ముందే అడగడం వల్ల DHCP పంక్తి ఉంది, కాబట్టి అభ్యర్థన ఉపయోగకరమైన మూల చిరునామా లేకుండా పోర్ట్ 68 నుండి పోర్ట్ 67 వైపు బయలుదేరుతుంది. మల్టీకాస్ట్ పంక్తి వైర్లెస్ లింక్ ఉపయోగించదగినదా అని సిస్టమ్ నిర్ణయించడానికి అనుమతిస్తుంది, దాన్ని తీసివేస్తే పనిచేస్తున్న నెట్వర్క్లో కూడా కనెక్షన్ లేదని నివేదించే యంత్రం ఏర్పడుతుంది. చివరి బిందువు పంక్తి OpenVPN తన సర్వర్ను చేరుకోవడానికి అనుమతిస్తుంది; అది లేకుండా block all బయటి కరచాలనాన్ని పడేస్తుంది మరియు సొరంగం ఎప్పటికీ పైకి రాదు. పరిష్కర్త పంక్తి సాధారణ DNS అనుమతి కంటే సన్నగా ఉంటుంది, ఎందుకంటే యంత్రం చేసే ప్రతి ప్రశ్నకు బదులు ఒక చిరునామా మరియు ఒక పోర్టును పేర్కొంటుంది.

ఆ చివరి బిందువు మరియు పరిష్కర్త మినహాయింపులే ఉండాల్సిన రెండు; మిగతావన్నీ నిరోధించబడి ఉంటాయి. క్లయింట్ అక్షర మార్గాన్ని డయల్ చేస్తే, పరిష్కర్త పంక్తిని తీసివేసి చివరి బిందువు పంక్తిని ఉంచండి. సర్వర్ చిరునామా మారితే, తదుపరి కనెక్షన్కు ముందు ఆ పంక్తిని నవీకరించండి, లేదా క్లయింట్ సొంత హుక్ నుండి pf పట్టికను నింపి బదులుగా పట్టికను సరిపోల్చండి.

సొరంగాన్ని దించండి, తర్వాత రీబూట్ చేయండి

లోడ్ చేయడానికి ముందు పార్స్ చేయండి, ఎందుకంటే సింటాక్స్ లోపం పొడి పరుగులో చవకగా, దూర సెషన్లో ఖరీదుగా ఉంటుంది. తర్వాత ఫైల్ను లోడ్ చేయండి, ఫిల్టర్ ఆఫ్ ఉంటే ఆన్ చేయండి, మరియు నిజంగా ఏది అమలులో ఉందో తిరిగి చదవండి. తిరిగి చదవడం ఆచారం కాదు: మరో యాంకర్ మీరు రాయని నియమాలను జోడించవచ్చు, కాబట్టి ముద్రిత సమితిని మీ ఫైల్తో పోల్చండి.

sudo pfctl -n -v -f /etc/pf.conf
sudo pfctl -f /etc/pf.conf
sudo pfctl -e
sudo pfctl -s rules
sudo pfctl -s Anchors
sudo pfctl -a <anchor> -s rules
sudo pfctl -s info

నియమాలు లోడ్ అయి ఉండగా సొరంగాన్ని దించి పేజీ లోడ్ చేయడానికి ప్రయత్నించండి. సాధారణ ట్రాఫిక్ ఆగాలి, మరియు యంత్రం నిద్రపోయి మేల్కొన్న తర్వాత కూడా ఆగి ఉండాలి, ఎందుకంటే ఆ మార్పిడిలోనే పాత స్థితి తిరిగి చొరబడుతుంది. తిరిగి కనెక్ట్ అయి నియమ సమితిని తాకకుండా ట్రాఫిక్ తిరిగి ప్రారంభమవుతుందని నిర్ధారించండి. సొరంగం దించినప్పటికీ బ్రౌజర్ పనిచేస్తే, ఏదో నియమం మీరు అనుకున్నదానికంటే విశాలంగా ఉంది, తిరిగి చదవడం సాధారణంగా దాని పేరు చెబుతుంది.

రీబూట్ అనేది ప్రజలు దాటవేసే భాగం. macOS బూట్ సమయంలో /etc/pf.conf చదువుతుంది, కానీ ఫైల్ చదవడం ఫిల్టర్ ఆన్ చేయడంతో సమానం కాదు, కాబట్టి ఇప్పుడు పనిచేసే నియమ సమితి రీస్టార్ట్ తర్వాత నిష్క్రియంగా ఉండవచ్చు. తర్వాత sudo pfctl -s info ను అమలు చేసి స్థితి పంక్తి ఫిల్టర్ను ఆన్గా నివేదిస్తుందని నిర్ధారించండి.

నిష్క్రమణ మరియు రీస్టార్ట్ మార్గాన్ని నిజాయితీగా ఉంచండి

అన్నింటినీ నిరోధించే నియమ సమితి మీరు దూరం నుండి నిర్వహించే యంత్రం నుండి మిమ్మల్ని కూడా లాక్ చేయవచ్చు. వీలైనప్పుడు స్థానిక సెషన్ నుండి సవరించండి, మునుపటి ఫైల్ను కొత్తదాని పక్కన ఉంచండి, మరియు అవసరమయ్యే ముందు తిరిగి వెళ్లే మార్గం తెలుసుకోండి. క్రింది ఆదేశాలు ఫిల్టర్ను నిలిపివేసి మీరు ఉంచుకున్న కాపీని తిరిగి లోడ్ చేస్తాయి, ఇది కన్సోల్ నుండి అమలు చేయాల్సిన క్రమం, మీరు ఇప్పుడే కత్తిరించిన సొరంగం ద్వారా కాదు. ఐదు సెకన్ల తిరిగి రావడం ప్రతిసారీ తెలివైన నియమాన్ని ఓడిస్తుంది.

sudo pfctl -d
sudo pfctl -f /etc/pf.conf.previous
sudo pfctl -s rules

నిరంతరతకు pfctl -e ను అమలు చేసి బూట్ సమయంలో మీ ఫైల్ను లోడ్ చేసే లాంచ్ డీమన్ అవసరం. మరే ఇతర ప్రత్యేక హక్కు పనిలా పరిగణించండి: సంపూర్ణ మార్గాలు, తర్వాత చదవగలిగే లాగ్, మరియు భౌతికంగా చేరుకోగలిగే యంత్రంలో పరీక్ష. నిశ్శబ్దంగా విఫలమయ్యే డీమన్ యంత్రాన్ని రక్షణ లేకుండా, సాధారణంగా కనిపించేలా విడిచిపెడుతుంది.

ఖాళీలను నమోదు చేయండి, తన సొంత సొరంగ పరికరాన్ని సృష్టించే రెండవ VPN క్లయింట్తో ప్రారంభించండి. మీ నియమాలు ఒక సొరంగ ఇంటర్ఫేస్ను పేర్కొంటాయి, కాబట్టి రెండవది నిరోధించబడి ఉంటుంది లేదా తర్వాత జోడించిన విశాల నియమానికి చిక్కుతుంది. టెథరింగ్ మరియు హాట్స్పాట్ ఇంటర్ఫేస్లు అప్పుడప్పుడు మాత్రమే కనిపిస్తాయి, అదే గమనికకు అర్హం. ఆ ఖాళీల్లో ఏదీ విధానాన్ని దాటవేయడానికి కారణం కాదు; అవి విధానం ఇంకా నిలిచే షరతులు.

సంబంధిత వ్యాసాలు