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.
Installation
Uncomplicated Firewall est pré-installé sous Ubuntu, mais si besoin vous devez simplement installer le paquet ufw.
Utilisation
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
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
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]
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]
# 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
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 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
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.
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"