ufw : pare-feu
UFW est installé par défaut depuis Ubuntu 8.04 LTS. Vérifiez la version pour confirmer que le système est prêt.
sudo ufw version
Cela affiche la version d'UFW, par exemple `ufw 0.36.2`. Si la commande n'est pas trouvée, installez-la avec `sudo apt install ufw`.
2. Activez UFW
Activez le pare-feu avec la commande standard. Soyez prudent : après l'activation, tout le trafic entrant sera bloqué sauf si vous avez ajouté des règles.
sudo ufw enable
La sortie confirme avec `Firewall is active and enabled on system startup`. Le système démarrera ensuite toujours avec un pare-feu actif.
3. Consultez l'état actuel et les règles
Affichez les règles actives avec leur numérotation. Cela facilite l'identification et la gestion de règles spécifiques par la suite.
sudo ufw status numbered
Sans règles, cela affiche `Status: active` avec une liste vide. Ajoutez d'abord des règles avant d'utiliser le pare-feu en production.
4. Autorisez le trafic entrant sur un port
Autorisez le trafic sur le port 5432 et documentez la règle avec un commentaire. Cela est utile pour des services comme PostgreSQL.
sudo ufw allow 5432 comment "Service"
La fonctionnalité de commentaire aide à consigner l'objectif de chaque règle. Cela est visible dans la sortie d'état.
5. Autorisez le trafic depuis une adresse IP spécifique
Limitez l'accès au port 22 (SSH) à une seule adresse IP. C'est un exemple de règle avec plusieurs conditions.
sudo ufw allow proto tcp from 192.168.0.4 to any port 22
Seul le trafic TCP de 192.168.0.4 vers le port 22 sera autorisé. Toutes les autres connexions SSH seront bloquées.
6. Désactivez UFW si nécessaire
Utilisez cette commande pour désactiver complètement le pare-feu. Cela n'est recommandé que pour les environnements de test ou lors du dépannage de problèmes réseau.
sudo ufw disable
La sortie confirme avec `Firewall stopped and disabled on system startup`. Le système démarrera ensuite sans pare-feu actif.
7. Vérifiez l'interaction avec Docker
Si vous utilisez Docker, vérifiez si les ports de conteneurs publiés contournent les règles UFW. Docker crée ses propres règles de pare-feu pour l'isolation réseau et la publication de ports — celles-ci contournent UFW.
sudo iptables -L DOCKER -n --line-numbers
Cette sortie affiche les règles de pare-feu Docker. Notez : ces règles sont nécessaires pour les réseaux bridge Docker et ne doivent pas être modifiées manuellement.
8. Ajoutez une règle de refus par défaut pour le trafic entrant
Définissez la politique par défaut pour le trafic entrant. Cela garantit que tout le trafic non explicitement autorisé sera bloqué.
sudo ufw default deny incoming
C'est une bonne pratique pour les serveurs : seuls les ports que vous ouvrez explicitement sont accessibles. Le trafic sortant reste autorisé par défaut.
Vérification
Vérifiez que le pare-feu fonctionne correctement en consultant l'état et en effectuant un scan de ports depuis un autre système.sudo ufw status verbose
Cela affiche la politique active, y compris les règles par défaut et toutes les règles ajoutées. Pour une vérification externe, utilisez `nmap` depuis un autre système :
nmap -p 22 192.168.0.10
Si UFW est correctement configuré, cela affichera le port 22 comme `filtered` ou `open`, selon vos règles.
Problèmes fréquents
1. Les ports Docker sont accessibles malgré les règles UFWDocker contourne UFW en créant ses propres règles iptables. C'est un comportement connu. Résolvez-le en ne publiant pas les ports des conteneurs Docker sur l'hôte (omettre `-p`) et en utilisant à la place un proxy inverse qui, lui, est géré par UFW.
2. UFW bloque SSH après l'activation
Cela se produit lorsque vous n'avez pas autorisé SSH avant `sudo ufw enable`. Rétablissez l'accès avec :
sudo ufw allow 22/tcp
Ajoutez toujours cette règle avant d'activer le pare-feu sur un serveur distant.
3. Les règles ne sont pas appliquées après un redémarrage
Vérifiez que UFW est activé au démarrage :
sudo systemctl status ufw
Si le service n'est pas actif, démarrez-le avec `sudo systemctl enable --now ufw`. UFW doit être actif pour appliquer les règles après un redémarrage.
UFW reste un composant essentiel de l'architecture de sécurité d'Ubuntu — mais le rôle croissant des conteneurs et l'interaction avec les règles de pare-feu Docker rendent de plus en plus important de connaître les limites de cet outil.