Hvernig mæla á uppitíma OpenVPN-biðlara með up- og down-krókum
OpenVPN hefur engan uppitímamæli. Geymdu epoch-stimpil úr up-krókinni, hreinsaðu hann við down, dragðu hann frá og haltu honum heiðarlegum milli endurræsinga og eintaka.
Mælaborð biður um tölu um hversu lengi tengingin hefur verið uppi, og OpenVPN veitir hana ekki. Biðlarinn veit hvenær göngin hans komu upp, en aðeins ef eitthvað skráir þá stund áður en lotuástandið glatast. Studdi staðurinn er up-krókin, og gildið sem er þess virði að geyma er hrá epoch-sekúnda frekar en sniðinn strengur. Allt sem á eftir kemur er reikningur, auk nokkurra röðunarreglna sem ákveða hvort talan haldist heiðarleg.
Staðfestu að krókarnir keyri í raun
Sannaðu að krókurinn hrífist áður en þú hannar nokkuð í kringum hann. Lágmarksbiðlarauppsetning þarf script-security 2 auk skýrra slóða up og down; án öryggislínunnar neitar OpenVPN að keyra skriftuna og segir það berum orðum. Bættu up-restart og down-pre við á sama tíma svo endurræsingar- og niðurtektarslóðir hegði sér fyrirsjáanlega.
Láttu fyrstu útgáfu króksins bæta umhverfi sínu við skrá og gera ekkert annað. Það segir þér nöfn breytanna sem byggingin þín flytur út í raun, eins og dev og script_type, í stað þeirra sem þú manst frá annarri útgáfu. Keyrðu eina tengingu og eina aftengingu, lestu svo skrána. Ef ekkert birtist skaltu stoppa hér, því tímasetningahönnun ofan á krók sem keyrir aldrei mun líta út eins og vöktunarbilun í vikur.
Athugaðu sem hvaða notandi krókurinn keyrir. Með user og group stillt lætur OpenVPN af hendi forréttindi áður en það keyrir skriftur, svo mappa sem root getur skrifað í getur verið lokuð fyrir króknum. Veldu slóðina frá sjónarhóli þjónustunnar en ekki skeljarinnar þinnar.
Skráðu eitt epoch-gildi og hreinsaðu það viljandi
up-krókin þarf eina línu, date +%s > /run/openvpn-client.started, með slóðina aðlagaða fyrir hvert eintak. Epoch-gildi forðast síðar spurningar um tungumál, tímabelti og snið og er sama talan og vöktunarforrit getur borið saman við eigin klukku.
Hreinsun skiptir jafn miklu máli og skrif. down-krókin ætti að tæma eða fjarlægja skrána, og down-pre sér um að það gerist áður en viðmótið lokast, sem fjarlægir gluggann þar sem skráin lýsir göngum sem eru þegar farin. up-restart endurnýjar síðan stimpilinn við innri endurræsingu í stað þess að skilja upprunalega gildið eftir. Án þessa pars endurræsing eftir ping-tímamörk gefur tölu sem heldur áfram að klifra meðan göngin eru endurreist.
Veldu stað með réttan líftíma. Skrá undir /run hverfur við endurræsingu, sem samræmist raunveruleikanum, en skrá undir /tmp getur verið hreinsuð ófyrirsjáanlega og ein í stillingamöppunni lifir af á villandi hátt. Stilltu heimildir þannig að aðeins þjónustunotandinn og vöktunarlæsandinn geti lesið hana.
Reiknaðu uppitíma án þess að treysta á logglínur
Lestu geymda sekúnduna, lestu núverandi sekúndu, dragðu frá. Þegar skráin vantar eða er tóm er heiðarlegt svar að engin göng séu virk, ekki að uppitíminn sé núll, því þessi tvö ástand eiga að kalla á mismunandi viðvaranir. Haltu hráum sekúndum í vöktunargögnunum og sniðtu daga og klukkustundir í birtingarlaginu. Sniðari sem námundar inni í útflytjandanum hendir nákvæmni sem einhver vill hafa á meðan atvik stendur.
Að þátta tímasetningar úr loggnum er freistandi flýtileiðin og mistekst á þrjá vegu: sniðið fylgir hvaða valkostir sem eru stilltir, snúningur fjarlægir söguna og endurtengingar birtast sem aðskildar lotur frekar en ein samfelld göng. Krókurinn skráir atburðinn einu sinni, á þeirri stundu sem hann gerist.
Þegar athugunin keyrir á öðrum vélum skaltu senda tímasetninguna en ekki lengdina svo lesandinn beiti eigin klukku. Lítil neikvæð niðurstaða les þá sem klukkuskekkju en ekki brotinn krók.
Náðu yfir endurtengingar, endurræsingar og mörg eintök
Tvö göng á einni vél þurfa tvær skrár, lyklaðar með eintaksheitinu sem þjónustan notar þegar. Sameiginleg slóð þýðir að nýjasta tengingin skrifar yfir upphafstíma hvers sniðs, og einkennið er tala sem stekkur aftur þegar annað göng byrjar.
Hegðun endurtengingar á skilið eigið próf, því þar tilkynnir sennileg hönnun hljóðlega rangt. Þvingaðu endurræsingu með því að sleppa jafningjanum eða senda ferlinu merki, og berðu síðan saman stöðu viðmótsins við skrána. Tímasetningin ætti að færast fram á þeirri stundu sem göngin koma aftur.
Á þjónahliðinni ber stöðuskráin connected-since gildi fyrir hvern biðlara, sem svarar annarri spurningu: hvenær þjónninn sá þann jafningja síðast. Notaðu hana til krossathugunar en ekki sem staðgengil, því hún hverfur með lotunni sem hún lýsir. Hvorug mælingin segir neitt um heilsu forritsins bak við göngin.
Keyrðu þrjár athuganirnar sem grípa röðunarvillur
Prófaðu venjulega tengingu, þvingaða endurtengingu og hreina stöðvun, og lestu viðmótslistann og skrána saman eftir hverja. Stimpill sem er enn til staðar eftir hreina stöðvun, eða skrá sem fullyrðir göng sem eru ekki á viðmótslistanum, bendir beint á röð krókanna. Keyrðu athuganirnar sem þjónustunotandinn og með slóðum þjónustunnar, því root-skel getur séð aðra skrá og gefið sjálfsöruggt rangt svar. Láttu síðan hæga könnuð lesa skrána og staðfestu að hann skrifi aldrei í hana.
Könnun á hverri sextíu sekúndu nær yfir viðvaranir og enginn krókur ætti að treysta því að þessi könnuður sé á lífi. Haltu þessum tveimur ábyrgðum aðskildum og talan helst áreiðanleg þegar hvorugri hliðinni er dreift upp á nýtt.