Checklist de sécurisation d'un serveur

3 min de lecture07 novembre 2026

Sécuriser un serveur, c'est appliquer une série de mesures simples dans le bon ordre, puis vérifier chacune. Cette checklist vise un VPS Debian 13 avec accès root. Avant toute modification du SSH ou du pare-feu, gardez une session ouverte et une sauvegarde : une erreur de configuration peut vous couper l'accès.

Avant de commencer

  • Sauvegardez les données et notez l'état actuel des services.
  • Ouvrez une seconde session SSH et gardez-la active pendant les changements.
  • Sachez comment revenir : console noVNC du panneau VPS, mot de passe root réinitialisable.
  • Travaillez par petits changements, un service à la fois.

Priorité 1 : accès et mises à jour

Bash
sudo apt update && sudo apt full-upgrade
sudo systemctl reboot

Redémarrez si le noyau ou la bibliothèque C a été mis à jour. Créez un utilisateur non privilégié et donnez-lui sudo :

Bash
sudo adduser utilisateur
sudo usermod -aG sudo utilisateur

Testez sa connexion dans une nouvelle session avant de désactiver la connexion root. Installez ensuite votre clé publique, vérifiez qu'elle fonctionne, puis passez PasswordAuthentication no et PermitRootLogin no dans /etc/ssh/sshd_config. Validez avec sudo sshd -t avant de recharger le service.

Priorité 2 : exposition réseau

Dressez l'inventaire de ce qui écoute :

Bash
sudo ss -tulpn

Fermez les services inutiles. Activez un pare-feu en refus par défaut, en autorisant SSH avant de l'activer :

Bash
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80,443/tcp
sudo ufw enable
sudo ufw status verbose

Si Docker est installé, sachez qu'il publie des ports en contournant UFW : liez les conteneurs à 127.0.0.1 quand ils ne doivent pas être publics, et vérifiez avec docker ps.

Installez Fail2ban pour SSH et vérifiez la prison :

Bash
sudo apt install fail2ban
sudo fail2ban-client status sshd

Priorité 3 : données et comptes

  • Les bases de données écoutent sur 127.0.0.1 et chaque application a son utilisateur, avec les droits minimaux sur sa seule base.
  • Pas de chmod 777 : 755 pour les dossiers, 644 pour les fichiers, 600 pour un fichier .env.
  • Aucun secret dans Git. Les jetons se placent dans des variables d'environnement ou un fichier de secrets lisible par le seul service.
  • Le certificat TLS est valide et son renouvellement est testé : sudo certbot renew --dry-run.
  • Une sauvegarde existe hors du serveur et une restauration a déjà été essayée.

Priorité 4 : surveillance et documentation

  • journalctl -p err -b pour les erreurs depuis le démarrage.
  • Une supervision HTTP ou TCP avec alerte, pour détecter une panne avant un utilisateur.
  • unattended-upgrades pour les correctifs de sécurité, avec vérification des redémarrages nécessaires.
  • timedatectl pour un horodatage fiable des journaux.
Point Contrôle Attendu
SSH sudo sshd -T | grep -E "permitrootlogin|passwordauthentication" no / no
Pare-feu ufw status verbose actif, ports utiles seulement
Écoute ss -tulpn aucun port inattendu
Mises à jour apt list --upgradable aucune mise à jour de sécurité en attente
Sauvegarde restauration testée documentée et récente

Consignez ce qui a été changé, où vivent les secrets et comment revenir. Une checklist appliquée une fois ne suffit pas : reprenez-la après chaque nouveau service et à intervalle régulier.

Publicité

Cet article vous a-t-il aidé ?

À lire aussi