OpenVPN čaká na žiadosť systemd o heslo: máte odpovedať?
Výzva systemd na zadanie hesla je žiadosť služby, nie rozsudok brány. Určite, ktoré tajomstvo sa žiada a kto má odpovedať.
V termináli sa objaví správa o systemd-tty-ask-password-agent a tunel nie je nadviazaný. Lákavé čítanie je, že VPN odmietla heslo a niečo teraz čaká na opravu. Presnejšie je povedať, že služba požiadala systemd o interaktívny vstup a že žiadosť zatiaľ nebola zodpovedaná. Ktorá služba sa pýtala a ktoré tajomstvo chce, sú dve otázky, ktoré môžete vyriešiť skôr, než čokoľvek napíšete.
Kto má odpovedať, rozhodujú dve podmienky
Prvá podmienka je, či ste túto inštanciu spustili zámerne. Žiadosť, ktorá nasleduje po vašej akcii, je vaša na zodpovedanie, a tá, ktorá sa objaví bez zodpovedajúcej akcie, patrí niečomu inému. Druhá je, či je tajomstvom overenie účtu alebo ochrana kľúča, pretože to žije na rôznych miestach a ide rôznymi cestami kódu. Obe odpovede sú viditeľné v žurnále, keď sa pozriete pred konaním.
Keď sú obe odpovede jasné, rozhodnutie je jednoduché: odpovedzte vlastnou podporovanou cestou výzvy danej služby. Keď je niektorá nejasná, správnym krokom je vyšetriť, nie napísať heslo do výzvy, ktorú nedokážete priradiť.
To je celé pravidlo a stojí za to ho vysloviť pred príkazmi. Všetko nižšie z neho vyplýva.
Vypíšte žiadosť, skôr než čokoľvek napíšete
Agent dokáže vypísať, čo čaká, bez toho, aby na čokoľvek odpovedal. sudo systemd-tty-ask-password-agent --list vypíše nevybavené žiadosti a tento výstup je dôkaz, ktorý potrebujete na spojenie výzvy s jednotkou. Prečítajte si ho, skôr než poskytnete prihlasovacie údaje, a popisy žiadostí držte mimo každého verejného diagnostického vloženia.
Spojte výpis s operáciou, ktorú ste začali, a s jednotkou, ktorá ju vlastní. Ak nič vo výpise nezodpovedá vašej akcii, výzva, ktorú ste videli, patrí inej službe a nie je vaša na vyriešenie. Názov jednotky vo výpise je jediné spoľahlivé spojenie medzi výzvou a službou.
Neodpovedajte na žiadosť, ktorú nedokážete priradiť. Cenou čakania je oneskorenie, zatiaľ čo cenou odpovede na nesprávnu výzvu sú prihlasovacie údaje na nesprávnom mieste.
Ktoré tajomstvo inštancia skutočne potrebuje?
auth-user-pass sa týka overenia účtu voči službe VPN a bez súboru s prihlasovacími údajmi je dokumentované správanie opýtať sa na konzole. askpass namiesto toho získa prístupovú frázu, ktorá odomyká chránený kľúčový materiál, a urobí tak predtým, než sa proces prepne do pozadia. To sú rôzne tajomstvá s rôznou životnosťou.
Líšia sa aj formáty súborov. Forma pre účet očakáva riadok s používateľským menom a riadok s heslom, zatiaľ čo súbor s prístupovou frázou kľúča číta prvý riadok ako svoje heslo. Skopírovanie receptu na súbor s prihlasovacími údajmi z druhej roly zvyčajne vytvorí ďalšiu výzvu namiesto riešenia. Súbor s nesprávnym tvarom je horší ako žiadny súbor, pretože zlyhanie sa presunie na miesto, ktoré nikto nesleduje.
Skôr než sa rozhodnete, čo napísať, skontrolujte, ktorú direktívu inštancia používa. Názov direktívy vám povie, pre ktoré tajomstvo výzva je.
Čo robí --query a čo --list nerobí
--query spracuje každú čakajúcu žiadosť na volajúcom termináli, čo je omnoho širšia akcia než odpoveď na jednu výzvu. Nie je to prepínač OpenVPN a na vyťaženom stroji môže odpovedať na žiadosti patriace iným jednotkám. Režim sledovania je ešte širší, pretože ďalej spracúva žiadosti, ako prichádzajú.
Použite najužší mechanizmus, ktorý funguje. Pre jednu službu je vlastný postup výzvy tejto služby užší než globálny agent a drží odpoveď pripojenú k jednotke, ktorá sa pýtala.
Premena jednorazovej žiadosti na neobsluhovaného globálneho agenta len preto, že sa raz objavilo oznámenie, je spôsob, akým sa dočasná otravnosť stane trvalým dizajnom. Rovnaká obozretnosť platí pri vypnutí jednotiek oznámenia o hesle na celom hostiteľovi.
Rozhodnite a potom voľbu zaznamenajte
Pri neobsluhovanom nasadení zlaďte zdroj prihlasovacích údajov, oprávnenia súboru a plán obnovy s tým, kto vlastní pripojenie. Interaktívny druhý faktor môže potrebovať človeka alebo vyhradenú identitu služby. Potlačenie výzvy túto autentifikáciu nevytvorí a odstránenie auth-user-pass len pokazí službu, ktorá ho potrebuje.
Po interakcii sa pozrite na tú istú inštanciu kvôli jej ďalšej udalosti a otestujte súkromný prostriedok. Ak nič nečaká, vráťte sa k stavu inštancie namiesto spúšťania každej jednotky OpenVPN na hostiteľovi.