Désactiver les services inutiles

3 min de lecture07 novembre 2026

Chaque service actif consomme de la mémoire, ouvre parfois un port et représente une surface d'attaque. Sur un VPS fraîchement installé, plusieurs démons ne servent à rien. Les désactiver libère des ressources, mais une erreur sur SSH, le réseau ou la résolution DNS peut vous couper l'accès. L'inventaire et la vérification priment sur la vitesse.

Inventorier

Bash
systemctl list-units --type=service --state=running
systemctl list-unit-files --state=enabled
systemctl --failed
sudo ss -tulpn

La première commande montre ce qui tourne maintenant, la deuxième ce qui démarrera au boot. Les deux listes diffèrent : un service peut être activé sans être lancé, ou lancé manuellement sans être activé.

Pour comprendre une unité avant d'y toucher :

Bash
systemctl status nom.service
systemctl cat nom.service
systemctl list-dependencies --reverse nom.service

list-dependencies --reverse indique qui dépend du service. systemctl list-sockets révèle les services lancés à la demande par une socket, comme ssh.socket.

Décider quoi désactiver

À conserver À examiner
ssh ou ssh.socket snapd
systemd-networkd ou networking packagekit
systemd-resolved si le DNS en dépend ModemManager
systemd-journald, dbus avahi-daemon
ufw cups, bluetooth
fail2ban si installé rpcbind

Sur un VPS, les services liés au Bluetooth, à l'imprimante ou aux modems sont généralement inutiles. En revanche, ne désactivez jamais un service que vous ne reconnaissez pas sans avoir lu sa description et ses dépendances. dbus et journald sont structurants : les arrêter casse une partie du système.

Désactiver et masquer

Bash
sudo systemctl disable --now nom.service

--now arrête le service immédiatement en plus de le désactiver au boot. Pour empêcher tout démarrage, même comme dépendance :

Bash
sudo systemctl mask nom.service
sudo systemctl unmask nom.service

mask crée un lien vers /dev/null : c'est plus fort que disable. Pour un service à socket, désactivez aussi la socket :

Bash
sudo systemctl disable --now ssh.socket

Ne faites cela que si vous savez comment SSH est lancé sur votre système.

Les mises à jour de paquets peuvent réactiver un service. Notez vos changements dans un fichier texte et contrôlez après chaque mise à jour importante.

Vérifier

Bash
systemctl is-enabled nom.service
systemctl is-active nom.service
systemctl --failed

is-enabled doit répondre disabled ou masked, is-active doit répondre inactive. Redémarrez le VPS et refaites l'inventaire : c'est le seul test qui prouve qu'un service ne revient pas au boot. Vérifiez ensuite que SSH, le réseau et votre application fonctionnent toujours.

Bonnes pratiques

  • Gardez une session SSH et la console noVNC ouvertes pendant l'opération.
  • Désactivez un service à la fois, puis testez.
  • Ne désactivez pas apt-daily ou unattended-upgrades sans décider comment les mises à jour de sécurité seront appliquées.
  • Préférez disable à la suppression du paquet : revenir en arrière est plus simple.
Bash
free -h
systemctl list-units --type=service --state=running

Comparez la mémoire disponible avant et après. Un gain faible ne justifie pas de prendre des risques sur un service dont le rôle est incertain : dans le doute, laissez-le actif.

Publicité

Cet article vous a-t-il aidé ?

À lire aussi