OpenVPN 3 Linux: pročitajte D-Bus grešku prije nego što vratite prethodnu verziju
Pet servisa, jedno sučelje. Pripnite D-Bus grešku komponenti koja je odbila, provjerite postoji li sesija, pa ispravite na toj granici.
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-listPutovi 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.
| Stage | What exists | What proves it | What it does not prove |
|---|---|---|---|
| Profile imported | A configuration object held by the configuration manager | The profile is listed by the client | That the profile owner permits a connection |
| Session requested | A session object held by the session manager | The session appears in the session list | That the remote side accepted the credentials |
| Connect dispatched | An asynchronous attempt on the VPN backend | Status changes arrive for that session | That an interface was configured |
| Tunnel configured | An interface, routes and DNS settings | The network service reports success and routes appear | That 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.