Squid ఒక CONNECT అభ్యర్థనకు సరిపోలే మొదటి http_access పంక్తితో సమాధానమిస్తుంది, ఆ పంక్తి తిరస్కరణ కూడా కావచ్చు. ఈ ఒక్క వాస్తవం VPN ఎండ్‌పాయింట్ కోసం మినహాయింపు సాధారణంగా మొదటి ప్రయత్నంలోనే ఎందుకు విఫలమవుతుందో వివరిస్తుంది, ఎందుకంటే అభ్యర్థన క్రింద ఎవరో జోడించిన అనుమతిని ఎప్పటికీ చేరుకోదు. ఇరుకైన సవరణ ఉన్న పోర్ట్ కాపలాదారులను ఉంచి వారికి ఒక సమీక్షించిన మూలం, గమ్యం మరియు పోర్టును నేర్పుతుంది. ప్రాక్సీలో మిగతావన్నీ మునుపటిలాగే ప్రవర్తిస్తాయి.

Squid ఒక CONNECT అభ్యర్థనను ఎలా నిర్ణయిస్తుంది

CONNECT అభ్యర్థన ఒక హోస్ట్ మరియు పోర్టును పేర్కొంటుంది, Squid http_access పంక్తులను క్రమంగా దాటుతుంది, వాటిలో ఒకటి సరిపోలే వరకు. సరిపోలే తిరస్కరణ మూల్యాంకనాన్ని వెంటనే ముగిస్తుంది, క్లయింట్ ప్రాక్సీ నుండి 403 పొందుతుంది. అందుకే ఒక నియమం స్థానం దాని పదాల కంటే ముఖ్యం. అదే పంక్తిని ఒక మెట్టు పైకి జరపడం ఫలితాన్ని పూర్తిగా మార్చగలదు.

సాంప్రదాయ కాపలాదారులు Safe_ports వెలుపల ఉన్న ప్రతిదాన్ని తిరస్కరిస్తారు, SSL_ports వెలుపల CONNECT ను తిరస్కరిస్తారు. ఆ పేర్లు మీ స్వంత కాన్ఫిగరేషన్‌లో నిర్వచించిన ACL లు, కాబట్టి వాటి కంటెంట్ ప్రోటోకాల్‌కు కాదు, మీకు చెందుతుంది. ఒక పంపిణీ Safe_ports గా విస్తృత పోర్ట్ పరిధిని అనుమతిస్తూ CONNECT ను విడిగా పరిమితం చేయవచ్చు. పోర్ట్ రూపకల్పన ద్వారా నిరోధించబడిందని భావించే ముందు ప్రత్యక్ష విలువలను చదవండి.

అభ్యర్థనను తిరస్కరిస్తున్న భాగం ప్రాక్సీయేనని నిర్ధారించండి. Squid సృష్టించే 403 VPN సర్వర్ యొక్క TLS హెచ్చరికను పోలదు, రెండింటినీ ఒకే సమస్యగా కలపడం మొదటి గంటను తీసుకుంటుంది. అభ్యర్థన కోసం యాక్సెస్ లాగ్ పంక్తిని తనిఖీ చేయండి, ఎందుకంటే అది చర్యను మరియు దాన్ని సృష్టించిన నియమాన్ని రెండింటినీ నమోదు చేస్తుంది.

మూడు వేర్వేరు ACL లకు బదులుగా ఒక సంయుక్త సరిపోలికను నిర్మించండి

మినహాయింపును మూడు వాస్తవాల నుండి నిర్మించండి: ఆమోదించబడిన మూల పరిధి, ఒక ఆమోదించబడిన గమ్య చిరునామా మరియు ఎండ్‌పాయింట్ వినిపించే ఏకైక పోర్ట్. రెండు వేర్వేరు ACL లు మరియు ఒక సంయుక్త సరిపోలిక చాలా భిన్నమైన విధానాన్ని ఇస్తాయి, ఎందుకంటే మూల్యాంకనం చేయబడేది కలయిక. సంయుక్త ACL ను అది అనుమతించే దాని ఆధారంగా పేరు పెట్టండి, అది మోసే పద్ధతి ఆధారంగా కాదు.

