Table des matières

UFW (Uncomplicated Firewall) - Maîtrise Complète

1. Fondamentaux

1.1 Qu'est-ce que UFW ?

UFW est une interface simplifiée pour iptables incluse par défaut dans Ubuntu/Debian.

Avantages clés :

1.2 Concepts Clés

Terme Description
—————–———————————-
Profil Ensemble de règles pré-définies (ex: Nginx, OpenSSH)
Rule Règle personnalisée (allow/deny)
Logging Traces des événements firewall
Rate Limiting Protection anti-bruteforce

2. Installation & Configuration

2.1 Installation

sudo apt update
sudo apt install ufw

2.2 Configuration Initiale

sudo ufw default deny incoming  # Bloquer tout le trafic entrant
sudo ufw default allow outgoing # Autoriser tout le trafic sortant

3. Gestion des Règles

3.1 Règles Basiques

sudo ufw allow 22/tcp          # Autoriser SSH
sudo ufw deny 3306/tcp         # Bloquer MySQL
sudo ufw allow from 192.168.1.5 # Autoriser IP spécifique

3.2 Règles Avancées

Par interface réseau :

sudo ufw allow in on eth0 to any port 80

Avec plage de ports :

sudo ufw allow 60000:61000/udp  # Pour VoIP

Avec commentaires :

sudo ufw allow 443/tcp comment 'HTTPS Access'

4. Fonctionnalités Avancées

4.1 Rate Limiting

sudo ufw limit 22/tcp  # Limite à 6 connexions/min

4.2 Profils d'Application

sudo ufw app list  # Lister les profils
sudo ufw app info 'Nginx Full'  # Voir détails

4.3 Redirection de Port

Éditez `/etc/ufw/before.rules` et ajoutez :

*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80
COMMIT

5. Gestion Professionnelle

5.1 Sauvegarde/Restauration

sudo sh -c "ufw status numbered > ufw_backup.txt"  # Sauvegarde
cat ufw_backup.txt | xargs -L1 sudo ufw  # Restauration

5.2 Monitoring Temps Réel

watch -n 1 sudo ufw status

5.3 Scripting Automatisé

Exemple de script :

#!/bin/bash
BACKUP_FILE="/var/backups/ufw_$(date +%Y%m%d).rules"
sudo ufw status numbered > $BACKUP_FILE
gzip $BACKUP_FILE

6. Intégrations Complexes

6.1 Avec Docker

Solution 1 : Désactiver iptables de Docker

echo '{"iptables":false}' | sudo tee /etc/docker/daemon.json

Solution 2 : Rules personnalisées

sudo ufw allow proto tcp from any to any port 2376

6.2 Avec Kubernetes

sudo ufw allow 6443/tcp  # API Server
sudo ufw allow 10250/tcp # Kubelet

7. Dépannage Expert

7.1 Commandes Utiles

sudo ufw show raw  # Voir règles iptables générées
sudo ufw show added  # Afficher historique

7.2 Problèmes Courants

Problème : Règles non persistantes Solution :

sudo systemctl enable ufw
sudo apt install iptables-persistent

Problème : Conflits avec d'autres firewalls Solution :

sudo systemctl stop firewalld
sudo systemctl disable firewalld

8. Références Avancées

<box warning|Attention Critique> Testez toujours les règles en session root parallèle avant déploiement ! </box>

<box success|Astuce Pro> Utilisez ufw –dry-run pour simuler sans appliquer. </box>

<box info|Pour les Entreprises> Considérez fail2ban + ufw pour une sécurité renforcée. </box>