Aller au contenu principal
Gaprod

Configurer le firewall VPS

Sécurisez votre VPS en configurant UFW sur Ubuntu/Debian ou iptables pour contrôler le trafic réseau entrant et sortant.

Mis à jour le 10 janvier 2026

Pourquoi un pare-feu sur un VPS ?

Un VPS fraîchement installé est exposé à Internet avec tous ses ports potentiellement ouverts. Sans pare-feu, n'importe quel service en écoute est accessible depuis le monde entier. Le pare-feu vous permet de définir précisément quels ports et protocoles sont autorisés.

Par défaut, il est recommandé de :

  • Bloquer tout le trafic entrant sauf les services explicitement autorisés
  • Autoriser tout le trafic sortant (votre serveur peut initier des connexions)
  • Autoriser SSH (sinon vous serez bloqué hors de votre serveur)

UFW — Pare-feu simplifié pour Ubuntu/Debian

UFW (Uncomplicated Firewall) est une interface conviviale pour iptables, idéale pour les administrateurs qui ne maîtrisent pas encore les règles iptables complexes.

Installer UFW

sudo apt update
sudo apt install ufw

Configurer UFW

  1. Définir la politique par défaut

    Bloquez tout le trafic entrant et autorisez tout le trafic sortant :

    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    
  2. Autoriser SSH en premier

    Indispensable : autorisez SSH avant d'activer UFW, sinon vous serez bloqué hors de votre serveur.

    sudo ufw allow ssh
    

    Ou si vous utilisez un port SSH personnalisé (ex. : 2222) :

    sudo ufw allow 2222/tcp
    
  3. Autoriser les services web

    Si vous hébergez un site web, autorisez HTTP et HTTPS :

    sudo ufw allow http
    sudo ufw allow https
    

    Ou de façon équivalente :

    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    
  4. Activer UFW

    Une fois les règles essentielles définies, activez le pare-feu :

    sudo ufw enable
    

    Confirmez avec y. UFW s'active immédiatement et se lance automatiquement au démarrage du serveur.

  5. Vérifier l'état

    sudo ufw status verbose
    

    La sortie affiche toutes les règles actives et le statut du pare-feu.

Règles UFW courantes

Autoriser des ports spécifiques

# MySQL (si accès externe nécessaire — à éviter en général)
sudo ufw allow 3306/tcp

# FTP (non recommandé, préférez SFTP)
sudo ufw allow 21/tcp

# SMTP (serveur mail)
sudo ufw allow 25/tcp
sudo ufw allow 587/tcp
sudo ufw allow 465/tcp

# IMAP/POP3 (serveur mail)
sudo ufw allow 993/tcp
sudo ufw allow 995/tcp

Autoriser un port pour une IP spécifique uniquement

# Autoriser MySQL uniquement depuis votre IP de bureau
sudo ufw allow from 203.0.113.42 to any port 3306

# Autoriser SSH uniquement depuis votre IP
sudo ufw allow from 203.0.113.42 to any port 22

Bloquer une IP spécifique

sudo ufw deny from 198.51.100.0/24

Supprimer une règle

# Lister les règles numérotées
sudo ufw status numbered

# Supprimer la règle numéro 3
sudo ufw delete 3

Limiter les tentatives de connexion SSH

UFW dispose d'une règle limit qui bloque automatiquement les IPs qui tentent plus de 6 connexions en 30 secondes :

sudo ufw limit ssh

Cette règle est très efficace contre les attaques par force brute.

iptables — Contrôle avancé

Pour les administrateurs avancés ou les distributions sans UFW (CentOS, RHEL), iptables offre un contrôle granulaire.

Voir les règles actuelles

sudo iptables -L -n -v

Règles de base iptables

# Vider toutes les règles existantes
sudo iptables -F
sudo iptables -X

# Politique par défaut : bloquer tout le trafic entrant
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

# Autoriser les connexions établies et connexions reliées
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Autoriser le loopback (interface locale)
sudo iptables -A INPUT -i lo -j ACCEPT

# Autoriser SSH
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Autoriser HTTP et HTTPS
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Autoriser ICMP (ping)
sudo iptables -A INPUT -p icmp -j ACCEPT

Sauvegarder les règles iptables

Les règles iptables sont perdues au redémarrage si elles ne sont pas sauvegardées :

Sur Ubuntu/Debian :

sudo apt install iptables-persistent
sudo netfilter-persistent save

Sur CentOS :

sudo service iptables save

Firewalld — Pour CentOS/RHEL/AlmaLinux

Firewalld est le pare-feu par défaut sur CentOS 7+, RHEL et AlmaLinux.

# Vérifier le statut
sudo firewall-cmd --state

# Lister les règles actives
sudo firewall-cmd --list-all

# Autoriser SSH, HTTP, HTTPS
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

# Appliquer les changements
sudo firewall-cmd --reload

Fail2ban — Protection supplémentaire contre le brute force

Fail2ban surveille les logs de votre serveur et bloque automatiquement les IPs qui effectuent trop de tentatives échouées :

sudo apt install fail2ban

# Copier la config par défaut
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

# Éditer la configuration
sudo nano /etc/fail2ban/jail.local

Dans le fichier, configurez la section [sshd] :

[sshd]
enabled = true
maxretry = 5
findtime = 300
bantime = 3600

Redémarrez fail2ban :

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Étapes suivantes

  • Installer Nginx sur votre VPS pour héberger vos sites
  • Configurer des sauvegardes automatiques
  • Mettre en place une surveillance du serveur

Besoin d'aide supplémentaire ?

Notre support technique est disponible du lundi au vendredi pour répondre à vos questions.