{{tag>Hardy Lucid maverick 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 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.
Il existe une interface graphique pour UFW : [[Gufw]].
===== 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]].
===== Utilisation =====
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 :
sudo ufw enable
Désactiver UFW :
sudo ufw disable
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.
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
* Si vous êtes sous **Lucid Lynx** (ou supérieur)
Autoriser le trafic entrant suivant les règles par défaut :
sudo ufw default allow incoming
Refuser le trafic entrant suivant les règles par défaut :
sudo ufw default deny incoming
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
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 755 /
==== Afficher l'état actuel des règles ====
sudo ufw status verbose
Cette commande devrait vous afficher quelque chose comme ça :
Firewall loaded
To Action From
-- ------ ----
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
* rule for removed package 'ntpd'
** services not running
L'argument ''verbose'' est optionnel. Cependant, à partir d'Ubuntu 10.04 il est vivement recommandé car il va permettre d'afficher la direction du trafic dans les règles.
==== Les commandes de base ====
Activer la journalisation :
sudo ufw logging on
Désactiver la journalisation :
sudo ufw logging off
Autoriser :
sudo ufw allow [règle]
Refuser :
sudo ufw deny [règle]
Supprimer :
sudo ufw delete allow [règle]
Pour supprimer simplement une règle, afficher les numéros des règles
sudo ufw status numbered
Puis supprimer la règle voulue d'après son numéro:
sudo ufw delete [numéro de la règle]
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.
Dans le cas où vous devez bloquer une ip spécifique (ex: sudo ufw deny from ) sur un service que vous avez ouvert, il vous faudra éditer le fichier **/etc/ufw/before.rules** et y ajouter une section "Block IP" après la section "Drop INVALID packets"
# drop INVALID packets (logs these in loglevel medium and higher)
-A ufw-before-input -m state --state INVALID -j ufw-logging-deny
-A ufw-before-input -m state --state INVALID -j DROP
# Block IP
-A ufw-before-input -s -j DROP
==== La syntaxe des règles ====
=== Règles simples ===
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..).\\
Pour avoir la liste des services :
less /etc/services
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 protocol pop3 sécurisé
(réception du courrier de Gmail et autres messageries utilisant ce protocol sécurisé) :
sudo ufw allow out pop3s/tcp
=== 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 provenant (//from//) de 1.2.3.4 utilisant le protocole (//proto//) UDP sur le port (//port//) 514 : sudo ufw deny proto udp from 1.2.3.4 to any port 514
===== Configuration =====
==== IPv6 ====
UFW prend en charge les adresses IPv6 (Certains utilisateurs apprécieront), mais nécessite une configuration complémentaire pour activer ce support.
Pour cela 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'à désactiver et activer de nouveau UFW :
sudo ufw disable
sudo ufw enable
il vous faudra surement 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
==== 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
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-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**".
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.
Script pour configurer UFW pour un fonctionnement optimal de MSN
==== Ajouter les règles pour le protocole MSN ====
#!/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"
===== Voir aussi =====
* (en) [[https://wiki.ubuntu.com/UncomplicatedFirewall|UncomplicatedFirewall]] sur le wiki ubuntu anglophone
----
//Contributeurs : [[:utilisateurs:yoboy|YoBoY]].//