OpenVPN push-peer-info: యాక్సెస్ ఇవ్వకుండా క్లయింట్లను లేబుల్ చేయండి
UV_ ఫీల్డ్ ప్రామాణీకృత సొరంగం గుండా ప్రయాణిస్తుంది, కానీ విలువ ఇప్పటికీ క్లయింట్ యొక్క దావా. దాన్ని కనెక్ట్ చేయండి, ఏమి వచ్చిందో ధృవీకరించండి మరియు అనుమతిని సర్వర్ వైపే ఉంచండి.
డిప్లాయ్మెంట్ ట్యాగ్లు ఈ ఫీచర్ వైపు ప్రజలు మరలడానికి సాధారణ కారణం: ప్రతి కనెక్షన్ సైట్ లేదా పాత్ర వంటి ఏదో మోసుకెళ్లాలి, మరియు సర్వర్ రెండవ క్రెడెన్షియల్ ఫార్మాట్ను కనిపెట్టకుండా దాన్ని చదవాలి. కమ్యూనిటీ OpenVPN వద్ద ఈ యంత్రాంగం ఇప్పటికే ఉంది, అది చిన్నది. నొప్పి ఇచ్చే భాగం అంచనాలు. క్లయింట్ ప్రొఫైల్లో సాధారణ వేరియబుల్ సెట్ చేయడం సర్వర్పై ఏమీ చేయదు, మరియు వచ్చిన విలువ క్లయింట్ దాన్ని పంపిందని మాత్రమే నిరూపిస్తుంది.
ఇది పనిచేసే మార్గానికి, నిజంగా ఏమి వచ్చిందో చూపించే ధృవీకరణ దశకు మరియు సగం కాన్ఫిగర్ అయిన హుక్ను వదిలివేయని రోల్బ్యాక్కు ఒక గైడ్. ఇక్కడ ఏదీ కొత్త సర్టిఫికేట్, కొత్త ప్లగిన్ లేదా ప్రోటోకాల్ పొడిగింపును అడగదు.
వేరియబుల్ సెట్ చేసి మార్గాన్ని ప్రారంభించండి
క్లయింట్ ప్రొఫైల్లో రెండు పంక్తులు పని చేస్తాయి, రెండూ అవసరం. మొదటిది లేకుండా పంపడానికి ఏమీ లేదు; రెండవది లేకుండా క్లయింట్ పీర్ సమాచారం అసలు అందించదు. క్రమం ముఖ్యం కాదు, దాన్ని తెలుసుకోవడం మంచిది ఎందుకంటే రెండు పంక్తులు తరచుగా ఉత్పత్తి చేసిన ప్రొఫైల్లోని వేర్వేరు భాగాల్లో ముగుస్తాయి. ముఖ్యమైనది ఏమిటంటే క్లయింట్ చదివే ముందు ప్రొఫైల్ను తిరిగి రాసే ఏది నుండైనా రెండూ నిలబడాలి.
setenv UV_DEPLOY field-support
push-peer-info
UV_ ఉపసర్గ అలంకారం కాదు. సాధారణ DEPLOY వేరియబుల్ క్లయింట్ ప్రక్రియలో స్థానికంగా ఉంటుంది మరియు ఎప్పుడూ ఫార్వార్డ్ చేయబడదు, ఉపసర్గ రూపం మాత్రం వినియోగదారు నిర్వచించిన ఫీల్డ్ల కోసం ప్రోటోకాల్ కేటాయించిన పేరు స్థలం. ఆమోదించిన ప్రొఫైల్ మిగిలిన భాగాన్ని యథాతథంగా ఉంచి, డిప్లాయ్ చేయడానికి ముందు మీరు డిప్లాయ్ చేస్తున్న క్లయింట్ బిల్డ్ రెండు సూచనలను మద్దతు ఇస్తుందని నిర్ధారించుకోండి.
ఒక ఆచరణాత్మక తనిఖీ ఇక్కడే, చివర్లో కాదు: సూచన క్లయింట్ బైనరీని చేరుతుందని మరియు ఏదైనా రేపర్ దాన్ని మింగకుండా ఉందని నిర్ధారించుకోండి. తన స్వంత కమాండ్ లైన్ను ఉత్పత్తి చేసే గ్రాఫికల్ క్లయింట్, లేదా సేవ్ చేసిన ప్రొఫైల్ను తిరిగి లోడ్ చేసే నిర్వహణ ఇంటర్ఫేస్, గుర్తించని పంక్తులను పారేయవచ్చు. సర్వర్ ఏమీ చూడకపోతే, చూడాల్సిన మొదటి స్థలం ఇదే.
సర్వర్ హుక్ నుండి ఫీల్డ్ చదవండి
సర్వర్ వైపు, స్వీకరించిన పీర్ సమాచారం ధృవీకరించబడి కనెక్షన్ వర్క్ఫ్లో పరిసరంలో చొప్పించబడుతుంది, అదే మీ వైపు ఎలాంటి ప్రోటోకాల్ పని లేకుండా హుక్ నుండి చదవగలిగేలా చేస్తుంది. సర్వర్ నియంత్రణ ఛానెల్ను విశ్లేషించాల్సిన అవసరం లేదు లేదా మీ కోసం ఏదైనా నిల్వ చేయాల్సిన అవసరం లేదు; కనెక్షన్ ఏర్పాటు అవుతున్నప్పుడు విలువ సరళంగా ఉంటుంది. ప్రామాణీకృత పేరు పక్కన లేబుల్ను నమోదు చేసే కనిష్ఠ client-connect స్క్రిప్ట్ ఇలా ఉంటుంది.
#!/bin/sh
# /etc/openvpn/server/hooks/label.sh
printf '%s %s\n' "$common_name" "${UV_DEPLOY:-unset}" \
>> /var/log/openvpn/deploy-labels.log
లాగ్ను విశ్లేషించడం బదులు పరిసరం ద్వారా వేరియబుల్ చదవండి, ఎల్లప్పుడూ డిఫాల్ట్ విలువ ఇవ్వండి. ${UV_DEPLOY:-unset} ఫీల్డ్ ఎప్పుడూ పంపని క్లయింట్లకు కూడా స్క్రిప్ట్ పని చేసేలా ఉంచుతుంది, ఇది దశలవారీ డిప్లాయ్మెంట్ సమయంలో సాధారణ స్థితి. పేరు కనుగొనడానికి మొత్తం పరిసరాన్ని లాగ్లో పోయవద్దు; అందులో లేబుల్ కంటే చాలా ఎక్కువ ఉంది, మీరు ఉంచుకోవాలనుకోని విలువలతో సహా.
స్క్రిప్ట్ను చేతితో అమలు చేయండి, అది ప్రతిదానికీ unset అని నివేదిస్తుంది, ఎందుకంటే చేతితో నడిచే షెల్ కనెక్షన్ పరిసరాన్ని మోసుకెళ్లదు. ఇది స్క్రిప్ట్లో బగ్ కాదు మరియు ఫీల్డ్ లేదని రుజువు కాదు. వేరియబుల్ ఉన్న ఏకైక సందర్భమైన నిజమైన కనెక్షన్ ద్వారా పరీక్షించండి.
నిజంగా ఏమి వచ్చిందో ధృవీకరించండి
లేబుల్తో ఒక క్లయింట్ మరియు అది లేకుండా మరొకటి కనెక్ట్ చేసి, ఆపై ఫైల్ చదవండి. జంటే పరీక్ష: ఒక పంక్తి విలువను మోసుకెళ్లాలి, మరొకటి డిఫాల్ట్ను, రెండూ మీరు ఆశించే అదే ప్రామాణీకృత గుర్తింపును పేర్కొనాలి.
tail -n 5 /var/log/openvpn/deploy-labels.log
# field-support deployed-client-07
# unset legacy-laptop-02
ఆ వ్యాఖ్య పంక్తులు అవుట్పుట్ రూపం, మీ సర్వర్ నకలు కాదు; మీ స్వంత ఫైల్ చదవండి. రెండవ క్లయింట్ కూడా విలువ చూపిస్తే, వేరియబుల్ పరిసరంలో మరెక్కడో సెట్ చేయబడింది, మీరు పీర్ ఫీల్డ్కు బదులు పాత సెట్టింగ్ను చదువుతున్నారు.
కనెక్షన్ కోసం సర్వర్ లాగ్ను కూడా తనిఖీ చేయండి. పీర్ సమాచారం అక్కడ కనిపించవచ్చు, ఇది డీబగ్గింగ్కు అనుకూలం మరియు విలువలను నిస్సారంగా ఉంచడానికి కారణం: వ్యక్తుల పేర్లు లేవు, టికెట్ నంబర్లు లేవు, లాగ్ చదివేవారు చూస్తే మీకు చెడుగా అనిపించే ఏదీ లేదు.
లేబుల్ను దావాగా పరిగణించండి, గుర్తింపుగా కాదు
క్లయింట్ ప్రొఫైల్ను సవరించగల ఎవరైనా ట్యాగ్ను మార్చవచ్చు, సొరంగం ప్రామాణీకృతం కావడం ట్యాగ్ను అధికారికం చేయదు. రవాణా ప్రయాణంలో విలువను కాపాడుతుంది; అది దావాను ధృవీకరించదు. అనుమతి ఇప్పటికీ ప్రామాణీకృత గుర్తింపుకు మరియు సర్వర్ కలిగి ఉన్న నమోదు రికార్డుకు చెందుతుంది, అవసరమైనప్పుడు లేబుల్ ఆ రికార్డుతో పోల్చబడుతుంది.
ఆ భేదమే లేబుల్ను ఎక్కడ ఉపయోగించవచ్చో నిర్ణయిస్తుంది. మంచి వినియోగాలు సెషన్ను సరైన లాగ్ ఫైల్కు మళ్లించడం, డాష్బోర్డ్లో ప్రదర్శన సమూహాన్ని ఎంచుకోవడం, లేదా తర్వాత ఒక మనిషి కనుగొనగలిగేలా మద్దతు సెషన్ను లేబుల్ చేయడం. చెడు వినియోగాలు పరికరాన్ని సబ్నెట్లోకి అనుమతించడం, ఫైర్వాల్ విధానాన్ని ఎంచుకోవడం, లేదా సెషన్ ఏ కస్టమర్ డేటాను చదవగలదో నిర్ణయించడం.
విలువ ఒక మార్గం, క్వెరీ లేదా షెల్ ఆదేశానికి చేరే ముందు దాన్ని ధృవీకరించండి. ఆశించిన స్ట్రింగ్ల అనుమతి జాబితా డిప్లాయ్మెంట్ ట్యాగ్కు సరిపోతుంది, అది ఏమీ ఖర్చు చేయదు. పీర్ అందించిన స్ట్రింగ్ను ఎప్పుడూ షెల్ కమాండ్ లైన్లో చేర్చవద్దు, మరియు నిల్వ చేసిన ఏదైనా పరిశీలనను సెషన్కు పరిమితం చేయండి, తదుపరి క్లయింట్ తిరిగి ఉపయోగించే సొరంగ చిరునామాకు కాదు.
case "${UV_DEPLOY:-}" in
field-support|field-qa|lab) : ;;
*) UV_DEPLOY=unknown ;;
esac
దాన్ని శుభ్రంగా వెనక్కి తీసుకోండి
ఫీచర్ను తొలగించడం రెండు తొలగింపులు మరియు ఒక ధృవీకరణ. క్లయింట్ ప్రొఫైల్ నుండి setenv మరియు push-peer-info పంక్తులను తొలగించి, ఆపై సర్వర్పై హుక్ మరియు దాని లాగ్ లక్ష్యాన్ని తొలగించండి లేదా నిలిపివేయండి.
grep -rn 'UV_DEPLOY\|push-peer-info' /etc/openvpn/
tail -n 3 /var/log/openvpn/deploy-labels.log
తర్వాత ఒక క్లయింట్ను మళ్లీ కనెక్ట్ చేసి లాగ్ పంక్తి కనిపించడం ఆగిపోయిందని నిర్ధారించుకోండి. ప్రొఫైల్ మార్పు తర్వాత కూడా నడిచే హుక్ సాధారణంగా పరీక్ష పరికరంలో ఇంకా డిప్లాయ్ చేయబడిన రెండవ ప్రొఫైల్, ఇప్పుడు దాన్ని కనుగొనడం ఆడిట్ సమయంలో కనుగొనడం కంటే చౌక.
చివర్లో మిగిలేది మూలం నమోదు చేయబడిన చిన్న, పరిమిత సెషన్ మెటాడేటా ముక్క: క్లయింట్ దాన్ని దావా చేస్తుంది, సర్వర్ దాన్ని నమోదు చేస్తుంది, యాక్సెస్ గురించి ఏదీ దానిపై ఆధారపడదు. ఇదే ఫీచర్ యొక్క ఉపయోగకరమైన సంస్కరణ, అక్కడికి చేరడానికి కొత్త క్రెడెన్షియల్ అవసరం లేదు.