PiVPN kirjutab serveri konfiguratsiooni ja kliendi profiili ning lõpetab seejärel; sellest ei saa kunagi protsessi, mis kannab sinu liiklust. Nii ei saa ebaõnnestunud kätlust, vale lõpp-punkti valivat klienti ega pärast taaskäivitust vigaselt naasvat teenust seletada paigaldaja menüüdest. Need sümptomid kuuluvad sellele OpenVPN deemonile, mis praegu töötab, konfiguratsioonile, mille see deemon tegelikult laadis, ja logile, millele see suunati. Neli ainult lugemiseks mõeldud käsku lahendavad selle tavaliselt, ja ükski neist ei muuda sinu sertifikaate ega võtmeid.

Abiline ja deemon on erinevad objektid

Segadust on lihtne seletada: üks kataloog sisaldab faili, mille abiline lõi, faili, mida deemon loeb, ja mõnikord mõlema vananenud koopia. Abiline on provisioneerimisskript. See paigaldab pakette, kirjutab üksusefaile ja prindib kliendiprofiili ning seejärel selle töö lõpeb. Alles jääb kirje teenusehalduris ja käsurida.

systemd hostis alusta aktiivsest üksusest, mitte kataloogi loendist. Nimi sõltub pakendamisest: Debiani ja Raspberry Pi OS-i kujutised pakuvad tavaliselt mallieksemplari nagu openvpn-server@server, samas vanemad paigaldused kasutavad openvpn@server. Küsi haldurilt, milline töötab, selle asemel et failinimest oletada.

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

Loe ExecStart= sellest väljundist. See nimetab käivitatava faili ja valikud, mille haldur tegelikult käivitab, sealhulgas iga --config tee; lähedal asuv konfiguratsioonifail, millele ükski käsk ei viita, ei kuulu töötava tunneli juurde.

Jälgi konfiguratsiooniahelat, mille deemon lahendas

OpenVPN ei skanni kataloogi seadete otsimiseks. See loeb faili, mis antakse kaasa --config, järgib kõiki config direktiive selle sees ja rakendab seejärel käsurea valikud. Käsiraamat 2.6 kirjeldab seda järjekorda ja see loeb, kui kaks faili ei ole porti, seadme või šifri osas ühel meelel.

Tõmba esmalt välja tegelik väljakutse ja vaata seejärel direktiive, mis määravad identiteedi ja kättesaadavuse. Mõlemad käsud on ainult lugemiseks ja ohutud töötaval serveril, kuigi teine prindib teid, mida sa avalikus piletiüksuses võib-olla ei taha.

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

Fail .ovpn kodukataloogis on kliendi artefakt. Serveri deemon ei loe seda kunagi, nii et selle faili muutmine serveripoolse kätlusetõrke parandamiseks ei saavuta midagi.

Kaasamised on teine lõks. Rida config toob sisse teise faili, mille valikud töödeldakse selles punktis, nii et hilisem ühe väärtusega direktiiv võib tühistada selle, mida põhifail näiliselt ütleb. Kui nähtav fail tundub korrektne ja deemon käitub siiski teisiti, loe kaasatud fail enne, kui midagi muudad.

Sovita log protsessiga, mitte veaga, mida mäletad

Kaks logisihtkohta on tavalised ja ainult üks neist on journal. Kui log-append on seatud, kirjutab deemon sellesse faili ja journal hoiab vähe peale käivitusridade. Ilma selleta on journalctl sündmuste allikas.

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

Seosta üks ühenduskatse ühe ajaaknaga. Märgi kliendi lõpp-punkt ja loe seejärel serveri sündmusi samadest sekunditest. TLS-kätlus, mis ei jõua kunagi sertifikaatide vahetuseni, viitab kättesaadavusele või protokolli lahknevusele, samas kui autentimise tagasilükkamine saabub pärast seda, kui tunneli parameetrid on juba kokku lepitud.

Vana logikirje ei tõesta midagi profiili kohta, mille laadisid alla viis minutit tagasi. Genereeri kliendifail uuesti, ühenda üks kord ja loe ainult ridu, mis selle katse ajal ilmusid.

Märgi üles esimene konkreetne tõrge, mitte viimane üldine. Sidumisviga, vastuseta väline vahetus, sertifikaadi tagasilükkamine ja konto tagasilükkamine viivad igaüks sind erinevale kihile ning lõpus olev ajalõpp varjab sageli kasuliku sündmuse selle kohal.

Tunneli ümberehitamine ei ole diagnostiline samm

Kiusatuslik otsetee on püstitada teine, lihtsam tunnel: staatiline võti, sertifikaate pole, täiendavat autentimist pole. See ühendub sageli ja tõestab ainult, et kaks hosti suudavad nende vahel UDP või TCP edastada. See ei ütle midagi selle kohta, miks sertifikaatidega autenditud juurutus ebaõnnestub, ja asendab vaikselt turbemudeli, mida paluti hoida.

Sama kehtib tls-auth või tls-crypt väljalülitamise, verify-x509-name lõdvendamise või rohelise oleku saamiseks teise faktori loobumise kohta. Tunnel, mis ühendub seetõttu, et kontroll eemaldati, on teine süsteem, mitte parandatud.

Tee üks piiratud muudatus kihis, mille log nimetas, taaskäivita sama üksus ja korda üksikut ühenduskatset. See hoiab võrdluse ausana ja jätab muudatuse, mille saad tagasi võtta.

Mida järgmisele inimesele anda

Kirjuta üles neli fakti, kuni need veel käes on: OpenVPN versioon openvpn --version, aktiivne üksus, konfiguratsiooniahel koos kaasamistega ja logiakna, mis katab ühe katse. Need neli muudavad ebamäärase kaebuse korratavaks juhtumiks.

Hägusta enne jagamist. Privaatvõtmed, auth-user-pass ja muud failid, staatilise võtme materjal ja terviklikud kliendipaketid ei kuulu piletiüksusesse; valikute nimed ja ahela kuju on teise silmapaari jaoks tavaliselt piisavad.

Kui ahel on terve ja log osutab endiselt võrgule, on järgmine samm tee kliendi ja serveri vahel mitte veel üks paigaldus. See on ainus osa loos, mida abiline kunagi ei valdanud.

Seotud artiklid