OpenVPN čeka systemd zahtjev za lozinku: treba li odgovoriti?
systemd upit za lozinku zahtjev je usluge, a ne presuda pristupnika. Odredite koji se tajni podatak traži i tko treba odgovoriti.
U terminalu se pojavljuje poruka o systemd-tty-ask-password-agent, a tunel nije podignut. Zavodljivo čitanje je da je VPN odbio lozinku i da nešto sada čeka ispravak. Točnije je reći da je usluga zatražila od systemda interaktivni unos i da zahtjev još nije odgovoren. Koja je usluga pitala i koji tajni podatak želi — dva su pitanja koja možete riješiti prije nego što išta upišete.
Tko treba odgovoriti odlučuju dva uvjeta
Prvi je uvjet jeste li ovu instancu pokrenuli namjerno. Zahtjev koji slijedi nakon vaše radnje vaš je za odgovor, a onaj koji se pojavi bez odgovarajuće radnje pripada nečemu drugom. Drugi je je li tajni podatak provjera identiteta računa ili zaštita ključa, jer to živi na različitim mjestima i prolazi različitim putanjama koda. Oba odgovora vidljiva su u dnevniku ako pogledate prije nego što djelujete.
Kada su oba odgovora jasna, odluka je jednostavna: odgovorite kroz vlastiti podržani put upita te usluge. Kada je bilo koji nejasan, ispravan je potez istražiti, a ne upisati lozinku u upit koji ne možete pripisati.
To je cijelo pravilo i vrijedi ga izreći prije naredbi. Sve niže slijedi iz njega.
Popišite zahtjev prije nego što išta upišete
Agent može nabrojiti što je na čekanju bez odgovaranja na bilo što. sudo systemd-tty-ask-password-agent --list ispisuje neriješene zahtjeve, a taj je ispis dokaz koji vam treba da povežete upit s jedinicom. Pročitajte ga prije nego što date vjerodajnicu i držite opise zahtjeva izvan svakog javnog dijagnostičkog zalijepka.
Povežite popis s radnjom koju ste započeli i s jedinicom koja ju posjeduje. Ako ništa na popisu ne odgovara vašoj radnji, upit koji ste vidjeli pripada drugoj usluzi i nije vaš za rješavanje. Naziv jedinice na popisu jedina je pouzdana veza između upita i usluge.
Ne odgovarajte na zahtjev koji ne možete pripisati. Cijena čekanja je odgoda, a cijena odgovora na pogrešan upit je vjerodajnica na pogrešnom mjestu.
Koji tajni podatak instanca zapravo treba?
auth-user-pass odnosi se na provjeru identiteta računa prema VPN usluzi i bez datoteke vjerodajnica dokumentirano je ponašanje pitati na konzoli. askpass umjesto toga pribavlja lozinku koja otključava zaštićeni ključni materijal i to čini prije nego što proces prijeđe u pozadinu. To su različiti tajni podaci različitog trajanja.
Formati datoteka također se razlikuju. Obrazac za račun očekuje redak korisničkog imena i redak lozinke, dok datoteka lozinke ključa čita prvi redak kao svoju lozinku. Kopiranje recepta za datoteku vjerodajnica iz druge uloge obično proizvede još jedan upit umjesto rješenja. Datoteka pogrešnog oblika gora je od nikakve datoteke, jer se kvar seli na mjesto koje nitko ne nadzire.
Provjerite koju direktivu instanca koristi prije nego što odlučite što upisati. Naziv direktive govori vam za koji je tajni podatak upit.
Što --query čini a --list ne čini
--query obrađuje svaki zahtjev na čekanju na terminalu koji ga poziva, što je mnogo šira radnja od odgovora na jedan upit. To nije OpenVPN birač i na zauzetom stroju može odgovoriti na zahtjeve drugih jedinica. Način promatranja još je širi, jer nastavlja obrađivati zahtjeve kako pristižu.
Upotrijebite najuži mehanizam koji radi. Za jednu uslugu vlastiti tijek upita te usluge uži je od globalnog agenta i drži odgovor vezan uz jedinicu koja je pitala.
Pretvaranje jednokratnog zahtjeva u nenadzirani globalni agent zato što se obavijest jednom pojavila način je na koji privremena smetnja postaje trajni dizajn. Isti oprez vrijedi za isključivanje jedinica obavijesti o lozinki na cijelom hostu.
Odlučite, pa zabilježite izbor
Za nenadzirano uvođenje uskladite izvor vjerodajnica, dopuštenja datoteke i raspored obnove s onim tko posjeduje vezu. Interaktivni drugi faktor može trebati osobu ili namjenski identitet usluge. Potiskivanje upita ne proizvodi tu provjeru identiteta, a uklanjanje auth-user-pass samo kvari uslugu kojoj je potreban.
Nakon interakcije pogledajte istu instancu za njezin sljedeći događaj i testirajte privatni resurs. Ako ništa nije na čekanju, vratite se stanju instance umjesto da pokrećete svaku OpenVPN jedinicu na hostu.