UFW
Un firewall (pare-feu en 🇫🇷) permet de bloquer les tentatives d’accès à des combinaisons de ports/protocoles, il permet par exemple, de n’autoriser les connexions ssh
que depuis certaines adresses IP uniquement.
UFW a été conçu pour simplifier la mise en place d’un Firewall iptables sous Linux, qui est relativement complexe a configurer… C’est donc une interface simplifiée qui va créer les règles iptables
sous-jacentes.
Mise en place
Installation
L’installation se fait par un simple apt install ufw
, le firewall est alors installé mais désactivé, et il est possible de le configurer dès à présent.
Activation
Nous allons ensuite l’activer ufw enable
pour le configurer, car l’activer permet de visualiser les règles avec ufw status verbose
.
Attention les règles sont évalués dans l’ordre et
Bien vérifier les règles avant de redémarrer la machine ou le service ufw au risque de se retrouver bloquer si on ne fait pas attention à débloquer le ssh
🤣
Défauts
Par défaut les règles suivantes sont implémentées, bloquant tous les flux entrant et autorisant tout les flux sortant de notre machine:
ufw default deny incoming ufw default allow outgoing
Screenshot

Les commandes de base
Listing
Pour lister les règles en place dont les règles par défaut et le niveau de logs:
ufw status verbose
UFW défini également des profiles d’applications qui peuvent être listés par ufw app list
:

Ajouter une règle
ufw allow in 22/tcp # autoriser un protocole en spécifiant son nom (provenant de /etc/services) ufw allow ssh # autoriser une adresse IP ufw allow from 192.168.0.1 # autoriser une plage de Ports ufw allow out 6880:6999/tcp ufw deny out from 192.168.0.5 to any port 80 ufw deny proto tcp from xxx.xxx.xxx/8 to 192.168.0.1 port 25
voir syntaxe avancée chez Linode ou Ubuntu
Supprimer une règle
Il est plus simple (et moins sujet à erreur) de supprimer une règle en spécifiant le numéro de sa ligne, mais voici les 2 façon de faire:
# supprimer une règle en spécifiant son numéro ufw status numbered ufw delete <numéro-de-la-règle> # supprimer une règle en spécifiant sa définition ufw delete allow in 22/tcp
Personalisation
UFW permet de créer des profiles d’applications (application profiles) dans le dossier /etc/ufw/applications.d/
qui sont des définitions niveau réseau des besoins d’une application une sorte d’alias défini dans les fichiers.
On retrouvera par exemple un fichier pour nginx
(voir autres ex) qui va nous permettre d’ajouter une règle simplement via un des alias définis ufw allow 'Nginx Full'
:


Journalisation
Il est possible de logger l’activité de notre Firewall dans des fichiers de logs qui se trouveront par défaut dans /var/log/ufw.log
ou dans un rsyslog
(attention cela peut être très verbeux… même en mode low
):
# activer a journalisation les fichiers de log ufw logging on # en spécifiant le niveau de logs ufw logging low|medium|high
Contrôle du Firewall
systemctl status ufw # activer/désactiver le firewall ufw enable ufw disable #pour recharger la configuration qui vient d’être modifiée ufw reload # pour un reset complet des règles ufw reset
Liens
- la doc Ubuntu de UFW
- article sur les Firewall nouvelles génération
- config avec UFW et Fail2ban et un autre article pour contrer les DDOS