UFW (Uncomplicated Firewall) est une surcouche simple à iptables/nftables. Le modèle recommandé est :
- Entrant (IN) : refuser par défaut → tu n’exposes rien involontairement.
- Sortant (OUT) : autoriser par défaut → Internet fonctionne normalement.
C’est également la base décrite dans la doc Ubuntu (par défaut : deny incoming / allow outgoing). (help.ubuntu.com)
- Vidéo : Pare-feu sur Linux ! Est-ce utile, et comment le paramétrer ?
- Concept clé : autoriser le sortant, refuser l’entrant (et n’ouvrir que ce que tu utilises).
sudo apt update
sudo apt install ufw gufw(Sur d’autres distros : paquet ufw via pacman/dnf/zypper ; GUFW peut ne pas exister partout.)
⚠️ Si tu es connecté en SSH à une machine distante : autorise SSH AVANTufw enable, sinon tu peux te couper l’accès. (ramnode.com)
# 1) Politiques par défaut (baseline)
sudo ufw default deny incoming
sudo ufw default allow outgoing
# 2) (Optionnel mais recommandé si serveur) : SSH anti-bruteforce
sudo ufw limit 22/tcp
# 3) Activation + démarrage auto
sudo ufw enable
# 4) Vérification
sudo ufw status verbose💡 Pour la plupart des PCs “usage familial”, tu peux t’arrêter ici : c’est déjà très correct. (help.ubuntu.com)
Beaucoup de gens ouvrent “au monde entier” des services qui ne doivent être accessibles que depuis le réseau local.
Le bon réflexe : restreindre par sous-réseau (ex. 192.168.1.0/24) et/ou par interface (wlan0, enp3s0, etc.). UFW supporte les deux. (help.ubuntu.com)
ip -br a
ip r | grep -E 'default|proto'Exemples typiques :
192.168.0.0/24192.168.1.0/2410.0.0.0/24
À ouvrir seulement si :
- ta machine héberge CUPS accessible sur le réseau, ou
- tu as explicitement configuré CUPS pour écouter sur le LAN.
✅ Recommandation : LAN seulement
# Remplace 192.168.1.0/24 par ton LAN
sudo ufw allow from 192.168.1.0/24 to any port 631 proto tcp
sudo ufw allow from 192.168.1.0/24 to any port 631 proto udpKDE Connect utilise une plage dynamique 1714–1764 en TCP+UDP. (userbase.kde.org)
✅ Recommandation : LAN seulement
sudo ufw allow from 192.168.1.0/24 to any port 1714:1764 proto tcp
sudo ufw allow from 192.168.1.0/24 to any port 1714:1764 proto udpSteam indique :
- TCP 27040 (transfert)
- UDP 27031–27036 (découverte) (help.steampowered.com)
✅ Recommandation : LAN seulement
sudo ufw allow from 192.168.1.0/24 to any port 27040 proto tcp
sudo ufw allow from 192.168.1.0/24 to any port 27031:27036 proto udpÀ ouvrir uniquement si tu héberges un service web accessible depuis d’autres machines.
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp💡 Variante “LAN seulement” si c’est un service interne :
sudo ufw allow from 192.168.1.0/24 to any port 80 proto tcp
sudo ufw allow from 192.168.1.0/24 to any port 443 proto tcpInutile sur un PC client. À faire seulement si ta machine est serveur DNS.
sudo ufw allow 53/tcp
sudo ufw allow 53/udpUFW a souvent un profil applicatif samba :
sudo ufw allow samba✅ Recommandation : si possible, limiter au LAN (quand tu utilises des règles par port/proto plutôt que “profile”).
Ouvrir seulement 20/21 est souvent insuffisant (FTP passif = plage de ports) et FTP est peu recommandé sur un LAN moderne.
👉 Préfère SFTP (SSH) :
- SFTP = port SSH (22/tcp), déjà couvert si tu actives SSH.
NFS peut impliquer d’autres ports selon version/config. En NFSv4, on est souvent proche de “juste 2049”, mais ce n’est pas universel.
sudo ufw allow from 192.168.1.0/24 to any port 2049 proto tcpÀ n’ouvrir que si tu dois accéder à la DB depuis une autre machine. ✅ Recommandation : autoriser une IP précise ou ton LAN.
# Exemple : autoriser uniquement une machine du LAN
sudo ufw allow from 192.168.1.50 to any port 3306 proto tcpPlex Support indique :
- TCP 32400 requis
- des ports “découverte LAN” supplémentaires (DLNA/Bonjour/GDM) uniquement sur le réseau local. (Plex Support)
✅ Minimal (souvent suffisant sur LAN) :
sudo ufw allow from 192.168.1.0/24 to any port 32400 proto tcpOptionnel (découverte LAN / DLNA) — seulement si tu en as besoin :
sudo ufw allow from 192.168.1.0/24 to any port 1900 proto udp
sudo ufw allow from 192.168.1.0/24 to any port 5353 proto udp
sudo ufw allow from 192.168.1.0/24 to any port 8324 proto tcp
sudo ufw allow from 192.168.1.0/24 to any port 32410 proto udp
sudo ufw allow from 192.168.1.0/24 to any port 32412 proto udp
sudo ufw allow from 192.168.1.0/24 to any port 32413 proto udp
sudo ufw allow from 192.168.1.0/24 to any port 32414 proto udp
sudo ufw allow from 192.168.1.0/24 to any port 32469 proto tcp🔐 Important : Plex déconseille très fortement d’ouvrir ces ports “additionnels” sur une machine exposée WAN. (Plex Support)
La doc Syncthing indique :
- 22000/TCP et 22000/UDP
- 21027/UDP pour la découverte locale (docs.syncthing.net)
✅ Recommandation : LAN seulement (sauf besoin spécifique)
sudo ufw allow from 192.168.1.0/24 to any port 22000 proto tcp
sudo ufw allow from 192.168.1.0/24 to any port 22000 proto udp
sudo ufw allow from 192.168.1.0/24 to any port 21027 proto udpsudo ufw status verbose
sudo ufw status numbered
sudo ufw show addedsudo ufw delete 3sudo ufw logging low
# puis
sudo tail -f /var/log/ufw.log(Ubuntu-fr rappelle aussi où se trouve le log et le statut de journalisation.) (doc.ubuntu-fr.org)
Avant d’ouvrir un port “au cas où”, vérifie si un service écoute :
sudo ss -lntup
sudo ss -lnupObjectif : éviter d’avoir des exceptions LAN actives sur un réseau hostile.
Deux approches simples :
- Via GUFW : créer des profils (Maison / Public) et basculer.
- En CLI : avoir une baseline stricte + n’activer les règles LAN que quand tu en as besoin.
Astuce pratique : quand tu passes en “public”, supprime/désactive temporairement les règles “from 192.168.x.0/24” (ou limite à une interface Ethernet uniquement quand tu es à la maison).
Si tu publies des ports Docker (-p 8080:80), Docker peut court-circuiter des règles UFW car il manipule les tables NAT/iptables avant les chaînes UFW. La doc Docker l’explique explicitement. (Docker Documentation)
➡️ Conclusion : sur une machine Docker, ne présume pas que “UFW bloque” tes ports publiés. Il faut gérer correctement la chaîne DOCKER-USER/politiques de filtrage (sinon tes conteneurs peuvent être exposés plus largement que prévu). (Docker Documentation)