OpenVPN turpina mēģināt no jauna pēc TLS kļūdas: kā to apturēt
TLS kļūda pēc noklusējuma tiek atkārtota, tāpēc klients riņķo un pirmā kļūda pazūd no redzesloka. tls-exit liek tam iziet; pārbaudiet, kas to restartē.
Klients piesakās, TLS sarunu laikā cieš neveiksmi, gaida un mēģina to pašu serveri vēlreiz ar to pašu rezultātu. Uzrauga vadībā, kas restartē neveiksmīgu procesu, šie mēģinājumi kļūst par bezgalīgu cilpu žurnālā, un pirmā diagnostikas rinda pazūd no redzesloka. OpenVPN piedāvā opciju, kas šo sarunu neveiksmi pārvērš redzamā iziešanā, nevis vēl vienā mēģinājumā. Tas ir diagnostikas un uzraudzības iestatījums, nevis labošana, tāpēc kombinējiet to ar politiku, kas procesam patiešām ļauj palikt apturētam.
Cikls, kas slēpj pirmo kļūdu
Tas, ko redzat, ir atkārtots bloks, nevis viena neveiksme: savienojuma mēģinājums, TLS kļūda, pauze un pēc tam tā pati secība. Katrs atkārtojums stumj sākotnējo rindu augstāk žurnālā. Ja vienība neveiksmes gadījumā restartējas, cikls var turpināties stundām ilgi, kamēr neviens nelasa cēloni. Simptoms ir cilpa, lai gan pamatā esošais defekts ir viena sarunu problēma.
Interaktīvās sesijas to pacieš, jo pārejoša neveiksme var izzust nākamajā mēģinājumā. Automātiskie savienojumi nevar atļauties tādu pašu optimismu: procesam ir jāapstājas, lai cilvēks vai monitors redzētu stāvokli.
Pirms kaut ko mainīt, fiksējiet vienu pilnu ciklu. Pierakstiet attālināto adresi, kļūdā nosaukto TLS posmu un to, vai process vispār iziet.
Atkārtošanas mehānisms aiz cilpas
Atkārtošana ir noklusējums, jo vairāki nesaistīti taimauti izmanto vienu un to pašu mehānismu. connect-retry nosaka intervālu starp savienojuma mēģinājumiem, connect-retry-max var ierobežot, cik bieži tiek mēģināts katrs attālinātais ieraksts, un resolv-retry pārvalda atkārtotus nosaukumu meklējumus. TLS sarunu neveiksme šo mehānismu sasniedz kā transporta notikums, tāpēc klients ziņošanas vietā ieplāno vēl vienu mēģinājumu. Noklusējums palīdz nestabilā savienojumā un kaitē defektam, kas nevar izārstēties.
Opcija --tls-exit maina tikai sarunu gadījumu. Rokasgrāmata to apraksta kā iziešanu TLS sarunu neveiksmes gadījumā, kas ir šaurāk nekā iziešana pie jebkuras kļūdas. Taimauti, atrisinātāja kļūdas un autentifikācijas noraidījumi saglabā savu uzvedību.
Likt klientam iziet pie TLS neveiksmes
Ievietojiet tls-exit profilā, ko klients patiešām ielādē, vai nododiet --tls-exit palaišanas laikā, un palaidiet to vienreiz priekšplānā. Lasiet iziešanas statusu un pēdējo žurnāla rindu, jo tieši uz statusu reaģē uzraugs. Ne nulles iziešana pēc sarunu neveiksmes ir paredzētais rezultāts. Ja process turpina mēģināt, nevis beidzas, opcija nav tajā profilā, ko klients patiešām ielādē.
Uzraugs izlemj, vai šī iziešana būs redzama. systemd vienība ar Restart=always vai Restart=on-failure klientu startē no jauna, tāpēc cilpa turpinās un opcija izskatās, ka neko nedara. Pārbaudiet politiku, pirms vainojat klientu:
systemctl show -p Restart -p RestartSec openvpn-client@office
journalctl -u openvpn-client@office -n 40 --no-pager
Restart=no ļauj procesam palikt apturētam, un Restart=on-failure tomēr restartē pēc ne nulles statusa. Ja vēlaties, lai neveiksme būtu redzama, bet serviss atjaunotos pēc nesaistītām avarēm, iestatiet Restart=on-failure un izmantojiet StartLimitBurst un StartLimitIntervalSec, lai apturētu restartu vētru. Pēc tam izlasiet vienības statusu, lai apstiprinātu pēdējo iziešanas kodu: systemctl status to ziņo, un žurnāls saglabā pirmo kļūdu virs restartiem.
Ierakstiet lēmumu vienībā vai profila piezīmēs. Profils, kas iziet pie TLS neveiksmes, nākamajam cilvēkam izskatās kā negadījums, ja vien cēlonis nav fiksēts. Norādiet, kurām neveiksmēm jāaptur process un kuras jāmēģina atkārtoti.
Pierādiet to ar vienreizēju galapunktu
Lai redzētu uzvedību pirms tam uzticēšanās, nokopējiet profilu un novirziet kopiju uz galapunktu, kas pieņem TCP savienojumu, bet nekad nerunā OpenVPN. Pietiek ar klausītāju, kas atbild un pēc tam klusē. Ar tls-exit klientam vajadzētu beigties, kad rokasspiediens neizdodas; bez tā tam pašam profilam vajadzētu turpināt riņķot. Izmantojiet kopiju, nekad strādājošo profilu.
Salīdziniet abus palaidienus pēc iziešanas statusa un pirmās kļūdas rindas, nevis pēc tā, cik ilgi katrs ilga. Statuss pasaka, vai opcija iedarbojās, un pirmā rinda pasaka, kurš posms neizdevās.
Noņemiet testa profilu, kad esat pabeidzis. Kopija ar apzināti nepareizu galapunktu ir slazds ikvienam, kurš vēlāk startē katru mapes profilu.
Posmi, kurus šī opcija nekad nesasniedz
Autentifikācijas noraidījums ir vēlāks posms. Ja serveris novērtē kontu un noraida to, TLS jau ir saskaņots, tāpēc tls-exit neiedarbojas. Autentifikācijas atkārtošanas iestatījumi ir nākamā vieta, kur skatīties, un servera iemesls ir svarīgāks par klienta pēdējo rindu. Nepareiza parole un trūkstošs sertifikāts var radīt līdzīgus ziņojumus klienta pusē.
Trūkstošs maršruts, nepareizs atrisinātājs vai nesasniedzams vārteja arī ir ārpus opcijas, jo tās nav sarunu neveiksmes. Klusa pakešu zudums ir vismazāk acīmredzamais gadījums: atkarībā no tā, cik tālu apmaiņa ir tikusi, klients var ziņot par sarunu neveiksmi vai vienkārši nokavēt laiku.
Saglabājiet atšķirību savās piezīmēs. Iestatījums ir diagnostikai un uzraudzībai, nevis labošanai, tāpēc tas nelabo šifrēšanas neatbilstību, sertifikāta problēmu vai nepareizu portu. Vispirms izlabojiet neveiksmīgo sarunu cēloni, pēc tam izlemiet, vai tūlītēja iziešana vēl atbilst ieviešanai.