Kvarovi OpenVPN 3 Linux dolaze kao greška metode D-Bus s nepoznatim imenom, a iskušenje je sniziti verziju paketa i nadati se. Klijent nije jedan program: sučelje naredbenog retka razgovara preko sabirnice sa servisima koji posjeduju profile, sesije, VPN motor i privilegirane mrežne promjene. Odluka koji od tih pet posjeduje poziv koji pada je veći dio dijagnostike, i stoji jednu naredbu umjesto vraćanja verzije. Ono što slijedi je ta odluka, redom kojim se kvarovi obično pojavljuju.

Pet vlasnika iza jedne naredbe

Pet procesa je važno, i svaki ima vlastito ime na sabirnici: sučelje koje prihvaća vašu naredbu, upravitelj konfiguracije koji čuva profile i njihovu politiku pristupa, upravitelj sesija koji posjeduje trajanje sesije, pozadinski sustav koji vodi vezu kroz OpenVPN 3 Core Engine, i servis za konfiguraciju mreže koji postavlja sučelje, rute i DNS postavke. Greška koja imenuje konfiguracijski objekt zato nije greška pozadinskog sustava, a pozadinski sustav koji se ne pokreće nije neuspjeh autentikacije. Razvrstavanje poruke u jedan od tih redaka mora se dogoditi prije nego što se bilo što promijeni, jer svaki kasniji korak ovisi o tome koji je redak istinit. Nagađanje retka je put kojim kratka ispravka postaje poslijepodne s paketima.

Pitajte sistemsku sabirnicu koji su servisi prisutni prije nego što pitate bilo što drugo, zatim potvrdite da se instalirani dijelovi slažu oko verzije. OpenVPN 3 Linux registrira te servise kao sistemske jedinice, pa je sabirnica koju treba pitati sistemska, upit o verziji traži administrativne ovlasti, a popis napravljen s --user čita vašu prijavnu sesiju, gdje se jedinice nikada ne pojavljuju. Servisi se aktiviraju na zahtjev i neki izlaze kad miruju, pa servis koji nedostaje prije vašeg prvog zahtjeva jednostavno još nije bio pitan ni za što. Tri naredbe ispod odgovaraju o prisutnosti, verziji i stanju jedinice bez otvaranja VPN sesije.

sudo busctl list | grep -i openvpn
sudo openvpn3-admin version --services
systemctl list-units 'openvpn3*'

Što svaki popis doista dokazuje

Pogledi samog klijenta najjeftiniji su dostupni dokaz, i svaki od njih dokazuje manje nego što se čini. Profil na popisu konfiguracije pokazuje da je profil uvezen i ništa o tome smije li se tko njime povezati. Sesija na popisu sesija pokazuje da objekt sesije postoji i ništa o tome je li udaljena autentikacija završila.

openvpn3 configs-list
openvpn3 sessions-list

Putovi objekata u tim izlazima označavaju upravljane objekte na sabirnici, a ne datoteke, pa se ne mogu uređivati, a put zabilježen prije postaje zastario u trenutku kad se ta sesija odspoji. Ponovna uporaba jednoga iz vaših bilješki stvara greške "no such object" koje nemaju nikakve veze s VPN-om. Tablica faza ispod odvaja što svaki korak veze uspostavlja od onoga što ostavlja otvorenim, i upravo o toj razlici ovisi odluka o vraćanju verzije. Pročitajte redak koji odgovara vašem dokazu, pa ponovno pročitajte tekst greške.

StageWhat existsWhat proves itWhat it does not prove
Profile importedA configuration object held by the configuration managerThe profile is listed by the clientThat the profile owner permits a connection
Session requestedA session object held by the session managerThe session appears in the session listThat the remote side accepted the credentials
Connect dispatchedAn asynchronous attempt on the VPN backendStatus changes arrive for that sessionThat an interface was configured
Tunnel configuredAn interface, routes and DNS settingsThe network service reports success and routes appearThat traffic reaches the peer

