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-list

Objekti 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.

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

Ü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.

Seotud artiklid