OpenVPN gibt beim Start eine Warnung aus, die auth-nocache empfiehlt, und die verlockende Reaktion ist, die Option hinzuzufügen und zuzusehen, wie die Zeile verschwindet. Dieser Rat setzt eine interaktive Anmeldung voraus. Sobald Benutzername und Passwort in einer Datei liegen, ändert sich der Vergleich: Die Option schützt die dauerhafte Kopie nicht mehr, und auf einem Client, der Privilegien abgibt, kann sie später die Neuverhandlung brechen. Zwei Speichermodelle sollte man auseinanderhalten, bevor man ein Profil bearbeitet.

Zwei Wege, die Anmeldedatenabfrage zu beantworten

Das erste Modell ist ein Mensch, der Anmeldedaten in ein Terminal tippt, oder eine Verwaltungsoberfläche, die sie für die Sitzung hält. OpenVPN behält diese Kopie, um die nächste Neuverhandlung zu beantworten, ohne erneut zu fragen, und genau darum geht es in der Warnung. Auf der Festplatte ist nichts beteiligt, also ist das Einzige, was zu schützen ist, der Prozess, der den Wert hält. Schließe den Client, und die Kopie ist mit ihm weg.

Das zweite Modell ist auth-user-pass , das auf eine Datei zeigt, wobei die Datei der Speicher ist und der Client sie liest, wenn ein Wert gebraucht wird. Die Exposition, auf die es hier ankommt, ist nicht der Prozessspeicher, sondern die Rechte und der Eigentümer dieser Datei. Die Startwarnung stammt von den Direktiven in der Konfiguration, nicht von einer Prüfung, wie du das Passwort bereitstellst, also erscheint sie in beiden Modellen und zeigt auf keines.

Der Rest dieses Vergleichs folgt aus dieser Trennung: Speicherbehandlung für das eine Modell, Dateibehandlung und Prozessidentität für das andere.

Was auth-nocache tatsächlich verwirft

Bei einer interaktiven Anmeldung --auth-nocache entfernt die gespeicherte Kopie aus dem Speicher, nachdem sie benutzt wurde. Der Preis ist eine neue Abfrage bei jedem Neuverhandlungsintervall, weil die nächste Runde nicht wiederverwenden kann, was verworfen wurde.

Bei einer dateigestützten Anmeldung kann der Client die Datei erneut lesen, sodass das Verwerfen meist unsichtbar bleibt. Sichtbar wird es an der einen Stelle, an der niemand es erwartet: nachdem der Daemon Privilegien abgegeben hat, wenn die Anmeldedatendatei für das Konto nicht lesbar ist, unter dem er jetzt läuft.

Füge die Option hinzu, weil du diesen Tausch verstehst, nicht weil eine Warnung erschien. Eine Option, die hinzugefügt wird, um ein Log leiser zu machen, ist eine Option, deren Wirkung niemand gemessen hat.

Wo der dateigestützte Weg bricht

Ein Client, der als root startet, um das Tunnelgerät zu öffnen, und dann zu user und group wechselt, liest die Anmeldedatendatei zweimal: einmal vor dem Wechsel, einmal bei der folgenden Neuverhandlung. Hat die Datei Modus 600 und gehört root, schlägt der zweite Lesevorgang fehl, und der Fehler zeigt sich eine Stunde später als Authentifizierungsfehler, der wie ein Serverproblem aussieht. Prüfe das Client-Log rund um das Neuverhandlungsintervall und dann Konto und Datei zusammen.

stat -c '%a %U:%G' /etc/openvpn/client.creds
ps -o user:12,args -C openvpn | head

Beide Zeilen sind wichtig. Die erste sagt dir, wer die Datei lesen kann, die zweite sagt dir, wer der laufende Daemon tatsächlich ist, und eine Abweichung zwischen beiden erklärt einen Fehler, den kein erneutes Eintippen des Passworts behebt.

Die praktischen Korrekturen sind unglamourös: Verschiebe die Datei in ein Verzeichnis und zu einem Eigentümer, die das Konto des Daemons lesen kann, oder behalte den privilegierten Lesevorgang und bestätige, dass dein Client nur einmal liest. Löse es nicht, indem du die Datei für alle lesbar machst.

Der Fall, der die Option wirklich will

Eine Anmeldung mit Einmalcode will auth-nocache aus einem anderen Grund. Ein Einmalcode wird durch die erste Authentifizierung verbraucht, also ist eine zwischengespeicherte Kopie bei der nächsten Neuverhandlung nutzlos, und ein veralteter Wert könnte sogar erneut abgespielt werden.

Das ist eine Frage des Anmeldedatentyps, nicht des Speicherorts. Ein statisches Passwort in einer geschützten Datei hat das umgekehrte Profil: Es muss bei jeder Neuverhandlung lesbar sein, und der Schutz, den du brauchst, liegt auf der Datei.

Halte diese beiden Gründe in den Profilkommentaren getrennt, sonst nimmt der nächste Administrator an, die Option sei aus dem Grund da, den er selbst gewählt hätte.

Der Vergleich in einer Entscheidung

Wähle das interaktive Modell, wenn ein Mensch anwesend ist und Frische zählt, und akzeptiere die wiederholte Abfrage als Preis. Wähle das Dateimodell, wenn der Client unbeaufsichtigt läuft, und stecke die Mühe stattdessen in Eigentümer, Modus und Privilegienabgabe.

Keines der Modelle macht ein gespeichertes Passwort für sich sicher, und keines macht die Startwarnung bedeutsam.

Wenn die Warnung der einzige Grund war, das Profil zu öffnen, halte die Entscheidung fest statt einer unerklärten Option: Anmeldedaten kommen aus einer Datei, die das Konto des Daemons lesen kann, eine Neuverhandlung wurde erfolgreich gesehen, und der Abschnitt in der OpenVPN 2.6-Dokumentation zur Neuverhandlung wurde gelesen, bevor ihr Intervall geändert wurde. Diese Notiz überlebt jedes einzelne Flag.

Ähnliche Artikel