In dashboerd freget om in getal foar hoelang't de ferbining aktyf is, en OpenVPN jout dat net. De klant wit wannear't syn tunnel omheech kaam, mar allinnich as eat dat momint fêstleit foardat de sesjestatus ferlern giet. It stipe plak is de up-hook, en de wearde dy't it bewarjen wurdich is, is in rûge epoch-sekonde ynstee fan in formattearre tekenrige. Alles dêrnei is rekkenjen, plus in pear oarderingsoaren dy't beslute oft it getal earlik bliuwt.

Befêstigje dat de hooks echt rinne

Bewiis dat de hook ôfgiet foardat jo eat deromhinne ûntwerpe. In minimale klantkonfiguraasje hat script-security 2 nedich plus eksplisite paden up en down; sûnder de feiligensrigel wegeret OpenVPN it skript út te fieren en seit dat dúdlik. Foegje up-restart en down-pre tagelyk ta sadat de werstart- en ôfbrekpaden foarsisber gedrage.

Meitsje de earste ferzje fan 'e hook ien dy't syn omjouwing oan in bestân taheakket en fierder neat docht. Dat fertelt jo de fariabelenammen dy't jo build echt eksportearret, lykas dev en script_type, ynstee fan dy't jo fan in oare ferzje ûnthâlde. Rin ien ferbining en ien ôfbrek, lês dan it bestân. As der neat ferskynt, stop hjir, want in tiidstimpelûntwerp op in hook dy't nea rint sil wikenlang op in monitoringsflater lykje.

Kontrolearje as hokker brûker de hook rint. Mei user en group ynsteld, lit OpenVPN privileezjes falle foardat it skripten rint, dat in map dêr't root yn skriuwe kin, kin foar de hook ticht wêze. Kies it paad út it eachpunt fan 'e tsjinst ynstee fan jo shell.

Registrearje ien epoch-wearde en wiskje dy bewust

De up-hook hat ien rigel nedich, date +%s > /run/openvpn-client.started, mei it paad per eksimpel oanpast. In epoch-wearde foarkomt letter fragen oer taal, tiidsône en formaat, en it is itselde getal dat in monitoringsagent mei syn eigen klok fergelykje kin.

Wiskjen is like wichtich as skriuwen. De down-hook moat it bestân leegje of fuortsmite, en down-pre makket dat barre foardat de ynterface slút, wat it finster fuorthellet dêr't it bestân in tunnel beskriuwt dy't al fuort is. up-restart fernijt dan de stimpel by in ynterne werstart ynstee fan de oarspronklike wearde te litten. Sûnder dat pear in werstart nei ping-timeout jout in getal dat trochgiet mei klimmen wylst de tunnel him wer opbouwt.

Kies in plak mei de juste libbensdoer. In bestân ûnder /run ferdwynt by werstart, wat mei de realiteit oerienkomt, wylst in bestân ûnder /tmp ûnfoarsisber skjinfage wurde kin en ien yn 'e konfiguraasjemap oerlibbet op in misliedende manier. Set rjochten sadat allinnich de tsjinstbrûker en de monitoringslêzer it lêze kinne.

Berekkenje uptiid sûnder logrigels te fertrouwen

Lês de bewarre sekonde, lês de hjoeddeiske sekonde, lûk derôf. As it bestân ûntbrekt of leech is, is it earlike antwurd dat der gjin tunnel aktyf is, net dat de uptiid nul is, want dy twa tastannen hearre ferskate alarms te meitsjen. Hâld rûge sekonden yn 'e monitoringslading en formattearje dagen en oeren yn 'e werjefte-laach. In formattearder dy't binnen de eksporteur ôfrûnet smyt presyzje fuort dy't immen by in ynsidint hawwe wol.

Log-tiidstimpels parse is de ferloklike fluchte wei, en it mislearret op trije manieren: it formaat folget hokker opsjes dan ek ynsteld binne, rotaasje hellet de skiednis fuort, en werferbiningen ferskine as aparte sesjes ynstee fan ien trochgeande tunnel. De hook registrearret it barren ien kear, op it momint dat it bart.

As de kontrôle op in oare host rint, stjoer dan de tiidstimpel ynstee fan 'e doer sadat de lêzer syn eigen klok tapast. In lyts negatyf resultaat lêst dan as klokferskil ynstee fan in stikken hook.

Dek werferbiningen, werstarts en meardere eksimpels

Twa tunnels op ien host hawwe twa bestannen nedich, kaaislein op 'e eksimpelnamme dy't de tsjinst al brûkt. In dield paad betsjut dat de nijste ferbining de starttiid fan elk profyl oerskriuwt, en it symptoom is in getal dat efterút springt as in twadde tunnel begjint.

It gedrach by werferbining fertsjinnet in eigen test, want dêr rapportearret in leauwensweardich ûntwerp stil it ferkearde. Twing in werstart ôf troch de peer falle te litten of it proses in sinjaal te stjoeren, en fergelykje dan de tastân fan 'e ynterface mei it bestân. De tiidstimpel heart foarút te gean op it momint dat de tunnel weromkomt.

Oan 'e serverkant draacht it statusbestân in connected-since-wearde per klant, dy't in oare fraach beantwurdet: wannear't de server dy peer foar it lêst seach. Brûk it foar krúskontrôle ynstee fan ferfanging, want it ferdwynt mei de sesje dy't it beskriuwt. Gjin fan beide mjittingen seit eat oer de sûnens fan 'e applikaasje efter de tunnel.

Rin de trije kontrôles dy't oarderingsfouten fange

Test in normale ferbining, in twongen werferbining en in skjinne stop, en lês de ynterfacelist en it bestân tegearre efter elk. In stimpel dat nei in skjinne stop noch oanwêzich is, of in bestân dat in tunnel beweart dy't de ynterfacelist net befettet, wiist streekrjocht op 'e hookoarder. Rin de kontrôles as de tsjinstbrûker en mei de paden fan 'e tsjinst, want in root-shell kin in oar bestân sjen en in selsbetrouwen ferkeard antwurd jaan. Lit dan in stadige poller it bestân lêze en befêstigje dat er der nea yn skriuwt.

In peiling elke sechstich sekonden dekt alarms, en gjin hook heart derfan ôf te hingjen dat dy poller libbet. Hâld dy twa ferantwurdlikheden skieden en it getal bliuwt betrouber as ien fan beide kanten opnij útrôle wurdt.

Relatearre artikelen