Tutoriels gratuits et ouverts à toutes et à tous · conçus au Lycée Chevrollier — AngersÀ propos

Série « Cybersécurité : réflexion et pratique sur VM » · partie 2 / 5

Cybersécurité 2 — Durcissement d’un serveur Linux

Réduire la surface d’attaque d’un serveur Debian : inventaire des services exposés, durcissement SSH, authentification par clé, pare-feu UFW et Fail2ban contre la force brute.

Cybersécurité✎ B. Jousseaume📅 17 octobre 2026⏱ 3 à 4 h📶 Intermédiaire

1. Réflexion — La surface d’attaque

La « surface d’attaque » d’une machine, c’est l’ensemble des points par lesquels un attaquant peut tenter d’entrer : services réseau ouverts, comptes, versions logicielles exposées.

Q1. Un serveur a 7 services en écoute sur le réseau, dont un seul est réellement utilisé. Que proposez-vous ? Formulez une règle générale.

Q2. Pourquoi une version de service affichée publiquement (une bannière) est-elle un risque ?

2. Pratique — Inventaire des services exposés

  1. Listez les ports en écoute avec ss :
sudo ss -tulnp

La colonne State vaut LISTEN pour les services en attente de connexion ; notez l’adresse (0.0.0.0 = toutes interfaces, 127.0.0.1 = local uniquement).

Q3. Relevez les services en écoute sur 0.0.0.0. Lesquels sont exposés à tout le réseau ? Y en a-t-il dont vous ne connaissez pas le rôle ?

  1. Si un service inutile tourne (par exemple un serveur web de test), désactivez-le proprement :
systemctl list-units --type=service --state=running
sudo systemctl disable --now <nom-du-service>

3. Pratique — Durcissement SSH

SSH est la porte d’entrée principale d’un serveur Linux. On va la renforcer dans /etc/ssh/sshd_config (ou un fichier dans /etc/ssh/sshd_config.d/).

  1. Appliquez ces réglages de base :
# /etc/ssh/sshd_config.d/99-durcissement.conf
PermitRootLogin no      # pas de connexion directe en root
MaxAuthTries 3          # 3 essais puis coupure
LoginGraceTime 20       # 20 s pour s'authentifier
# (étape suivante : passage par clé)
  1. Vérifiez la syntaxe puis rechargez :
sudo sshd -t && sudo systemctl reload ssh

Q4. Pourquoi interdire la connexion directe en root est-il un gain de sécurité ?

Authentification par clé (bonus)

  1. Depuis votre poste, générez une paire de clés et déposez la clé publique :
ssh-keygen -t ed25519 -C "tp-durcissement"
ssh-copy-id <user>@<ip-vm>
# puis dans la config SSH : PasswordAuthentication no

Q5. En quoi une clé ed25519 est-elle plus sûre qu’un mot de passe pour SSH ?

4. Pratique — Pare-feu local (UFW)

  1. Mettez en place une politique « tout fermé sauf SSH » avec ufw :
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw limit 22/tcp      # autorise SSH + limite le débit de connexions
sudo ufw enable
sudo ufw status verbose

Q6. Quelle est la différence entre ufw allow 22/tcp et ufw limit 22/tcp ? Laquelle protège mieux contre la force brute ?

5. Pratique — Fail2ban contre la force brute

Fail2ban lit les journaux et bannit automatiquement les adresses IP qui multiplient les échecs de connexion.

  1. Installez et créez une prison SSH :
sudo apt install -y fail2ban
sudoedit /etc/fail2ban/jail.d/ssh.local
[sshd]
enabled  = true
maxretry = 4      # 4 échecs
findtime = 10m    # dans une fenêtre de 10 min
bantime  = 30m    # bannissement 30 min
  1. Rechargez, puis simulez des échecs depuis le poste (mauvais mot de passe) et observez :
sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

Q7. Après plusieurs échecs, votre IP apparaît-elle dans « Banned IP list » ? Quel est le compromis à régler entre un bantime court et un bantime long ?

6. Synthèse

🧠 Testez vos connaissances

5 questions. Répondez puis cliquez sur « Corriger ». Rien n’est enregistré : c’est de l’auto-évaluation.

1. Que signifie l’adresse 0.0.0.0 dans la sortie de ss -tulnp ?

💬 127.0.0.1 signifie local uniquement ; 0.0.0.0 expose le service à tout le réseau.

2. Pourquoi interdire la connexion directe en root par SSH ?

💬 On se connecte avec un compte nominatif puis on élève ses privilèges avec sudo, ce qui est journalisé.

3. Quelle précaution prendre avant de modifier la configuration SSH ?

💬 Une erreur de configuration peut vous verrouiller hors de la machine.

4. Quelle différence entre « ufw allow 22/tcp » et « ufw limit 22/tcp » ?

💬 limit ralentit la force brute en limitant le débit de nouvelles connexions.

5. Quel risque présente un Fail2ban mal réglé dans une salle de TP ?

💬 On ajoute le réseau d’administration à ignoreip pour éviter de s’enfermer dehors.

© 2026 Bruno Jousseaume. Ce cours est publié sous licence CC BY-NC-SA 4.0 : vous pouvez le partager et l’adapter en citant l’auteur et un lien vers cette page, sans usage commercial, et en partageant vos adaptations sous la même licence.

Pour aller plus loin

Guide d’administration Cisco : commutateurs Catalyst (IOS-XE)

Référence complète pour administrer des commutateurs Cisco Catalyst de cœur et de distribution : configuration initiale sécurisée, VLAN et VTP, EtherChannel LACP, StackWise Virtual, templates de ports, ACL, multicast, journalisation et checklist de durcissement.

Intermédiaire17 octobre 2026