OpenVPN wacht op een systemd-wachtwoordverzoek: moet je het beantwoorden?
Een systemd-wachtwoordprompt is een verzoek van een dienst, geen vonnis van de gateway. Bepaal welk geheim er gevraagd wordt en wie het moet beantwoorden.
Er verschijnt een melding over systemd-tty-ask-password-agent in de terminal, en de tunnel staat niet. De verleidelijke lezing is dat de VPN een wachtwoord heeft geweigerd en dat er nu iets op een correctie wacht. Nauwkeuriger is te zeggen dat een dienst systemd om interactieve invoer heeft gevraagd, en dat het verzoek nog niet is beantwoord. Welke dienst er vroeg, en welk geheim die wil, zijn twee vragen die je kunt oplossen voordat je iets typt.
Twee voorwaarden bepalen wie er moet antwoorden
De eerste voorwaarde is of je deze instantie bewust hebt gestart. Een verzoek dat volgt op een actie van jou is aan jou om te beantwoorden, en een dat verschijnt zonder overeenkomstige actie hoort bij iets anders. De tweede is of het geheim accountauthenticatie of sleutelbescherming is, want die leven op verschillende plekken en reizen via verschillende codepaden. Beide antwoorden zijn zichtbaar in het journaal als je kijkt voordat je handelt.
Als beide antwoorden duidelijk zijn, is de beslissing eenvoudig: antwoord via het eigen ondersteunde promptpad van de dienst. Als een van beide onduidelijk is, is de juiste stap onderzoeken in plaats van een wachtwoord typen in een prompt die je niet kunt toeschrijven.
Dat is de hele regel, en het loont om hem voor de commando's te noemen. Alles hieronder volgt eruit.
List het verzoek op voordat je iets typt
De agent kan opsommen wat er openstaat zonder iets te beantwoorden. sudo systemd-tty-ask-password-agent --list drukt de openstaande verzoeken af, en die uitvoer is het bewijs dat je nodig hebt om een prompt aan een unit te koppelen. Lees het voordat je een inloggegeven levert, en houd verzoekbeschrijvingen buiten elke openbare diagnostische plak.
Correleer de lijst met de bewerking die je bent begonnen en met de unit die hem bezit. Als niets in de lijst bij je actie past, hoort de prompt die je zag bij een andere dienst en is het niet aan jou om die op te lossen. De unitnaam in de lijst is de enige betrouwbare koppeling tussen een prompt en een dienst.
Beantwoord geen verzoek dat je niet kunt toeschrijven. De prijs van wachten is vertraging, terwijl de prijs van het verkeerde verzoek beantwoorden een inloggegeven op de verkeerde plek is.
Welk geheim heeft de instantie echt nodig?
auth-user-pass gaat over accountauthenticatie bij de VPN-dienst, en zonder inloggegevensbestand is het gedocumenteerde gedrag op de console vragen. askpass haalt in plaats daarvan de wachtwoordzin op die beschermd sleutelmateriaal ontgrendelt, en doet dat voordat het proces naar de achtergrond gaat. Dat zijn verschillende geheimen met verschillende levensduur.
De bestandsformaten verschillen ook. De accountvorm verwacht een gebruikersnaamregel en een wachtwoordregel, terwijl het sleutel-wachtwoordzinbestand de eerste regel als wachtwoord leest. Een recept voor een inloggegevensbestand van de andere rol overnemen levert meestal nog een prompt op in plaats van een oplossing. Een bestand met de verkeerde vorm is erger dan geen bestand, omdat de fout naar een plek verschuift waar niemand op let.
Controleer welke richtlijn de instantie gebruikt voordat je besluit wat je typt. De naam van de richtlijn vertelt je voor welk geheim de prompt is.
Wat --query doet wat --list niet doet
--query verwerkt elk openstaand verzoek op de aanroepende terminal, wat een veel bredere actie is dan één prompt beantwoorden. Het is geen OpenVPN-selector, en op een drukke machine kan het verzoeken beantwoorden die bij andere units horen. De bewakingsmodus is nog breder, omdat die verzoeken blijft afhandelen zodra ze binnenkomen.
Gebruik het smalste mechanisme dat werkt. Voor één dienst is de eigen promptworkflow van die dienst smaller dan een globale agent, en die houdt het antwoord gekoppeld aan de unit die vroeg.
Een eenmalig verzoek omzetten in een onbeheerde globale agent omdat er één keer een melding verscheen, is hoe een tijdelijke ergernis een permanent ontwerp wordt. Dezelfde voorzichtigheid geldt voor het uitschakelen van wachtwoordmeldingsunits op de hele host.
Beslis, en leg de keuze dan vast
Voor een onbeheerde uitrol stem je de bron van inloggegevens, de bestandsrechten en het vernieuwingsschema af met wie de verbinding bezit. Een interactieve tweede factor kan een persoon of een eigen dienstidentiteit nodig hebben. Het verzoek onderdrukken levert die authenticatie niet op, en auth-user-pass verwijderen breekt alleen een dienst die het nodig heeft.
Kijk na de interactie naar dezelfde instantie voor zijn volgende gebeurtenis en test de privébron. Als er niets openstaat, keer terug naar de instantiestatus in plaats van elke OpenVPN-unit op de host te starten.