Dídá iṣẹ́ dúró ń yọ ojú-iṣẹ́ kúrò pẹ̀lú persist-tun tí a ti ṣètò. Èyí ni yíyàn náà ń ṣiṣẹ́ bí a ṣe kọ ọ́, kì í ṣe ìkùnà. Yíyàn náà ṣàpèjúwe ọ̀nà àtúnbẹ̀rẹ̀ kan nínú ìlànà tí ń ṣiṣẹ́, àti systemctl stop kì í ṣe ọ̀nà yẹn.

Ka orúkọ méjèèjì papọ̀, àpẹẹrẹ náà yóò yé. Ọ̀kan ń pa àpèjúwe mọ́, èkejì ń pa ohun èlò kọ́kọ́rọ́ mọ́, àti pé àwọn méjèèjì wà nítorí ohun tí ń ṣẹlẹ̀ lẹ́yìn fífi àwọn ẹ̀tọ́ sílẹ̀.

Àwọn ohun àmúṣọrọ̀ méjì àti àtúnṣe tí wọ́n jẹ́ ti

OpenVPN ń fi àtúnbẹ̀rẹ̀ tirẹ̀ hàn ní àwọn ipò méjì tí ó wọ́pọ̀. SIGUSR1 tí ó ṣe kedere ń ṣe bẹ́ẹ̀, àti ping-restart tí alábàákẹ́gbẹ́ tí ó ti kú fà ń ṣe bakan naa. Àwọn méjèèjì ń jẹ́ kí ìlànà wà láàyè, wọ́n sì tún ṣe ìṣètò ìsopọ̀, àti níbẹ̀ ni àwọn yíyàn náà ti ń gba ipò wọn.

EventTUN/TAP deviceKey and auth filesAddresses and routesup/down hooks
Soft reset, from SIGUSR1 or from a ping-restart the daemon sends itselfsurvives only with persist-tunsurvive only with persist-keysurvive with the device, otherwise rebuiltrun again only when restart hooks are enabled
Configuration reload, SIGHUPrecreatedre-read from diskrebuilt once the device returnsrun again
Service stoplostre-read at the next startremovedrun at the next start

Ìlà àtúnbẹ̀rẹ̀ rírọ́ nìkan ni àwọn yíyàn méjì yìí ń yí padà, iṣẹ́ tí wọ́n ń fò kọjá sì ni apá tí ó gbówó lórí ọ̀nà tí ó kún. Ṣíṣí ẹ̀rọ kan lẹ́ẹ̀kan sí i ń já àwọn àdírẹ́sì àti ipa-ọ̀nà tí ó so mọ́ ọn kúrò, àti kíkọ́ wọn padà lè ju àwọn pákẹ́tì tí ó wà lójú ọ̀nà nígbà tí àtúnbẹ̀rẹ̀ bẹ̀rẹ̀ sílẹ̀. Ìdáwọ́dúró ń pa àwọn nǹkan kan náà run láìsí yíyàn kankan láti tọ́jú wọn.

Kí ni ìdí tí àwọn yíyàn wọ̀nyí fi wà rárá

Olùpínjá OpenVPN tí a ti mú le ń bẹ̀rẹ̀ gẹ́gẹ́ bí root, ó ń ṣí àwọn kọ́kọ́rọ́ àti ẹ̀rọ rẹ̀, lẹ́yìn náà ó ń sọ̀ kalẹ̀ sí aláṣẹ̀wá tí kò ní ẹ̀tọ́. Lẹ́yìn ìsọ̀kalẹ̀ yẹn, àwọn ìṣe kan wulẹ̀ pàdánù. Kíkà fáìlì kọ́kọ́rọ́ ipo 0600, ṣíṣe ojú-iṣẹ́ àwọ́n, tàbí yíyí ipa-ọ̀nà padà ni a lè kọ̀ gbogbo rẹ̀.

Láìsí àwọn yíyàn persist, alábàákẹ́gbẹ́ tí ó dákẹ́ tó àkókò tí yóò fa ping-restart yóò fipá mú àwọn ìṣe yẹn gan-an. Ìsopọ̀ padà yóò kùnà bí ó tilẹ̀ jẹ́ pé kò sí ohun tí ó yí padà nínú ìṣètò. Ìlànà yóò dàbí ẹni tí ń kú láìsí ìdí, àkọsílẹ̀ yóò sì fi àṣìṣe ìyọ̀nda hàn dípò àṣìṣe àwọ́n.

