UFW signifie Uncomplicated Firewall. Il vise à proposer un firewall simple d’utilisation. UFW est une alternative aux applications de contrôleur de trafic réseau frontal tel que Iptables. Par défaut, UFW interdit tous les paquets entrants et autorise tous les paquets sortants; il autorise également toutes les connexions en cours. Utilisation L'ordre de déclaration des règles est très important, le système utilisant une politique « premier arrivé, premier servi ». Prenez donc soin d'ajouter vos règles spécifiques avant les règles générales lorsqu'elles concernent des éléments communs. Activer / Désactiver UFW L'outil UFW n'est pas activé par défaut, il vous faut donc avoir les droits administrateur en ligne de commande. Vérifier le statut actuel : sudo ufw status État : actif ou inactif Activer UFW : (c'est à dire appliquer les règles définies) sudo ufw enable Désactiver UFW : (c'est à dire ne plus appliquer les règles définies) sudo ufw disable Afficher l'état actuel des règles Une unique commande qui vous permettra de jeter un œil sur la totalité des instructions que vous avez indiquées à UFW : sudo ufw status verbose Numéro de règle Vous pouvez afficher les règles numérotées. sudo ufw status numbered Gestion des règles par défaut Lorsque UFW est activé, par défaut le trafic entrant est refusé et le trafic sortant est autorisé. C'est en général le réglage à privilégier, cependant vous pouvez tout de même modifier ces règles. Autoriser le trafic entrant suivant les règles par défaut : sudo ufw default allow Refuser le trafic entrant suivant les règles par défaut : sudo ufw default deny Autoriser le trafic sortant suivant les règles par défaut : sudo ufw default allow outgoing Refuser le trafic sortant suivant les règles par défaut : sudo ufw default deny outgoing Les commandes de base Activer/désactiver la journalisation Activer la journalisation : sudo ufw logging on Désactiver la journalisation : sudo ufw logging off Ajouter/supprimer des règles Autoriser une connexion entrante : sudo ufw allow [règle] Refuser une connexion entrante : sudo ufw deny [règle] Refuser une IP entrante : Si vous voulez bloquer une IP sur tous vos services, il faut le faire "avant" les autorisations existantes. D'où le "insert 1" qui met ce "deny" avant tous les "allow". Dans le cas d'une série d'IP à bloquer vous pouvez utiliser à chaque entrée le "insert 1", pas besoin de spécifier dans le cas présent une autre place sudo ufw insert 1 deny from [ip] Refuser une connexion entrante, uniquement en TCP : sudo ufw deny [port]/tcp Refuser une connexion sortante : sudo ufw deny out [règle] Supprimer une règle : sudo ufw delete allow [règle] sudo ufw delete deny [règle] Supprimer simplement une règle d'après son numéro : sudo ufw delete [numéro] [port] est à remplacer par le numéro du port désiré. [règle] est à remplacer par le numéro du port ou le nom du service désiré. [numéro] est à remplacer par le numéro de la règle désiré. Règles simples La syntaxe des règles Voici quelques exemples pour comprendre la syntaxe des règles de configuration. Ouverture du port 53 en TCP et UDP : sudo ufw allow 53 Ouverture du port 25 en TCP uniquement : sudo ufw allow 25/tcp Utilisation des services UFW regarde dans sa liste de services connus pour appliquer les règles standards associées à ces services (apache2, smtp, imaps, etc..). Ces règles sont automatiquement converties en ports. Pour avoir la liste des services : less /etc/services 1° exemple : Autoriser le service SMTP : sudo ufw allow smtp 2° exemple : Autoriser le port de Gnome-Dictionary (2628/tcp) : sudo ufw allow out 2628/tcp 3° exemple : Autoriser le protocole pop3 sécurisé (réception du courrier de Gmail et autres messageries utilisant ce protocole sécurisé) : sudo ufw allow out pop3s Utilisation avancée Règles complexes L'écriture de règles plus complexes est également possible : Refuser le protocole (proto) TCP à (to) tout le monde (any) sur le port (port) 80 : sudo ufw deny proto tcp to any port 80 Refuser à (to) l'adresse 192.168.0.1 de recevoir sur le port (port) 25 les données provenant (from) du réseau de classe A et utilisant le protocole (proto) TCP : sudo ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 25 Refuser les données utilisant le protocole (proto) UDP provenant (from) de 1.2.3.4 sur le port (port) 514 : sudo ufw deny proto udp from 1.2.3.4 to any port 514 Refuser à l'adresse 192.168.0.5 de recevoir toutes données provenant du serveur web de la machine hébergeant le pare-feu : sudo ufw deny out from 192.168.0.5 to any port 80 Insérer une règle Vous pouvez insérer une règle à une position précise en utilisant le numéro sudo ufw insert NUM RULE Insérer en numéro 2 une règle refusant le trafic entrant utilisant le protocole (proto) UDP (to) en direction de (any) toute les adresses en écoute sur votre machine sur le port (port) 514 en provenance (from) de 1.2.3.4 sudo ufw insert 2 deny proto udp to any port 514 from 1.2.3.4 Réinitialiser UFW En cas d'erreur de vos règles vous pouvez réinitialiser le pare feu comme au début de l'installation en ouvrant un terminal puis vous écrivez: sudo ufw reset Vous pouvez aussi forcer sans demander d'autorisation : sudo ufw reset --force Configuration IPv6 UFW prend en charge les adresses IPv6. Le support d'IPv6 est désormais activé par défaut, si ce n'est pas le cas, il suffit de modifier le fichier /etc/default/ufw et d'y mettre ceci : /etc/default/ufw IPV6=yes Il ne reste plus qu'à relancer UFW : sudo ufw reload Si le support d'IPv6 n'était pas activé, il vous faudra sûrement alors supprimer puis recréer vos règles. Ne pas autoriser le ping Par défaut UFW autorise les requêtes de ping (ICMP Echo Requests). Il faut éditer /etc/ufw/before.rules et commenter en ajoutant un "#" à la ligne suivante : # -A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT Problèmes connus Si vous obtenez **"ERROR: / is world writable en voulant activer Uncomplicated Firewall, ces commandes devraient régler le problème : sudo chown root:root / sudo chmod 0755 / Sources :\\ [[https://doc.ubuntu-fr.org/ufw]]\\ [[https://www.malekal.com/firewall-definition-et-fonctionnement/]]\\ [[https://www.it-connect.fr/configurer-un-pare-feu-local-sous-debian-11-avec-ufw/]]