OpenVPN లో persist-tun మరియు persist-key నిజంగా ఏమి తట్టుకుంటాయి
రెండు ఎంపికలు సజీవ ప్రక్రియ లోపల మృదువైన పునఃప్రారంభాన్ని కవర్ చేస్తాయి. ఆపిన తర్వాత ఇంటర్ఫేస్ను నిలుపుకోవు, మరియు అవి ట్రాఫిక్ నిరోధించే విధానం కావు.
సేవను ఆపడం persist-tun సెట్ చేసి ఉన్నా ఇంటర్ఫేస్ను తొలగిస్తుంది. ఇది ఎంపిక పత్రాల ప్రకారం పనిచేస్తోంది, వైఫల్యం కాదు. ఎంపిక నడుస్తున్న ప్రక్రియ లోపల ఒక పునఃప్రారంభ మార్గాన్ని వివరిస్తుంది, మరియు systemctl stop ఆ మార్గం కాదు.
రెండు పేర్లను కలిపి చదవండి, రూపకల్పన స్పష్టమవుతుంది. ఒకటి డిస్క్రిప్టర్ను ఉంచుతుంది, మరొకటి కీ పదార్థాన్ని ఉంచుతుంది, మరియు రెండూ హక్కులు వదిలిన తర్వాత జరిగే దాని వల్ల ఉన్నాయి.
రెండు వనరులు మరియు అవి చెందే రీసెట్
OpenVPN రెండు సాధారణ సందర్భాల్లో తన స్వంత పునఃప్రారంభాన్ని సూచిస్తుంది. స్పష్టమైన SIGUSR1 అలా చేస్తుంది, మరియు మృత భాగస్వామి ప్రేరేపించే ping-restart కూడా అదే చేస్తుంది. రెండూ ప్రక్రియను సజీవంగా ఉంచి కనెక్షన్ సెటప్ను మళ్లీ అమలు చేస్తాయి, అక్కడే ఎంపికలు తమ స్థానాన్ని సంపాదిస్తాయి.
| Event | TUN/TAP device | Key and auth files | Addresses and routes | up/down hooks |
|---|---|---|---|---|
Soft reset, from SIGUSR1 or from a ping-restart the daemon sends itself | survives only with persist-tun | survive only with persist-key | survive with the device, otherwise rebuilt | run again only when restart hooks are enabled |
Configuration reload, SIGHUP | recreated | re-read from disk | rebuilt once the device returns | run again |
| Service stop | lost | re-read at the next start | removed | run at the next start |
ఈ రెండు ఎంపికలు మార్చేది మృదువైన-రీసెట్ వరుస మాత్రమే, మరియు అవి దాటవేసే పని రద్దీగా ఉన్న లింక్పై ఖరీదైన భాగం. పరికరాన్ని మళ్లీ తెరవడం దానికి జోడించిన చిరునామాలు మరియు మార్గాలను విచ్ఛిన్నం చేస్తుంది, వాటిని మళ్లీ నిర్మించడం రీసెట్ ప్రారంభమైనప్పుడు దారిలో ఉన్న ప్యాకెట్లను పడేయవచ్చు. ఆపడం అదే వస్తువులను నిలుపుకోవడానికి ఎటువంటి ఎంపిక లేకుండా నాశనం చేస్తుంది.
ఈ ఎంపికలు అసలు ఎందుకు ఉన్నాయి
కఠినీకరించిన OpenVPN సర్వర్ సాధారణంగా root గా ప్రారంభమై, తన కీలు మరియు పరికరాన్ని తెరిచి, తర్వాత హక్కులు లేని వినియోగదారుకు దిగుతుంది. ఆ దిగుమతి తర్వాత కొన్ని కార్యకలాపాలు కేవలం పోతాయి. మోడ్ 0600 కీ ఫైల్ చదవడం, నెట్వర్క్ ఇంటర్ఫేస్ సృష్టించడం లేదా మార్గాలను మార్చడం అన్నీ తిరస్కరించబడవచ్చు.
persist ఎంపికలు లేకుంటే, ping-restart ప్రేరేపించడానికి సరిపోయే సమయం మౌనంగా ఉండే భాగస్వామి అదే కార్యకలాపాలను బలవంతం చేస్తాడు. కాన్ఫిగరేషన్లో ఏమీ మారకపోయినా పునఃకనెక్షన్ విఫలమవుతుంది. ప్రక్రియ కారణం లేకుండా చనిపోతున్నట్లు కనిపిస్తుంది, లాగ్ నెట్వర్క్ లోపానికి బదులు అనుమతి లోపాన్ని చూపుతుంది.
వాటితో, మృదువైన పునఃప్రారంభం హక్కులు ఉన్న దశ ఇప్పటికే పొందినదాన్ని మళ్లీ ఉపయోగిస్తుంది. మాయ లేదు మరియు ప్రక్రియ ఏదీ తట్టుకోదు. వనరుల సముపార్జన కేవలం వాయిదా పడుతుంది.
చివరిది కాదు, మొదటి లోపాన్ని చదవండి
పునఃప్రారంభం విఫలమైనప్పుడు, చివరి దానికి బదులు మొదటి లోపాన్ని చదవండి. రక్షిత కీ, auth ఫైల్, ఇంటర్ఫేస్ ioctl మరియు బాహ్య హుక్ నాలుగు వేర్వేరు వనరులు. ఒకటి నిలుపుకోవడం మిగతావాటికి ప్రాప్యత గురించి ఏమీ చెప్పదు. ఫైర్వాల్ సాధనాన్ని పిలిచే హుక్కు ఇప్పటికీ ఆ సాధనం కోరే హక్కులు అవసరం.
హుక్కులకు వాటి స్వంత స్విచ్ ఉంటుంది. OpenVPN మాన్యువల్ persist ఎంపికలను up-restart తో జత చేస్తుంది, అది పునఃప్రారంభం తర్వాత up మరియు down స్క్రిప్ట్లు మళ్లీ నడుస్తాయా అని నిర్ణయిస్తుంది. కాబట్టి పైన నిలిచిన ఇంటర్ఫేస్ మీ resolver ఇంటిగ్రేషన్ రిఫ్రెష్ అయిందా అని ఏమీ చెప్పదు.
# which restart path just happened?
journalctl -u openvpn-client@office --since '10 min ago' | grep -E 'SIGUSR1|ping-restart|Restart pause|NOTE:'
# did the interface survive, and do its routes still exist?
ip -brief link show tun0
ip route show dev tun0
ఈ రెండు ఆదేశాలు రెండు వైఫల్య విధానాలను సెకన్లలో వేరు చేస్తాయి. ఉన్నా మార్గాలు లేని ఇంటర్ఫేస్ హుక్ లేదా మార్గ సమస్య. మాయమైన ఇంటర్ఫేస్ అంటే ప్రక్రియ నిజంగా ముగిసింది.
నిలుపుకున్న ఇంటర్ఫేస్ kill switch కాదు
ట్రాఫిక్ ఎప్పుడూ సొరంగం బయటకు వెళ్లకూడదు అనేది అవసరం అయితే, నిలుపుకున్న పరికరం దానిని ఇవ్వదు. మరో చిరునామా కుటుంబానికి మార్గాలు, రెండవ డిఫాల్ట్ మార్గం, మరియు ప్రక్రియ పూర్తిగా బయటకు వెళ్లే సందర్భం అన్నీ ఎంపిక పరిధి వెలుపల ఉంటాయి.
రెండు అవసరాలను విడివిడిగా నిర్వహించండి. పునఃకనెక్షన్ల మధ్య సొరంగ వస్తువును ఉంచడం డెమన్కు సౌలభ్యం. సొరంగం కింద ఉన్నప్పుడు బయటకు వెళ్లడాన్ని నిరోధించడం దాని స్వంత నియమాలు మరియు స్వంత పరీక్ష ఉన్న ఫైర్వాల్ విధానం. వాటిని కలపడం రక్షణాత్మకంగా కనిపించి ఉత్తమ-ప్రయత్న పునఃకనెక్షన్లా ప్రవర్తించే కాన్ఫిగ్ను సృష్టిస్తుంది.
నిర్ధారణకు ముందు సంఘటనకు పేరు పెట్టండి. మృదువైన పునఃప్రారంభం, విఫల కనెక్షన్ ప్రయత్నం మరియు సేవ ఆపడం మూడు ప్రవర్తనలు ఉన్న మూడు సంఘటనలు, మొదటిది మాత్రమే ఈ ఎంపికలు వివరించేది.