Korrezzjoni: OpenVPN ma setax jaqra l-isem tal-utent Auth mill-input standard
L-iżball «could not read Auth username from stdin» ta' OpenVPN huwa falliment lokali tal-input. Agħti lis-servizz sors ta' credenzjali li jista' jinqara; script-security m'għandux x'jaqsam.
could not read Auth username from stdin jidher bħala problema ta' awtentikazzjoni u mhuwiex. OpenVPN ipprova jitlob l-isem tal-utent mill-input standard, ma sab xejn li jista' jinqara u waqaf qabel ma qatt ikkuntattja lis-server. Il-kont jista' jkun validu għal kollox; il-proċess sempliċement m'għandux lil min jistaqsi.
Għalhekk l-ewwel pass utli huwa li tikkonferma x'qed jaqra l-klijent, mhux li terġa' tipprova l-konnessjoni jew tibdel is-settings fuq in-naħa tas-server. Għaddi mill-verifiki hawn taħt bl-ordni u waqaf fl-ewwel waħda li tfalli.
Aqra l-iżball bħala falliment lokali tal-input
Meta auth-user-pass jidher mingħajr argument ta' fajl, il-klijent jistenna li jistaqsi. F'shell interattiva dik it-talba taħdem għax il-proċess għandu terminal. Taħt systemd, xogħol cron jew container, l-input standard normalment ikun vojt, u l-qari jerġa' lura minnufih bl-iżball li qed tara.
Il-messaġġ isemmi wkoll il-qasam li falla, isem tal-utent jew password, li juri kemm wasal il-qari. Isem tal-utent nieqes ifisser li l-proċess ma setax jaqra xejn. Password nieqes wara isem tal-utent b'suċċess ifisser li l-fluss tal-input spiċċa bejn iż-żewġ qariet, li huwa tipiku għal fajl nofsu miktub jew pajp magħluq.
Ikkonferma l-veduta tal-klijent innifsu qabel ma tibdel xejn ieħor. Mexxih fil-quddiem bl-istess konfigurazzjoni u l-istess utent, u osserva jekk tidhirx it-talba. Jekk tidher fis-shell tiegħek imma mhux taħt il-maniġer tas-servizz, id-differenza hija fis-sors tal-input, mhux fil-credenzjali. Paragun mgħaġġel bejn il-fajl unit u l-ambjent tas-shell tiegħek normalment juri liema minnhom jipprovdi terminal.
Agħti lis-servizz sors ta' credenzjali appoġġjat
Is-sors appoġġjat għat-tħaddim mingħajr superviżjoni huwa fajl ta' credenzjali mgħoddi bħala argument lil auth-user-pass. Il-fajl jinqara bħala test sempliċi: l-ewwel linja hija l-isem tal-utent, it-tieni hija l-password. Urih b'pass assolut bħal /etc/openvpn/client/creds , sabiex id-direttorju tax-xogħol tal-kont tas-servizz ma jistax ibiddel it-tifsira tad-direttiva.
Il-permessi huma importanti daqs il-pass. Il-fajl irid ikun jinqara mill-kont li jmexxi l-klijent u mhux minn kulħadd, u għandu jkun proprjetà tal-kont tas-servizz jew ta' root b'grupp li jinkludi s-servizz. Iċċekkja l-qari bħala dak il-kont, mingħajr ma tipprintja l-kontenut.
Pass relattiv huwa l-mod ta' falliment sieket. Il-profil jista' jkun f'direttorju wieħed filwaqt li systemd jibda l-proċess f'post ieħor, għalhekk fajl li jiġi riżolt fis-shell tiegħek ma jiġix riżolt għas-servizz. Mexxi l-credenzjali f'post fiss u irreferi għalihom b'mod assolut. Imbagħad ibda s-servizz darba u kkonferma li jintuża l-istess pass, minflok ma tafda l-veduta tal-editur tal-profil.
Jekk l-iskjerament jeħtieġ kodi ta' darba jew sfida interattiva oħra, iddeċiedi jekk il-fluss tax-xogħol tal-klijent tassew jappoġġjah mingħajr superviżjoni. Fajl b'password statika ma jistax iwieġeb kodi li jdur, u li terġa' tipprova talba li ma tistax tiġi mwieġba ma żżid ebda informazzjoni.
Għaliex script-security mhux se jgħin
script-security jikkontrolla jekk il-klijent jistax imexxi scripts u kemm jista' jgħaddi lilhom, inkluż jekk password tistax tingħata lil script permezz ta' varjabbli tal-ambjent. M'għandu xejn xi jgħid dwar minn fejn jiġu l-isem tal-utent u l-password.
Li tlugħu għal livell ogħla huwa rifless komuni għax il-messaġġ isemmi Auth, imma jbiddel il-permessi tal-scripts minflok is-sors tal-input, u jwessa' dak li l-klijent jista' jesegwixxi. Jekk script awżiljarja hija parti mid-disinn, l-ewwel sewwi s-sors tal-input u żżommx il-livell tas-sigurtà fl-inqas valur li jeħtieġ l-iskjerament.
L-interfaċċja tal-maniġment hija alternattiva leġittima. Frontend jista' jikkonnettja magħha, jirċievi t-talba tal-credenzjali u jwieġeb bl-isem tal-utent u l-password, hekk jaħdmu xi GUI. Jekk tużaha, orbotaha ma' indirizz lokali, ipproteġiha b'fajl tal-password tal-maniġment u illimita min jista' jikkonnettja, għax hija kanal ta' kontroll għall-klijent.
Ivverifika l-istadju li jmiss wara li l-klijent jaqra l-fajl
Ladarba l-klijent ikun jista' jaqra l-credenzjali, il-falliment li jmiss huwa skambju veru mas-server, u l-messaġġ tiegħu għandu tifsira differenti. Falliment ta' awtentikazzjoni f'dak l-istadju jfisser li s-server irrifjuta l-kont; tweġiba ta' sfida tfisser li s-server irid fattur ieħor. Ittrattahom bħala problemi ġodda u mhux bħala l-istess problema ripetuta.
Ittestja l-pass kollu kif se jmexxih is-servizz: l-istess kont, l-istess direttorju tax-xogħol, l-istess ambjent unit. Konnessjoni li taħdem biss meta tinbeda mis-shell tiegħek hija sinjal li varjabbli tal-ambjent jew terminal għadhom parti mill-fluss.
Imbagħad żomm is-sigrieti fejn jixirqilhom. Il-passwords fl-argumenti tal-linja tal-kmand jidhru fit-tabella tal-proċessi, u l-passwords fl-output tad-debug jispiċċaw fit-tickets. Uża fajl protett jew l-interfaċċja tal-maniġment, żomm il-logs f'livell li ma jirrepetix il-credenzjali, u dawwar il-fajl meta jitlaq xi ħadd li għandu aċċess.
Lista ta' verifika: pass assolut tal-credenzjali, jinqara bħala kont tas-servizz, l-ebda terminal meħtieġ, script-security miżmum fil-minimu tiegħu, interfaċċja tal-maniġment biss jekk marbuta u awtentikata, u r-risposta tas-server li tirriżulta trattata bħala avveniment separat.