Headless-OpenVPN: überwachte Sitzung oder verwalteter Dienst
OpenVPN über SSH zu starten ist eine Änderung am entfernten Netzwerk. Wählen Sie eine überwachte Sitzung oder einen selbst betriebenen Dienst und bereiten Sie Zugangsdaten samt Rückweg vor.
Wer OpenVPN über SSH startet, startet es auf der entfernten Maschine, im Ausführungskontext dieser Maschine. Das macht daraus eine Änderung am entfernten Netzwerk und nicht bloß einen entfernten Tastendruck. Die zwei sinnvollen Modi sind eine überwachte Vordergrundsitzung und ein selbst betriebener Dienst, und sie unterscheiden sich in Vorbereitung, Zugangsdaten und Fehlerverhalten.
Zwei Modi, ein Profil
Beide Modi nutzen dasselbe Profil und beide ändern das Routing auf dem Host. Unterschiedlich ist, wer beim Start anwesend ist und was nach dem Ende der Sitzung passiert.
| Mode | Useful for | What it needs |
|---|---|---|
| Supervised foreground session | A connection with a human watching and able to type | A usable terminal, a reviewed profile and recovery access |
| Managed service | An unattended lifecycle that starts without a login | Owned configuration, supported credential delivery and restart policy |
Der Vordergrundmodus ist für eine überwachte Verbindung gedacht, bei der jemand anwesend ist. Der Dienstmodus ist für eine Verbindung, die ohne angemeldeten Benutzer hochkommen soll. Beides zu mischen, indem man einen Vordergrundprozess weiterlaufen lässt und zugleich einen Dienst auf demselben Profil aktiviert, ist der häufigste selbst verursachte Bruch an dieser Stelle.
Was die Vordergrundsitzung wirklich ist
Ein Vordergrundprozess von OpenVPN soll weiterlaufen, solange der Tunnel steht. Initialization Sequence Completed heißt, dass die Initialisierung abgeschlossen ist, nicht dass Sie auf eine Rückkehr der Eingabeaufforderung warten sollen. Eine Desktop-GUI verbirgt diese lang laufende Arbeit hinter einem Fenster, und genau deshalb erwarten Leute, dass der SSH-Befehl sich genauso verhält. Tut er nicht.
Prüfen Sie den Zugriff der Anwendung getrennt. Ein belegtes Terminal und eine Logzeile beweisen weder Erfolg noch Fehler.
Was ein unbeaufsichtigter Dienst braucht
Ein Dienst startet mit eigenem Konto, eigenem Arbeitsverzeichnis und eigenen Dateisystembeschränkungen, und all das unterscheidet sich von Ihrer Shell. Verwenden Sie ausdrückliche Pfade und passende Eigentümerschaft, statt sich darauf zu verlassen, wo Sie gerade standen. Geben Sie der Unit eine Neustartrichtlinie, die Sie wirklich wollen, denn eine Verbindungsschleife ohne Backoff füllt ein Log und verärgert den Peer. Prüfen Sie dann, ob sie nach einem Neustart hochkommt und nicht erst nach Ihrer nächsten Anmeldung.
Interaktive MFA bricht den unbeaufsichtigten Fall konstruktionsbedingt. Wenn das Profil einen von einer Person eingegebenen Code braucht, ist es kein unbeaufsichtigter Dienst, und ein gespeicherter Einmalcode ist kein Zugangsdaten-Design. Entscheiden Sie das bewusst, statt es beim Booten zu entdecken.
Zugangsdaten sind vier verschiedene Eingaben
OpenVPNs Handbuch trennt Konsoleneingabe, Dateien mit Zugangsdaten, Passphrasen für private Schlüssel und managementgesteuerte Interaktion. Ein Paar aus Benutzername und Passwort ist die eine Sache, die Passphrase eines verschlüsselten Schlüssels eine andere. Eine Managementschnittstelle, die Zugangsdaten auf Anfrage liefert, ist eine dritte. Wählen Sie den Mechanismus, der zu Ihrem Authentifizierungsdesign passt, statt alles in eine Datei zu schreiben, weil das einmal zufällig funktioniert hat.
Schützen Sie die Profile und Logs, die Identität oder privates Material tragen. Das Dienstkonto liest sie, und jeder mit der richtigen Gruppenmitgliedschaft ebenfalls.
Ein Eigentümer und ein Weg zurück
Bewahren Sie Ihren SSH-Administrationsweg, bevor Sie eine breite Tunnelroute aktivieren. Eine Full-Tunnel-Konfiguration mit einem Endpunkt, der stirbt, kann die Maschine unerreichbar zurücklassen, und die Reparatur erfordert dann eine Konsole, die Sie nicht eingerichtet haben. Eine genehmigte Out-of-Band-Konsole oder eine bewusste Management-Rückweg-Richtlinie ist die Versicherung.
Wählen Sie für den Routinebetrieb einen Eigentümer der Konfiguration. Ein automatischer Dienst und ein Vordergrundprozess, die um dieselben Schnittstellen, Routen und Resolver-Zustände konkurrieren, erzeugen Fehler, die wie ein Anbieterproblem aussehen. Beenden Sie einen überwachten Lauf mit seinem normalen Interrupt und einen verwalteten über seinen Manager, statt jeden Prozess namens openvpn abzuschießen.
Die Unterscheidung, die man aufschreiben sollte, ist einfach: Ein überwachter Lauf darf von Ihrer Sitzung abhängen, ein unbeaufsichtigter Dienst nicht.