మీ OpenVPN క్లయింట్ nobind లేదా స్థిర పోర్ట్ ఉపయోగించాలా?
nobind బయటకు కనెక్ట్ అయ్యే క్లయింట్ కోసం మూల పోర్ట్ను ఎంచుకోవడాన్ని కర్నెల్కు అప్పగిస్తుంది. మూడు షరతులు మీరు దాన్ని కోరుకుంటున్నారా, లేదా బదులుగా పిన్ చేసిన స్థానిక పోర్ట్ను కోరుకుంటున్నారా అని నిర్ణయిస్తాయి.
ఒకే వరుసలో భిన్నంగా ఉండే రెండు ప్రొఫైల్లు అదే హోస్ట్పై రెండవ క్లయింట్ ప్రారంభమైన క్షణంలోనే వేరేలా ప్రవర్తిస్తాయి. ఒకటి nobind కలిగి ఉండి కర్నెల్ ఇచ్చే ఏదైనా స్థానిక పోర్ట్ను తీసుకుంటుంది; మరొకటి 1194ను రిజర్వ్ చేస్తుంది, రెండవ ఇన్స్టెన్స్ ఇప్పటికే ఉపయోగంలో ఉన్న చిరునామాతో మరణిస్తుంది. ఆ వరుసే మూల పోర్ట్ను ఎవరు ఎంచుకుంటారో నిర్ణయిస్తుంది, అది తిరిగి ప్రొఫైల్ యంత్రంలో మరేదైనా దానితో కలిసి ఉండగలదా అని నిర్ణయిస్తుంది. మూడు ప్రశ్నలు దీన్ని నిర్ణయిస్తాయి, మొదటిది మిగిలిన రెండింటిని చేరుకునే ముందే చాలా ప్రొఫైల్లకు సమాధానం ఇస్తుంది.
nobind నిజానికి ఏమి దాటవేస్తుంది
డిఫాల్ట్గా క్లయింట్ కాల్ చేయడానికి ముందు స్థానిక సాకెట్ను బంధిస్తుంది, ప్రొఫైల్ వేరే ఏమీ చెప్పకపోతే స్థానిక పోర్ట్ 1194. nobind ఆ రిజర్వేషన్ను తీసివేస్తుంది, కాబట్టి కనెక్షన్ సమయంలో స్టాక్ ఉపయోగించని పోర్ట్ను కేటాయిస్తుంది. ఇది డిఫాల్ట్ కాదు, మినహాయింపు, వరుస లేని క్లయింట్ 1194ను పట్టుకుంటుంది, అందుకే పిన్ చేయని రెండవ ఇన్స్టెన్స్ ఢీకొంటుంది. పంపిణీ చేసిన చాలా క్లయింట్ ప్రొఫైల్లు ఆ కారణంగానే ఈ సూచనను కలిగి ఉంటాయి, నమూనా ఫైల్ ఏదో చేయడం అనేది యంత్రాంగం డిఫాల్ట్గా అదే చేయడంతో సమానం కాదు.
మారనిది దూరపు వైపు. సర్వర్ ఇప్పటికీ ప్రొఫైల్ చెప్పిన చోట వినిపిస్తుంది, కాన్ఫిగరేషన్లోని గమ్య పోర్ట్ ఇప్పటికీ గమ్య పోర్ట్. డైనమిక్ మూల పోర్ట్ మీ స్వంత సాకెట్ తిరిగి వచ్చే చిరునామాను మారుస్తుంది, సర్వర్ సాకెట్లో ఏమీ మార్చదు.
ఏమీ దాచదు కూడా. మీ పబ్లిక్ చిరునామా మార్గం దాన్ని అనువదించేది, ప్యాకెట్ ఇప్పటికీ స్థానిక నెట్వర్క్ను దాటుతుంది, ఆ నెట్వర్క్ను నడిపే ఎవరైనా ఇప్పటికీ ప్రవాహాన్ని చూస్తారు. nobind గోప్యతా లక్షణం కాదు, ఫైర్వాల్ దాటవేసే మార్గం కాదు.
దీన్ని నిర్ణయించే మూడు షరతులు
ఒక ప్రశ్న మిగిలిన రెండింటిని నిర్ణయిస్తుంది, కాబట్టి ఏదైనా సవరించడానికి ముందు దానికి సమాధానం ఇవ్వండి. భాగస్వామి బయటకు కాల్ చేస్తే, మిగిలిన ప్రశ్నలు ఇప్పటికే తీసుకున్న నిర్ణయాన్ని మాత్రమే సూక్ష్మీకరిస్తాయి. ఇది లోపలికి వచ్చే కనెక్షన్లను అంగీకరిస్తే, స్థానిక పోర్ట్ ఏ సర్దుబాటు చేసినా దాన్ని చేరుకోగలిగేలా చేయదు.
ఈ భాగస్వామి కనెక్షన్ను ప్రారంభిస్తుందా? బయటకు కాల్ చేస్తే, డైనమిక్ మూల పోర్ట్ హానికరం కాదు మరియు సాధారణంగా మంచిది, ఎందుకంటే ప్రతిస్పందన అదే ప్రవాహంలో తిరిగి వస్తుంది. లోపలికి వచ్చే కనెక్షన్ల కోసం ఎదురుచూస్తే, ముందు ఏదైనా పోర్ట్ను ప్రచురించకపోతే డైనమిక్ పోర్ట్ దాన్ని చేరుకోలేనిదిగా చేస్తుంది. ఆ ఒకే సమాధానం ప్రతి క్లయింట్ ప్రొఫైల్ను ప్రతి సర్వర్ ప్రొఫైల్ నుండి వేరు చేస్తుంది.
మార్గం మూల పోర్ట్పై ఫిల్టర్ చేస్తుందా? ఒక తెలిసిన పోర్ట్ కోసం రాసిన కఠినమైన నియమం స్పష్టమైన స్థానిక పోర్ట్ను బలవంతం చేస్తుంది, ప్రొఫైల్ ఏ నియమాన్ని నెరవేరుస్తుందో నమోదు చేయాలి. చాలా నెట్వర్క్లు గమ్యంపై మాత్రమే ఫిల్టర్ చేస్తాయి, కాబట్టి ఈ షరతు మొదటిదాని కంటే అరుదు. ఇది వర్తించే చోట, డైనమిక్ పోర్ట్ ప్రాధాన్యతను మించిపోతుంది.
అనేక ఇన్స్టెన్స్లు హోస్ట్ను పంచుకుంటాయా? ఒక స్థిర పోర్ట్ వాటిలో రెండింటికి సేవ చేయలేదు, మళ్లీ ప్రారంభించిన ఇన్స్టెన్స్ 1194ను ఇంకా మూసే స్థితిలో కనుగొనవచ్చు. డైనమిక్ పోర్ట్లు వేరే ఏమీ మార్చకుండా ఆ ఘర్షణను తొలగిస్తాయి. దీనికి నమ్మకంగా సమాధానం చెప్పలేకపోతే, అవును అని భావించి కర్నెల్ను ఎంచుకోనివ్వండి.
పిన్ చేసిన పోర్ట్ సరైన సమాధానం అయ్యే చోట
కొన్ని నెట్వర్క్లు గమ్యంతో పాటు మూల పోర్ట్పై కూడా ఫిల్టర్ చేస్తాయి, కాబట్టి ఆపరేటర్ ఒక తెలిసిన పోర్ట్ నుండి మాత్రమే ట్రాఫిక్ పంపే నియమాన్ని రాసి ఉండవచ్చు. అప్పుడు స్థానిక పోర్ట్ను పిన్ చేయడం సరైనది, ప్రొఫైల్ నెరవేర్చే నియమాన్ని పేర్కొనే వ్యాఖ్యను కలిగి ఉండాలి. సర్వర్ పోర్ట్తో సమమితి కోసం పిన్ చేయడం కారణం కాదు, ఎందుకంటే ఆ రెండు సంఖ్యలకు ఒకదానితో మరొకటి సంబంధం లేదు. పిన్ టెంప్లేట్లో ఉంది కాబట్టి మాత్రమే ఉంటే, దాన్ని తొలగించండి.
లేకపోతే పిన్ చేసిన పోర్ట్ ఇబ్బందిని కొంటుంది: ఒకే యంత్రంలో రెండు క్లయింట్లు రెండూ 1194ను పట్టుకోలేవు, రెండవది ప్రొఫైల్ను కాదు పోర్ట్ను సూచించే లోపంతో విఫలమవుతుంది. త్వరగా మళ్లీ ప్రారంభమయ్యే కంటైనర్ అదే గోడను ఢీకొంటుంది. పరిష్కారం పంపిణీ చేసిన ప్రొఫైల్లలో ఇప్పటికే ఉన్న సూచన.
సర్వర్ మరియు క్లయింట్ సమమితి కాదు
OpenVPN 2.6 మాన్యువల్ ను nobind పక్కన lport ఉంచుతుంది, ఇది ఒక వరుసలోని వాదన: ఒక ఎంపిక కర్నెల్ ఎంచుకుంటుంది అంటుంది, మరొకటి మీరు ఎంచుకుంటారు అంటుంది. డైనమిక్ స్థానిక పోర్ట్ బయటకు కాల్ చేసే భాగస్వామికి మాత్రమే పనిచేస్తుంది, ఎందుకంటే సమాధానం ఇచ్చే వైపు పోర్ట్ను ముందుగా తెలుసుకోలేదు. అందుకే క్లయింట్ ప్రొఫైల్ను సర్వర్పై కాపీ చేయడం ఎవరూ చేరుకోలేని శ్రోతను సృష్టిస్తుంది.
అనేక నెట్వర్క్ ఇంటర్ఫేస్లు ఉన్న హోస్ట్పై చిరునామా పోర్ట్ నుండి వేరైన నిర్ణయం. నిర్దిష్ట స్థానిక చిరునామాన్ని బంధించడం మరియు నిర్దిష్ట పోర్ట్ను బంధించడం రెండు వేర్వేరు సెట్టింగ్లు, రెండు పైన లింక్లు ఉన్న సర్వర్ సాధారణంగా రెండింటినీ పిన్ చేస్తుంది. రెండింటినీ పిన్ చేసే క్లయింట్ ఎలాంటి ప్రయోజనం లేకుండా అదే దృఢత్వాన్ని తీసుకుంది.
సారాంశం పాత్రల గురించి, భద్రత గురించి కాదు: బయటకు కాల్ చేసేవారు తమ మూలం గురించి సరళంగా ఉండవచ్చు, సమాధానం ఇచ్చేవారు ఉండలేరు. ఏ ఎంపికా మరొక వైపు మీ గుర్తింపు గురించి నేర్చుకునేది మార్చదు. అందుకే ఈ సూచన క్లయింట్ ఉదాహరణల్లో కనిపిస్తుంది మరియు సర్వర్ ఉదాహరణల్లో దాదాపు ఎప్పుడూ కనిపించదు.
కర్నెల్ ఎంచుకున్న పోర్ట్ను ధృవీకరించండి
కనెక్ట్ అయిన తర్వాత కాన్ఫిగరేషన్ కాదు, సాకెట్ను చదవండి, ఎందుకంటే కాన్ఫిగరేషన్ ఉద్దేశాన్ని చెబుతుంది, సాకెట్ ఏమి జరిగిందో చెబుతుంది. నమోదు చేయదగిన వాస్తవాలు స్థానిక పోర్ట్, దూరపు ముగింపు బిందువు, ఇంకా ఏదైనా వినిపిస్తోందా అనేది. Linux హోస్ట్పై మూడూ ఒక ఆదేశం దూరంలో ఉంటాయి.
ss -unp | grep openvpn
ss -lunp | grep openvpn
sudo lsof -nP -i | grep openvpn
nobind తో క్లయింట్ ఎక్కువ స్థానిక పోర్ట్ మరియు కాన్ఫిగర్ చేసిన దూర పోర్ట్ను చూపిస్తుంది, ఇది ఆశించిన ఆకారం. సర్వర్ తన కాన్ఫిగర్ చేసిన పోర్ట్పై వినిపిస్తున్న సాకెట్ను చూపిస్తుంది, ఆ సాకెట్ లేకపోతే ప్రొఫైల్ శ్రోత కాదు లేదా బంధించలేకపోయింది. ప్రవాహం ఉన్నా ప్యాకెట్లు తిరిగి రాకపోతే, ప్రొఫైల్ను సవరించే ముందు ఎంచుకున్న మూల పోర్ట్ను మార్గంలోని ఏదైనా పోర్ట్ ఫిల్టర్తో పోల్చండి. ఒక విషయం మార్చి, మళ్లీ కనెక్ట్ అయి, సాకెట్ను మళ్లీ చదవండి.