Poziv za povezivanje vraća se prije nego što tunel postoji

Poziv za povezivanje predaje vam sesiju za promatranje i vraća se, zato je naizgled uspješan poziv nakon kojeg slijedi tišina normalno međustanje, a ne proturječje. Sučelje i dalje mora pratiti promjene stanja i odgovarati na svaki zahtjev za interakciju. Profil koji treba vjerodajnicu i ne dobije odgovor čeka u stanju koje izgleda točno kao zaglavljeni pozadinski sustav. To stanje čekanja zaslužuje prepoznavanje, jer šalje ljude na pogrešnu komponentu.

Dok pokus traje, pratite popis sesija i vlastiti dnevnik sučelja za taj profil. Sesija koja nikada ne napusti početno stanje imenuje komponentu koja se zaustavila, a dnevnik je obično imenuje već u prvim retcima. Držite naziv profila pri ruci, jer naredba za dnevnik uzima profil, a ne put sesije, što je još jedan razlog da popis ponovno pročitate umjesto da put ponovno upotrijebite.

openvpn3 sessions-list
openvpn3 log --config <profile> --level 6

Čitanje dnevnika jedne komponente bez otvaranja sesije

Kad sučelje ne izvještava ništa korisno, idite do komponente koja je zabilježila kvar, umjesto da započnete drugu vezu. Uz postavljeni systemd-journald zapisivač, ograničeni pogled administratora u dnevnik čita događaje jedne komponente bez diranja politike sabirnice ili otvaranja sesije, što je važno jer dijagnostika koja mijenja sustav koji mjeri dokazuje vrlo malo. Filtrirajte po jedinici, a ne po syslog oznaci: pojedinačne servisne jedinice ne jamče zajednički identifikator, pa upit po oznaci može vratiti praznu stranicu dok je jedinica sama zabilježila kvar.

Zabilježite četiri polja prije nego što nekoga zamolite za pomoć: puno ime greške, uključeni servis i objekt, vremensku oznaku i verzije instaliranih paketa. To je ono što održavatelj treba, i ništa od toga ne zahtijeva lijepljenje profila ili vjerodajnice u zahtjev. Širenje politike pristupa sabirnici da bi se greška ušutkala nije dijagnostika, briše granicu koja vam je imenovala komponentu. Privatni sadržaj profila ostaje izvan dijeljenih izvještaja iz istog razloga kao vjerodajnice.

journalctl -u 'openvpn3-service-*' -n 50 --no-pager
openvpn3-admin journal --service <name>

Ispravljanje granice koja je odbila

Svaki redak karte ima vlastitu ispravku, i retci ne zamjenjuju jedan drugoga. Odbijena operacija na profilu pitanje je politike i vlasništva, dok je pozadinski sustav koji se ne aktivira pitanje servisa i pakiranja. Poslužitelj koji odbija autentikaciju nije ni jedno, pa ponovljene promjene lozinke ne mogu popraviti lokalni problem s aktivacijom. Odabir pogrešne ispravke je put kojim problem s politikom postaje ponovna instalacija.

Nakon promjene paketa provjerite usklađenu i podržanu instalaciju umjesto da kopirate staru binarnu datoteku na njezino mjesto. Kontrolirano vraćanje verzije legitiman je odgovor na potvrđenu regresiju, pod uvjetom da paketi ostanu kompatibilni i da postoji put natrag prema podržanom održavanju. Uspostavite taj put prije nego što se servis prestane pokretati, ne poslije.

Druga platforma može dijeliti istu osnovnu VPN biblioteku bez dijeljenja Linuxovih sabirničkih servisa, pa slično izgledajući kvar na Windowsu ne govori ništa o ovome. Pregled D-Bus dokumentira putove objekata izložene za konfiguracije i sesije, i to je onaj dio arhitekture na kojem počiva ova dijagnostika. Pročitajte ga jednom, i sljedeća greška doći će s komponentom već pričvršćenom na sebe.

Povezani članci