P_CONTROL_HARD_RESET_CLIENT_V2 v dnevniku: je to napaka?
Koda hard-reset odpre sejo; to ni okvara. Berite naprej, da najdete napako s certifikatom, poverilnicami ali usmerjanjem, ki vas je res ustavila.
Vrstica se ponavlja vsakih nekaj sekund in je videti kot vzrok vsega: paket z imenom control hard reset, ki prihaja od odjemalca, ki nikamor ne pride. To ni napaka. To je prvo sporočilo nove seje, ponavljanje pa je simptom nečesa drugega, kar spodleti naprej. Ločiti, kaj pravi oznaka, od tega, kaj je povezava naredila zatem, je cela diagnoza.
Koda poimenuje položaj v protokolu
OpenVPN multipleksira več vrst paketov po enem vtičnici, koda pa prejemniku pove, katero vrsto drži. Paketi hard-reset odprejo sejo, krmilni paketi nosijo gradivo rokovanja, potrditve potrjujejo prejem, podatkovni paketi pa nosijo breme tunela. Branje prvega bajta pokaže, kam v tej izmenjavi paket sodi, in definicije paketov v izvorni kodi vsako družino izrecno poimenujejo.
To je vse, kar pove. Paket, označen kot začetna ponastavitev odjemalca, dokazuje, da je paket dosegel vašo točko opazovanja in da partner želi začeti sejo. Ne dokazuje, da je odjemalec zaupal vašemu certifikatu, da so bile njegove poverilnice sprejete ali da je podatkovni kanal kdaj postal uporaben.
Pripona V2 je oznaka generacije protokola za to družino paketov, ne različica izdelka in ne nastavitev, ki jo namestite. Nič v imenu se ne nanaša na ponastavitev tunela, ponovni zagon storitve ali čiščenje predpomnilnika.
Kaj odjemalec v tistem trenutku v resnici počne
Odjemalec odpre identifikator seje, na katerega bosta obe strani pripeli nadaljnji krmilni promet. Ko je zaščita krmilnega kanala nastavljena, prvi paket že nosi HMAC, ki prejemniku omogoči, da se odloči, ali se splača truditi za preostanek izmenjave. Prejemnik, ki ga ne more preveriti, paket tiho zavrže, zato napačen skupni ključ izgleda kot odjemalec, ki govori v prazno.
Uporabniku vidno se še ni zgodilo nič. Noben certifikat ni bil preverjen, nobeno uporabniško ime ni bilo ponujeno in noben naslov tunela ni bil dodeljen. Ponastavitev je predgovor rokovanja, zato je vsaka sodba o povezavi na tej točki prezgodnja.
V nedejavni zanki ponovnega povezovanja je zanimiva podrobnost interval. Odjemalec, ki poskuša znova v fiksnem ciklu brez napredka, je običajno zavrnjen, preden lahko napreduje, razlog pa je v dnevniku partnerja, ne v imenu paketa.
Kje se po ponastavitvi skriva prava napaka
Preberite oba dnevnika drug ob drugem in poiščite prvi dogodek, ki ni ponastavitev. Pri odjemalcu se neuspeh preverjanja certifikata sporoči s konkretnim razlogom: potekel certifikat, neujemanje imena ali neznan izdajatelj. Na strežniku se zavrnitev poverilnic sporoči kot neuspeh preverjanja pristnosti z lastnim razlogom. Oba sta veliko bolj konkretna kot ponavljajoč pogled strežnika na nove poskuse.
En poskus uskladite po časovnem žigu, namesto da bi vsak dnevnik brali ločeno, ker se ista napaka pojavi na obeh mestih z drugačnim besedilom in drugačno težo. Partner, ki obupa, običajno pove, zakaj.
Če nobena stran ne sporoči zavrnitve in izmenjava vseeno obstane, je meja dosegljivost in ne zaupanje. Požarni zid, ki zavrže povratno smer, naprava za prevajanje omrežnih naslovov, ki ji poteče preslikava, ali težava z MTU, ki ubije večje pakete rokovanja, vsi ustvarijo obstalo izmenjavo brez vsakršne napake preverjanja pristnosti.
grep -nE 'VERIFY|AUTH_FAILED|TLS Error|SIGUSR1' /var/log/openvpn*.log
To iskanje samo po sebi ni diagnoza, a vas v enem koraku premakne iz besedišča protokola v resnični razred napake.
Zakaj je izklop preverjanja napačen refleks
Ko se ponastavitev še naprej pojavlja, je najhitrejša videti rešitev izklop preverjanja certifikatov ali odpoved zaščiti krmilnega kanala, da se nekaj poveže. To zamenja diagnozljivo napako za nediagnozljivo in pusti uvedbo, da sprejema partnerje, ki jih je bila zgrajena zavračati.
Namesto tega spremenite mejo, ki je res spodletela. Težava zaupanja pripada potrditvenemu organu in profilu, ki se nanj sklicuje. Težava časa pripada uri. Težava poverilnic pripada zaledju za preverjanje pristnosti, ki jih je zavrnilo, nedosegljiv partner pa pripada poti med gostiteljema.
Koda je v pogovoru s podporo uporabna za eno stvar: pove vam, da je partner prišel dovolj daleč, da poskusi. Kaj se je zgodilo zatem, je tisto, kar morate vedeti, in to je zapisano v dnevniku, ki zabeleži prvo konkretno zavrnitev. Začnite tam in vrstica ponastavitve preneha biti videti kot vzrok in začne biti videti kot časovni žig.