Pẹ̀lú wọn, àtúnbẹ̀rẹ̀ rírọ́ ń tún lo ohun tí ìpele aláṣẹ ti gbà tẹ́lẹ̀. Kò sí idán, ìlànà kò sì gbé ohunkóhun já. Gbígba àwọn ohun àmúṣọrọ̀ ni a kàn ń pẹ̀ sí i.

Ka àṣìṣe àkọ́kọ́, kì í ṣe èyí tí ó kẹ́yìn

Nígbà tí àtúnbẹ̀rẹ̀ bá kùnà, ka àṣìṣe àkọ́kọ́ dípò èyí tí ó kẹ́yìn. Kọ́kọ́rọ́ tí a dáàbò bo, fáìlì auth, ioctl ojú-iṣẹ́ àti ìkọ̀mọ́ ìta jẹ́ ohun àmúṣọrọ̀ mẹ́rin tí ó yàtọ̀. Pípa ọ̀kan mọ́ kò sọ nkankan nípa àyè sí àwọn mìíràn. Ìkọ̀mọ́ tí ń pe irinṣẹ́ ògiri iná ṣì nílò àwọn ẹ̀tọ́ tí irinṣẹ́ yẹn béèrè.

Àwọn ìkọ̀mọ́ ní yíyàn tirẹ̀. Ìwé ìtọ́sọ́nà OpenVPN ń so àwọn yíyàn persist pọ̀ mọ́ up-restart, èyí tí ó pinnu bóyá àwọn skripti up àti down yóò tún ṣiṣẹ́ lẹ́yìn àtúnbẹ̀rẹ̀. Nítorí náà ojú-iṣẹ́ tí ó dúró kò sọ nkankan fún ọ nípa bóyá ìsopọ̀ resolver rẹ ti di tuntun.

# 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

Àkójọ àṣẹ méjì yẹn ń ya àwọn ọ̀nà ìkùnà méjì sọ́tọ̀ ní ìṣẹ́jú àáyá. Ojú-iṣẹ́ tí ó wà ṣùgbọ́n tí ipa-ọ̀nà kò sí jẹ́ ìṣòro ìkọ̀mọ́ tàbí ipa-ọ̀nà. Ojú-iṣẹ́ tí ó pàdánù túmọ̀ sí pé ìlànà ti parí ní ti gidi.

Ojú-iṣẹ́ tí a tọ́jú kì í ṣe kill switch

Bí ìbéèrè bá ni pé ìrìnàjò kò gbọdọ̀ jáde kúrò nínú ọ̀nà-abẹ́ rárá, ẹ̀rọ tí a tọ́jú kò fúnni ní yẹn. Àwọn ipa-ọ̀nà fún ẹbí àdírẹ́sì mìíràn, ipa-ọ̀nà àìpékejì, àti ipò tí ìlànà yóò jáde pátápátá ni gbogbo wọn wà ní ìta ìwọ̀n yíyàn náà.

Tọ́jú àwọn ìbéèrè méjèèjì lọ́tọ̀ọ̀tọ̀. Pípa ohun ọ̀nà-abẹ́ mọ́ láàrín àwọn ìsopọ̀ padà jẹ́ ìrọ̀rùn fún daemon. Dídí jáde nígbà tí ọ̀nà-abẹ́ wà ní ìsàlẹ̀ jẹ́ ìlànà ògiri iná pẹ̀lú àwọn òfin àti ìdánwò tirẹ̀. Pípò wọn pọ̀ ń mú ìṣètò jáde tí ó dàbí ìdáàbòbò, tí ó sì ń ṣe bí ìsopọ̀ padà pẹ̀lú ìsapá tí ó dára jùlọ.

Dárúkọ ìṣẹ̀lẹ̀ náà kí o tó ṣe àyẹ̀wò rẹ̀. Àtúnbẹ̀rẹ̀ rírọ́, ìgbìyànjú ìsopọ̀ tí ó kùnà àti dídá iṣẹ́ dúró jẹ́ ìṣẹ̀lẹ̀ mẹ́ta pẹ̀lú ìhùwàsí mẹ́ta, àti pé èyí àkọ́kọ́ nìkan ni ohun tí àwọn yíyàn wọ̀nyí ṣàpèjúwe.

Àwọn àpilẹ̀kọ tó jọra