PiVPN ieraksta servera konfigurāciju un klienta profilu, pēc tam iziet; tas nekad nekļūst par procesu, kas pārvadā tavu datplūsmu. Tāpēc neizdevušos rokasspiedienu, nepareizu galapunktu izvēlošu klientu vai pēc pārstartēšanas nepareizi atgriežamu pakalpojumu nevar izskaidrot no instalētāja izvēlnēm. Šie simptomi pieder tam OpenVPN dēmonam, kas pašlaik darbojas, konfigurācijai, ko šis dēmons faktiski ielādēja, un žurnālam, uz kuru tas tika vērsts. Četras tikai lasīšanas komandas to parasti atrisina, un neviena no tām nemaina tavus sertifikātus vai atslēgas.

Palīgs un dēmons ir dažādi objekti

Sajukumu ir viegli izskaidrot: vienā mapē ir fails, ko izveidoja palīgs, fails, ko lasa dēmons, un dažreiz abu novecojusi kopija. Palīgs ir nodrošināšanas skripts. Tas instalē pakotnes, raksta vienību failus un izdrukā klienta profilu, un tad tā darbs beidzas. Paliek ieraksts pakalpojumu pārvaldniekā un komandrinda.

systemd resursdatorā sāc ar aktīvo vienību, nevis mapes sarakstu. Nosaukums ir atkarīgs no iepakojuma: Debian un Raspberry Pi OS attēli parasti piedāvā veidnes instanci, piemēram, openvpn-server@server, savukārt vecākas instalācijas izmanto openvpn@server. Pajautā pārvaldniekam, kura darbojas, nevis minē no faila nosaukuma.

systemctl list-units --type=service --all | grep -i openvpn
systemctl cat openvpn-server@server

Lasi ExecStart= šajā izvadē. Tas nosauc izpildāmo failu un opcijas, ko pārvaldnieks faktiski palaiž, tostarp jebkuru --config ceļu; blakus esošs konfigurācijas fails, uz kuru neatsaucas neviena komanda, nav daļa no darbojošā tuneļa.

Izseko konfigurācijas ķēdi, ko atrisināja dēmons

OpenVPN neskanē mapi, meklējot iestatījumus. Tas lasa failu, kas nodots ar --config, seko jebkurai config direktīvai tajā un pēc tam piemēro komandrindas opcijas. Rokasgrāmata 2.6 apraksta šo secību, un tas ir svarīgi, ja divi faili nepiekrīt par portu, ierīci vai šifrēšanu.

Vispirms izdrukā faktisko izsaukumu, pēc tam aplūko direktīvas, kas nosaka identitāti un sasniedzamību. Abas komandas ir tikai lasīšanas un drošas dzīvā serverī, lai gan otrā izdrukā ceļus, ko tu varbūt nevēlies publiskā biļetenā.

systemctl show -p ExecStart --value openvpn-server@server
grep -E '^(config|dev|proto|port|local|log|log-append|status|ca|cert|key|tls-auth|tls-crypt)' /etc/openvpn/server/server.conf

Fails .ovpn mājas mapē ir klienta artefakts. Servera dēmons to nekad nelasa, tāpēc šī faila rediģēšana, lai novērstu servera puses rokasspiediena kļūdu, neko nedod.

Iekļāvumi ir otrais slazds. Rinda config piesaista otru failu, kura opcijas tiek apstrādātas tajā vietā, tāpēc vēlāka vienas vērtības direktīva var ignorēt to, ko galvenais fails it kā saka. Ja redzamais fails izskatās pareizi un dēmons joprojām uzvedas citādi, izlasi iekļauto failu, pirms kaut ko maini.

Saskaņo žurnālu ar procesu, nevis ar kļūdu, ko atceries

Divi žurnāla galamērķi ir ierasti, un tikai viens no tiem ir journal. Ar log-append dēmons raksta tajā failā, un journal saglabā maz, izņemot palaišanas rindas. Bez tā journalctl ir notikumu avots.

journalctl -u openvpn-server@server -n 80 --no-pager

Saisti vienu savienojuma mēģinājumu ar vienu laika logu. Pieraksti klienta galapunktu, pēc tam lasi servera notikumus no tām pašām sekundēm. TLS rokasspiediens, kas nekad nesasniedz sertifikātu apmaiņu, norāda uz sasniedzamību vai protokola neatbilstību, bet autentifikācijas noraidījums nāk pēc tam, kad tuneļa parametri jau ir saskaņoti.

Vecs žurnāla ieraksts neko nepierāda par profilu, ko lejupielādēji pirms piecām minūtēm. Ģenerē klienta failu no jauna, savienojies vienu reizi un lasi tikai tās rindas, kas parādījās šajā mēģinājumā.

Pieraksti pirmo konkrēto kļūmi, nevis pēdējo vispārīgo. Saistīšanas kļūda, neatbildēta ārējā apmaiņa, sertifikāta noraidījums un konta noraidījums katrs aizved tevi uz citu slāni, un beigu taimauts bieži apslēpj noderīgo notikumu virs tā.

Tuneļa pārbūve nav diagnostikas solis

Kārdinošais īsceļš ir uzcelt otru, vienkāršāku tuneli: statiska atslēga, bez sertifikātiem, bez papildu autentifikācijas. Tas bieži savienosies, un tas pierāda tikai to, ka divi resursdatori var pārraidīt UDP vai TCP savā starpā. Tas neko nesaka par to, kāpēc sertifikātu autentificētais izvietojums neizdodas, un klusi aizstāj drošības modeli, kuru tev lūdza saglabāt.

Tas pats attiecas uz tls-auth vai tls-crypt izslēgšanu, verify-x509-name vājināšanu vai otrā faktora atmešanu zaļa statusa dēļ. Tunelis, kas savienojas tāpēc, ka pārbaude tika noņemta, ir cita sistēma, nevis salabota.

Veic vienu ierobežotu izmaiņu slānī, ko nosauca žurnāls, pārstartē to pašu vienību un atkārto vienīgo savienojuma mēģinājumu. Tas saglabā godīgu salīdzinājumu un atstāj izmaiņas, ko vari atsaukt.

Ko nodot nākamajam cilvēkam

Pieraksti četrus faktus, kamēr tie vēl ir pieejami: OpenVPN versiju no openvpn --version, aktīvo vienību, konfigurācijas ķēdi ar iekļāvumiem un žurnāla logu, kas aptver vienu mēģinājumu. Šie četri neskaidru sūdzību pārvērš atkārtojamā gadījumā.

Aizklāj pirms kopīgošanas. Privātās atslēgas, auth-user-pass faili, statiskās atslēgas materiāls un pilni klienta komplekti neietilpst biļetenā; opciju nosaukumi un ķēdes forma parasti ir pietiekami otram acu pārim.

Ja ķēde ir neskarta un žurnāls joprojām norāda uz tīklu, nākamais solis ir ceļš starp klientu un serveri, nevis vēl viena instalācija. Tā ir vienīgā stāsta daļa, kas palīgam nekad nepiederēja.

Saistītie raksti