← Retour au blog

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 -tlnp ré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

  1. UFW activé avec politique deny par défaut
  2. Seuls les ports nécessaires ouverts (SSH, 80, 443)
  3. SSH sur port non standard
  4. fail2ban actif sur SSH avec maxretry = 3
  5. Connexion root SSH désactivée
  6. 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 →

À lire ensuite

GuideConfigurer son VPS Ubuntu pour la première fois : guide 20269 min de lecture →GuideMonitorer son VPS avec Netdata : installation et alertes en 20267 min de lecture →GuideSauvegarder son VPS : stratégies et outils en 20268 min de lecture →GuideInstaller Docker sur VPS Linux et déployer ses applications en 20269 min de lecture →