Ceci est une ancienne révision du document !



Uncomplicated Firewall

Le pare-feu tout simplement

UFW est un nouvel outil de configuration simplifié en 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.

Uncomplicated Firewall est pré-installé sous Ubuntu, mais si besoin vous devez simplement installer le paquet ufw.

L'outil UFW n'est pas activé par défaut, il vous faut donc avoir les droits administrateur en 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 traffic 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 <ip_a_bloquer>) 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 <ip_a_bloquer> -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 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

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 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 é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'é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"

Contributeurs : YoBoY.

  • ufw.1323958662.txt.gz
  • Dernière modification: Le 25/01/2012, 06:56
  • (modification externe)