Contenu | Rechercher | Menus

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.

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é pour KDE (Kubuntu) depuis Trusty (14.04) : installer le paquet ufw-kde. Pour les versions antérieurs, voir éventuellement ici.

Installation

Uncomplicated Firewall est pré-installé sous Ubuntu, mais si besoin vous devez simplement installer le paquet 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 droits administrateur en ligne de commande.

Vérifier le statut actuel :

sudo ufw status

État : actif ou inactif

Activer UFW :

sudo ufw enable

Désactiver UFW :

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é à 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é, 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 ici.

Default: deny (incoming), allow (outgoing), disabled (routed)

Concerne les règles par défaut de UFW, voir la rubrique 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é au pare-feu. (V6) correspond aux règles adaptées pour l'IPv6, celle qui n'ont pas cette précision sont adaptées pour l'IPv5. Pour l’édition de ces règles, voir la rubrique concernant 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 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]

Supprimer simplement une règle d'après son 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 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 convertis en ports.

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

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

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 modifier le fichier /etc/default/ufw et d'y mettre ceci :

/etc/default/ufw
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 é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

Bloquer HADOPI

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

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

Voir aussi



Le contenu de ce wiki est sous licence : CC BY-SA v3.0