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.
Si systemctl ou ss vous sont encore étrangers, les 50 commandes Linux indispensables les couvre avec leurs cas d'usage concrets.
Pour comprendre pourquoi certaines règles UFW sont en /tcp et d'autres en /udp, TCP vs UDP — les deux protocoles de transport expliqués donne le contexte réseau complet.
Une fois le pare-feu en place, l'étape suivante est souvent d'installer Nginx devant votre application — Nginx : installation et configuration complète couvre les virtual hosts, le reverse proxy, SSL et les headers de sécurité.