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 (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 enableVérifiez que tout est en ordre :
sudo ufw status verboseOuvrir 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 3306La 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/tcpUne 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 enableUtilisez 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 enableLogs 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 ufwLa 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.