# Minimiser les services installés sous Linux

La plupart des distributions Linux (et le noyau lui-même) viennent avec de nombreuses fonctionnalités plus ou moins utiles selon les cas.

Pour mettre en production un serveur il convient de réduire au maximum la surface d’attaque, donc de désactiver tous les services inutiles.

Lister les services et timers

Dans un premier temps, listons les services et les timers activés dans SystemD :

# Services activé :
systemctl list-unit-files | grep enabled

# Services démarrés en ce moment :
systemctl | grep running

Repérer les services inutiles

Pour cela, pas de recette miracle. Selon le théorème du moindre privilège, considérons que tous les services sont inutiles sauf ceux qu’on aura spécifiquement repérés.

Pour chaque service ou timer, posez-vous la question de leur légitimité.

Quand un service ne vous paraît pas utile (par exemple, avahi-daemon EST inutile), désactivez-le avec :

# Arrêt du service
systemctl stop avahi-daemon

# Services démarrés en ce moment :
systemctl disable avahi-daemon

Qui est en écoute ?

Vérifiez quels services sont en écoute sur le réseau avec la commande suivante :

# Liste des sockets TCP/UDP en écoute
ss -lntpu

# Liste des sockets TCP/UDP en écoute avec le nom du service et le PID associé
sudo ss -lntpu |awk '{print $5"\t\t"$7}'

Les services qui écoutent sur 127.0.0.1 ou ::1 ne sont que locaux mais les autres sont accessibles de l’extérieur.

Utilisez un pare-feu logiciel comme UFW ou Firewalld pour n’autoriser que les services réellement utiles et uniquement aux bonnes personnes.