Aller au contenu

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.

Ubuntu UFW Moteur
24.04 0.36.2 iptables-nft
26.04 0.36.2 iptables-nft
Fenêtre de terminal
sudo apt update
sudo apt install ufw
sudo ufw status # « Status: inactive » par défaut

UFW est inactif tant qu’il n’est pas activé : aucune règle n’est appliquée.

Fenêtre de terminal
sudo ufw default deny incoming # tout trafic entrant refusé
sudo ufw default allow outgoing # le serveur peut contacter l'extérieur
sudo ufw default deny routed # pas de routage entre interfaces

Principe : tout interdire en entrée, n’ouvrir que le nécessaire.

Fenêtre de terminal
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 web
sudo ufw enable
sudo ufw status verbose
Fenêtre de terminal
sudo ufw status verbose # règles, politiques, journalisation
sudo ufw status numbered # règles numérotées
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
To Action From
-- ------ ----
22/tcp (OpenSSH) ALLOW IN Anywhere
80,443/tcp ALLOW IN Anywhere
22/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).

Fenêtre de terminal
sudo ufw logging medium # off, low, medium, high, full
sudo 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=3306

SRC 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.

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
Fenêtre de terminal
sudo ufw disable # désactive (règles conservées)
sudo ufw reload
sudo ufw --force reset # supprime TOUTES les règles et désactive

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.

Depuis une autre machine (le serveur lui-même passe par l’interface lo) :

Fenêtre de terminal
nc -vz -w 3 serveur.exemple.com 22
nmap -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
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.