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 également une interface spécialement adaptée pour KDE (Kubuntu) : installer le paquet ufw-kde.
Installation
Uncomplicated Firewall est pré-installé sous Ubuntu, mais en cas de besoin, vous devrez simplement installer le paquet ufw.
Utilisation
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 : ( c'est à dire appliquer les règles définies)
sudo ufw enable
Désactiver UFW : (c'est à dire ne plus appliquer les règles définies)
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ées à 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ée, 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ées au pare-feu. (V6) correspond aux règles adaptées pour l'IPv6, celles qui n'ont pas cette précision sont adaptées pour l'IPv4. 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 IP entrante :
sudo ufw insert 1 deny from [ip]
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] sudo ufw delete deny [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 converties 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é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 trafic entrant utilisant le protocole (proto) UDP (to) en direction de (any) toute les adresses en écoute 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
Réinitialiser UFW
En cas d'erreur de vos règles vous pouvez réinitialiser le pare feu comme au début de l'installation en ouvrant un terminal puis vous écrivez:
sudo ufw reset
Vous pouvez aussi forcer sans demander d'autorisation :
sudo ufw reset --force
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
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
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 0755 /
Si vous n'avez plus de place disque
Il faut penser qu'il y a un problème de refus de connexion tracé dans /var/log. Si non résolvable, l'une de ces commandes pourra masquer le problème:
sudo ufw logging off sudo ufw logging low
Voir aussi
- (en) UncomplicatedFirewall sur le wiki ubuntu anglophone
—-