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 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.

Il existe une interface graphique pour UFW : Gufw.
Il exite aussi une interface graphique kde pour UFW ici.

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

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.

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 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

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.

Numéro de règle

Vous pouvez afficher les règles numérotées.

sudo ufw status numbered

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]

Supprimer simplement une règle d'après son numéro :

sudo ufw delete NUM

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 protocole pop3 sécurisé (réception du courrier de Gmail et autres messageries utilisant ce protocole 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 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

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 traffic entrant utilisant le protocole (//proto//) UDP (//to//) en direction de (//any//) toute les adresses en écoutes 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
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

Exemple :

Bloquer toutes les IP de la HADOPI :

  sudo ufw deny from 90.80.155.240/28
  sudo ufw deny from 80.12.48.0/24
  sudo ufw deny from 5.23.42.12/30
  sudo ufw deny from 195.5.217.72/29
  sudo ufw deny from 81.80.36.231
  sudo ufw deny from 81.80.36.232
  sudo ufw deny from 81.80.36.233
  sudo ufw deny from 81.80.36.234
  sudo ufw deny from 194.79.189.240/29
  

Si la paranoïa vous emporte vous pouvez mettre :

  sudo ufw deny to 90.80.155.240/28
  sudo ufw deny to 80.12.48.0/24
  sudo ufw deny to 5.23.42.12/30
  sudo ufw deny to 195.5.217.72/29
  sudo ufw deny to 81.80.36.231
  sudo ufw deny to 81.80.36.232
  sudo ufw deny to 81.80.36.233
  sudo ufw deny to 81.80.36.234
  sudo ufw deny to 194.79.189.240/29

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'à désactiver et activer de nouveau UFW :

sudo ufw disable
sudo ufw enable
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

Autoriser le ping

Sous Lucid Lynx, si vous avez configuré UFW pour 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 types 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.1380637148.txt.gz
  • Dernière modification: Le 01/10/2013, 16:19
  • par 129.175.152.155