====== 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** : * Configuration en une seule commande * Gestion des IPv4 et IPv6 native * Profils d'application préconfigurés * Journalisation intégrée === 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 ==== * [[https://www.it-connect.fr/ufw-uncomplicated-firewall/|IT-Connect : Guide Expert]] * [[https://github.com/GuillaumeSmaha/ufw-complex-rules|Github : Exemples Complexes]] * [[https://manpages.ubuntu.com/manpages/focal/en/man8/ufw.8.html|Manuel Officiel]] Testez toujours les règles en session root parallèle avant déploiement ! Utilisez ''ufw --dry-run'' pour simuler sans appliquer. Considérez ''fail2ban'' + ''ufw'' pour une sécurité renforcée.