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.
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 10.04 (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 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
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
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 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.
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) UncomplicatedFirewall sur le wiki ubuntu anglophone
- ( fr ) http://leshirondellesdunet.com/pages/parefeu.php un tutoriel pour apprendre à configurer ufw
- (en) http://kde-apps.org/content/show.php?content=137789 une interface graphique pour configurer ufw sous kde dans le panneaux de configuration
—-
Contributeurs : YoBoY.