Dieses Profil wurde 2016 geschrieben, lässt sich noch importieren und baut noch Verbindungen auf. Genau deshalb sieht niemand hinein. Der Client, der diese Anweisungen einst las, ist längst verschwunden, und der aktuelle Build kann mehrere davon anders auslegen.

Dass eine Datei überlebt, heißt nicht, dass eine Konfiguration aktuell ist. Diese beiden Vorstellungen zu trennen, ist der größte Teil der Arbeit.

Finden Sie heraus, welcher Client das Profil geschrieben hat

Beginnen Sie mit dem Herausgeber und der Version. Die Bedeutung einer Anweisung wird von der Implementierung definiert, die sie liest. Eine Zeile, die einst einen Algorithmus auswählte, kann zu einer Ausweichliste, einer Warnung oder einem harten Fehler werden. Welche Version sie auslegt, entscheidet das Ergebnis.

OpenVPN ist das klarste Beispiel. Version 2.5 führte data-ciphers ein und änderte, wie die ältere Anweisung cipher an der Aushandlung teilnimmt. Ein Profil, das nur cipher AES-128-CBC enthält, macht heute ein viel engeres Angebot, als sein Autor beabsichtigt hatte.

Lesen Sie die Versionshinweise zu der Einstellung, die jetzt warnt oder fehlschlägt. Eine Warnung im Protokoll ist eine Tatsache über den aktuellen Build und wiegt mehr als jedermanns Erinnerung daran, warum die Zeile hinzugefügt wurde.

Sehen Sie nach, was tatsächlich ausgehandelt wurde

Ein erfolgreicher Import beweist das Parsen, nicht die Richtlinie. Das ausgehandelte Ergebnis erscheint im Client-Protokoll, nachdem die Verbindung steht. Es kann sich von beiden Enden der Konfigurationsdatei unterscheiden.

# OpenVPN: what did this session agree on?
sudo journalctl -u openvpn-client@office --since '5 min ago' | grep -i 'cipher\|Data Channel'

# which directives does the profile actually carry?
grep -n -E 'cipher|auth|tls-|dh ' office.ovpn

Ein akzeptierter Import, der eine Anweisung still fallen lässt, hinterlässt ein Profil, das sich anders liest, als es sich verhält. Genau diese Lücke erklärt, wie ein als gehärtet bezeichnetes Dokument etwas Schwächeres aushandelt, als sein eigener Text behauptet. Das Protokoll ist der einzige Ort, an dem der Unterschied sichtbar wird. Lesen Sie es, bevor Sie der Datei trauen.

Aktualisieren Sie die Vereinbarung, nicht die Zeile

Nehmen Sie das vom Betreiber gepflegte Profil, statt Algorithmusnamen zusammenzustellen, bis der Import aufhört zu klagen. Zeilen nach Versuch und Irrtum hinzuzufügen, kehrt die Richtung der Korrektur um. Es passt den Client an einen unbekannten Server an, statt festzustellen, was der Server unterstützt.

Auch der Server braucht möglicherweise die koordinierte Aktualisierung. Ein aktueller Client kann keine Unterstützung für ein Angebot schaffen, das die Gegenseite nie anbietet. Keine Option auf Clientseite ersetzt ein Gateway, das nicht aktualisiert wurde.

Was nicht geopfert werden darf, ist die Überprüfung. Zertifikatsprüfungen zu entfernen, die Hostnamenprüfung abzuschalten oder Aktualisierungen abzustellen, um ein altes Profil am Leben zu halten, macht aus einem Kompatibilitätsproblem ein Vertrauensproblem. Das geschieht meist mit einer kleinen Änderung nach der anderen.

Bestätigen Sie das Ergebnis und dokumentieren Sie die Ausnahme

Prüfen Sie nach der Änderung erneut die ausgehandelte Suite und testen Sie die Ressource, für die der Tunnel existiert. Ein Profil, das aushandelt, was Sie beabsichtigt haben, und trotzdem den Dienst nicht erreicht, hat ein Routing- oder Identitätsproblem. Ein kryptografisches hat es nicht.

Bewahren Sie die vorherige bewährte Konfiguration an einem geschützten Ort auf. Ein Vergleich ist nur möglich, solange die alte Datei noch existiert.

Dokumentieren Sie jede Kompatibilitätsausnahme mit einem Verantwortlichen und einem Überprüfungsdatum. Eine vorübergehende Regelung ohne Verantwortlichen wird zur Dauerrichtlinie. Die nächste Person, die die Datei liest, wird annehmen, sie sei bewusst gewählt worden.

Ähnliche Artikel