Kusimamisha huduma huondoa kiolesura hata persist-tun ikiwa imewekwa. Hii ni chaguo linalofanya kazi kama ilivyoandikwa, si kosa. Chaguo hufafanua njia moja ya kuanzisha upya ndani ya mchakato unaoendelea, na systemctl stop si njia hiyo.

Soma majina mawili pamoja na muundo unakuwa wazi. Kimoja hushikilia kielezi, kingine hushikilia nyenzo za ufunguo, na zote mbili zipo kwa sababu ya kile kinachotokea baada ya upendeleo kuachwa.

Rasilimali mbili na uanzishaji upya zilizo nazo

OpenVPN huashiria uanzishaji wake upya katika hali mbili za kawaida. SIGUSR1 dhahiri hufanya hivyo, na ping-restart inayosababishwa na mshirika aliyekufa hufanya vivyo hivyo. Zote mbili huacha mchakato ukiwa hai na huendesha upya usanidi wa muunganisho, na hapo ndipo chaguo hupata nafasi yake.

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

Safu ya uanzishaji upya laini pekee ndiyo inayobadilishwa na chaguo hizi mbili, na kazi wanayoivuka ni sehemu ya gharama kubwa kwenye kiungo chenye shughuli. Kufungua kifaa upya huvunja anwani na njia zilizoambatishwa nacho, na kuzijenga upya kunaweza kudondosha pakiti zilizokuwa njiani uanzishaji ulipoanza. Kusimamisha huharibu vitu hivyo hivyo bila chaguo la kuvihifadhi.

Kwa nini chaguo hizi zipo kabisa

Seva ya OpenVPN iliyoimarishwa kwa kawaida huanza kama root, hufungua funguo zake na kifaa chake, kisha huhama kwenda kwa mtumiaji asiye na upendeleo. Baada ya uhamisho huo baadhi ya shughuli hutoweka tu. Kusoma faili ya ufunguo ya hali 0600, kuunda kiolesura cha mtandao au kubadilisha njia vyote vinaweza kukataliwa.

Bila chaguo za persist, mshirika anayenyamaza muda wa kutosha kusababisha ping-restart angelazimisha shughuli hizo hizo. Muunganisho upya ungeshindwa ingawa hakuna kilichobadilika kwenye usanidi. Mchakato ungeonekana kama unakufa bila sababu, na kumbukumbu ingeonyesha hitilafu ya ruhusa badala ya hitilafu ya mtandao.

Pamoja nazo, uanzishaji upya laini hutumia tena kile ambacho awamu ya upendeleo imekwisha kupata. Hakuna uchawi na mchakato hauokoi kitu. Upataji wa rasilimali huahirishwa tu.

Soma hitilafu ya kwanza, si ya mwisho

Uanzishaji upya unaposhindwa, soma hitilafu ya kwanza badala ya ya mwisho. Ufunguo uliolindwa, faili ya auth, ioctl ya kiolesura na ndoano ya nje ni rasilimali nne tofauti. Kuhifadhi moja hakusemi chochote kuhusu ufikiaji wa nyingine. Ndoano inayoiita zana ya firewall bado inahitaji ruhusa ambazo zana hiyo inadai.

Ndoano zina swichi yake. Mwongozo wa OpenVPN huunganisha chaguo za persist na up-restart, ambayo huamua kama skripti za up na down zitaendeshwa tena baada ya uanzishaji upya. Kiolesura kilichobaki juu kwa hiyo hakikwambii chochote kuhusu kama muunganisho wako wa resolver ulisasishwa.

# 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

Jozi hiyo ya amri hutenganisha mbinu mbili za kushindwa kwa sekunde. Kiolesura kilichopo lakini njia zikikosekana ni tatizo la ndoano au njia. Kiolesura kilichotoweka kinamaanisha mchakato uliisha kweli.

Kiolesura kilichohifadhiwa si kill switch

Ikiwa sharti ni kwamba trafiki isitoke kamwe nje ya handaki, kifaa kilichohifadhiwa hakitoi hilo. Njia za familia nyingine ya anwani, njia ya pili ya chaguo-msingi, na kisa ambacho mchakato hutoka kabisa zote hubaki nje ya wigo wa chaguo.

Shughulikia mahitaji mawili kando. Kuhifadhi kitu cha handaki kati ya muunganisho upya ni urahisi kwa daemon. Kuzuia kutoka wakati handaki iko chini ni sera ya firewall yenye kanuni zake na jaribio lake. Kuzichanganya huzalisha usanidi unaoonekana wa kujihami na unaofanya kama muunganisho upya wa juhudi bora.

Taja tukio kabla ya kulichunguza. Uanzishaji upya laini, jaribio la muunganisho lililoshindwa na kusimamisha huduma ni matukio matatu yenye tabia tatu, na la kwanza pekee ndilo chaguo hizi zinazofafanua.

Makala zinazohusiana