Sécuriser son VPS Linux avec UFW et fail2ban en 2026
Un VPS exposé sans pare-feu est attaqué en quelques minutes. UFW pour filtrer le trafic, fail2ban pour bloquer les brute force : le duo essentiel de tout VPS Linux.
Pourquoi votre VPS est immédiatement ciblé
Dès que votre VPS obtient une adresse IP publique, des bots automatisés scannent internet à la recherche de ports ouverts et tentent des attaques en force brute sur SSH, des exploits de services mal configurés, et des scans de vulnérabilités. Ce n'est pas de la paranoïa : consultez vos logs SSH (journalctl -u ssh) 10 minutes après la mise en service et vous verrez des centaines de tentatives de connexion.
UFW (Uncomplicated Firewall) : le pare-feu Linux simplifié
UFW est un frontend pour iptables qui rend la configuration du pare-feu accessible sans maîtriser iptables. Disponible sur Ubuntu/Debian.
Configuration de base
apt install ufw -y
# Politique par défaut : bloquer tout entrant, autoriser tout sortant
ufw default deny incoming
ufw default allow outgoing
# Autoriser SSH (adaptez le port si vous l'avez changé)
ufw allow 22/tcp
# Services web
ufw allow 80/tcp
ufw allow 443/tcp
# Activer le pare-feu
ufw enable
ufw status verbose
Règles avancées utiles
# N'autoriser SSH que depuis une IP spécifique (recommandé si IP fixe)
ufw allow from 203.0.113.42 to any port 22
# Limiter le taux de connexion SSH (anti brute force léger)
ufw limit 22/tcp
# Autoriser un service uniquement sur l'interface loopback
ufw allow in on lo
# Bloquer une IP spécifique
ufw deny from 192.168.1.100
# Supprimer une règle
ufw delete allow 80/tcp
fail2ban : bannissement automatique des attaquants
fail2ban analyse les logs système et bannit les IPs qui dépassent un seuil de tentatives échouées. Il agit comme un deuxième niveau de protection après UFW.
Installation
apt install fail2ban -y
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Configuration de la jail SSH
Éditez /etc/fail2ban/jail.local :
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
ignoreip = 127.0.0.1/8 ::1 VOTRE_IP_FIXE
[sshd]
enabled = true
port = 22
# Si vous avez changé le port SSH (ex. 2222), remplacez la valeur ci-dessus
# port = 2222
backend = systemd
# Sur Ubuntu 24.04, SSH journalise via systemd/journald, pas dans /var/log/auth.log.
# backend = systemd est indispensable pour que fail2ban lise les bonnes entrées.
maxretry = 3
bantime = 24h
Protéger Nginx contre les brute force
Note : la jail nginx-limit-req nécessite que Nginx soit configuré avec les directives limit_req_zone et limit_req. Sans elles, la jail sera active mais n'interceptera rien.
[nginx-http-auth]
enabled = true
port = http,https
logpath = %(nginx_error_log)s
[nginx-limit-req]
enabled = true
port = http,https
logpath = %(nginx_error_log)s
maxretry = 10
systemctl enable fail2ban
systemctl restart fail2ban
Commandes fail2ban essentielles
# Voir les IPs bannies
fail2ban-client status sshd
# Débannir une IP (si vous vous êtes bloqué vous-même)
fail2ban-client set sshd unbanip 203.0.113.42
# Voir les statistiques générales
fail2ban-client status
Autres mesures complémentaires
- Désactiver IPv6 si inutilisé : certains services exposent des ports IPv6 non filtrés par des règles UFW IPv4
- Audit des ports ouverts :
ss -tlnprégulièrement pour détecter des services inattendus - Logwatch : rapport quotidien par email des activités système suspectes
- ClamAV : antivirus open source pour scanner les uploads utilisateurs
- rkhunter : détection de rootkits et de modifications système suspectes
Vérifier l'efficacité de votre configuration
Depuis une machine externe, testez votre pare-feu :
# Scanner les ports ouverts (depuis une machine distante)
nmap -sV votre_ip
Seuls les ports explicitement autorisés dans UFW devraient apparaître comme ouverts. Tout le reste doit être filtré.
Résumé : la configuration minimale recommandée
- UFW activé avec politique deny par défaut
- Seuls les ports nécessaires ouverts (SSH, 80, 443)
- SSH sur port non standard
- fail2ban actif sur SSH avec maxretry = 3
- Connexion root SSH désactivée
- Authentification par clé SSH uniquement
Cette configuration de base bloque la quasi-totalité des attaques automatisées. Pour une sécurité avancée (IDS, WAF, audit complet), nos équipes peuvent auditer et renforcer votre infrastructure.
Prêt à lancer votre serveur ? Déploiement en 60 secondes, protection anti-DDoS L3/L4 incluse, serveurs hébergés en France dans nos propres centres de données.
Commander un VPS sécurisé en France →