Sécurité

UFW : le pare-feu Linux qui ne fait pas peur

iptables est puissant mais verbeux. UFW l'enveloppe dans une interface lisible qui prend 5 minutes à apprendre.

UFW : le pare-feu Linux qui ne fait pas peur

UFW (Uncomplicated Firewall) est une surcouche à iptables, préinstallée sur Ubuntu et Debian. Elle transforme la configuration d'un pare-feu en quelques commandes lisibles. Avant d'activer quoi que ce soit, une règle absolue : autorisez SSH d'abord. Sans ça, vous vous enfermez hors de votre serveur.

Configuration de base

# Règles par défaut — bloquer l'entrant, autoriser le sortant
sudo ufw default deny incoming
sudo ufw default allow outgoing
 
# SSH avant tout (sinon vous perdez l'accès)
sudo ufw allow ssh
 
# Activer
sudo ufw enable

Vérifiez que tout est en ordre :

sudo ufw status verbose

Ouvrir les ports courants

Pour PostgreSQL, ne jamais exposer le port 5432 directement sur Internet — restreignez-le au réseau local uniquement.

# HTTP et HTTPS
sudo ufw allow http
sudo ufw allow https
 
# PostgreSQL depuis le réseau local uniquement
sudo ufw allow from 192.168.1.0/24 to any port 5432
 
# MySQL depuis une IP spécifique
sudo ufw allow from 192.168.1.100 to any port 3306

La syntaxe from [IP] to any port [PORT] est la plus utile en pratique — elle évite d'exposer des services sensibles sur toutes les interfaces.

Gérer les règles existantes

# Lister avec numéros
sudo ufw status numbered
 
# Supprimer une règle par numéro
sudo ufw delete 2
 
# Supprimer une règle par sa définition
sudo ufw delete allow 3306/tcp

Une configuration complète pour un serveur web

sudo ufw --force reset
sudo ufw default deny incoming
sudo ufw default allow outgoing
 
sudo ufw allow 22/tcp comment 'SSH'
sudo ufw allow 80/tcp comment 'HTTP'
sudo ufw allow 443/tcp comment 'HTTPS'
 
# Accès admin depuis le réseau local uniquement
sudo ufw allow from 192.168.1.0/24 to any port 22 comment 'SSH local'
 
sudo ufw enable

Utilisez les commentaires — quand vous revenez sur un serveur 6 mois plus tard, vous vous féliciterez de les avoir mis.

Pour les serveurs de développement

sudo ufw allow ssh
sudo ufw allow 3000:3999/tcp comment 'Dev ports'
sudo ufw allow 8000:8999/tcp comment 'Test ports'
sudo ufw enable

Logs et dépannage

# Activer les logs
sudo ufw logging on
 
# Surveiller en temps réel
sudo tail -f /var/log/ufw.log
 
# Si UFW ne démarre pas
sudo systemctl status ufw
sudo systemctl enable ufw

La commande sudo iptables -L -n -v affiche les règles iptables sous-jacentes si vous voulez voir ce qu'UFW génère réellement.

UFW ne remplace pas une politique de sécurité complète, mais il couvre 95% des besoins d'un serveur web standard qui fait tourner Docker ou une app Node. Avec cinq commandes, votre serveur rejette tout le trafic non autorisé — c'est exactement ce qu'on veut.

Écrit par William Loree