could not read Auth username from stdin näeb välja nagu autentimisprobleem, aga ei ole. OpenVPN proovis kasutajanime standardsisendist küsida, ei leidnud midagi loetavat ja peatus enne, kui jõudis serveriga ühendust võtta. Konto võib täiesti kehtiv olla; lihtsalt protsessil pole kedagi küsida.

Seepärast on esimene mõistlik samm kinnitada, mida klient loeb, mitte ühendust uuesti proovida ega serveripoolseid seadeid muuta. Käige allolevad kontrollid järjekorras läbi ja peatuge esimese juures, mis ebaõnnestub.

Lugege viga lokaalse sisenditõrkena

Kui auth-user-pass ilmub ilma failiargumendita, ootab klient küsimust. Interaktiivses kestas see küsimus toimib, sest protsessil on terminal. systemd, cron-töö või konteineri all on standardsisend tavaliselt tühi ja lugemine naaseb kohe veaga, mida näete.

Sõnum nimetab ka välja, mis ebaõnnestus, kasutajanime või parooli, mis näitab, kui kaugele lugemine jõudis. Puuduv kasutajanimi tähendab, et protsess ei suutnud üldse midagi lugeda. Puuduv parool pärast edukat kasutajanime tähendab, et sisendvoog lõppes kahe lugemise vahel, mis on tüüpiline pooleldi kirjutatud faili või suletud toru puhul.

Kinnitage kliendi enda vaade enne, kui midagi muud muudate. Käivitage see esiplaanil sama konfiguratsiooni ja sama kasutajaga ning jälgige, kas küsimus ilmub. Kui see ilmub teie kestas, aga mitte teenusehalduri all, on erinevus sisendiallikas, mitte mandaadid. Kiire võrdlus unit-faili ja teie kesta keskkonna vahel näitab tavaliselt, kumb terminali pakub.

Andke teenusele toetatud mandaatide allikas

Toetatud järelevalveta allikas on mandaadifail, mis antakse argumendina auth-user-pass-le. Faili loetakse lihttekstina: esimene rida on kasutajanimi, teine on parool. Osutage sellele absoluutse teega, näiteks /etc/openvpn/client/creds , et teenusekonto töökataloog ei saaks direktiivi tähendust muuta.

Õigused on sama olulised kui tee. Fail peab olema loetav kontole, mis klienti käivitab, ja mitte kõigile teistele, ning see peaks kuuluma teenusekontole või rootile koos grupiga, mis teenust hõlmab. Kontrollige loetavust selle kontona, ilma sisu välja printimata.

Relatiivne tee on vaikne tõrkerežiim. Profiil võib olla ühes kataloogis, samal ajal kui systemd käivitab protsessi mujal, nii et fail, mis teie kestas laheneb, ei lahene teenuse jaoks. Viige mandaadid fikseeritud kohta ja viidake neile absoluutselt. Seejärel käivitage teenus korra ja kinnitage, et kasutatakse sama teed, selle asemel et usaldada profiiliredaktori vaadet.

Kui juurutamine nõuab ühekordset koodi või muud interaktiivset väljakutset, otsustage, kas kliendi töövoog seda tõesti järelevalveta toetab. Staatilise parooliga fail ei suuda vastata pöörlevale koodile ja vastamatu küsimuse kordamine ei lisa infot.

Miks script-security ei aita

script-security juhib, kas klient tohib skripte käivitada ja kui palju ta neile edastada tohib, sealhulgas seda, kas parooli saab keskkonnamuutuja kaudu skriptile anda. See ei ütle midagi selle kohta, kust kasutajanimi ja parool üldse tulevad.

Selle tõstmine kõrgemale tasemele on tavaline refleks, sest sõnum mainib Authi, kuid see muudab skriptiõigusi, mitte sisendiallikat, ja laiendab seda, mida klient tohib käivitada. Kui abiskript on disaini osa, parandage esmalt sisendiallikas ja hoidke turvataset madalaima väärtuse juures, mida juurutamine vajab.

Haldusliides on legitiimne alternatiiv. Front-end saab sellega ühenduda, mandaadipäringu vastu võtta ja vastata kasutajanime ja parooliga, nii töötavad mõned GUI-d. Kui te seda kasutate, siduge see kohaliku aadressiga, kaitske haldusparooli failiga ja piirake, kes saab ühenduda, sest see on kliendi juhtimiskanal.

Kontrollige järgmist etappi pärast seda, kui klient on faili lugenud

Kui klient saab mandaate lugeda, on järgmine tõrge tõeline vahetus serveriga ja selle sõnumil on teine tähendus. Autentimistõrge selles etapis tähendab, et server lükkas konto tagasi; väljakutsevastus tähendab, et server soovib teist faktorit. Käsitlege neid uute probleemidena, mitte sama asja kordusena.

Testige kogu teed nii, nagu teenus seda käivitab: sama konto, sama töökataloog, sama unit-keskkond. Ühendus, mis töötab ainult teie kestast käivitamisel, on märk sellest, et keskkonnamuutuja või terminal on endiselt voo osa.

Seejärel hoidke saladusi seal, kuhu need kuuluvad. Käsurea argumentides olevad paroolid ilmuvad protsessitabelis ja silumisväljundis olevad paroolid jõuavad piletitesse. Kasutage kaitstud faili või haldusliidest, hoidke logisid tasemel, mis mandaate ei korda, ja vahetage fail, kui keegi juurdepääsuga lahkub.

Kontroll-loend: absoluutne mandaatide tee, loetav teenusekontona, terminali pole vaja, script-security jäetud miinimumi, haldusliides ainult siis, kui see on seotud ja autenditud, ning saadud serverivastust käsitletakse eraldi sündmusena.

Seotud artiklid