Votre distribution supprime le paquet, votre menu perd son entrée, et le tunnel revient pourtant après le prochain redémarrage. Un client VPN commercial laisse des pièces que le gestionnaire de paquets n’a jamais suivies, si bien qu’une suppression propre n’est pas la même chose qu’une machine propre. Quatre de ces pièces expliquent presque toutes les connexions fantômes : une unité, un profil de connexion, un assistant privilégié et un dépôt du fournisseur. Lisez les quatre avant de supprimer quoi que ce soit, puis retirez chacune via le composant qui la possède.

Ce que le désinstalleur n’a jamais enregistré

Un gestionnaire de paquets retire les fichiers qu’il a consignés et rien d’autre. Il n’a aucune trace d’un profil de connexion créé par le client à l’exécution, d’une unité activée après l’installation, ni d’un assistant qui s’est enregistré en tournant avec des droits élevés. Chacune de ces pièces appartient à un sous-système différent, et chacune peut survivre au paquet un ou plusieurs redémarrages. Cet écart explique pourquoi un tunnel peut être sain alors que le logiciel qui l’a produit a disparu.

Le résidu a toujours un propriétaire, que ce soit systemd, NetworkManager, la configuration du dépôt ou une entrée de démarrage automatique par utilisateur. Localiser d’abord le propriétaire est ce qui empêche un nettoyage d’aboutir à une machine à moitié configurée. Supprimer des fichiers directement fonctionne généralement jusqu’à ce que le propriétaire les régénère, et c’est pourquoi les commandes ci-dessous commencent par des requêtes.

Quatre propriétaires, d’abord en lecture seule

Commencez par des requêtes plutôt que par des suppressions, et notez les noms exacts qui reviennent. Les fournisseurs livrent souvent une charge versionnée à côté d’un métapaquet, si bien qu’un produit peut apparaître sous deux noms. Un nom présent dans les deux listes est un seul produit avec deux propriétaires, et les deux doivent être retirés. Le premier lot couvre les paquets et les unités, où la plupart des résidus deviennent visibles.

dpkg -l | grep -i acmevpn
systemctl list-unit-files | grep -i acmevpn
systemctl list-units --type=service --state=running | grep -i acmevpn

Le second lot couvre les deux composants qui survivent le plus souvent à une purge, à savoir le profil de connexion et le dépôt du fournisseur. Lisez la colonne UUID plutôt que le nom, car les noms en double sont courants et la commande de suppression attend l’identifiant. La ligne du dépôt vaut la peine d’être lue même si vous ne le retirez pas aujourd’hui, car un hôte de fournisseur mort peut casser une installation sans rapport des mois plus tard. Aucune des deux listes ne change quoi que ce soit, et c’est justement pourquoi on les exécute en premier.

nmcli -f NAME,UUID,TYPE connection show
nmcli connection show --active
grep -ril acmevpn /etc/apt/sources.list.d/ /etc/apt/sources.list

Un processus encore vivant après la purge est soit une unité active, soit l’enfant d’un autre programme. Lisez la table des processus et sa chaîne de parents avant d’accuser un service qui n’existe plus. Les entrées de démarrage automatique par utilisateur demandent le même passage, et elles n’apparaissent que dans un shell de connexion neuf, pas dans une session root.

Trois verbes qui ne sont pas interchangeables

Arrêter met fin à l’exécution en cours, désactiver retire les liens de démarrage, et masquer pointe l’unité vers /dev/null. Seul le troisième bloque aussi l’activation par une socket, un minuteur ou une dépendance, ce qui en fait le plus fort des trois. L’ordre compte tant que vous décidez encore quoi faire de la machine. Le masquage est l’état correct pendant cette décision, car il échoue bruyamment au lieu de démarrer discrètement au prochain boot.

Démasquez avant de réinstaller, sinon le nouveau paquet semblera cassé pour une raison que personne n’a notée. La même prudence vaut pour les différences d’empaquetage : une compilation livre une unité qui peut être arrêtée, tandis qu’une autre ne laisse aucun service. Établissez quel empaquetage vous avez avant de choisir un verbe, car le chemin de nettoyage diffère entre eux.

Les jokers, c’est ainsi qu’on supprime le mauvais profil

Supprimez le profil avec l’UUID que vous avez noté, et jamais avec un joker. Le répertoire keyfile contient aussi tous les profils Wi-Fi et Ethernet de la machine, donc une correspondance large retire des choses dont vous avez encore besoin. Un keyfile supprimé à la main peut aussi être régénéré par la politique qui le possède, ce qui rend la suppression apparemment inefficace.

nmcli connection delete uuid <uuid>

Exportez d’abord la passerelle et l’identité si ce profil est la seule copie qui vous reste, car une suppression locale ne révoque rien sur le serveur. Le dépôt suit la même règle : retirez l’unique fichier du fournisseur et son trousseau, puis rafraîchissez les listes de paquets et retentez l’installation que vous vouliez vraiment. Laisser une entrée tierce obsolète peut figer une ancienne dépendance ou ne pas répondre du tout. Les deux retraits sont petits, et chacun peut être annulé depuis la copie que vous conservez.

Ce qui tourne encore après le redémarrage

Redémarrez avant de déclarer la victoire, puis cherchez des artefacts plutôt que l’application. Une interface de tunnel, une route scindée obsolète et un DNS par lien laissés par l’ancien client demandent chacun leur propre commande. Tous trois peuvent survivre à une purge qui a retiré chaque paquet avec succès.

ip link
ip route
resolvectl status

Ouvrez aussi un shell de connexion neuf, car une entrée de démarrage automatique ne se déclenche que là. Lisez ensuite /etc/NetworkManager/dispatcher.d/ à la recherche d’un script qui monte une connexion chaque fois qu’une interface change d’état, ce qui explique un tunnel qui revient sans service derrière lui. Si quelque chose appelle encore vers l’extérieur, suivez le processus jusqu’à son parent au lieu de supprimer des fichiers jusqu’à ce que le symptôme cesse. Nettoyer la machine et révoquer le compte restent deux tâches distinctes, et une seule est terminée quand le redémarrage semble calme.

Articles similaires