OpenVPN 3 Linux: loe D-Busi viga enne tagasipööramist
Viis teenust, üks esiliides. Seosta D-Busi viga komponendiga, mis keeldus, kontrolli, kas sessioon on olemas, ja paranda siis sellel piiril.
OpenVPN 3 Linuxi tõrked saabuvad D-Busi meetodiveana, millele on lisatud võõras nimi, ja kiusatus on pakett alla kruntida ja loota. Klient ei ole üks programm: käsurea esiliides räägib läbi siini teenustega, millele kuuluvad profiilid, sessioonid, VPN-mootor ja privilegeeritud võrgumuudatused. Otsustamine, milline neist viiest omab ebaõnnestuvat kutset, on suurem osa diagnoosist ja maksab ühe käsu, mitte tagasipööramise. Järgnev on see otsus, selles järjekorras, nagu tõrked tavaliselt ilmuvad.
Viis omanikku ühe käsu taga
Viis protsessi on olulised ja igaühel on oma siininimi: esiliides, mis võtab sinu käsu vastu, konfiguratsioonihaldur, mis hoiab profiile ja nende juurdepääsupoliitikat, sessioonihaldur, kellele kuulub sessiooni eluiga, taustaprogramm, mis käitab ühendust OpenVPN 3 Core Engine'i kaudu, ja võrgukonfiguratsiooni teenus, mis paigaldab liidese, marsruudid ja DNS-i seaded. Viga, mis nimetab konfiguratsiooniobjekti, ei ole seega taustaprogrammi viga, ja taustaprogramm, mis ei käivitu, ei ole autentimise tõrge. Sõnumi ühte neist ridadest paigutamine peab toimuma enne, kui midagi muudetakse, sest iga järgnev samm sõltub sellest, milline rida on tõene. Rea oletamine on viis, kuidas lühikesest parandusest saab pakettidega tegelemise pärastlõuna.
Küsi süsteemsiinilt, millised teenused on olemas, enne kui küsid midagi muud, ja kinnita seejärel, et paigaldatud osad on ühel versioonil. OpenVPN 3 Linux registreerib need teenused süsteemiüksustena, seega küsitav siin on süsteemsiin, versioonipäring vajab administratiivset volitust ja --user-ga tehtud loend loeb sinu sisselogimissessiooni, kus üksused kunagi ei ilmu. Teenused aktiveeruvad nõudmisel ja mõned lõpetavad tegevuse jõudeolekus, seega enne sinu esimest päringut puuduv teenus ei ole lihtsalt veel millegi kohta küsitud. Kolm allolevat käsku vastavad olemasolule, versioonile ja üksuse olekule ilma VPN-sessiooni avamata.
sudo busctl list | grep -i openvpn
sudo openvpn3-admin version --services
systemctl list-units 'openvpn3*'Mida iga loend tegelikult tõestab
Kliendi enda vaated on odavaim saadaolev tõend ja igaüks neist tõestab vähem, kui näib. Profiil konfiguratsiooniloendis näitab, et profiil on imporditud, ja mitte midagi selle kohta, kas keegi tohib sellega ühenduda. Sessioon sessiooniloendis näitab, et sessiooniobjekt on olemas, ja mitte midagi selle kohta, kas kaugautentimine lõppes.
openvpn3 configs-list
openvpn3 sessions-listObjekti teed nendes väljundites tähistavad siinil hallatavaid objekte, mitte faile, seega ei saa neid muuta, ja varem kirja pandud tee aegub hetkel, mil see sessioon katkeb. Ühe uuesti kasutamine oma märkmetest tekitab "no such object" vigu, millel pole VPN-iga midagi pistmist. Allolev etappide tabel eraldab, mida ühenduse iga samm rajab, sellest, mida see lahtiseks jätab, ja just see erinevus on tagasipööramise otsuse alus. Loe rida, mis vastab sinu tõendile, ja loe siis vea tekst uuesti.
| 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 |
Ühenduse kutse naaseb enne, kui tunnel on olemas
Ühenduse kutse annab sulle jälgimiseks sessiooni ja naaseb, mistõttu näiliselt õnnestunud kutse, millele järgneb vaikus, on normaalne vaheolek, mitte vastuolu. Esiliides peab endiselt järgima olekumuutusi ja vastama igale suhtluspäringule. Profiil, mis vajab mandaati ja ei saa vastust, ootab olekus, mis näeb täpselt välja nagu kinni jäänud taustaprogramm. See ooteolek väärib äratundmist, sest see saadab inimesed vale komponendi juurde.
Katse ajal jälgi sessiooniloendit ja esiliidese enda logi selle profiili kohta. Sessioon, mis ei lahku kunagi oma algolekust, nimetab komponendi, mis seiskus, ja logi nimetab selle tavaliselt juba esimestel ridadel. Hoia profiili nimi käepärast, sest logikäsk võtab profiili, mitte sessiooni tee, mis on veel üks põhjus loendit uuesti lugeda, selle asemel et teed uuesti kasutada.
openvpn3 sessions-list
openvpn3 log --config <profile> --level 6Ühe komponendi logi lugemine sessiooni avamata
Kui esiliides ei teata midagi kasulikku, mine komponendi juurde, mis tõrke logis, selle asemel et alustada uut ühendust. Kui systemd-journald logger on konfigureeritud, loeb administraatori piiratud journalivaade ühe komponendi sündmusi ilma siinipoliitikat puutumata või sessiooni avamata, mis loeb, sest diagnoos, mis muudab mõõdetavat süsteemi, tõestab väga vähe. Filtreeri üksuse, mitte syslog-sildi järgi: üksikud teenuseüksused ei taga ühist identifikaatorit, seega sildipäring võib tagastada tühja lehe, samal ajal kui üksus ise tõrke salvestas.
Kirjuta üles neli välja enne, kui kelleltki abi palud: vea täisnimi, asjassepuutuv teenus ja objekt, ajatempel ning paigaldatud pakettide versioonid. Neid vajab hooldaja ja ükski neist ei nõua profiili ega mandaadi kleepimist pileti sisse. Siinipääsupoliitika laiendamine vea vaigistamiseks ei ole diagnoos, see kustutab piiri, mis komponenti sinu eest nimetas. Profiilide privaatne sisu jääb jagatud raportitest välja samal põhjusel nagu mandaadid.
journalctl -u 'openvpn3-service-*' -n 50 --no-pager
openvpn3-admin journal --service <name>Keeldunud piiri parandamine
Kaardi igal real on oma parandus ja read ei asenda üksteist. Profiilil keelatud toiming on küsimus poliitikast ja omandist, samas kui taustaprogramm, mis ei aktiveeru, on küsimus teenustest ja pakendamisest. Server, mis autentimise tagasi lükkab, ei ole kumbki, seega korduvad paroolimuudatused ei suuda kohalikku aktiveerimisprobleemi parandada. Vale paranduse valimine on viis, kuidas poliitikaprobleemist saab uuesti paigaldamine.
Pärast paketimuudatust kontrolli sidusat ja toetatud paigaldust, selle asemel et kopeerida üks vana binaarfaill oma kohale. Kontrollitud tagasipööramine on õigustatud vastus kinnitatud regressioonile, eeldusel et paketid jäävad ühilduvaks ja on olemas tee tagasi toetatud hoolduse juurde. Rajage see tee enne, kui teenus lakkab käivitumast, mitte pärast.
Teine platvorm võib jagada sama VPN-i põhiteeki, ilma et jagaks Linuxi siiniteenuseid, seega sarnaselt näiv tõrge Windowsis ei ütle selle kohta midagi. D-Busi ülevaade dokumenteerib konfiguratsioonide ja sessioonide jaoks pakutavad objekti teed, ja see on arhitektuuri osa, millel see diagnoos põhineb. Loe see korra läbi ja järgmine viga saabub juba komponendiga, mis on selle küljes.