X'jgħaddu minnu verament persist-tun u persist-key f'OpenVPN
Iż-żewġ għażliet ikopru restart artab ġewwa proċess ħaj. Ma jżommux l-interface wara waqfa, u mhumiex politika li timblokka t-traffiku.
Il-waqfien tas-servizz ineħħi l-interface anke b'persist-tun impost. Din hija l-għażla taħdem kif dokumentat, mhux falliment. L-għażla tiddeskrivi triq waħda ta' restart ġewwa proċess li qed jaħdem, u systemctl stop mhix dik it-triq.
Aqra ż-żewġ ismijiet flimkien u d-disinn isir ċar. Wieħed iżomm deskrittur, l-ieħor iżomm materjal tal-kjavi, u t-tnejn jeżistu minħabba dak li jiġri wara li jitħallew il-privileġġi.
Iż-żewġ riżorsi u r-restart li jappartjenu għalih
OpenVPN jissinjala r-restart tiegħu stess f'żewġ sitwazzjonijiet ordinarji. SIGUSR1 espliċitu jagħmel dan, u ping-restart ikkawżat minn sieħeb mejjet jagħmel l-istess. It-tnejn iħallu l-proċess ħaj u jerġgħu jmexxu l-konfigurazzjoni tal-konnessjoni, u hemmhekk l-għażliet jaqilgħu posthom.
| 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 |
Huwa biss ir-ringiela tar-restart artab li tinbidel minn dawn iż-żewġ għażliet, u x-xogħol li jaqbżu huwa l-parti għalja fuq rabta mgħobbija. Il-ftuħ mill-ġdid ta' apparat iċekken l-indirizzi u r-rotot marbuta miegħu, u l-bini mill-ġdid tagħhom jista' jwaqqa' pakketti li kienu fi triqithom meta beda r-restart. Il-waqfa teqred l-istess oġġetti mingħajr ebda għażla li tippreservahom.
Għaliex jeżistu dawn l-għażliet affattu
Server OpenVPN imsaħħaħ normalment jibda bħala root, jiftaħ il-kjavi tiegħu u l-apparat tiegħu, imbagħad jinżel għal utent bla privileġġi. Wara dik it-tniżżila, xi operazzjonijiet sempliċement jisparixxu. Il-qari ta' fajl tal-kjavi b'mod 0600, il-ħolqien ta' interface tan-netwerk jew il-bidla tar-rotot jistgħu kollha jiġu miċħuda.
Mingħajr l-għażliet persist, sieħeb li jibqa' sieket biżżejjed biex iqajjem ping-restart iġiegħel eżattament dawk l-operazzjonijiet. Ir-rikonnessjoni tfalli minkejja li xejn fil-konfigurazzjoni ma nbidel. Il-proċess jidher qisu qed imut bla raġuni, u l-log juri żball ta' permess minflok żball tan-netwerk.
Magħhom, ir-restart artab jerġa' juża dak li l-fażi privileġġata diġà kisbet. M'hemm l-ebda maġija u l-proċess ma jgħaddi minn xejn. L-akkwist tar-riżorsi sempliċement jitwarrab.
Aqra l-ewwel żball, mhux l-aħħar
Meta restart jfalli, aqra l-ewwel żball minflok l-aħħar. Kjavi protett, fajl auth, ioctl tal-interface u hook estern huma erba' riżorsi differenti. Iż-żamma ta' wieħed ma tgħid xejn dwar l-aċċess għall-oħrajn. Hook li jsejjaħ għodda tal-firewall xorta jeħtieġ il-privileġġi li titlob dik l-għodda.
Il-hooks għandhom is-swiċċ tagħhom stess. Il-manwal ta' OpenVPN jgħaqqad l-għażliet persist ma' up-restart, li jiddeċiedi jekk l-iscripts up u down jerġgħux jaħdmu wara restart. Interface li baqa' mqajjem għalhekk ma jgħidlek xejn dwar jekk l-integrazzjoni tar-resolver tiegħek ġietx aġġornata.
# 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
Dak il-par ordnijiet jifred iż-żewġ modi ta' falliment fi ftit sekondi. Interface li teżisti b'rotot nieqsa hija problema ta' hook jew rotta. Interface li sparixxiet tfisser li l-proċess tassew intemm.
Interface miżmuma mhijiex kill switch
Jekk il-ħtieġa hija li t-traffiku qatt ma joħroġ barra mill-mina, apparat miżmum ma jipprovdix dan. Rotot għall-familja tal-indirizzi l-oħra, tieni rotta awtomatika, u l-każ meta l-proċess joħroġ għal kollox jibqgħu kollha barra mill-ambitu tal-għażla.
Ittratta ż-żewġ ħtiġijiet separatament. Iż-żamma tal-oġġett tal-mina bejn rikonnessjonijiet hija kumdità għad-daemon. L-imblukkar tal-ħruġ meta l-mina tkun waqgħet hija politika tal-firewall bir-regoli tagħha u t-test tagħha. It-taħlit tagħhom jipproduċi konfigurazzjoni li tidher difensiva u taġixxi bħal rikonnessjoni bl-aħjar sforz.
Semmi l-avveniment qabel tiddijanjostikah. Restart artab, tentattiv ta' konnessjoni fallut u waqfien tas-servizz huma tliet avvenimenti bi tliet imġiba, u l-ewwel biss huwa dak li jiddeskrivu dawn l-għażliet.