VPN-Client deinstalliert, doch der Tunnel startet weiterhin beim Booten
Ein entfernter VPN-Client kann eine systemd-Unit, ein gespeichertes Profil, einen Helfer und ein apt-Repository hinterlassen. Erfassen Sie alle vier, bevor Sie irgendetwas anderes löschen.
Ihre Distribution entfernt das Paket, Ihr Menü verliert seinen Eintrag, und der Tunnel kommt nach dem nächsten Neustart trotzdem hoch. Ein kommerzieller VPN-Client hinterlässt Teile, die der Paketmanager nie verfolgt hat, also ist eine saubere Deinstallation nicht dasselbe wie ein sauberer Rechner. Vier dieser Teile erklären fast jede Geisterverbindung: eine Unit, ein Verbindungsprofil, einen privilegierten Helfer und ein Anbieter-Repository. Lesen Sie alle vier, bevor Sie etwas löschen, und entfernen Sie dann jedes über die Komponente, der es gehört.
Was der Deinstaller nie erfasst hat
Ein Paketmanager entfernt die Dateien, die er eingetragen hat, und sonst nichts. Er hat keinen Eintrag über ein Verbindungsprofil, das der Client zur Laufzeit angelegt hat, über eine nach der Installation aktivierte Unit oder über einen Helfer, der sich beim Laufen mit erhöhten Rechten selbst registriert hat. Jedes dieser Teile gehört zu einem anderen Subsystem, und jedes kann das Paket um einen oder mehrere Neustarts überleben. Diese Lücke erklärt, warum ein Tunnel gesund sein kann, während die Software, die ihn erzeugt hat, verschwunden ist.
Der Rest hat immer einen Besitzer, sei es systemd, NetworkManager, die Repository-Konfiguration oder ein Autostart-Eintrag pro Benutzer. Den Besitzer zuerst zu finden verhindert, dass eine Aufräumaktion in einem halb konfigurierten Rechner endet. Dateien direkt zu löschen funktioniert meist so lange, bis der Besitzer sie neu erzeugt, und deshalb beginnen die Befehle unten mit Abfragen.
Vier Besitzer, zuerst nur lesen
Beginnen Sie mit Abfragen statt mit Löschungen und notieren Sie die genauen Namen, die zurückkommen. Anbieter liefern oft ein versioniertes Paket neben einem Metapaket, sodass ein Produkt unter zwei Namen erscheinen kann. Ein Name, der in beiden Listen auftaucht, ist ein Produkt mit zwei Besitzern, und beide müssen entfernt werden. Der erste Block deckt Pakete und Units ab, wo die meisten Reste sichtbar werden.
dpkg -l | grep -i acmevpn
systemctl list-unit-files | grep -i acmevpn
systemctl list-units --type=service --state=running | grep -i acmevpn
Der zweite Block deckt die zwei Komponenten ab, die eine Bereinigung am häufigsten überleben, nämlich das Verbindungsprofil und das Anbieter-Repository. Lesen Sie die UUID-Spalte statt des Namens, denn doppelte Namen sind üblich und der Löschbefehl erwartet die Kennung. Die Repository-Zeile ist auch dann lesenswert, wenn Sie sie heute nicht entfernen, da ein toter Anbieter-Host Monate später eine unabhängige Installation beschädigen kann. Keine der Listen ändert etwas, und genau deshalb laufen sie zuerst.
nmcli -f NAME,UUID,TYPE connection show
nmcli connection show --active
grep -ril acmevpn /etc/apt/sources.list.d/ /etc/apt/sources.list
Ein Prozess, der nach der Bereinigung noch lebt, ist entweder eine aktive Unit oder das Kind eines anderen Programms. Lesen Sie die Prozesstabelle und deren Elternkette, bevor Sie einen Dienst beschuldigen, der nicht mehr existiert. Autostart-Einträge pro Benutzer brauchen denselben Durchgang, und sie erscheinen nur in einer frischen Login-Shell, nicht in einer Root-Sitzung.
Drei Verben, die nicht austauschbar sind
Stoppen beendet den aktuellen Lauf, Deaktivieren entfernt die Start-Links, und Maskieren zeigt die Unit auf /dev/null. Nur das dritte blockiert auch die Aktivierung über einen Socket, einen Timer oder eine Abhängigkeit, was es zum stärksten der drei macht. Die Reihenfolge zählt, solange Sie noch entscheiden, was mit dem Rechner geschehen soll. Maskieren ist während dieser Entscheidung der richtige Zustand, weil es laut scheitert, statt beim nächsten Start still hochzukommen.
Heben Sie die Maskierung vor der Neuinstallation auf, sonst wirkt das neue Paket aus einem Grund defekt, den niemand notiert hat. Dieselbe Vorsicht gilt für Paketierungsunterschiede: Ein Build liefert eine Unit, die gestoppt werden kann, während ein anderes gar keinen Dienst hinterlässt. Stellen Sie fest, welche Paketierung Sie haben, bevor Sie ein Verb wählen, denn der Aufräumpfad unterscheidet sich.
Mit Platzhaltern löschen Sie das falsche Profil
Löschen Sie das Profil mit der notierten UUID und niemals mit einem Platzhalter. Das Keyfile-Verzeichnis enthält auch jedes Wi-Fi- und Ethernet-Profil des Rechners, sodass eine breite Übereinstimmung Dinge entfernt, die Sie noch brauchen. Eine von Hand gelöschte Keyfile kann von der Richtlinie, der sie gehört, neu erzeugt werden, was die Löschung wirkungslos erscheinen lässt.
nmcli connection delete uuid <uuid>
Exportieren Sie zuerst Gateway und Identität, wenn dieses Profil die einzige Kopie ist, die Sie noch haben, denn ein lokales Löschen widerruft nichts auf dem Server. Das Repository folgt derselben Regel: Entfernen Sie die einzelne Anbieterdatei und ihren Schlüsselbund, aktualisieren Sie dann die Paketlisten und wiederholen Sie die Installation, die Sie eigentlich wollten. Ein veralteter Drittanbieter-Eintrag kann eine alte Abhängigkeit festnageln oder gar nicht antworten. Beide Entfernungen sind klein, und jede lässt sich aus der Kopie rückgängig machen, die Sie aufbewahren.
Was nach dem Neustart noch läuft
Starten Sie neu, bevor Sie den Sieg erklären, und suchen Sie dann nach Artefakten statt nach der Anwendung. Eine Tunnelschnittstelle, eine veraltete geteilte Route und DNS pro Link, die der alte Client hinterlassen hat, brauchen jeweils ihren eigenen Befehl. Alle drei können eine Bereinigung überleben, die jedes Paket erfolgreich entfernt hat.
ip link
ip route
resolvectl status
Öffnen Sie außerdem eine frische Login-Shell, denn ein Autostart-Eintrag greift nur dort. Lesen Sie dann /etc/NetworkManager/dispatcher.d/ nach einem Skript, das eine Verbindung hochbringt, sobald eine Schnittstelle ihren Zustand ändert, was einen Tunnel erklärt, der ohne Dienst dahinter zurückkehrt. Wenn noch etwas hinauswählt, verfolgen Sie den Prozess zu seinem Elternprozess, statt Dateien zu löschen, bis das Symptom aufhört. Den Rechner zu bereinigen und das Konto zu widerrufen bleiben getrennte Aufgaben, und nur eine davon ist erledigt, wenn der Neustart ruhig aussieht.