Napake v OpenVPN 3 Linux prihajajo kot napaka metode D-Bus z neznanim imenom, in skušnjava je, da bi znižali različico paketa in upali. Odjemalec ni en program: vmesnik ukazne vrstice se pogovarja prek vodila s storitvami, ki imajo v lasti profile, seje, pogonski stroj VPN in privilegirane spremembe omrežja. Odločitev, katera od teh petih ima v lasti klic, ki ne uspe, je večji del diagnostike in stane en ukaz namesto vrnitve na prejšnjo različico. Sledi ta odločitev, v vrstnem redu, v katerem se napake običajno pojavljajo.

Pet lastnikov za enim ukazom

Pet procesov je pomembnih in vsak ima svoje ime na vodilu: vmesnik, ki sprejme vaš ukaz, upravitelj konfiguracije, ki hrani profile in njihovo politiko dostopa, upravitelj sej, ki ima v lasti življenjsko dobo seje, zaledni sistem, ki izvaja povezavo prek OpenVPN 3 Core Engine, in storitev za konfiguracijo omrežja, ki namesti vmesnik, poti in nastavitve DNS. Napaka, ki imenuje konfiguracijski objekt, torej ni napaka zalednega sistema, in zaledni sistem, ki se ne zažene, ni neuspeh preverjanja pristnosti. Razvrščanje sporočila v eno od teh vrstic se mora zgoditi, preden se karkoli spremeni, ker je vsak nadaljnji korak odvisen od tega, katera vrstica drži. Ugibanje vrstice je pot, po kateri iz kratkega popravka nastane popoldne s paketi.

Sistemsko vodilo vprašajte, katere storitve so prisotne, preden vprašate karkoli drugega, nato pa potrdite, da se nameščeni deli strinjajo glede različice. OpenVPN 3 Linux te storitve registrira kot sistemske enote, zato je vodilo za poizvedbo sistemsko, poizvedba različice potrebuje skrbniška pooblastila, seznam, narejen z --user, pa bere vašo prijavno sejo, kjer se enote nikoli ne pojavijo. Storitve se aktivirajo na zahtevo in nekatere ob mirovanju končajo, zato storitev, ki manjka pred vašo prvo zahtevo, preprosto še ni bila o ničemer vprašana. Trije spodnji ukazi odgovarjajo o prisotnosti, različici in stanju enote, ne da bi odprli sejo VPN.

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

Kaj vsak seznam v resnici dokazuje

Odjemalčevi lastni pogledi so najcenejši razpoložljivi dokaz in vsak od njih dokazuje manj, kot se zdi. Profil na seznamu konfiguracije pokaže, da je profil uvožen, in nič o tem, ali se sme kdo z njim povezati. Seja na seznamu sej pokaže, da objekt seje obstaja, in nič o tem, ali se je oddaljeno preverjanje pristnosti končalo.

openvpn3 configs-list
openvpn3 sessions-list

Poti objektov v teh izpisih označujejo upravljane objekte na vodilu in ne datotek, zato jih ni mogoče urejati, pot, zapisana prej, pa zastara v trenutku, ko se ta seja prekine. Ponovna uporaba ene iz vaših zapiskov ustvari napake "no such object", ki nimajo nič skupnega z VPN. Spodnja preglednica stopenj ločuje, kaj vsak korak povezave vzpostavi, od tega, kaj pusti odprto, in prav na tem razlikovanju sloni odločitev o vrnitvi na prejšnjo različico. Preberite vrstico, ki ustreza vašemu dokazu, in nato še enkrat preberite besedilo napake.

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

Klic za povezavo se vrne, preden predor obstaja

Klic za povezavo vam izroči sejo za opazovanje in se vrne, zato je navidez uspešen klic, ki mu sledi tišina, običajno vmesno stanje in ne protislovje. Vmesnik mora še vedno slediti spremembam stanja in odgovarjati na vsako zahtevo po interakciji. Profil, ki potrebuje poverilnico in ne prejme odgovora, čaka v stanju, ki je videti natanko kot obtičal zaledni sistem. To stanje čakanja si zasluži prepoznavo, ker pošilja ljudi k napačni komponenti.

Med poskusom spremljajte seznam sej in lastni dnevnik vmesnika za ta profil. Seja, ki nikoli ne zapusti začetnega stanja, imenuje komponento, ki se je ustavila, in dnevnik jo običajno imenuje že v prvih vrsticah. Imejte ime profila pri roki, saj ukaz za dnevnik vzame profil in ne poti seje, kar je še en razlog, da seznam preberete znova, namesto da bi pot ponovno uporabili.

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

Branje dnevnika ene komponente brez odpiranja seje

Ko vmesnik ne poroča ničesar koristnega, pojdite do komponente, ki je napako zabeležila, namesto da bi začeli novo povezavo. Z nastavljenim beležnikom systemd-journald omejeni pogled v dnevnik, ki ga ima skrbnik, bere dogodke ene komponente, ne da bi se dotaknil politike vodila ali odprl sejo, kar je pomembno, ker diagnostika, ki spreminja sistem, ki ga meri, dokaže zelo malo. Filtrirajte po enoti in ne po oznaki syslog: posamezne storitvene enote ne zagotavljajo skupnega identifikatorja, zato lahko poizvedba po oznaki vrne prazno stran, medtem ko je enota sama zabeležila napako.

Zapišite štiri polja, preden kogarkoli prosite za pomoč: polno ime napake, vpleteno storitev in objekt, časovni žig ter različice nameščenih paketov. To je tisto, kar vzdrževalec potrebuje, in nič od tega ne zahteva, da bi profil ali poverilnico prilepili v zahtevek. Širjenje politike dostopa do vodila, da bi napako utišali, ni diagnostika, izbriše mejo, ki vam je imenovala komponento. Zasebna vsebina profilov ostaja zunaj deljenih poročil iz istega razloga kot poverilnice.

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

Popravljanje meje, ki je zavrnila

Vsaka vrstica zemljevida ima svoj popravek in vrstice se med seboj ne nadomeščajo. Zavrnjena operacija na profilu je vprašanje politike in lastništva, medtem ko je zaledni sistem, ki se ne aktivira, vprašanje storitev in pakiranja. Strežnik, ki zavrača preverjanje pristnosti, ni ne eno ne drugo, zato ponovljene spremembe gesla ne morejo popraviti lokalne težave z aktivacijo. Izbira napačnega popravka je pot, po kateri iz težave s politiko nastane ponovna namestitev.

Po spremembi paketov preverite skladno in podprto namestitev, namesto da bi kopirali staro binarno datoteko na njeno mesto. Nadzorovana vrnitev na prejšnjo različico je legitimni odgovor na potrjeno regresijo, če paketi ostanejo združljivi in obstaja pot nazaj k podprtemu vzdrževanju. To pot vzpostavite, preden storitev preneha zaganjati, ne pozneje.

Druga platforma si lahko deli isto osnovno knjižnico VPN, ne da bi si delila storitve vodila Linuxa, zato podobno videča se napaka v Windowsu ne pove ničesar o tej. Pregled D-Bus dokumentira poti objektov, izpostavljene za konfiguracije in seje, in to je tisti del arhitekture, na katerem sloni ta diagnostika. Preberite ga enkrat, in naslednja napaka bo prišla s komponento, ki bo že pritrjena nanjo.

Sorodni članki