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.