OpenVPN యొక్క pull-filter మీరు ఉద్దేశించిన మార్గం కంటే ఎక్కువ వాటితో సరిపోతుంది
pull-filter మీ వచనాన్ని ఉపసర్గగా నెట్టబడిన ఎంపికలతో పోలుస్తుంది, కాబట్టి route route-gateway మరియు route-ipv6 లను కూడా పట్టుకుంటుంది. మొదట క్రియలను, తర్వాత మార్గాలను చూడండి.
మీ స్థానిక డిఫాల్ట్ మార్గాన్ని ఉంచుకోవడానికి మీరు ఒక లైన్ జోడిస్తారు, ఆ తర్వాత సొరంగం అంతర్గత DNS సర్వర్ను చేరుకోదు. ఆ లైన్ pull-filter ignore "route", దాని అర్థం "ఈ మార్గాన్ని విస్మరించు" కాదు. దాని అర్థం "ఆ ఐదు అక్షరాలతో ప్రారంభమయ్యే ప్రతి నెట్టబడిన ఎంపికను విసిరేయి", సాధారణ సర్వర్లో ఇందులో మార్గాలతో పాటు route-gateway, route-metric మరియు route-ipv6 కూడా ఉంటాయి. క్రింది తనిఖీ జాబితా వేరొకరు ఉపయోగించాల్సిన ప్రొఫైల్ను తాకే ముందు నేను నడిపేది.
ఫిల్టర్ నెట్టబడిన ఎంపికలపై మాత్రమే పనిచేస్తుంది
pull-filter సొరంగం ఏర్పడిన తర్వాత సర్వర్ పంపే ఎంపిక లైన్లపై మాత్రమే పనిచేస్తుంది, మరేదానిపైనా కాదు. మీ స్థానిక ఫైల్లో రాసిన ఎంపికలు దీని వల్ల ప్రభావితం కావు, అప్లికేషన్ ట్రాఫిక్ కూడా కాదు. ఒక ప్రక్రియ సొరంగాన్ని ఉపయోగించకుండా ఆపాలని మీరు ఆశించినట్లయితే, ఇది పూర్తిగా తప్పు సాధనం మరియు ఏ ఫిల్టర్ కలయికా దాన్ని చేయదు.
ఆ పరిధి ఉపయోగకరం, ఎందుకంటే సర్వర్ కాన్ఫిగరేషన్ను ఉన్నదున్నట్లుగా వదిలి కూడా దానిలో కొంత భాగాన్ని స్థానికంగా తిరస్కరించవచ్చు. ఇది టికెట్లో రాయదగిన పరిమితి కూడా: ఫిల్టర్ ఈ క్లయింట్ ఏమి అంగీకరిస్తుందో మారుస్తుంది, సర్వర్ ఏమి అందిస్తుందో కాదు. ఇదే ప్రొఫైల్ ఇతర వినియోగదారులపై దీని ప్రభావం ఉండదు. ఈ ఎంపికను అమలు చేయని మరో క్లయింట్కు మారినప్పుడు ఇది నిలవదు, దానిపై పని ప్రవాహాన్ని నిర్మించే ముందు ఇది తెలుసుకోవడం మంచిది.
నమూనా రాసే ముందు సర్వర్ నిజంగా ఏమి పంపుతుందో నిర్ధారించుకోండి. అధిక వివరాల స్థాయిలో క్లయింట్ అందుకున్న నెట్టబడిన ఎంపిక శ్రేణిని ముద్రిస్తుంది, మీరు పోల్చే ఖచ్చితమైన వచనానికి అదే ఏకైక నిజాయితీ మూలం:
sudo openvpn --config /etc/openvpn/corp.ovpn --verb 4
sudo grep -n 'pull-filter' /etc/openvpn/corp.ovpn
నెట్టబడిన లైన్ను కామాలతో వేరు చేసిన ఎంపికల జాబితాగా చదవండి, ఎంపిక పేర్లు మరియు వాటి ఆర్గ్యుమెంట్లు ఖాళీలతో వేరు చేయబడతాయని గమనించండి. మీ ఫిల్టర్ వచనం ఆ ప్రవాహంతో పోల్చబడుతుంది, అందుకే తదుపరి దశలో ఖాళీలు చాలా ముఖ్యం.
సరిపోలిక ఒక ఉపసర్గ, కాబట్టి ఖాళీలే అన్నీ నిర్ణయిస్తాయి
పోలిక ఒక శ్రేణి ఉపసర్గ, విశ్లేషించిన ఎంపిక పేరు కాదు. అందుకే "route" route-gateway 10.8.0.1, route-ipv6 2001:db8::/32 మరియు route-metric 100 తో సరిపోతుంది. చివరలో ఒక ఖాళీ జోడిస్తే అది మీరు ఉద్దేశించిన కుటుంబానికి సంకోచిస్తుంది, పూర్తి ఉపసర్గ దాన్ని నిర్దిష్ట గమ్యస్థానానికి మరింత సంకోచిస్తుంది.
| Filter text | What it actually matches | Typical outcome |
|---|---|---|
"route" | Every option beginning with those letters | Routes, gateway, metric and IPv6 routes all dropped |
"route " | Route entries only, not the hyphenated siblings | The routes go, the rest survives |
"route 10.60." | A single destination range | The narrowest rule, and the easiest to audit |
"dhcp-option DNS" | Pushed DNS settings | Resolver stays local, internal names stop resolving |
చివరి వరుస స్ప్లిట్-టన్నెల్ పనిలో ప్రజలను పట్టుకునే వరుస. మీ స్వంత రిజాల్వర్ను ఉంచుకోవడం చట్టబద్ధమైన ఎంపిక, ఇప్పుడు ప్రతి అంతర్గత పేరు ప్రైవేట్ జోన్ను చూడలేని రిజాల్వర్పై ఆధారపడి ఉందని దీని అర్థం. ఇది ఉత్పత్తిలో కనుగొనే దుష్ప్రభావం కాదు, ఉద్దేశపూర్వకంగా అంగీకరించే పరిణామం.
ఉపసర్గ సరిపోలిక అంటే ఒక నియమం తర్వాత నిశ్శబ్దంగా విస్తరించవచ్చు కూడా. సర్వర్ మీ వచనంతో ప్రారంభమయ్యే కొత్త ఎంపికను జోడించినప్పుడు, ఎవరూ మీ ప్రొఫైల్ను సవరించకుండానే మీ ఫిల్టర్ దానికి వర్తించడం ప్రారంభిస్తుంది. ఇదే రూపకల్పన చేయాల్సిన వైఫల్య విధానం, ఉపశమనం ఎంపికలో వీలైనంత ఎక్కువ భాగాన్ని సరిపోల్చడం, వీలైనంత తక్కువ కాదు.
మూడు క్రియలు, మూడు వేర్వేరు ఫలితాలు
accept, ignore మరియు reject ఒకే ఆలోచనకు మూడు అక్షరక్రమాలు కావు. సరిపోలికతో క్లయింట్ ఏమి చేస్తుంది మరియు ఎవరైనా తెలుసుకుంటారా అనే విషయంలో అవి భిన్నం.
ignore సరిపోలే ఎంపికను నిశ్శబ్దంగా విసిరేస్తుంది, ఉద్దేశపూర్వకంగా మార్చిన సెట్టింగ్కు ఇదే కావాలి. reject దాన్ని విసిరి క్లయింట్ను ఫిర్యాదు చేయిస్తుంది, దాని లేకపోవడం తర్వాత కనుగొనబడకుండా లాగ్లో కనిపించాల్సినప్పుడు ఇదే కావాలి. accept సానుకూల రూపం, వ్యక్తిగత ఎంపికలను తొలగించడం కాకుండా అనుమతి జాబితాను నిర్మించేటప్పుడు ఉపయోగిస్తారు.
మీరు ఏ క్రియ ఉపయోగించినా, ఫిల్టర్లు అవి కనిపించే క్రమంలో వర్తిస్తాయి, కాబట్టి రెండు అతివ్యాప్తి చెందే నియమాలు క్రమాధారితమైన, సమీక్షించడం చాలా కష్టమైన ఫలితాన్ని ఇస్తాయి. ప్రతి ఉద్దేశానికి ఒక నియమం ఉంచి ప్రతిదానిలో అత్యంత నిర్దిష్ట వచనాన్ని పెట్టండి. అనుమతి జాబితా అవసరమైతే, అదే మొత్తానికి వచ్చే ignore నియమాల కుప్ప కంటే కొన్ని accept నియమాలను ఎంచుకోండి. అప్పుడు సమీక్షకులు ఫైల్ను పై నుండి క్రిందకు చదివి ఫలితాన్ని ఊహించగలరు, అదే స్కేల్ అయ్యే ఏకైక పరీక్ష.
వర్తించిన మార్గం మరియు రిజాల్వర్ను తనిఖీ చేయండి, ప్రొఫైల్ కాదు
ఫైల్లో సరిగ్గా కనిపించే ఫిల్టర్ కూడా ఉపయోగకరమైన ఏదీ రూట్ చేయని సొరంగంతో మిమ్మల్ని వదిలేయవచ్చు. నెట్టబడిన ఎంపికలు ఇప్పటికే వర్తించిన లేదా విసిరేయబడిన నడుస్తున్న వ్యవస్థపై ప్రభావాన్ని ధృవీకరించండి:
ip route show default
ip route show | grep -c 'proto static'
resolvectl status | grep -A4 'Link.*tun0'
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://intranet.example.internal/
మొదటి రెండు వరుసలు నెట్టబడిన డిఫాల్ట్ మార్గం వచ్చిందా మరియు ఎన్ని స్థిర నమోదులు మిగిలాయో చెబుతాయి. రిజాల్వర్ ప్రశ్న సొరంగ ఇంటర్ఫేస్ నిజంగా ఏ సర్వర్ను ఉపయోగిస్తుందో చూపిస్తుంది, సాధారణంగా అక్కడే DNS ఆశ్చర్యం కనిపిస్తుంది. చివరి వరుస వినియోగదారుకు ముఖ్యమైన ఏకైక ప్రశ్నకు సమాధానం ఇస్తుంది.
అక్కడ ఉన్నప్పుడు రెండు దిశలను పరీక్షించండి. మీ స్థానిక ఇంటర్నెట్ను నడిపిస్తూనే అంతర్గత పేరు పరిష్కారాన్ని నిశ్శబ్దంగా విచ్ఛిన్నం చేసే నియమం ఉపరితల తనిఖీలో ఉత్తీర్ణమై మొదటి నిజమైన పనిలో విఫలమవుతుంది, కాబట్టి అదే పరీక్షలో ఒక అంతర్గత వనరు మరియు ఒక పబ్లిక్ సైట్ను చేర్చండి.
మినహాయింపును మరియు దాని యజమానిని నమోదు చేయండి
ఫిల్టర్ ఆపరేటర్ రూపకల్పనకు మినహాయింపు, కాబట్టి దాన్ని కారణం మరియు సమీక్షా బిందువుతో రాయండి. "స్థానిక డిఫాల్ట్ను ఉంచడానికి నెట్టబడిన మార్గాలను విస్మరిస్తుంది" సమీక్షించదగినది; ప్రొఫైల్లో బోసిన వరుస కాదు, తదుపరి వ్యక్తి దాన్ని తొలగిస్తాడు లేదా ఊహతో విస్తరిస్తాడు.
సంస్కరణ ఇక్కడ కూడా ముఖ్యం. సరిపోలిక ప్రవర్తన మరియు ఖచ్చితమైన ఆమోదించిన వాక్యనిర్మాణం OpenVPN 2.4, 2.5 మరియు 2.6 అంతటా మెరుగుపరచబడ్డాయి, కాబట్టి మీరు పంపే బిల్డ్ మాన్యువల్తో నమూనాను నిర్ధారించండి, పాత సంస్కరణ గురించిన ఫోరమ్ పోస్ట్తో కాదు. OpenVPN 2.6 మాన్యువల్ ఈ ఎంపికను మరియు దాని సరిపోలిక నియమాన్ని నమోదు చేస్తుంది.
చివరగా, సర్వర్ను నడిపే వారితో మినహాయింపును అంగీకరించండి. ఉద్దేశపూర్వక సర్వర్ విధానానికి విరుద్ధమైన క్లయింట్-వైపు ఫిల్టర్ తదుపరి ఆడిట్ కోసం వేచి ఉన్న మద్దతు సంఘటన, మరియు ప్రొఫైల్ పంపబడక ముందే దాన్ని పరిష్కరించడం ఎవరైనా మార్గాలు లేవని గమనించిన తర్వాత పరిష్కరించడం కంటే చాలా చవక.