Auditer la sécurité de son serveur

3 min de lecture07 novembre 2026

Un audit n'est pas un scan lancé une fois après une alerte. C'est une liste de contrôles reproductibles, exécutés à intervalle régulier et consignés. Son but est de repérer une dérive avant qu'elle ne devienne un incident : un service oublié, un port ouvert, un compte inutile. Voici une routine adaptée à un VPS Debian 13.

Inventaire de ce qui tourne

Bash
sudo ss -lntup
systemctl list-units --type=service --state=running
systemctl list-unit-files --state=enabled
sudo crontab -l
sudo ls -l /etc/cron.d
getent passwd | awk -F: '$3 >= 1000 {print $1, $3, $6, $7}'

Notez chaque port, chaque service et chaque compte. Ce que vous ne pouvez pas expliquer doit être compris ou désactivé. Un service dont vous ignorez l'usage est un service que vous ne mettrez pas à jour.

Lynis comme point de départ

Bash
sudo apt install lynis
sudo lynis audit system

Lynis produit un indice de durcissement et une liste de suggestions. Traitez l'indice comme une tendance, pas comme une note absolue. Priorisez les avertissements liés à SSH, au pare-feu, aux mises à jour et aux permissions. Le rapport détaillé reste dans /var/log/lynis.log : il décrit votre système, ne le publiez pas tel quel.

Permissions, comptes et élévation

Bash
sudo find / -xdev -perm -4000 -type f 2>/dev/null
sudo find /var/www -xdev -type f -perm -o+w
getent group sudo
sudo chage -l utilisateur

Comparez la liste des binaires SUID avec celle d'une installation fraîche. Un fichier accessible en écriture par tous dans /var/www est une porte d'entrée. Vérifiez que chaque membre du groupe sudo a réellement besoin de ce droit, et que les comptes de service ne disposent pas d'un shell interactif.

Mises à jour, pare-feu et exposition

Bash
sudo apt update && apt list --upgradable
systemctl status unattended-upgrades
cat /var/run/reboot-required 2>/dev/null
sudo ufw status verbose
sudo fail2ban-client status sshd

Dans un conteneur système, le noyau est partagé avec la plateforme : les mises à jour de noyau relèvent de la plateforme, pas de votre système. Vérifiez en revanche les paquets applicatifs, le redémarrage requis et les règles de pare-feu. Comparez les ports ouverts avec la liste des services attendus, pas avec une liste générique.

Vérification

Consignez chaque contrôle dans un compte rendu daté :

Contrôle Commande Attendu
Ports ss -lntup uniquement les services voulus
Services systemctl list-unit-files pas d'unité inconnue activée
SUID find / -perm -4000 liste stable et justifiée
Mises à jour apt list --upgradable rien de critique en attente
Pare-feu ufw status verbose politique par défaut restrictive

Ajoutez pour chaque écart : correctif appliqué, ticket ouvert ou risque accepté avec justification, et une date de revue. Automatisez les contrôles en lecture seule dans un script, sans appliquer automatiquement les correctifs : une remédiation non comprise casse plus qu'elle ne protège.

Relancez Lynis après correction et comparez les résultats. Un audit est terminé quand chaque écart est corrigé, accepté ou suivi. Conservez une copie du compte rendu hors du serveur s'il contient des détails sensibles, et refaites la routine après tout changement d'architecture.

Publicité

Cet article vous a-t-il aidé ?

À lire aussi