OpenVPN 3 Linux: perskaitykite D-Bus klaidą prieš grąžindami ankstesnę versiją
Penkios tarnybos, viena sąsaja. Priskirkite D-Bus klaidą komponentui, kuris atsisakė, patikrinkite, ar yra sesija, ir tada taisykite toje riboje.
OpenVPN 3 Linux gedimai ateina kaip D-Bus metodo klaida su nepažįstamu vardu, ir pagunda yra sumažinti paketo versiją ir tikėtis. Klientas nėra viena programa: komandų eilutės sąsaja kalba per magistralę su tarnybomis, kurios valdo profilius, sesijas, VPN variklį ir privilegijuotus tinklo pakeitimus. Sprendimas, kuri iš tų penkių valdo nepavykusį kvietimą, yra didžioji diagnozės dalis, ir jis kainuoja vieną komandą, o ne versijos grąžinimą. Toliau pateikiamas tas sprendimas, tokia tvarka, kokia gedimai paprastai pasirodo.
Penki savininkai už vienos komandos
Svarbūs penki procesai, ir kiekvienas turi savo magistralės vardą: sąsaja, kuri priima jūsų komandą, konfigūracijos tvarkyklė, kuri saugo profilius ir jų prieigos politiką, sesijų tvarkyklė, kuri valdo sesijos trukmę, foninė sistema, kuri vykdo ryšį per OpenVPN 3 Core Engine, ir tinklo konfigūracijos tarnyba, kuri įdiegia sąsają, maršrutus ir DNS nuostatas. Klaida, įvardijanti konfigūracijos objektą, todėl nėra foninės sistemos klaida, o foninė sistema, kuri nepaleidžiama, nėra autentifikavimo gedimas. Pranešimo priskyrimas vienai iš tų eilučių turi įvykti prieš ką nors keičiant, nes kiekvienas vėlesnis žingsnis priklauso nuo to, kuri eilutė teisinga. Eilutės spėjimas yra kelias, kuriuo trumpas pataisymas virsta popiete su paketais.
Paklauskite sisteminės magistralės, kurios tarnybos yra, prieš klausdami ko nors kito, tada patvirtinkite, kad įdiegtos dalys sutaria dėl versijos. OpenVPN 3 Linux registruoja tas tarnybas kaip sistemos vienetus, todėl magistralė, kurios reikia klausti, yra sisteminė, versijos užklausai reikia administracinių teisių, o sąrašas, sudarytas su --user, skaito jūsų prisijungimo sesiją, kur vienetai niekada nepasirodo. Tarnybos aktyvuojasi pagal poreikį, o kai kurios pasibaigia, kai neveikia, todėl tarnyba, kurios trūksta prieš jūsų pirmą užklausą, tiesiog dar nebuvo apie nieką paklausta. Trys žemiau pateiktos komandos atsako apie buvimą, versiją ir vieneto būseną neatidarydamos VPN sesijos.
sudo busctl list | grep -i openvpn
sudo openvpn3-admin version --services
systemctl list-units 'openvpn3*'Ką iš tikrųjų įrodo kiekvienas sąrašas
Paties kliento rodiniai yra pigiausias prieinamas įrodymas, ir kiekvienas jų įrodo mažiau, nei atrodo. Profilis konfigūracijos sąraše rodo, kad profilis importuotas, ir nieko apie tai, ar kas nors gali juo jungtis. Sesija sesijų sąraše rodo, kad yra sesijos objektas, ir nieko apie tai, ar nuotolinė autentifikacija baigėsi.
openvpn3 configs-list
openvpn3 sessions-listObjektų keliai tuose išvedimuose žymi tvarkomus objektus magistralėje, o ne failus, todėl jų negalima redaguoti, o anksčiau užrašytas kelias pasensta tą akimirką, kai ta sesija atsijungia. Vieno pakartotinis naudojimas iš jūsų užrašų sukuria "no such object" klaidas, kurios neturi nieko bendra su VPN. Žemiau pateikta etapų lentelė atskiria, ką kiekvienas ryšio žingsnis sukuria, nuo to, ką palieka atvira, ir būtent šiuo skirtumu remiasi versijos grąžinimo sprendimas. Perskaitykite eilutę, atitinkančią jūsų įrodymą, tada dar kartą perskaitykite klaidos tekstą.
| 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 |
Ryšio kvietimas grįžta prieš tai, kai tunelis egzistuoja
Ryšio kvietimas duoda jums stebėti sesiją ir grįžta, todėl iš pažiūros sėkmingas kvietimas, po kurio seka tyla, yra normali tarpinė būsena, o ne prieštaravimas. Sąsaja vis tiek turi sekti būsenos pokyčius ir atsakyti į kiekvieną sąveikos prašymą. Profilis, kuriam reikia kredencialo ir kuris negauna atsakymo, laukia būsenoje, kuri atrodo lygiai kaip pakibusi foninė sistema. Ta laukimo būsena verta atpažinimo, nes ji siunčia žmones prie netinkamo komponento.
Kol vyksta bandymas, stebėkite sesijų sąrašą ir pačios sąsajos žurnalą tam profiliui. Sesija, kuri niekada nepalieka pradinės būsenos, įvardija sustojusį komponentą, o žurnalas paprastai jį įvardija jau pirmose eilutėse. Laikykite profilio vardą po ranka, nes žurnalo komanda ima profilį, o ne sesijos kelią, ir tai dar viena priežastis perskaityti sąrašą iš naujo, o ne naudoti kelią pakartotinai.
openvpn3 sessions-list
openvpn3 log --config <profile> --level 6Vieno komponento žurnalo skaitymas neatidarant sesijos
Kai sąsaja nepraneša nieko naudingo, eikite prie komponento, kuris užregistravo gedimą, o ne pradėkite kitą ryšį. Su sukonfigūruotu systemd-journald registratoriumi administratoriaus apribota žurnalo peržiūra skaito vieno komponento įvykius neliesdama magistralės politikos ir neatidarydama sesijos, o tai svarbu, nes diagnostika, kuri keičia matuojamą sistemą, įrodo labai mažai. Filtruokite pagal vienetą, o ne pagal syslog žymą: atskiri tarnybos vienetai negarantuoja bendro identifikatoriaus, todėl užklausa pagal žymą gali grąžinti tuščią puslapį, kol pats vienetas užregistravo gedimą.
Užsirašykite keturis laukus prieš ko nors prašydami pagalbos: pilną klaidos vardą, susijusią tarnybą ir objektą, laiko žymą ir įdiegtų paketų versijas. To reikia prižiūrėtojui, ir nieko iš to nereikia įklijuoti profilio ar kredencialo į užklausą. Magistralės prieigos politikos platinimas, kad klaida nutiltų, nėra diagnostika, jis ištrina ribą, kuri įvardijo komponentą už jus. Privatus profilių turinys lieka už bendrų ataskaitų dėl tos pačios priežasties kaip kredencialai.
journalctl -u 'openvpn3-service-*' -n 50 --no-pager
openvpn3-admin journal --service <name>Ribos, kuri atsisakė, taisymas
Kiekviena žemėlapio eilutė turi savo pataisymą, ir eilutės viena kitos nepakeičia. Atmestas veiksmas profilyje yra politikos ir nuosavybės klausimas, o foninė sistema, kuri nesuaktyvina, yra tarnybų ir pakavimo klausimas. Serveris, atmetantis autentifikaciją, nėra nė vienas, todėl pakartotiniai slaptažodžio keitimai negali pataisyti vietinės aktyvavimo problemos. Neteisingo pataisymo pasirinkimas yra kelias, kuriuo politikos problema virsta perinstaliavimu.
Po paketų pakeitimo patikrinkite nuoseklią ir palaikomą instaliaciją, o ne nukopijuokite seną binarią failą į jo vietą. Kontroliuojamas versijos grąžinimas yra teisėtas atsakas į patvirtintą regresiją, jei paketai lieka suderinami ir yra kelias atgal prie palaikomos priežiūros. Nustatykite tą kelią prieš tarnybai nustojant paleistis, o ne po to.
Kita platforma gali dalytis ta pačia pagrindine VPN biblioteka, bet ne Linux magistralės tarnybomis, todėl panašiai atrodantis gedimas Windows aplinkoje nieko nesako apie šį. D-Bus apžvalga dokumentuoja konfigūracijoms ir sesijoms atskleistus objektų kelius, ir tai yra ta architektūros dalis, kuria remiasi ši diagnostika. Perskaitykite ją kartą, ir kita klaida ateis su komponentu, jau prikabintu prie jos.