Pare-feu : UFW, prise en main
UFW (Uncomplicated Firewall) est l’interface simplifiée du pare-feu d’Ubuntu. Il pilote le filtrage du noyau sans exiger de connaître iptables ou nftables. Les exemples utilisent des noms génériques.
Versions
Section intitulée « Versions »| Ubuntu | UFW | Moteur |
|---|---|---|
| 24.04 | 0.36.2 | iptables-nft |
| 26.04 | 0.36.2 | iptables-nft |
Installer
Section intitulée « Installer »sudo apt updatesudo apt install ufwsudo ufw status # « Status: inactive » par défautUFW est inactif tant qu’il n’est pas activé : aucune règle n’est appliquée.
Politiques par défaut
Section intitulée « Politiques par défaut »sudo ufw default deny incoming # tout trafic entrant refusésudo ufw default allow outgoing # le serveur peut contacter l'extérieursudo ufw default deny routed # pas de routage entre interfacesPrincipe : tout interdire en entrée, n’ouvrir que le nécessaire.
Activer sans se verrouiller dehors
Section intitulée « Activer sans se verrouiller dehors »sudo ufw allow OpenSSH # ou 22/tcp, ou le port SSH personnalisésudo ufw allow 80,443/tcp # si le serveur héberge un site websudo ufw enablesudo ufw status verboseLire l’état
Section intitulée « Lire l’état »sudo ufw status verbose # règles, politiques, journalisationsudo ufw status numbered # règles numérotéesStatus: activeLogging: on (low)Default: deny (incoming), allow (outgoing), deny (routed)
To Action From-- ------ ----22/tcp (OpenSSH) ALLOW IN Anywhere80,443/tcp ALLOW IN Anywhere22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6)Chaque règle existe en IPv4 et en IPv6 (IPV6=yes dans /etc/default/ufw, valeur par défaut).
Journalisation
Section intitulée « Journalisation »sudo ufw logging medium # off, low, medium, high, fullsudo journalctl -k | grep "UFW BLOCK"Une ligne de blocage ressemble à :
[UFW BLOCK] IN=eth0 OUT= SRC=203.0.113.9 DST=198.51.100.5 PROTO=TCP SPT=51234 DPT=3306SRC est la source, DPT le port visé (ici 3306 : tentative d’accès à une base de données). Sur un serveur exposé, le journal se remplit de scans : low suffit.
Fichiers
Section intitulée « Fichiers »| Fichier | Rôle |
|---|---|
/etc/default/ufw |
Politiques par défaut, IPv6 |
/etc/ufw/ufw.conf |
Activation au démarrage, journalisation |
/etc/ufw/user.rules, user6.rules |
Règles saisies (ne pas éditer à la main) |
/etc/ufw/before.rules, after.rules |
Règles avant et après les règles utilisateur |
/etc/ufw/applications.d/ |
Profils d’applications |
Désactiver et réinitialiser
Section intitulée « Désactiver et réinitialiser »sudo ufw disable # désactive (règles conservées)sudo ufw reloadsudo ufw --force reset # supprime TOUTES les règles et désactivePare-feu de l’hébergeur
Section intitulée « Pare-feu de l’hébergeur »Un pare-feu externe (groupes de sécurité) s’ajoute à UFW : un port ouvert dans UFW reste injoignable s’il est fermé chez l’hébergeur. Vérifier les deux.
Vérifier de l’extérieur
Section intitulée « Vérifier de l’extérieur »Depuis une autre machine (le serveur lui-même passe par l’interface lo) :
nc -vz -w 3 serveur.exemple.com 22nmap -Pn -p 22,80,443,3306 serveur.exemple.comÉtat nmap |
Sens |
|---|---|
open |
Un service répond |
closed |
Le serveur répond, aucun service n’écoute |
filtered |
Paquets ignorés par un pare-feu |
Dépannage
Section intitulée « Dépannage »| Symptôme | Piste |
|---|---|
Connexion SSH perdue après ufw enable |
Console : sudo ufw allow OpenSSH, sudo ufw reload |
| Règle présente, service injoignable | Pare-feu de l’hébergeur ; service qui n’écoute que sur 127.0.0.1 (sudo ss -tlnp) |
| IPv4 fonctionne, pas IPv6 | IPV6=yes dans /etc/default/ufw, puis sudo ufw disable && sudo ufw enable |
| Conteneurs Docker qui ignorent UFW | Voir UFW et Docker |
Ubuntu 24.04 et 26.04 : différences à connaître
Section intitulée « Ubuntu 24.04 et 26.04 : différences à connaître »UFW 0.36.2 est identique sur les deux versions, avec le même moteur : commandes et sorties sont les mêmes.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Manuel :
man ufw - Suite : UFW : écrire des règles