🛡️ Module L12 – Sécuriser sa machine Debian

📘 Cours complet ⏱️ 3h 🎯 Bloc 2 – SISR
Objectifs : appliquer une politique de durcissement complète sur Debian, maîtriser les bonnes pratiques de sécurité et automatiser la sécurisation.

📖 Introduction

Sécuriser une machine Debian est une étape essentielle avant de la mettre en production. Ce module synthétise l'ensemble des bonnes pratiques : mise à jour, durcissement SSH, pare-feu, audit, et bien plus encore.

🎯

À l'issue de ce module, vous serez capable de :

  • Appliquer un durcissement systématique sur Debian.
  • Configurer automatiquement un pare-feu (iptables/nftables).
  • Activer et configurer les mises à jour automatiques.
  • Utiliser Lynis pour valider le durcissement.

📋 Checklist de sécurisation Debian

ÉtapeActionCommande
Mises à jourActiver les mises à jour automatiquesapt install unattended-upgrades
Pare-feuConfigurer iptables/nftablesnft add rule inet filter input ...
SSHDésactiver root login, forcer les clésPermitRootLogin no
ServicesDésactiver les services inutilessystemctl disable [service]
AuditLancer Lynislynis audit system
LogsCentraliser et surveiller les logsrsyslog, logwatch
Fail2banProtéger SSH/HTTPapt install fail2ban
PermissionsVérifier les fichiers sensiblesls -l /etc/passwd /etc/shadow

📜 Script de durcissement automatique

Exemple de script Bash pour sécuriser une machine Debian :

#!/bin/bash
# Script de durcissement Debian

echo "=== Mise à jour du système ==="
apt update && apt upgrade -y

echo "=== Installation des paquets de sécurité ==="
apt install -y unattended-upgrades fail2ban lynis

echo "=== Configuration de SSH ==="
sed -i 's/^PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/^PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart ssh

echo "=== Configuration du pare-feu (nftables) ==="
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0\; policy drop\; }
nft add rule inet filter input ct state established,related accept
nft add rule inet filter input iif lo accept
nft add rule inet filter input tcp dport 22 accept
nft add rule inet filter input tcp dport 80 accept
nft add rule inet filter input tcp dport 443 accept
nft list ruleset > /etc/nftables.conf

echo "=== Activation de Fail2ban ==="
systemctl enable fail2ban
systemctl start fail2ban

echo "=== Audit Lynis ==="
lynis audit system --quick

echo "=== Durcissement terminé ==="
  • Mise à jour : apt update && apt upgrade
  • SSH : désactive root login et l'authentification par mot de passe.
  • Pare-feu : bloque tout sauf SSH, HTTP, HTTPS et le trafic établi.
  • Fail2ban : activé avec la jail SSH par défaut.
  • Lynis : audit rapide à la fin pour vérifier le durcissement.

🔍 Vérifications

🛠️ Mise en pratique

5.1 – Appliquer le script de durcissement

Exécuter le script de durcissement :

chmod +x harden-debian.sh
./harden-debian.sh
  • chmod +x : rend le script exécutable.
  • Le script s'exécute en root (nécessaire).

5.2 – Configurer unattended-upgrades

Configurer les mises à jour automatiques :

dpkg-reconfigure --priority=low unattended-upgrades
  • Ouvre un assistant pour configurer les mises à jour automatiques.
  • Activer les mises à jour de sécurité.

📝 Exercices d'application

Exercice 1 – Checklist

Citez trois actions de la checklist de sécurisation Debian.

  • Activer les mises à jour automatiques.
  • Désactiver le login root via SSH.
  • Configurer un pare-feu.

Exercice 2 – Audit

Quel outil permet de vérifier le niveau de durcissement d'une machine Debian ?

Lynis (via lynis audit system).

🎯 Quiz d'auto‑évaluation

1. La directive PermitRootLogin no dans sshd_config :

2. Le paquet unattended-upgrades permet de :

3. La commande nft list ruleset permet de :

4. Fail2ban est installé pour protéger contre :

5. Lynis est un outil d' :

📚 Ressources et liens utiles


← Retour au portail
BTS SIO – Lycée NDLP Avranches – Module L12 v1.0