క్రింది రూపం సమీక్షించిన విలువలతో భర్తీ చేయాల్సిన డాక్యుమెంటేషన్ పరిధులను ఉపయోగిస్తుంది. Squid ఈ పేర్లలో ఏదీ తన కోసం కేటాయించుకోదు, కాబట్టి వాటిని ఎంచుకోవడం మరియు స్థిరంగా ఉంచడం మీ పని. ఈ విధానం all-of సమూహాన్ని మద్దతిచ్చే డాక్యుమెంటెడ్ కాన్ఫిగరేషన్ ఉన్న Squid 6 మరియు 7 కు మాత్రమే పరిమితం. ప్రస్తుత సూచిక ఆ సూచనలను Squid 8 లో అందుబాటులో లేనివిగా సూచిస్తుంది, కాబట్టి దీన్ని స్థానభ్రంశ మార్గం కాదు, సంస్కరణ-బద్ధ విధానంగా పరిగణించండి, వర్తించే ముందు మీ స్వంత సంస్కరణ సూచికలో సూచనను తనిఖీ చేయండి.

acl pvpn_src src 192.0.2.128/25
acl pvpn_dst dst 198.51.100.77/32
acl pvpn_port port 1194
acl pvpn_ok all-of CONNECT pvpn_port pvpn_dst pvpn_src

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

పోర్ట్ కాపలాదారులను తీసివేయకుండా వంచండి

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

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

ప్రతి దానికి తిరస్కరించిన సంయుక్త సరిపోలికను జోడించండి, తద్వారా సరిపోలే మినహాయింపు లేకుంటే దాన్ని తిరస్కరించే కాపలాదారు నుండి తప్పించుకుంటుంది. మారేది కాపలా పంక్తులు మాత్రమే, ప్రతి దానికి ఒకే అదనపు షరతు.

http_access deny CONNECT !SSL_ports !pvpn_ok
http_access deny !Safe_ports !pvpn_ok

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

మినహాయింపు ఎక్కడ పెట్టకూడదు

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

పోర్ట్ కాపలాదారుల తర్వాత అభ్యర్థనకు ఇంకా ఏమి కావాలో తనిఖీ చేయండి. ప్రామాణీకృత ఖాతా, అనుమతించిన క్లయింట్ చిరునామా మరియు గమ్య విధానం అన్నీ ఇప్పటికీ వర్తిస్తాయి, మినహాయింపు వాటిలో ఏదీ మార్చదు. మీ ప్రాక్సీ ఆమోదించబడిన ఖాతాను ఇప్పటికే ఏకపక్ష గమ్యాలకు చేరుకోనిస్తే, పోర్ట్ కాపలాదారు ఎప్పుడూ నిజమైన నియంత్రణ కాదు.

ఎండ్‌పాయింట్ అసలు TCPనా అని ఆలోచించండి. CONNECT మినహాయింపు TCP స్ట్రీమ్‌లను మోస్తుంది, UDP ఉపయోగించే OpenVPN ప్రొఫైల్ దాని ద్వారా చేరుకోగలిగేది కాదు. సర్వర్ అలా వినిపిస్తే మరియు ఆపరేటర్ ప్రవర్తన భేదాన్ని అంగీకరిస్తే మాత్రమే ప్రొఫైల్‌ను TCPకి మార్చండి.

పార్సర్ మరియు నిజమైన అభ్యర్థనతో సరిహద్దును తనిఖీ చేయండి

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

తర్వాత మళ్లీ లోడ్ చేసి ఆమోదించబడిన మూలం నుండి ప్రాక్సీ ద్వారా ఒక నిజమైన CONNECT పంపండి. పార్సర్ అమలు మొదట వస్తుంది, ఎందుకంటే టైపింగ్ లోపంతో మళ్లీ లోడ్ చేయడం విధానం గురించి ఏమీ నేర్పదు.

squid -k parse
squid -k reconfigure
curl -v -p -x http://proxy.lab.internal:3128 https://vpn.lab.internal:1194/ --max-time 5

మూడు సందర్భాలను పరీక్షించండి: ఆమోదించబడిన మూలం మరియు ఖాతా, ఆమోదించని మూలం, మరియు అదే పోర్ట్‌లో వేరే గమ్యం. మూడవ సందర్భమే మినహాయింపు ఇరుకైనదని నిరూపిస్తుంది, ఎందుకంటే అది గమ్య సరిపోలిక లేకుండా పోర్టును ఉపయోగిస్తుంది. క్లయింట్ సందేశాన్ని నమ్మడం బదులు మూడింటికీ యాక్సెస్ లాగ్ చదవండి. విజయవంతమైన CONNECT ఒక TCP స్ట్రీమ్‌ను మాత్రమే ఏర్పాటు చేస్తుంది, అంతకంటే ఎక్కువ కాదు, కాబట్టి VPN హ్యాండ్‌షేక్ వేరే పరీక్షగానే ఉంటుంది.

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