Ce guide vous apprendra à installer et configurer UFW (Uncomplicated Firewall), un pare-feu simple mais efficace pour Linux. UFW facilite la gestion des règles de pare-feu sur votre serveur VPS.
📋 Prérequis
- Un serveur VPS avec accès root ou sudo
- Une connexion SSH active
- Ubuntu/Debian (les commandes sont adaptées pour ces distributions)
📥 Installation d'UFW
Installation sur Ubuntu/Debian
Bashsudo apt update sudo apt install ufw -y
Vérification de l'installation
Bash# Vérifier le statut d'UFW sudo ufw status
Si UFW n'est pas activé, vous verrez le message : Status: inactive
⚙️ Configuration de base
Important: Avant d'activer UFW, assurez-vous d'autoriser le port SSH (22), sinon vous serez bloqué hors de votre serveur.
Définir les règles par défaut
Bash# Tout bloquer en entrée, autoriser en sortie sudo ufw default deny incoming sudo ufw default allow outgoing
Autoriser les connexions essentielles
Bash1# Autoriser SSH (PORT 22) - TRÈS IMPORTANT ! 2sudo ufw allow 22/tcp 3 4# Autoriser HTTP et HTTPS (si vous avez un serveur web) 5sudo ufw allow 80/tcp 6sudo ufw allow 443/tcp
Activer UFW
Bash# Activer le pare-feu sudo ufw enable
Confirmez avec y lorsque demandé.
🔧 Règles avancées
Autoriser un port spécifique
Bash1# Autoriser un port TCP 2sudo ufw allow 8080/tcp 3 4# Autoriser un port UDP 5sudo ufw allow 53/udp 6 7# Autoriser un port pour un protocole spécifique 8sudo ufw allow 3306/tcp # MySQL 9sudo ufw allow 5432/tcp # PostgreSQL
Autoriser une IP spécifique
Bash1# Autoriser toutes les connexions depuis une IP 2sudo ufw allow from 192.168.1.100 3 4# Autoriser un port spécifique pour une IP 5sudo ufw allow from 192.168.1.100 to any port 22 6 7# Autoriser une plage d'adresses IP 8sudo ufw allow from 10.0.0.0/8
Bloquer une IP ou un port
Bash1# Bloquer une IP 2sudo ufw deny from 192.168.1.100 3 4# Bloquer un port 5sudo ufw deny 3306/tcp
📊 Gestion des règles
Lister toutes les règles
Bash1# Statut simple 2sudo ufw status 3 4# Statut détaillé avec numéros 5sudo ufw status numbered 6 7# Statut très verbeux 8sudo ufw status verbose
Supprimer une règle
Bash1# Supprimer par numéro (trouvé avec status numbered) 2sudo ufw delete 3 3 4# Supprimer par règle 5sudo ufw delete allow 8080/tcp
Réinitialiser toutes les règles
Bashsudo ufw --force reset
Attention: Cette commande supprime toutes les règles et désactive UFW. Utilisez-la avec précaution !
🎯 Exemples de configuration
Configuration pour un serveur web
Bash1sudo ufw default deny incoming 2sudo ufw default allow outgoing 3sudo ufw allow ssh 4sudo ufw allow 80/tcp 5sudo ufw allow 443/tcp 6sudo ufw enable
Configuration pour un serveur de base de données
Bash1sudo ufw default deny incoming 2sudo ufw default allow outgoing 3sudo ufw allow ssh 4sudo ufw allow from 10.0.0.0/8 to any port 3306 5sudo ufw enable
Configuration pour un serveur de jeu (ex: Minecraft)
Bash1sudo ufw default deny incoming 2sudo ufw default allow outgoing 3sudo ufw allow ssh 4sudo ufw allow 25565/tcp # Port Minecraft 5sudo ufw enable
📝 Vérification et monitoring
Voir les logs
Bash1# Voir les logs en temps réel 2sudo tail -f /var/log/ufw.log 3 4# Voir les dernières entrées 5sudo tail -n 50 /var/log/ufw.log
Vérifier le statut détaillé
Bashsudo ufw status verbose
Cette commande affiche :
- Le statut du pare-feu (actif/inactif)
- Les règles par défaut
- Toutes les règles actives
- Les interfaces réseau
🔄 Désactiver UFW (si nécessaire)
Bash1# Désactiver temporairement 2sudo ufw disable 3 4# Réactiver 5sudo ufw enable
✅ Bonnes pratiques
-
Toujours autoriser SSH avant d'activer : Assurez-vous que le port SSH (22) est autorisé avant d'activer le firewall.
-
Principe du moindre privilège : N'autorisez que les ports et IPs nécessaires pour vos services.
-
Testez vos règles : Avant de vous déconnecter, testez que tout fonctionne correctement.
-
Surveillez les logs : Consultez régulièrement les logs pour détecter des tentatives d'intrusion.
-
Utilisez fail2ban : Combinez UFW avec fail2ban pour une protection renforcée contre les attaques par force brute.
🆘 Dépannage
Je suis bloqué hors du serveur
Si vous êtes bloqué hors du serveur après avoir activé le firewall :
- Contactez le support Infrawire avec vos identifiants
- Utilisez la console VNC/KVM si disponible depuis votre panneau de contrôle
- Connectez-vous directement et désactivez UFW :
sudo ufw disable
Les règles ne fonctionnent pas
Bash1# Vérifiez que UFW est bien activé 2sudo ufw status 3 4# Vérifiez l'ordre des règles 5sudo ufw status numbered 6 7# Rechargez les règles 8sudo ufw reload
UFW interfère avec Docker
Si vous utilisez Docker, vous devrez configurer Docker pour ne pas interférer avec les règles UFW :
Bash1# Éditer la configuration Docker 2sudo nano /etc/docker/daemon.json 3 4# Ajouter cette configuration 5{ 6 "iptables": false 7} 8 9# Redémarrer Docker 10sudo systemctl restart docker
📚 Ressources supplémentaires
❓ Questions fréquentes
Q : Puis-je utiliser UFW avec d'autres firewalls ?
R : Non, vous ne devriez utiliser qu'un seul firewall à la fois pour éviter les conflits.
Q : UFW fonctionne-t-il avec Docker ?
R : Oui, mais vous devrez configurer Docker pour ne pas interférer avec les règles UFW (voir section Dépannage).
Q : Comment autoriser plusieurs ports à la fois ?
R : Vous pouvez utiliser une boucle ou créer un script bash pour automatiser l'ajout de règles.
Q : Puis-je utiliser UFW sur CentOS/RHEL ?
R : Oui, mais l'installation peut être différente. Consultez la documentation de votre distribution.
Bonne configuration ! 🚀