Remote-VPN-Editor über SSH: Welche Maschine bearbeiten Sie?
X11-Weiterleitung zeigt einen entfernten Editor auf Ihrem Laptop, aber Profil und Routen bleiben auf dem entfernten Host. Prüfen Sie Host, UUID und Rollback, bevor Sie speichern.
X11-Weiterleitung legt das Editorfenster auf Ihren Laptop, während der Prozess auf dem entfernten Host weiterläuft. Diese Lücke ist die ganze Falle: Sie sehen ein lokales Fenster und bearbeiten ein entferntes Profil, und eine falsche Annahme darüber, welche Maschine die Änderung besitzt, kann die SSH-Verbindung kappen, über die Sie arbeiten. Die Checkliste unten legt den Host und das Profil fest, bevor etwas gespeichert wird. Jeder Schritt hat eine Abbruchbedingung, daher ist ein früher Fehler billig.
Schritt 1: Benennen Sie die Maschine, der das Profil gehört
Führen Sie die Identitätsbefehle in der Shell aus, die Sie gleich konfigurieren, und lesen Sie die Antwort, statt sie aus dem Prompt zu schließen. Ein Hostname im Prompt ist eine Zeichenkette, die Ihre Shell ausgegeben hat; der Hostname des Kernels ist das, worauf sich der Rest dieser Checkliste verlässt. Wenn beide nicht übereinstimmen, sind Sie auf der falschen Maschine, oder der Prompt ist von Ihrer lokalen Shell verziert. Halten Sie an und verbinden Sie sich erneut mit dem beabsichtigten Host, bevor Sie fortfahren.
hostnamectl
hostname -f
ip -brief address
Die nächste Frage ist, ob diese Maschine das VPN überhaupt halten soll. Den Client des Laptops zu konfigurieren und den Client des entfernten Hosts zu konfigurieren erzeugt unterschiedliche Routen, unterschiedliche DNS und unterschiedliche Fehlermodi. Entscheiden Sie, welchen Sie meinen, bevor Sie ein Profil anfassen, und schreiben Sie die Entscheidung dort auf, wo die nächste Person sie findet.
Schritt 2: Lesen Sie das Profil über die UUID, nicht über die Bezeichnung
NetworkManager identifiziert eine Verbindung über die UUID, während der Name eine Bezeichnung ist, die jeder ändern oder duplizieren kann. Listen Sie beides auf und gleichen Sie den Eintrag ab, den Sie tatsächlich meinen, besonders auf einem Host, auf dem über die Jahre mehrere VPN-Profile importiert wurden.
nmcli -f NAME,UUID,TYPE connection show
nmcli connection show --active
nmcli general permissions
Gespeicherte Einträge und aktive Verbindungen beantworten verschiedene Fragen: Die erste Liste zeigt, was existiert, die zweite zeigt, was gerade Datenverkehr trägt. Die Berechtigungszeile beschreibt lokale Richtlinien für Ihre Sitzung und sagt nichts darüber, ob das VPN-Gateway das Konto akzeptiert. Wenn das benötigte Profil nicht in der gespeicherten Liste steht, hören Sie hier auf, denn den falschen Eintrag zu bearbeiten ist schlimmer, als gar nicht zu bearbeiten.
Sobald Sie die UUID haben, legen Sie sie in einer Variablen ab und verwenden Sie diese Variable in jedem späteren Befehl. Das entfernt eine ganze Klasse von Copy-and-paste-Fehlern und macht das Protokoll reproduzierbar.
UUID=$(nmcli -g UUID connection show 'Corp VPN')
nmcli connection edit uuid "$UUID"
Schritt 3: Entscheiden Sie, ob ein grafischer Editor das richtige Werkzeug ist
Ein Editor, der eine polkit-Abfrage oder einen Secret-Agenten braucht, bekommt sie nicht, nur weil sein Fenster auf Ihrem Laptop erscheint. Diese Komponenten laufen im Kontext der entfernten Sitzung, und eine Anzeige weiterzuleiten leitet sie nicht weiter. Wenn der Editor wegen eines Autorisierungs- oder Secret-Fehlers nicht speichern kann, ist die Anzeige nicht das Problem.
echo "$DISPLAY"
ssh -X you@vpn-host
xauth list
OpenSSH aktiviert X11-Weiterleitung mit -X und dokumentiert die Vorsicht, die damit einhergeht: Der entfernte Host kann Ihre lokale Anzeige erreichen, was eine echte Vertrauensgrenze ist. Vertrauenswürdige Weiterleitung mit -Y entfernt einige dieser Prüfungen und sollte nie die Reflexlösung für eine Anwendung sein, die unter der Standardeinstellung scheitert. Wenn Ihre Organisation eine Methode zur Fernadministration veröffentlicht, verwenden Sie diese, statt eine Variante zu erfinden. In den meisten Fällen ist der Kommandozeilen-Editor die kleinere Angriffsfläche und die bessere Antwort.
Halten Sie hier an, wenn der einzige funktionierende Weg -Y erfordert und Sie nicht erklären können, warum. Das ist eine Entscheidung für denjenigen, der die Sicherheitsrichtlinie besitzt, kein Workaround für ein persönliches Skript.
Schritt 4: Halten Sie einen Wiederherstellungsweg bereit, bevor Sie etwas aktivieren
Eine VPN-Änderung kann die Route entfernen, auf der Ihre SSH-Sitzung beruht, also organisieren Sie einen Rückweg, bevor Sie das Profil aktivieren. Konsolenzugang, eine Out-of-Band-Management-Adresse oder ein geplantes Rollback zählen alle; die Hoffnung, dass die Änderung funktioniert, zählt nicht.
sudo systemctl status NetworkManager
ip route show default
ss -tn state established '( sport = :22 )'
Aktivieren Sie nur das beabsichtigte Profil und prüfen Sie dann vom entfernten Host aus: die Standardroute, den SSH-Rückweg und eine Ressource, die durch den Tunnel erreichbar sein sollte. Eine erfolgreiche Prüfung von Ihrem Laptop testet den Weg des Laptops und sagt nichts über den entfernten Host. Wenn die Sitzung abbricht, nutzen Sie den Wiederherstellungsweg, statt blind neu zu verbinden. Ein Profil zu speichern ist keine Aktivierung, und Aktivierung ist keine Verifizierung.
Notieren Sie die UUID, die geänderten Eigenschaftswerte und die Befehle, mit denen Sie sie geprüft haben. Die nächste Person, die diesen Host anfasst, braucht alle drei, und ein Protokoll ist mehr wert als eine Zusammenfassung, die sagt, das VPN sei repariert. Eine Checkliste, die ohne Rollback-Notiz endet, ist eine halbe Checkliste.