nc -uz OpenVPN సర్వర్ సిద్ధంగా ఉందని నిరూపించలేకపోవడానికి కారణం
ఏమీ వినకపోయినా UDP netcat పరిశీలన విజయాన్ని నివేదిస్తుంది, కాబట్టి OpenVPN సర్వర్ సిద్ధంగా ఉందని అది నిరూపించలేదు. ప్రక్రియ, లాగ్, శ్రోత మరియు నిజమైన క్లయింట్ను తనిఖీ చేయండి.
అమలు చేయడం nc -uz ఒక OpenVPN సర్వర్కు వ్యతిరేకంగా దాదాపు ఏమీ కొలవదు, మరియు OpenBSD మాన్యువల్ తన హెచ్చరికల్లో ఇలా చెబుతుంది: ఆ మోడ్లో UDP స్కాన్లు ఏదైనా విన్నా వినకపోయినా విజయాన్ని నివేదిస్తాయి. నిష్క్రమణ స్థితి సుదూర స్థితిని కాదు, స్థానిక పంపడాన్ని ప్రతిబింబిస్తుంది, కాబట్టి దాన్ని నమ్మే పర్యవేక్షకుడు ప్రక్రియ పట్టిక నమ్మదగినట్లు కనిపించే వరకు చనిపోయిన సర్వర్ను ఆరోగ్యకరంగా గుర్తించి ఉంచుతాడు. దాన్ని భర్తీ చేయడం పరిశీలన ఏ ప్రశ్నకు సమాధానం చెప్పాలో నిర్ణయించడంతో మొదలవుతుంది, ఎందుకంటే ప్రక్రియ, శ్రోత, ప్రామాణీకరణ మరియు అనువర్తన చేరుకోగలిగే సామర్థ్యం నాలుగు వేర్వేరు పరిశీలనలు. వాటిలో ఒకదాన్ని పేర్కొనే పరిశీలన ఉపయోగకరం; నాలుగింటినీ సూచించే పరిశీలన భారం.
UDP పరిశీలన ఏమి గమనించగలదు, ఏమి కాదు
nc -uz ఒక డేటాగ్రామ్ను పంపి నిష్క్రమిస్తుంది, అది తిరిగి ఇచ్చే స్థితి స్థానిక పంపడాన్ని వివరిస్తుంది. మూసిన పోర్ట్ ICMP port unreachable తో సమాధానం ఇవ్వవచ్చు, కానీ ఈ స్కాన్ మోడ్ యొక్క నమోదిత ప్రవర్తన దాన్ని వైఫల్యంగా మార్చదు, ఫిల్టర్ చేసిన పోర్ట్ ఎలాంటి సమాధానం ఇవ్వదు. కాబట్టి నిశ్శబ్దం మరియు విజయం పిలిచేవారికి ఒకే అర్థాన్ని ఇస్తాయి.
ఇది పరిశీలనను సర్వర్ కాదు, స్థానిక స్టాక్ పరీక్షగా మారుస్తుంది. హోస్ట్ చేరుకోగలిగేది, పోర్ట్ బంధించబడింది, OpenVPN ప్రక్రియ నడుస్తోంది లేదా క్లయింట్ ప్రామాణీకరించుకోగలదు అని ఇది నిర్ధారించదు. TCP కనెక్షన్ పరీక్ష బలమైనది, ఎందుకంటే చేతులు కలపడం స్పష్టమైన సమాధానం ఇస్తుంది, కానీ అమలు నిజంగా TCP పై విన్నప్పుడే. అదే సంఖ్యపై పరిశీలనను TCP కి మార్చడం ఉండకపోవచ్చు అనే శ్రోతను పరీక్షిస్తుంది, UDP మాత్రమే ఉన్న సర్వర్కు వ్యతిరేకంగా అది ఆరోగ్యకరమైన సేవను విఫలం చేస్తుంది.
పరిశీలనను కాన్ఫిగర్ చేసిన రవాణాకు సరిపోల్చడం రెండు ఫలితాలలో దేన్నైనా నమ్మడానికి ముందు వస్తుంది. UDP అమలుకు వేరే సంకేతం కావాలి, వేరే ప్రోటోకాల్ కాదు.
ముగ్గురు పిలిచేవారు, మూడు వేర్వేరు ప్రశ్నలు
సిద్ధత ఎవరు అడుగుతున్నారనే దానిపై ఆధారపడి ఉంటుంది. క్రాష్ అయిన ప్రక్రియను పునఃప్రారంభించే సేవా నిర్వాహకుడు ఇన్స్టాన్స్ ప్రారంభమైందని మరియు దాని శ్రోతను బంధించిందని తెలుసుకోవాలి. లోడ్ బ్యాలెన్సర్ ఇప్పుడు వచ్చే క్లయింట్ అంగీకరించబడతాడని తెలుసుకోవాలి. పర్యవేక్షణ వ్యవస్థ నిజమైన నెట్వర్క్ నుండి వచ్చే మార్గం ఇప్పటికీ అనుమతించిన వనరుకు సెషన్ను తీసుకువెళుతుందని తెలుసుకోవాలి.
ఇవి ఒకే పరిశీలన కాదు, ఒక పరిశీలన మూడింటినీ నిజాయితీగా కవర్ చేయలేదు. మొదట పిలిచేవారిని ఎంచుకోండి, తర్వాత సాక్ష్యాన్ని.
ప్రస్తుత ఇన్స్టాన్స్ నుండి పరిశీలనను నిర్మించండి
ఇన్స్టాన్స్ ప్రారంభాన్ని పూర్తి చేసినప్పుడు OpenVPN ఒక ప్రారంభ వరుసను వ్రాస్తుంది, ఆ వరుస స్థానిక ప్రారంభం గురించి ఉపయోగకరమైన సాక్ష్యం. దాన్ని ప్రస్తుత ప్రారంభం నుండి చదవండి, జోడించబడే ఫైల్ చివరి నుండి కాదు, ఎందుకంటే గత వారం విజయం ఒక నిమిషం క్రితం విజయం లాగానే చదవబడుతుంది. ఏ క్లయింట్ ఎప్పుడూ కనెక్ట్ కాకముందే సర్వర్ ప్రారంభాన్ని పూర్తి చేయవచ్చు, కాబట్టి వరుస ప్రామాణీకరణ గురించి ఏమీ చెప్పదు.
ప్రారంభ పరిశీలన కోసం, ప్రక్రియ స్థితిని ప్రస్తుత లాగ్ సాక్ష్యం మరియు కాన్ఫిగర్ చేసిన రవాణాకు సరిపోయే శ్రోతతో జత చేయండి. ప్రక్రియ నడుస్తున్నా ప్రారంభాన్ని పూర్తి చేయకపోతే పరిశీలన విఫలం కావాలి, అంటే లాగ్ ప్రశ్న ఈ బూట్ మరియు ఈ యూనిట్కు పరిమితం కావాలి.
systemctl is-active openvpn@server
sudo journalctl -u openvpn@server -b --no-pager | grep "Initialization Sequence Completed"
ss -lunp | grep 1194
మూడు అవుట్పుట్లు, మూడు ప్రకటనలు: యూనిట్ క్రియాశీలంగా ఉంది, ఈ బూట్ ప్రారంభ వరుసను ఉత్పత్తి చేసింది, మరియు ఏదో UDP పోర్టును పట్టుకుంది. వాటిలో ఏదీ క్లయింట్ కనెక్ట్ కాగలదని చెప్పదు. స్థితి పేజీలో వాటిని వేరుగా ఉంచండి, ఒక సంఘటన ఒకే ఆకుపచ్చ బిందువుగా కుదించుకుపోకుండా.
దాన్ని ఉద్దేశపూర్వకంగా విరగ్గొట్టండి మరియు పరిశీలనను చూడండి
పరిశీలన విఫలమవడం చూసిన తర్వాతే అది నమ్మదగినది. సర్వర్ను ఆపండి, పరిశీలనను అమలు చేయండి మరియు ఆశించిన ఫలితాన్ని నిర్ధారించండి. తర్వాత దాన్ని మళ్లీ ప్రారంభించి, ఇతర మార్పు లేకుండా పరిశీలన కోలుకుంటుందని నిర్ధారించండి.
sudo systemctl stop openvpn@server
nc -uz 203.0.113.10 1194; echo "exit=$?"
ss -lunp | grep 1194
sudo systemctl start openvpn@server
ss -lunp | grep 1194
బ్లాక్ను వరుస వరుసగా చదవండి. netcat ఆదేశం exit=0 అని ముద్రిస్తుంది, అప్పుడు ఏదీ బంధించబడలేదు, ఒకే వరుసలో మొత్తం సమస్య అదే. మొదటి ss ఏమీ ముద్రించదు, పునఃప్రారంభం విజయవంతమవుతుంది, రెండవది ss మళ్లీ శ్రోతను చూపిస్తుంది. ఆపిన సర్వర్కు వ్యతిరేకంగా మీ పరిశీలన గడిస్తే, అది స్థానిక స్టాక్ను కొలుస్తోంది, మరేమీ కాదు.
వ్యతిరేక వైఫల్యం కూడా ముఖ్యం. ఆరోగ్యకరమైన సర్వర్కు వ్యతిరేకంగా విఫలమయ్యే పరిశీలన ఎప్పుడూ అవసరం లేని పునఃప్రారంభాలను కలిగిస్తుంది, పునఃప్రారంభ చక్రం తనే ఒక అంతరాయం. పరిశీలనను దానిపై చర్య తీసుకోగల ఏదైనా దానితో కనెక్ట్ చేయడానికి ముందు రెండు దిశలను పరీక్షించండి.
స్థితి వరుస ఏమి చెప్పాలి
ప్రతి పరిశీలన ఏ హద్దును కవర్ చేస్తుందో నమోదు చేయండి: ప్రక్రియ, శ్రోత, ప్రామాణీకరణ లేదా అనువర్తనం. ఒక పరిశీలన ఒకటి కంటే ఎక్కువ అరుదుగా కవర్ చేస్తుంది, వాటిని “up” గా నొక్కే స్థితి పేజీ సంఘటన సమయంలో ముఖ్యమైన భేదాన్ని దాచుతుంది. నెట్వర్క్ మార్గానికి అంకితమైన గుర్తింపు ఉన్న నిజమైన క్లయింట్ను ఉపయోగించండి, చేతులు కలపడం మరియు ఒక హానిచేయని అనుమతించిన కార్యకలాపాన్ని పూర్తి చేయనివ్వండి, తర్వాత డిస్కనెక్ట్ చేయండి. ఇది ఒకే అడుగులో నియంత్రణ ఛానెల్, ప్రామాణీకరణ విధానం మరియు శ్రోతను సాధన చేస్తుంది.
ఆ గుర్తింపును నిజమైన వినియోగదారుల నుండి వేరుగా ఉంచి, పరిశీలనకు అవసరమైన కనీస అనుమతులను ఇవ్వండి. విస్తృత ప్రాప్యత ఉన్న సిద్ధత పరిశీలన సౌలభ్యం కోసం జోడించిన కొత్త దాడి ఉపరితలం. మరే ఇతర ఖాతా లాగానే దాని ఆధారాలను తిప్పండి, ఎందుకంటే ప్రామాణీకరణను ఆపే పరిశీలన క్లయింట్లను అంగీకరించడం ఆపిన సర్వర్ లాగానే కనిపిస్తుంది.
హెచ్చరిక వచనంలో హద్దును పేర్కొనండి, మొదటి స్పందించేవారు యూనిట్, సాకెట్, ధృవపత్రం లేదా మార్గాన్ని చూడాలా అని తెలుసుకోగలరు. తాను నిరూపించింది ఏమిటో చెప్పలేని పరిశీలన తప్పు కారణంతో నమ్మబడుతుంది, netcat పరిశీలన మొదట్లో అలానే తప్పించుకుంది.