Gestion de la sécurité
Assurer la sécurité d'un système Debian est une tâche centrale de l'administration système. Ce guide couvre plusieurs domaines clés pour vous aider à renforcer votre système et à vous protéger contre les menaces potentielles.
🔐 Utilisateurs et contrôle d'accès
Limiter l'accès au système constitue la première ligne de défense en matière de sécurité.
Imposer une politique de mots de passe robuste
Le module libpam-pwquality permet de forcer les utilisateurs à créer des mots de passe plus sécurisés.
Installer le module :
bashsudo apt update sudo apt install libpam-pwqualityConfigurer la politique : Modifiez le fichier
/etc/security/pwquality.confpour définir les règles de mot de passe.ini# Exemple de configuration : minlen = 10 # Longueur minimale de 10 caractères dcredit = -1 # Doit contenir au moins 1 chiffre ucredit = -1 # Doit contenir au moins 1 lettre majuscule lcredit = -1 # Doit contenir au moins 1 lettre minuscule ocredit = -1 # Doit contenir au moins 1 caractère spécial difok = 3 # Au moins 3 caractères doivent différer de l'ancien mot de passe
Renforcer la sécurité SSH
L'accès à distance au serveur se fait le plus souvent via SSH. Voici quelques recommandations pour le renforcer :
Modifier le fichier de configuration SSH :
bashsudo nano /etc/ssh/sshd_configConfiguration recommandée :
- Désactiver la connexion root :
PermitRootLogin no - Désactiver l'authentification par mot de passe (privilégier les clés) :
PasswordAuthentication no - Activer l'authentification par clé publique :
PubkeyAuthentication yes - Changer le port par défaut (optionnel) :
Port 2222
- Désactiver la connexion root :
Redémarrer le service SSH :
bashsudo systemctl restart sshd
🔥 Configuration du pare-feu (UFW)
Debian n'active pas de pare-feu par défaut. UFW (Uncomplicated Firewall) est un outil frontal convivial. Dans Debian 13, UFW utilise en arrière-plan le framework nftables (compatible avec l'ancienne syntaxe iptables).
Installer UFW :
bashsudo apt install ufwConfigurer les règles de base :
bashsudo ufw default deny incoming # Refuser toutes les connexions entrantes sudo ufw default allow outgoing # Autoriser toutes les connexions sortantes sudo ufw allow ssh # Autoriser les connexions SSH (ou le port que vous avez modifié) sudo ufw allow http # Si c'est un serveur web, autoriser HTTP sudo ufw allow https # Autoriser HTTPSActiver UFW :
bashsudo ufw enableLe système vous avertira que cela pourrait interrompre les connexions SSH existantes, confirmez.
Vérifier l'état :
bashsudo ufw status verbose
🔄 Mises à jour de sécurité automatiques
Appliquer les correctifs de sécurité en temps opportun est crucial. unattended-upgrades peut installer automatiquement les mises à jour de sécurité.
Installation :
bashsudo apt install unattended-upgradesActivation : Exécutez l'assistant de configuration, il créera un fichier de configuration de base.
bashsudo dpkg-reconfigure -plow unattended-upgradesSélectionnez "Oui" dans la boîte de dialogue qui s'affiche.
Ajuster la configuration (optionnel) : Vous pouvez modifier le fichier
/etc/apt/apt.conf.d/50unattended-upgradespour personnaliser le comportement des mises à jour, par exemple activer le redémarrage automatique.
🛡️ Protection contre les intrusions (Fail2Ban)
Fail2Ban surveille les fichiers journaux et met automatiquement à jour les règles du pare-feu pour bloquer les adresses IP en fonction de comportements suspects (comme de multiples tentatives de connexion échouées).
Installer Fail2Ban :
bashsudo apt install fail2banCréer un fichier de configuration local : Ne modifiez pas directement les fichiers
.conf, créez plutôt un fichier.localpour les surcharger.bashsudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo nano /etc/fail2ban/jail.localConfigurer la protection SSH : Dans
jail.local, trouvez la section[sshd]et assurez-vous queenabled = true. Vous pouvez ajustermaxretry(nombre maximum de tentatives) etbantime(durée du bannissement).ini[sshd] enabled = true port = ssh maxretry = 3 bantime = 3600 # Bannir pendant 1 heureRedémarrer le service :
bashsudo systemctl restart fail2ban
📝 Gestion et audit des journaux
Vérifier régulièrement les journaux système est essentiel pour détecter les activités anormales.
- Utiliser
journalctlpour consulter les journaux :bash# Voir tous les journaux (du plus ancien au plus récent) journalctl # Surveiller les journaux en temps réel journalctl -f # Voir les journaux d'un service spécifique, par exemple sshd journalctl -u sshd.service # Voir les journaux du noyau journalctl -k