Désactiver les services inutiles
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
systemctl list-units --type=service --state=running
systemctl list-unit-files --state=enabled
systemctl --failed
sudo ss -tulpnLa 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 :
systemctl status nom.service
systemctl cat nom.service
systemctl list-dependencies --reverse nom.servicelist-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
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 :
sudo systemctl mask nom.service
sudo systemctl unmask nom.servicemask crée un lien vers /dev/null : c'est plus fort que disable. Pour un service à socket, désactivez aussi la socket :
sudo systemctl disable --now ssh.socketNe 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
systemctl is-enabled nom.service
systemctl is-active nom.service
systemctl --failedis-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-dailyouunattended-upgradessans 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.
free -h
systemctl list-units --type=service --state=runningComparez 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
- Lister les ports ouverts sur un VPSDistinguer un service en écoute d'un port réellement joignable, puis fermer ce qui est inutile.
- Comprendre les permissions LinuxLire rwx, utiliser chmod et chown correctement, comprendre umask et pourquoi 777 est une mauvaise réponse.
- Réinstaller son VPS sans perdre ses donnéesSauvegarder ce qui doit l'être, réinstaller depuis le dashboard et remettre le service en ligne.