OpenVPN küsib privaatvõtme paroolifraasi kohalikus masinas, mistõttu töötav sisselogimisfail ei vasta sellele kunagi. Teenusel pole terminali, kuhu kirjutada, ja käivitamine kas hangub või ebaõnnestub journali kirjega, mis nimetab sisendi, mitte põhjuse. Mängus on kaks saladust ja kumbki vajab enne unit’i taaskäivitamist oma loetavat allikat. Allpool olev käik eraldab need ja kontrollib seejärel identiteeti, mis iga faili tegelikult avab.

Eristage kahte päringut

Võtme paroolifraas dekrüpteerib kohaliku privaatvõtme; konto volitused autentivad sessiooni serveriga. Need tulevad eri kohtadest, ebaõnnestuvad eri hetkedel ja annavad eri teateid. Nende segamine saadab inimesed parooli lähtestamist otsima, kuigi kontot polnud üldse mängus. Lugege päringu teksti enne mis tahes valiku muutmist, sest sõnastus on ainus usaldusväärne vihje, milline saladus puudub.

Community OpenVPN 2.x puhul osutab askpass failile, mis hoiab võtme paroolifraasi esimesel real, ja auth-user-pass failile, kus kasutajanimi on ühel real ja parool järgmisel. Kumbki fail ei rahulda teist valikut. Töölauarakendus või NetworkManageri profiil võib hoida mõlemat oma saladuste hoidlas, mida käsureaklient kunagi ei loe, seega märkige üles, millist klienti konfigureerite, enne kui kirjutate ükskõik millise tee.

Suunake mõlemad valikud loetavatele failidele

Profiil, mis vajab mõlemat sisendit, jõuab kolme failiviiteni: krüpteeritud võti, selle avav paroolifraas ja sisselogimispaar. Lisage need CA-d ja identiteedikontrolle puutumata, sest need otsustavad, kes on server, ja ei kuulu selle probleemi juurde. Kui juurutus ei kasuta konto volitusi üldse, loob auth-user-pass sisendi, mida keegi pakkuda ei saa.

key /etc/openvpn/client/office.key
askpass /etc/openvpn/client/office-key.pass
auth-user-pass /etc/openvpn/client/office-login.auth

Palja argumendita valikud käituvad teisiti kui teedega valikud, ja teenuses on see vahe oluline. askpass ilma argumendita loeb endiselt konsooli, ja ainult kasutajanimega auth-user-pass fail jätab endiselt parooliküsimuse ootele. Kui klient demoniseerub, ei saa ta terminalilt üldse sisendit küsida, seega nii konfigureeritud teenus ei tõuse.

Absoluutsed teed kõrvaldavad töökataloogi küsimuse, kuid ei anna ligipääsu. Järgnevad omand, režiim ja läbimine, ja kõiki kolme kontrollitakse konto vastu, mille all protsess töötab.

Lugege unit’i konfiguratsiooni enne profiili

Millise konfiguratsiooni instants laadib, otsustab unit, mitte fail, mida redigeerisite. Lugege selle käsurida ja kõiki drop-ine, seejärel järgige töökataloogi profiilini, mida tegelikult kasutatakse. Teise .ovpn faili lisatud paroolifraasi viide ei muuda selle instantsi jaoks midagi.

Kolm ainult lugemiseks mõeldud käsku vastavad suuremale osale. Esimene trükib unit’i ja kõik drop-inid, teine identiteedi ja protsessi piiravad sandboxi seaded, kolmas aga selle, mille üle viimane käivitus tegelikult kurtis. Kasutage instantsi nime, mis hostis olemas on:

systemctl cat [email protected]
systemctl show [email protected] -p User -p Group -p WorkingDirectory -p ProtectHome
journalctl -u [email protected] -b

Pöörake tähelepanu ProtectHome-le ja profiili enda valikutele user, group ja chroot. Kodukataloogi all olev fail võib olla teie shellis loetav ja teenuse sees nähtamatu, kui kodukataloogid peidetakse. Konto, millega systemd käivitub, pole alati see konto, mis võtme lõpuks avab.

Tõestage, et käitusaegne identiteet suudab mõlemad failid avada

Režiimi lugemisest ei piisa, sest iga kataloog teel peab olema sama identiteedi jaoks läbitav. Käige tee komponenthaaval läbi ja proovige seejärel avamist protsessi kasutatava kontona. Režiimiga 600 root-omanduses fail töötab ainult seni, kuni protsess on veel root, mis ei kehti pärast paljude profiilide tehtavat õiguste langetamist. Kaks käsku katavad läbimise ja avamise:

namei -l /etc/openvpn/client/office-key.pass
sudo -u openvpn test -r /etc/openvpn/client/office-key.pass && echo readable

Esimene käsk trükib iga komponendi režiimi ja ebaõnnestub seal, kus konto läbida ei saa; teine vastab ainsale olulisele küsimusele, kas käitusaegne identiteet suudab faili lugemiseks avada. Kumbki ei trüki faili sisu, ja see ongi mõte, kui failis on paroolifraas. Korrake testi sisselogimisfaili jaoks, sest neid hoitakse sageli erineva omandiga.

Kui protsess kasutab chroot’i või piiratud namespace’i, käivitage sama test selle vaate seest, muidu kirjeldab vastus vale failisüsteemi. Peidetud kodukataloogi alla salvestatud paroolifraas on tavaline näide testist, mis läbib väljaspool unit’it ja ebaõnnestub selle sees.

Kontrollige esimest käivitust, seejärel taasühendust

Käivitage instants üks kord ja lugege esimest, mitte viimast tõrget. Puuduv sisendfail, ebaõnnestunud võtme dekrüpteerimine ja serveripoolne AUTH_FAILED on kolm erinevat sündmust kolme erineva parandusega. Õiguste hoiatuse parandamine ei tõesta midagi selle kohta, kas võti avati.

Journali rida ütleb, milline kolmest teil on. Parandus tuleneb sellest, milline sisend ebaõnnestus:

What the journal showsWhich input failedWhere to look
A path that cannot be openedThe file the profile namesAskpass or login path, and the unit's working directory
A key decryption errorThe key passphraseFirst line of the askpass file, and read access for the runtime identity
AUTH_FAILED from the serverThe account credentialsLogin file contents, and whether the account is still valid

Seejärel testige elutsüklit, mida tegelikult vajate: käivitust bootimisel ja iga toetatud taasühendust, mitte ainult käsitsi käivitust teie shellist. auth-nocache korral jäetakse sisendid pärast esimest kasutust kõrvale, seega hilisem taasühendus vajab endiselt loetavat allikat. Töölaua sisselogimisel avatav võtmehoidja pole saadaval teenusele, mis käivitus enne, kui keegi sisse logis, ja see on tavaline põhjus, miks käsitsi test läbib ja taaskäivitus ebaõnnestub. Kui esimene käivitus õnnestub ja hilisem taasühendus ebaõnnestub, lugege journalist taasühenduse sündmust enne, kui õigusi uuesti muudate.

Paroolifraasi hoidmine võtme kõrval vähendab seda, mida krüpteerimine teile annab, seega piirake seda faili ja selle varukoopiaid. Võtme paroolifraasi eemaldamine on eraldi volituste otsus, mitte puuduva sisendi parandus. Juurutus, mis sõltub inimkinnitusest või interaktiivsest MFA-st, vajab oma toetatud agenti või haldusintegratsiooni; alaliselt salvestatud ühekordne kood ei ole samaväärne asendus.

Seotud artiklid