Korrektur: OpenVPN konnt den Auth-Benotzernumm net aus der Standardagab liesen
D'Fehlermeldung «could not read Auth username from stdin» vum OpenVPN ass e lokale Feeler bei der Agab. Gitt dem Service eng liesbar Quell vu Umeldungsdaten; script-security huet domat näischt ze dinn.
could not read Auth username from stdin gesäit aus wéi e Problem mat der Authentifizéierung an ass et net. OpenVPN huet probéiert de Benotzernumm iwwer d'Standardagab ze froen, huet näischt Liesbares fonnt a gestoppt, ier et iwwerhaapt de Server kontaktéiert huet. De Kont ka vollkommen gülteg sinn; dem Prozess feelt einfach een, deen en froe kann.
Dofir ass den éischte nëtzleche Schrëtt ze bestätegen, wat de Client liest, an net d'Verbindung nach eng Kéier ze probéieren oder d'Astellunge beim Server ze änneren. Gitt déi ënne Kontrollen an der Rei duerch a stoppt bei der éischter, déi feelt.
Liest de Feeler als lokale Feeler bei der Agab
Wann auth-user-pass ouni Dateiargument erschéngt, erwaart de Client eng Frot. An enger interaktiver Shell funktionéiert déi Frot, well de Prozess en Terminal huet. Ënner systemd, engem Cron-Job oder engem Container ass d'Standardagab meeschtens eidel, an d'Liesen kënnt direkt mat deem Feeler zréck, deen Dir gesitt.
D'Meldung nennt och d'Feld, dat feelt, Benotzernumm oder Passwuert, wat weist, wéi wäit d'Liese komm ass. Eng feelend Benotzernumm heescht, datt de Prozess iwwerhaapt näischt liese konnt. En feelend Passwuert no enger erfollegräicher Benotzernumm heescht, datt den Agabsstroum tëscht deenen zwee Liesvorgäng opgehalen huet, wat typesch ass fir eng hallef geschriwwen Datei oder eng zougemaach Pipe.
Bestätegt d'Siicht vum Client selwer, ier Dir eppes anescht ännert. Fëllt en am Virdergrond mat der selwechter Konfiguratioun an dem selwechte Benotzer aus a kuckt, ob d'Frot erschéngt. Wann se an Ärer Shell erschéngt, awer net ënner dem Service-Manager, läit den Ënnerscheed an der Agabsquell, net an den Umeldungsdaten. En décke Verglach vun der Unit-Datei mat Ärer Shell-Ëmgebung weist meeschtens, wéi eng vun deenen zwee en Terminal bitt.
Gitt dem Service eng ënnerstëtzt Quell fir Umeldungsdaten
Déi ënnerstëtzt Quell fir onbewaachten Betrib ass eng Umeldungsdatei, déi als Argument un auth-user-pass iwwergi gëtt. D'Datei gëtt als reine Text gelies: déi éischt Linn ass de Benotzernumm, déi zweet d'Passwuert. Weist drop mat engem absolute Wee wéi zum Beispill /etc/openvpn/client/creds , sou datt den Aarbechtsverzeechnis vum Servicekont d'Bedeitung vun der Direktiv net ka änneren.
D'Berechtegungen zielen esou vill wéi de Wee. D'Datei muss vum Kont liesbar sinn, deen de Client ausféiert, an net vun alle aneren, a se soll dem Servicekont oder root gehéieren mat enger Grupp, déi de Service enthält. Kontrolléiert d'Liesbarkeet als deem Kont, ouni den Inhalt auszedrécken.
En relative Wee ass de rouege Feeler. De Profil ka an engem Verzeechnis leien, während systemd de Prozess soss start, sou datt eng Datei, déi an Ärer Shell opgeléist gëtt, fir de Service net opgeléist gëtt. Verréckelt d'Umeldungsdaten op eng fix Plaz a referenzéiert se absolut. Start de Service dann eng Kéier a bestätegt, datt dee selwechte Wee benotzt gëtt, amplaz der Siicht vum Profil-Editor ze vertrauen.
Wann d'Deployment en Eenmolcode oder eng aner interaktiv Erausfuerderung verlangt, entscheedt, ob dem Client säi Workflow dat tatsächlech onbewaacht ënnerstëtzt. Eng Datei mat engem statesche Passwuert ka kee rotéierende Code beäntweren, an eng onbeäntwert Fro nach eng Kéier ze probéieren bäisst keng Informatioun.
Firwat script-security net hëlleft
script-security kontrolléiert, ob de Client Skripte ka lafen a wéi vill en hinnen ka ginn, dorënner ob e Passwuert iwwer eng Ëmgebungsvariabel un e Skript ka ginn. Et seet näischt doriwwer, wou de Benotzernumm an d'Passwuert iwwerhaapt hierkommen.
En op eng méi héich Stuf ze setzen ass e gewéinleche Reflex, well d'Meldung Auth ernimmt, awer et ännert d'Skriptberechtegungen an net d'Agabsquell, an et erweidert, wat de Client ka ausféieren. Wann en Hëllefsskript Deel vum Design ass, repairéiert als éischt d'Agabsquell a haalt d'Sécherheetsniveau op deem niddregsten Wäert, deen d'Deployment brauch.
D'Management-Schnittstell ass eng legitim Alternativ. En Frontend ka sech domat verbannen, d'Ufro fir Umeldungsdaten empfänken an mam Benotzernumm a Passwuert äntweren, sou funktionéieren e puer GUI. Wann Dir se benotzt, bindt se un eng lokal Adress, schützt se mat enger Management-Passwuertdatei a limitéiert, wien sech ka verbannen, well se ass e Kontrollkanal fir de Client.
Verifizéiert déi nächst Stuf, nodeems de Client d'Datei gelies huet
Soubal de Client d'Umeldungsdaten liese kann, ass deen nächste Feeler en echte Austausch mam Server, an d'Meldung huet eng aner Bedeitung. En Authentifizéierungsfeeler an där Stuf heescht, datt de Server de Kont ofgeleent huet; eng Challenge-Antwert heescht, datt de Server en anere Faktor wëllt. Behandelt se wéi nei Problemer an net wéi deeselwechten erëm.
Test de ganze Wee esou, wéi de Service en ausféiere wäert: dee selwechte Kont, dat selwecht Aarbechtsverzeechnis, déi selwecht Unit-Ëmgebung. Eng Verbindung, déi nëmme funktionéiert, wann se aus Ärer Shell gestart gëtt, ass en Zeeche fir datt eng Ëmgebungsvariabel oder en Terminal nach Deel vum Ofleef ass.
Haalt d'Geheimnisser dann do, wou se gehéieren. Passwierder an Kommandozeilenargumenter erschéngen an der Prozesstabell, a Passwierder an Debug-Ausgaben enden an Ticketen. Benotzt eng geschützt Datei oder d'Management-Schnittstell, haalt d'Loggen op engem Niveau, deen d'Umeldungsdaten net widdergëtt, a rotéiert d'Datei, wann een mat Zougang fortgeet.
Checklëscht: absolute Wee vun den Umeldungsdaten, liesbar als Servicekont, keen Terminal néideg, script-security um Minimum gelooss, Management-Schnittstell nëmmen wann se gebonnen an authentifizéiert ass, an déi resultéierend Serveräntwert als eege Evenement behandelt.