{{tag>Xenial console pare-feu réseau sécurité}} ---- ====== Uncomplicated Firewall ====== //Le pare-feu tout simplement.// UFW est un nouvel outil de configuration simplifié en [[:console|ligne de commande]] de [[wpfr>Netfilter]], qui donne une alternative à l'outil [[:iptables]]. UFW devrait à terme permettre une configuration automatique du pare-feu lors de l'installation de programmes en ayant besoin. Si vous désirez activer et configurer votre pare-feu sur un ordinateur profitant d'un environnement de bureau, sachez qu'il existe une interface graphique pour UFW : [[:Gufw]]. Il existe également une interface spécialement adaptée pour KDE (Kubuntu) : [[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>ufw-kde]]**. ===== Installation ===== **Uncomplicated Firewall** est pré-installé sous Ubuntu, mais en cas de besoin, vous devrez simplement [[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>ufw]]**.\\ ===== 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 [[:sudo|droits administrateur]] en [[:console|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 Cette commande devrait vous afficher quelque chose comme ça : État : actif Journalisation : on (low) Default: deny (incoming), allow (outgoing), disabled (routed) Nouveaux profils : skip Vers Action De ---- ------ -- 80 DENY IN Anywhere 443 ALLOW IN Anywhere 22 ALLOW IN Anywhere 192.168.0.2 995 ALLOW IN Anywhere 8082/tcp DENY IN 10.0.0.0/8 25/tcp ALLOW IN 192.168.0.0/24 80 (v6) DENY IN Anywhere (v6) 443 (v6) ALLOW IN Anywhere (v6) 22 (v6) ALLOW IN Anywhere (v6) 23/tcp DENY OUT Anywhere 23/tcp (v6) DENY OUT Anywhere (v6) L'argument ''verbose'' est optionnel, cependant il est vivement recommandé car il permet d'afficher la direction du trafic dans les règles (IN : entrant, OUT : sortant) === Description du contenu === Journalisation : on (low) Indique que la journalisation est activée, vous pouvez retrouver toutes les interactions du pare-feu dans le fichier **/var/log/ufw.log** . Vous pouvez activer ou désactiver cette journalisation, voir [[#Activer/désactiver la journalisation|ici]]. Default: deny (incoming), allow (outgoing), disabled (routed) Concerne les règles par défaut de UFW, voir la rubrique [[#gestion_des_regles_par_defaut|gestion des règles par défaut]] pour son paramétrage. Vers Action De ---- ------ -- 80 DENY IN Anywhere 443 ALLOW IN Anywhere [...] 23/tcp (v6) DENY OUT Anywhere (v6) Liste toutes les règles que vous avez indiquées au pare-feu. (V6) correspond aux règles adaptées pour l'IPv6, celles qui n'ont pas cette précision sont adaptées pour l'IPv4. Pour l’édition de ces règles, voir la rubrique concernant [[#Ajouter/supprimer des règles|l’édition des règles]]. === 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_de_regle|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 [[#Utilisation des services|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 [[wpfr>Sous-réseau#Réseaux_privés|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_de_regle|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 [[:tutoriel:comment_editer_un_fichier|modifier le fichier]] **/etc/default/ufw** et d'y mettre ceci : 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 [[:tutoriel:comment_editer_un_fichier|é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 / ==== Si vous n'avez plus de place disque ==== Il faut penser qu'il y a un problème de refus de connexion tracé dans **/var/log**. Si non résolvable, l'une de ces commandes pourra masquer le problème: sudo ufw logging off sudo ufw logging low ===== Voir aussi ===== * (en) [[https://wiki.ubuntu.com/UncomplicatedFirewall|UncomplicatedFirewall]] sur le wiki ubuntu anglophone * ( fr ) [[http://www.leshirondellesdunet.com/pages/pare-feu.php]] * (en) [[http://kde-apps.org/content/show.php?content=137789|une interface graphique pour configurer ufw sous kde dans le panneaux de configuration]] ---- //Contributeurs : [[:utilisateurs:yoboy|YoBoY]], [[:utilisateurs:axel55|Axelos]].//