OpenVPN vazhdon të provojë pas një gabimi TLS: si ta ndalosh
Një dështim TLS provohet përsëri si parazgjedhje, kështu që klienti rrotullohet dhe gabimi i parë humbet nga sytë. tls-exit e bën atë të dalë; kontrollo çfarë e rinis.
Klienti lidhet, dështon gjatë negocimit TLS, pret dhe provon përsëri të njëjtin server me të njëjtin rezultat. Nën një mbikëqyrës që rinis një proces të dështuar, ato përpjekje bëhen një lak pa fund në regjistër, dhe rreshti i parë diagnostikues del jashtë arritjes. OpenVPN ofron një opsion që e kthen atë dështim negocimi në një dalje të dukshme në vend të një përpjekjeje tjetër. Ky është një rregullim për diagnostikim dhe mbikëqyrje, jo riparim, prandaj çiftoje me një politikë që me të vërtetë e lë procesin të qëndrojë i ndalur.
Cikli që fsheh gabimin e parë
Ajo që shihni është një bllok që përsëritet dhe jo një dështim i vetëm: një përpjekje lidhjeje, një gabim TLS, një pauzë dhe më pas e njëjta sekuencë. Çdo përsëritje e shtyn rreshtin origjinal më lart në regjistër. Nëse njësia rinis kur dështon, cikli mund të vazhdojë për orë të tëra pa e lexuar askush shkakun. Simptoma është laku, ndonëse defekti bazë është një problem i vetëm negocimi.
Sesionet interaktive e tolerojnë këtë sepse një dështim kalimtar mund të zhduket në përpjekjen tjetër. Lidhjet e automatizuara nuk mund t'i lejojnë vetes të njëjtin optimizëm: procesi duhet të ndalet që një njeri ose një monitor të shohë statusin.
Përpara se të ndryshoni çdo gjë, regjistroni një cikël të plotë. Shënoni adresën e largët, fazën TLS të përmendur në gabim dhe nëse procesi del fare.
Mekanizmi i përpjekjeve pas lakut
Prova e përsëritur është parazgjedhja sepse disa afate kohore të palidhura ndajnë të njëjtin mekanizëm. connect-retry vendos intervalin midis përpjekjeve të lidhjes, connect-retry-max mund të kufizojë sa shpesh provohet çdo zë i largët, dhe resolv-retry rregullon kërkimet e përsëritura të emrave. Një dështim negocimi TLS e arrin atë mekanizëm si ngjarje transporti, prandaj klienti planifikon një përpjekje tjetër në vend që të raportojë. Vlera parazgjedhur ndihmon në një lidhje të paqëndrueshme dhe dëmton në një defekt që nuk mund të shërohet.
Opsioni --tls-exit ndryshon vetëm rastin e negocimit. Manuali e përshkruan si dalje kur dështon negocimi TLS, që është më e ngushtë se dalja në çdo gabim. Afatet kohore, dështimet e zgjidhësit dhe refuzimet e vërtetimit mbajnë sjelljen e tyre.
Bëje klientin të dalë kur dështon TLS
Vendos tls-exit në profilin që klienti ngarkon vërtet, ose jep --tls-exit kur e nis, dhe ekzekutoje një herë në plan të parë. Lexo statusin e daljes dhe rreshtin e fundit të regjistrit, sepse mbi statusin vepron një mbikëqyrës. Një dalje jo zero pas një dështimi negocimi është rezultati i synuar. Nëse procesi vazhdon të provojë në vend që të mbarojë, opsioni nuk është në profilin që klienti ngarkon vërtet.
Mbikëqyrësi vendos nëse ajo dalje është e dukshme. Një njësi systemd me Restart=always ose Restart=on-failure e nis klientin përsëri, kështu që laku vazhdon dhe opsioni duket se nuk bën asgjë. Kontrollo politikën përpara se të fajësosh klientin:
systemctl show -p Restart -p RestartSec openvpn-client@office
journalctl -u openvpn-client@office -n 40 --no-pager
Restart=no e lë procesin të ndalur, dhe Restart=on-failure gjithsesi rinis pas një statusi jo zero. Nëse dëshiron që dështimi të jetë i dukshëm por shërbimi të rikuperohet nga rrëzime të palidhura, vendos Restart=on-failure dhe përdor StartLimitBurst dhe StartLimitIntervalSec për të ndalur stuhinë e riniseve. Pastaj lexo statusin e njësisë për të konfirmuar kodin e fundit të daljes: systemctl status e raporton atë, dhe regjistri mban gabimin e parë mbi riniset.
Shkruaje vendimin në njësi ose në shënimet e profilit. Një profil që del kur dështon TLS duket si aksident për personin tjetër, përveç nëse arsyeja është regjistruar. Përcakto cilat dështime duhet ta ndalin procesin dhe cilat duhet të provohen përsëri.
Provoje me një pikë fundore të njëpërdorimshme
Për ta parë sjelljen përpara se t'i besosh, kopjo profilin dhe drejto kopjen te një pikë fundore që pranon një lidhje TCP por nuk flet kurrë me OpenVPN. Mjafton një dëgjues që përgjigjet dhe pastaj hesht. Me tls-exit, klienti duhet të mbarojë kur dështon shtrëngimi i duarve; pa të, i njëjti profil duhet të vazhdojë të rrotullohet. Përdor kopjen, kurrë profilin që funksionon.
Krahaso dy ekzekutimet sipas statusit të daljes dhe sipas rreshtit të parë të gabimit, jo sipas sa zgjati secili. Statusi të thotë nëse opsioni u aktivizua, dhe rreshti i parë të thotë cila fazë dështoi.
Hiqe profilin e provës kur të mbarosh. Një kopje me një pikë fundore qëllimisht të gabuar është kurth për këdo që më vonë nis çdo profil në dosje.
Fazat që ky opsion nuk i arrin kurrë
Një refuzim vërtetimi është një fazë më e vonë. Nëse serveri e vlerëson llogarinë dhe e refuzon, TLS është negocuar tashmë, prandaj tls-exit nuk aktivizohet. Cilësimet e provës së përsëritur të vërtetimit janë vendi tjetër për të parë, dhe arsyeja e serverit ka më shumë peshë se rreshti i fundit i klientit. Një fjalëkalim i gabuar dhe një certifikatë që mungon mund të prodhojnë mesazhe të ngjashme në anën e klientit.
Një rrugë që mungon, një zgjidhës i gabuar ose një portë e paarritshme janë gjithashtu jashtë opsionit, sepse nuk janë dështime negocimi. Humbja e heshtur e paketave është rasti më pak i dukshëm: në varësi të asaj sa larg shkoi shkëmbimi, klienti mund të raportojë një dështim negocimi ose thjesht të skadojë.
Mbaje këtë dallim në shënimet e tua. Cilësimi është për diagnostikim dhe mbikëqyrje dhe jo për riparim, prandaj nuk rregullon një mospërputhje kriptimi, një problem certifikate ose një portë të gabuar. Riparo së pari shkakun e negocimit të dështuar dhe pastaj vendos nëse dalja e menjëhershme i shkon ende vendosjes.