Tu viens de déployer un serveur Debian 13 (Trixie) et tu veux le sécuriser correctement ? Voici les étapes essentielles à suivre dès l’installation.
1. Mettre à jour le système
Première chose à faire, toujours :
sudo apt update && sudo apt upgrade -y
Active les mises à jour de sécurité automatiques :
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
2. Créer un utilisateur non-root
Ne jamais utiliser root au quotidien :
adduser karim
usermod -aG sudo karim
Ensuite, connecte-toi avec ce compte et désactive la connexion root SSH.
3. Sécuriser SSH
Édite /etc/ssh/sshd_config :
# Désactiver la connexion root
PermitRootLogin no
# Désactiver l'authentification par mot de passe
PasswordAuthentication no
# Changer le port SSH (optionnel mais recommandé)
Port 2222
# Autoriser uniquement ton utilisateur
AllowUsers karim
Redémarre SSH :
sudo systemctl restart sshd
Important : Assure-toi d’avoir copié ta clé SSH avant de désactiver les mots de passe :
ssh-copy-id -p 2222 karim@ton-serveur
4. Configurer le firewall (UFW)
sudo apt install ufw
# Autoriser SSH (sur le bon port)
sudo ufw allow 2222/tcp
# Autoriser HTTP/HTTPS si c'est un serveur web
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Activer le firewall
sudo ufw enable
# Vérifier les règles
sudo ufw status verbose
5. Installer Fail2ban
Fail2ban bloque les IP qui tentent trop de connexions SSH :
sudo apt install fail2ban
Crée une configuration locale :
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Édite /etc/fail2ban/jail.local :
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600
findtime = 600
sudo systemctl enable fail2ban
sudo systemctl restart fail2ban
Vérifie les bans :
sudo fail2ban-client status sshd
6. Désactiver les services inutiles
Liste les services actifs :
systemctl list-unit-files --state=enabled
Désactive ce dont tu n’as pas besoin :
sudo systemctl disable bluetooth
sudo systemctl disable cups
7. Configurer les mises à jour automatiques
Vérifie que les mises à jour de sécurité s’appliquent automatiquement :
cat /etc/apt/apt.conf.d/20auto-upgrades
Tu devrais voir :
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
8. Surveiller les logs
Les logs essentiels à surveiller :
# Tentatives de connexion SSH
sudo journalctl -u sshd --since "1 hour ago"
# Logs système
sudo journalctl -p err --since yesterday
# Logs fail2ban
sudo tail -f /var/log/fail2ban.log
Checklist résumé
- Système à jour + mises à jour automatiques
- Utilisateur non-root avec sudo
- SSH : clé uniquement, pas de root, port changé
- Firewall UFW actif avec règles minimales
- Fail2ban installé et configuré
- Services inutiles désactivés
- Monitoring des logs en place
Besoin d’un audit de sécurité de votre serveur ? Contactez-nous pour un diagnostic complet.
