Kile ambacho persist-tun na persist-key kwa kweli huokoa katika OpenVPN
Chaguo zote mbili hushughulikia uanzishaji upya laini ndani ya mchakato ulio hai. Hazihifadhi kiolesura baada ya kusimamishwa, na si sera ya kuzuia trafiki.
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.
| 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 |
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.