Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
ufw [Le 22/07/2011, 01:22] aldian Ajout de quelques précisions utiles et mise en valeur de la note sur la suppression simplifiée des règles |
ufw [Le 01/01/2023, 03:12] (Version actuelle) Benjamin Loison Uniformisation de la mise en page |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>Hardy Lucid maverick console pare-feu réseau sécurité}} | + | {{tag>Xenial console pare-feu réseau sécurité}} |
---- | ---- | ||
Ligne 5: | Ligne 5: | ||
====== Uncomplicated Firewall ====== | ====== Uncomplicated Firewall ====== | ||
- | //Le pare-feu tout simplement// | + | //Le pare-feu tout simplement.// |
- | UFW est un nouvel outil de configuration simplifié en [[:console|ligne de commande]] de NetFilter, qui vient en complément de l'outil [[:IPTables]]. UFW devrait à terme permettre une configuration automatique du pare-feu lors de l'installation de programmes en ayant besoin. | + | 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. |
- | <note tip>Il existe une interface graphique pour UFW : [[Gufw]].</note> | + | <note tip>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]]**.</note> | ||
===== Installation ===== | ===== Installation ===== | ||
- | Uncomplicated Firewall est pré-installé sous Ubuntu, mais si besoin vous devez simplement [[:tutoriel:comment_installer_un_paquet|installer le paquet]] [[apt://ufw|ufw]]. | + | **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 ===== | ===== Utilisation ===== | ||
+ | |||
+ | <note>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.</note> | ||
+ | |||
+ | ==== 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]]. | L'outil UFW n'est pas activé par défaut, il vous faut donc avoir les [[:sudo|droits administrateur]] en [[:console|ligne de commande]]. | ||
- | Activer UFW : | + | 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 | sudo ufw enable | ||
- | Désactiver UFW : | + | Désactiver UFW : (c'est à dire ne plus appliquer les règles définies) |
sudo ufw disable | sudo ufw disable | ||
+ | ==== Afficher l'état actuel des règles ==== | ||
- | <note tip>La version de Uncomplicated Firewall disponible par défaut avec Lucid Lynx permet de paramétrer aussi bien les règles par défaut entrantes que sortantes. </note> | + | Une unique commande qui vous permettra de jeter un œil sur la totalité des instructions que vous avez indiquées à UFW : |
- | Autoriser le trafic entrant suivant les règles par défaut : | + | sudo ufw status verbose |
- | sudo ufw default allow | + | Cette commande devrait vous afficher quelque chose comme ça : |
- | Refuser le trafic entrant suivant les règles par défaut : | + | <code> |
+ | État : actif | ||
+ | Journalisation : on (low) | ||
+ | Default: deny (incoming), allow (outgoing), disabled (routed) | ||
+ | Nouveaux profils : skip | ||
- | sudo ufw default deny | + | 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) | ||
+ | </code> | ||
- | * Si vous êtes sous **Lucid Lynx** (ou supérieur) | + | 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 === | ||
- | Autoriser le trafic entrant suivant les règles par défaut : | + | Journalisation : on (low) |
- | sudo ufw default allow incoming | + | 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]]. |
- | Refuser le trafic entrant suivant les règles par défaut : | + | Default: deny (incoming), allow (outgoing), disabled (routed) |
- | sudo ufw default deny incoming | + | 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. |
- | Autoriser le trafic sortant suivant les règles par défaut : | + | <code>Vers Action De |
+ | ---- ------ -- | ||
+ | 80 DENY IN Anywhere | ||
+ | 443 ALLOW IN Anywhere | ||
+ | [...] | ||
+ | 23/tcp (v6) DENY OUT Anywhere (v6)</code> | ||
- | sudo ufw default allow outgoing | + | 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]]. |
- | Refuser le trafic sortant suivant les règles par défaut : | + | === Numéro de règle === |
- | sudo ufw default deny outgoing | + | Vous pouvez afficher les règles numérotées. |
+ | sudo ufw status numbered | ||
+ | ==== Gestion des règles par défaut ==== | ||
- | <note>Si vous obtenez **"ERROR: / is world writable!"** en voulant activer Uncomplicated Firewall, ces commandes devraient régler le problème : | + | 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. |
- | sudo chown root:root / | + | Autoriser le trafic entrant suivant les règles par défaut : |
- | sudo chmod 755 / | + | |
- | </note> | + | |
- | ==== Afficher l'état actuel des règles ==== | + | sudo ufw default allow |
- | sudo ufw status verbose | + | Refuser le trafic entrant suivant les règles par défaut : |
- | Cette commande devrait vous afficher quelque chose comme ça : | + | sudo ufw default deny |
- | <code> | + | Autoriser le trafic sortant suivant les règles par défaut : |
- | Firewall loaded | + | |
- | To Action From | + | sudo ufw default allow outgoing |
- | -- ------ ---- | + | |
- | apache2 DENY Anywhere Apache Webserver | + | |
- | openssh-server ALLOW Anywhere SSH Logins | + | |
- | 192.168.0.2 pop3s ALLOW Anywhere | + | |
- | named DENY Anywhere WARNING: New service | + | |
- | tcp:8082 DENY 10.0.0.0/8 | + | |
- | tcp:25 ALLOW 192.168.0.0/24 | + | |
- | ntp ALLOW* Anywhere | + | |
- | imaps ALLOW** Anywhere | + | |
- | tcp:23 ALLOW** Anywhere | + | |
- | jabberd2 ALLOW** Anywhere | + | |
+ | Refuser le trafic sortant suivant les règles par défaut : | ||
- | * rule for removed package 'ntpd' | + | sudo ufw default deny outgoing |
- | ** services not running | + | |
- | </code> | + | |
- | L'argument ''verbose'' est optionnel. Cependant, à partir d'Ubuntu 10.04 il est vivement recommandé car il va permettre d'afficher la direction du traffic dans les règles. | + | |
==== Les commandes de base ==== | ==== Les commandes de base ==== | ||
- | Activer la journalisation : | + | === Activer/désactiver la journalisation === |
+ | |||
+ | Activer la journalisation : | ||
sudo ufw logging on | sudo ufw logging on | ||
- | Désactiver la journalisation : | + | Désactiver la journalisation : |
sudo ufw logging off | sudo ufw logging off | ||
- | Autoriser : | + | === Ajouter/supprimer des règles === |
+ | |||
+ | Autoriser une connexion entrante : | ||
sudo ufw allow [règle] | sudo ufw allow [règle] | ||
- | Refuser : | + | Refuser une connexion entrante : |
sudo ufw deny [règle] | sudo ufw deny [règle] | ||
+ | | ||
+ | Refuser une IP entrante : | ||
+ | <note warning>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</note> | ||
+ | sudo ufw insert 1 deny from [ip] | ||
+ | | ||
+ | Refuser une connexion entrante, uniquement en TCP : | ||
- | Supprimer : | + | 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 allow [règle] | ||
+ | sudo ufw delete deny [règle] | ||
- | <note tip> Pour supprimer simplement une règle, afficher les numéros des règles | + | Supprimer simplement une règle d'après son [[#numéro_de_regle|numéro]] : |
- | <code>sudo ufw status numbered </code> | + | |
- | Puis supprimer la règle voulue d'après son numéro: | + | |
- | <code>sudo ufw delete [numéro de la règle]</code></note> | + | |
- | | + | sudo ufw delete [numéro] |
- | <note warning>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.</note> | + | |
+ | *[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é. | ||
- | ==== La syntaxe des règles ==== | + | ==== Règles simples ==== |
- | === Règles simples === | + | === La syntaxe des règles === |
- | Voici quelques exemples pour comprendre la syntaxe des règles de configuration. | + | Voici quelques exemples pour comprendre la syntaxe des règles de configuration. |
* Ouverture du port 53 en TCP et UDP :<code>sudo ufw allow 53</code> | * Ouverture du port 53 en TCP et UDP :<code>sudo ufw allow 53</code> | ||
Ligne 136: | Ligne 175: | ||
=== Utilisation des services === | === 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..).\\ | + | 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 : | + | |
+ | Pour avoir la liste des services : | ||
<code>less /etc/services</code> | <code>less /etc/services</code> | ||
- | Exemple : Autoriser le service SMTP : | + | 1° exemple : Autoriser le service SMTP : |
<code>sudo ufw allow smtp</code> | <code>sudo ufw allow smtp</code> | ||
Ligne 145: | Ligne 185: | ||
<code>sudo ufw allow out 2628/tcp</code> | <code>sudo ufw allow out 2628/tcp</code> | ||
- | 3° exemple : Autoriser le protocol pop3 sécurisé | + | 3° exemple : Autoriser le protocole pop3 sécurisé |
- | (réception du courrier de Gmail et autres messageries utilisant ce protocol sécurisé) : | + | (réception du courrier de Gmail et autres messageries utilisant ce protocole sécurisé) : |
- | <code>sudo ufw allow out pop3s/tcp</code> | + | <code>sudo ufw allow out pop3s</code> |
+ | ==== Utilisation avancée ==== | ||
=== Règles complexes === | === Règles complexes === | ||
- | L'écriture de règles plus complexes est également possible : | + | 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 : <code>sudo ufw deny proto tcp to any port 80</code> | * Refuser le protocole (//proto//) TCP à (//to//) tout le monde (//any//) sur le port (//port//) 80 : <code>sudo ufw deny proto tcp to any port 80</code> | ||
* 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 : <code>sudo ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 25</code> | * 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 : <code>sudo ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 25</code> | ||
- | * Refuser les données provenant (//from//) de 1.2.3.4 utilisant le protocole (//proto//) UDP sur le port (//port//) 514 : <code>sudo ufw deny proto udp from 1.2.3.4 to any port 514</code> | + | * Refuser les données utilisant le protocole (//proto//) UDP provenant (//from//) de 1.2.3.4 sur le port (//port//) 514 : <code>sudo ufw deny proto udp from 1.2.3.4 to any port 514</code> |
+ | * Refuser à l'adresse 192.168.0.5 de recevoir toutes données provenant du serveur web de la machine hébergeant le pare-feu : <code>sudo ufw deny out from 192.168.0.5 to any port 80</code> | ||
+ | === 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]] | ||
+ | <code>sudo ufw insert NUM RULE</code> | ||
+ | * 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 | ||
+ | <code>sudo ufw insert 2 deny proto udp to any port 514 from 1.2.3.4</code> | ||
+ | |||
+ | ===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: | ||
+ | <code>sudo ufw reset </code> | ||
+ | Vous pouvez aussi forcer sans demander d'autorisation : | ||
+ | <code>sudo ufw reset --force</code> | ||
+ | | ||
===== Configuration ===== | ===== Configuration ===== | ||
==== IPv6 ==== | ==== IPv6 ==== | ||
- | UFW prend en charge les adresses IPv6 (Certains utilisateurs apprécieront), mais nécessite une configuration complémentaire pour activer ce support. | + | 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 : | ||
- | Pour cela il suffit de [[:tutoriel:comment_editer_un_fichier|modifier le fichier]] **/etc/default/ufw** et d'y mettre ceci : | + | <file bash /etc/default/ufw>IPV6=yes</file> |
- | <file>IPV6=yes</file> | + | Il ne reste plus qu'à relancer UFW : |
- | Il ne reste plus qu'à désactiver et activer de nouveau UFW : | + | sudo ufw reload |
- | <code> | ||
- | sudo ufw disable | ||
- | sudo ufw enable | ||
- | </code> | ||
<note> | <note> | ||
- | il vous faudra surement alors supprimer puis recréer vos règles | + | Si le support d'IPv6 n'était pas activé, il vous faudra sûrement alors supprimer puis recréer vos règles. |
</note> | </note> | ||
+ | |||
==== Ne pas autoriser le ping ==== | ==== Ne pas autoriser le ping ==== | ||
- | Par défaut UFW autorise les requêtes de ping (ICMP Echo Requests). | + | 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 : | Il faut [[:tutoriel:comment_editer_un_fichier|éditer]] ''/etc/ufw/before.rules'' et commenter en ajoutant un "**#**" à la ligne suivante : | ||
<code># -A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT</code> | <code># -A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT</code> | ||
- | |||
- | ==== Autoriser le ping ==== | ||
- | Sous Lucid Lynx, si vous avez configuré UFW à refuser par défaut les connexions sortantes, vous constaterez que vous ne pouvez plus effectuer de ping. | ||
- | Pour y remédier il vous suffit d'[[:tutoriel:comment_editer_un_fichier|éditer]] **/etc/ufw/before.rules** et de dupliquer : | ||
- | # ok icmp codes input | + | ===== Problèmes connus ===== |
- | -A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT | + | ==== Si vous obtenez **"ERROR: / is world writable ==== |
- | -A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT | + | |
- | -A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT | + | |
- | -A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT | + | |
- | -A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT | + | |
- | Puis de remplacer "**input**" par "**output**". | + | en voulant activer Uncomplicated Firewall, ces commandes devraient régler le problème : |
- | Bien entendu, si vous désirez désactiver certains type de ping, il vous suffit de rajouter un "**#**" devant la ligne du type indésirable. | + | |
- | <note tip>Script pour configurer UFW pour un fonctionnement optimal de MSN</note> | + | sudo chown root:root / |
- | + | sudo chmod 0755 / | |
- | ==== Ajouter les règles pour le protocole MSN ==== | + | ==== 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: | |
- | <code> | + | |
- | #!/bin/sh | + | |
- | + | ||
- | echo "Le programme va configurer les règles pour MSN Audio/Vidéo/Transfert de fichier." | + | |
- | + | ||
- | sudo ufw allow 6901 | + | |
- | + | ||
- | sudo ufw allow 6801/udp | + | |
- | + | ||
- | for i in `seq 2001 2120`; do | + | |
- | sudo ufw allow $i/udp | + | |
- | done | + | |
- | + | ||
- | for i in `seq 6891 6900`; do | + | |
- | sudo ufw allow $i/tcp | + | |
- | done | + | |
- | + | ||
- | echo "Tous les ports ont bien été configurés pour MSN." | + | |
- | echo "Vérifiez la configuration du routeur." | + | |
- | echo "Les réglages sont issus du site support http://support.microsoft.com/kb/324214/en-us" | + | |
- | </code> | + | |
+ | sudo ufw logging off | ||
+ | sudo ufw logging low | ||
===== Voir aussi ===== | ===== Voir aussi ===== | ||
* (en) [[https://wiki.ubuntu.com/UncomplicatedFirewall|UncomplicatedFirewall]] sur le wiki ubuntu anglophone | * (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]].// | + | //Contributeurs : [[:utilisateurs:yoboy|YoBoY]], [[:utilisateurs:axel55|Axelos]].// |