Laisser le port 22 ouvert sur un serveur exposé au web, c’est laisser la porte d’entrée de sa maison déverrouillée en partant en week-end. Les tentatives d’intrusion automatisées frappent à cette porte toutes les quelques secondes, 24 heures sur 24.
Un pare-feu bien configuré n’est pas une forteresse impénétrable, mais il sécurise votre serveur en une cible trop complexe pour les scanners de vulnérabilités standards. UFW simplifie cette gestion. Vous n’avez pas besoin d’être un expert en réseaux pour restreindre les accès aux seuls services nécessaires. Voici comment verrouiller votre serveur.
Au programme de cet article
- Installation de UFW sur les systèmes Debian et Ubuntu
- Sécuriser l’accès SSH avec UFW avant d’activer votre pare-feu
- Configurer et activer les règles de base du pare-feu UFW
- Gérer et configurer vos règles de pare-feu avec UFW
- Ouvrir des ports et autoriser des services avec UFW
- Autoriser une plage de ports TCP et UDP avec UFW
- Restreindre les connexions par adresse IP
- Supprimer facilement une règle de votre pare-feu UFW
- Diagnostiquer et résoudre les problèmes de votre pare-feu
Installation de UFW sur les systèmes Debian et Ubuntu
UFW est le pare-feu par défaut sur de nombreuses distributions basées sur Debian. Bien qu’il soit souvent préinstallé, il est parfois nécessaire de l’installer manuellement si le paquet a été supprimé ou sur certaines versions minimales de Debian.
Sur les systèmes Debian et Ubuntu, installez le pare-feu en utilisant le gestionnaire de paquets APT :
sudo apt update && sudo apt install -y ufw
Une fois installé, vérifiez que le service est bien présent. À ce stade, le statut par défaut est désactivé. Pour les utilisateurs de RHEL, Fedora ou Rocky Linux, sachez que Firewalld est le pare-feu natif privilégié. L’installation d’UFW sur ces systèmes via le dépôt EPEL est possible, mais le mélange des deux outils crée des conflits de configuration.
Sécuriser l’accès SSH avec UFW avant d’activer votre pare-feu
L’étape critique avant toute activation d’un pare-feu distant est d’autoriser explicitement vos connexions SSH. Sans cette précaution, l’activation du pare-feu avec une politique restrictive vous coupera immédiatement l’accès à votre serveur.
Pour autoriser votre port SSH actuel, commencez par le port 22 si vous utilisez la configuration par défaut :
sudo ufw allow 22/tcp
Si vous utilisez un port personnalisé comme le 2222, adaptez la commande ci-dessous. L’ajout d’un commentaire facilite grandement la maintenance future de vos règles :
sudo ufw allow 2222/tcp comment 'SSH admin'
Pour prévenir les attaques par force brute, il est préférable de limiter les tentatives de connexion plutôt que de simplement les autoriser. Utilisez la commande suivante :
sudo ufw limit 22/tcp
Cette règle autorise 6 connexions sur une période de 30 secondes, bloquant temporairement les adresses IP suspectes qui tenteraient une intrusion.
Pour renforcer davantage cette protection contre les attaques par force brute, vous pouvez également bannir automatiquement des adresses IP avec Fail2Ban.
Enfin, avant de valider l’activation, contrôlez la file d’attente des règles pour vous assurer que la configuration est correcte :
sudo ufw show added
Vérifiez que la ligne correspondant à votre port SSH est bien présente dans la liste avant de poursuivre.
Configurer et activer les règles de base du pare-feu UFW
Pour sécuriser efficacement votre serveur, vous devez appliquer une politique de privilège minimum. Cela signifie que tout flux entrant non explicitement autorisé sera systématiquement bloqué, alors que les flux sortants demeureront autorisés pour permettre les mises à jour des paquets ainsi que la communication du serveur vers l’extérieur.
Définissez les règles par défaut en saisissant les commandes suivantes dans votre terminal :
sudo ufw default deny incoming sudo ufw default allow outgoing
Activez maintenant le pare-feu en utilisant la commande d’activation :
sudo ufw enable
Le système vous demandera une confirmation, car l’activation peut interrompre les connexions existantes si elles n’ont pas été correctement autorisées au préalable. Une fois l’opération terminée, vérifiez le statut complet de votre pare-feu :
sudo ufw status verbose
Voici un exemple du résultat attendu lors de la vérification du statut :
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
22/tcp (v6) ALLOW IN Anywhere (v6)
Vous devriez voir un statut actif accompagné de votre règle SSH listée. Si jamais vous perdez votre connexion, utilisez une console d’accès de secours telle qu’une console cloud ou un accès physique, puis exécutez la commande sudo ufw disable pour annuler immédiatement les blocages et désactiver totalement le pare-feu.
Gérer et configurer vos règles de pare-feu avec UFW
Une fois que UFW est actif sur votre système, vous avez la possibilité d’ouvrir ou de fermer des ports selon les besoins spécifiques de vos services. Le pare-feu utilise pour cela les noms définis dans le fichier /etc/services ou directement les numéros de ports.
Ouvrir des ports et autoriser des services avec UFW
Pour ouvrir un accès à un serveur web, vous pouvez utiliser le nom du service ou le numéro du port concerné.
sudo ufw allow http sudo ufw allow https
Autoriser une plage de ports TCP et UDP avec UFW
Certains services comme le streaming ou le transfert de données nécessitent l’utilisation de plusieurs ports. Vous pouvez autoriser une plage complète de ports pour ces usages.
sudo ufw allow 2000:3000/tcp sudo ufw allow 2000:3000/udp
Restreindre les connexions par adresse IP
La sécurité implique parfois de restreindre l’accès à une seule adresse IP de confiance. Vous pouvez par exemple autoriser une base de données MySQL uniquement depuis une IP interne spécifique.
sudo ufw allow from 192.168.1.200 to any port 3306 proto tcp
Supprimer facilement une règle de votre pare-feu UFW
Lorsque vous souhaitez supprimer une règle devenue inutile, vous devez impérativement identifier son numéro au préalable.
sudo ufw status numbered
Repérez le numéro de la règle que vous désirez retirer puis exécutez la commande de suppression en indiquant ce numéro. Si vous souhaitez supprimer la troisième règle par exemple, vous utiliserez la commande suivante.
sudo ufw delete 3
Gardez à l’esprit que le numéro d’une règle change à chaque suppression. Après avoir validé une opération de retrait, relancez systématiquement la commande sudo ufw status numbered avant de tenter une nouvelle suppression afin d’éviter toute erreur de manipulation.
Diagnostiquer et résoudre les problèmes de votre pare-feu
Si un service ne fonctionne pas comme prévu, la première étape consiste à inspecter les journaux générés par UFW. Vous pouvez activer la journalisation en définissant le niveau sur medium pour obtenir davantage de détails.
sudo ufw logging medium
Pour lire ces logs en temps réel et surveiller les événements, utilisez la commande suivante.
sudo tail -f /var/log/ufw.log
Les entrées marquées [UFW BLOCK] dans ces fichiers vous indiquent quel trafic est actuellement refusé par le système. Si vous commettez une erreur majeure de configuration, vous avez la possibilité de réinitialiser l’intégralité du pare-feu avec la commande sudo ufw reset. Cette action supprime toutes vos règles personnalisées et désactive UFW, ce qui vous permet de repartir sur une configuration saine depuis le début.
Voici un tableau récapitulatif des commandes essentielles pour assurer la maintenance de votre pare-feu.
| Besoin | Commande |
|---|---|
| Voir l’état complet | sudo ufw status verbose |
| Lister les règles numérotées | sudo ufw status numbered |
| Voir les règles en attente | sudo ufw show added |
| Désactiver le pare-feu | sudo ufw disable |
| Réinitialisation totale | sudo ufw reset |
Votre serveur est maintenant protégé. N’oubliez pas qu’un pare-feu n’est qu’une couche de sécurité, il doit être couplé à une mise à jour régulière de vos paquets et à une gestion stricte des clés SSH.