Sécuriser son VPS Linux Debian en 10 étapes
Guide complet pour sécuriser un VPS Debian fraîchement installé : SSH, fail2ban, pare-feu UFW, mises à jour automatiques et plus.
Un VPS fraîchement installé est une cible facile : root ouvert, SSH sur le port 22, aucun pare-feu. En moins d'une heure d'exploitation active, des bots automatisés auront déjà tenté des milliers de connexions. Ce guide couvre les 10 étapes essentielles pour durcir un Debian et dormir tranquille.
Étape 1 — Mettre à jour le système immédiatement
La première chose à faire après l'accès initial : mettre à jour tous les paquets pour corriger les vulnérabilités connues.
apt update && apt upgrade -y
apt install -y curl wget git unzip ufw fail2banÉtape 2 — Créer un utilisateur non-root
Ne jamais travailler en root au quotidien. Créez un compte dédié avec les droits sudo.
adduser azuka
usermod -aG sudo azuka
# Vérification
groups azukaÉtape 3 — Configurer l'authentification SSH par clé
L'authentification par mot de passe est vulnérable aux attaques par brute force. Les clés SSH sont infiniment plus sûres.
# Sur votre machine locale
ssh-keygen -t ed25519 -C "azuka@xytherion"
ssh-copy-id azuka@VOTRE_IP
# Ou manuellement sur le serveur
mkdir -p ~/.ssh && chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys # coller votre clé publique
chmod 600 ~/.ssh/authorized_keysÉtape 4 — Durcir la configuration SSH
Éditez /etc/ssh/sshd_config pour désactiver root, les mots de passe et changer le port :
nano /etc/ssh/sshd_configPort 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
MaxAuthTries 3
X11Forwarding no
AllowTcpForwarding no
ClientAliveInterval 300
ClientAliveCountMax 2systemctl restart sshdTestez votre nouvelle connexion dans un second terminal AVANT de fermer la session actuelle. Un mauvais paramètre SSH vous lockout définitivement.
Étape 5 — Configurer le pare-feu UFW
UFW (Uncomplicated Firewall) est le moyen le plus simple de gérer iptables sur Debian.
ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp # votre port SSH personnalisé
ufw allow 80/tcp # HTTP
ufw allow 443/tcp # HTTPS
ufw enable
ufw status verboseÉtape 6 — Installer et configurer Fail2Ban
Fail2Ban surveille les logs et bannit automatiquement les IPs qui tentent trop de connexions.
# /etc/fail2ban/jail.local
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
[sshd]
enabled = true
port = 2222
logpath = /var/log/auth.logsystemctl restart fail2ban
fail2ban-client status sshdÉtape 7 — Désactiver les services inutiles
Chaque service actif est une surface d'attaque potentielle. Listez et désactivez ce que vous n'utilisez pas.
# Lister les services actifs
systemctl list-units --type=service --state=running
# Désactiver un service
systemctl disable --now postfix # si vous n'envoyez pas d'emails
systemctl disable --now cups # impressionÉtape 8 — Activer les mises à jour automatiques
apt install -y unattended-upgrades apt-listchanges
dpkg-reconfigure -plow unattended-upgrades# /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::Mail "votre@email.com";
Unattended-Upgrade::Remove-Unused-Dependencies "true";Étape 9 — Installer un IDS léger (rkhunter)
rkhunter scanne les rootkits, backdoors et fichiers suspects.
apt install -y rkhunter
rkhunter --update
rkhunter --check --skip-keypress
# Cron quotidien
echo "0 3 * * * root rkhunter --check --skip-keypress --report-warnings-only | mail -s 'rkhunter report' votre@email.com" >> /etc/crontabÉtape 10 — Surveiller les accès (logwatch)
apt install -y logwatch
# Rapport quotidien par email
logwatch --output mail --mailto votre@email.com --detail highRécapitulatif des commandes essentielles
- ssh-keygen -t ed25519 — générer une clé SSH moderne
- ufw status verbose — vérifier les règles du pare-feu
- fail2ban-client status — voir les IPs bannies
- ss -tlnp — lister les ports en écoute
- last -n 20 — voir les dernières connexions
- journalctl -u sshd -n 50 — logs SSH récents
Automatisez ce hardening avec un script Ansible pour vos futurs VPS. Une fois le playbook écrit, sécuriser un nouveau serveur prend moins de 5 minutes.
Testez vos configurations
Xytherion Tools propose des outils gratuits pour vérifier vos DNS, auditer votre SSL, tester SPF/DKIM/DMARC et bien plus — directement depuis votre navigateur.