Configurer le pare-feu UFW

3 min de lecture07 novembre 2026

Un VPS avec une IPv6 publique est joignable par tous dès qu'un service écoute. UFW (Uncomplicated Firewall) fournit une interface lisible au filtrage du noyau : vous décrivez les ports autorisés, il génère les règles IPv4 et IPv6. L'erreur classique est d'activer le pare-feu avant d'autoriser SSH, ce qui coupe la session en cours.

Autoriser SSH avant tout

Bash
sudo ufw allow 22/tcp

Si vous avez changé le port SSH, autorisez le bon numéro. Vérifiez ce qui écoute réellement :

Bash
sudo ss -tlnp | grep ssh

Ne vous fiez pas à la valeur par défaut : une règle sur le port 22 alors que sshd écoute sur 2222 vous verrouille. La console du panneau reste le recours, mais autant l'éviter.

Politique par défaut

Bash
sudo ufw default deny incoming
sudo ufw default allow outgoing

Tout trafic entrant non explicitement autorisé est refusé, tout trafic sortant est accepté. Cette base convient à un serveur web classique. Si votre application doit joindre une base distante, le sortant reste ouvert ; pour un serveur très fermé, vous pouvez restreindre plus tard, mais commencez simple pour ne pas casser les mises à jour.

HTTP, HTTPS et IPv6

Bash
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose

ufw enable demande confirmation : répondez oui seulement après avoir autorisé SSH. Les règles doivent apparaître avec (v6). UFW filtre IPv6 quand IPV6=yes figure dans /etc/default/ufw ; c'est le cas par défaut sur Debian. Si la mention manque, corrigez ce fichier puis rechargez avec sudo ufw reload.

Pour activer un profil d'application fourni par un paquet :

Bash
sudo ufw app list
sudo ufw allow 'Nginx Full'

Nginx Full couvre 80 et 443, en IPv4 comme en IPv6.

Docker et les règles contournées

Docker insère ses propres règles avant celles d'UFW. Un conteneur publié sur 0.0.0.0:8080 reste joignable depuis Internet même si UFW refuse 8080. C'est le piège le plus fréquent.

  • Publiez les ports sur 127.0.0.1:8080:8080 et passez par un reverse proxy Nginx.
  • Ou utilisez une solution dédiée comme ufw-docker pour synchroniser les chaînes.
  • Vérifiez depuis l'extérieur, pas seulement avec ufw status.

Sur un conteneur système, Docker peut déjà rencontrer des erreurs de stockage ou de permissions : testez avant d'en dépendre.

Vérifier et dépanner

Bash
sudo ufw status numbered
sudo ufw delete NUMERO
sudo journalctl -u ufw --since today

status numbered donne les numéros pour supprimer une règle. Si vous perdez SSH après activation, rouvrez la console, sudo ufw disable, puis corrigez la règle avant de réactiver. Une règle deny placée avant une règle allow sur le même port gagne : l'ordre compte. Terminez par un test réel depuis une autre machine, en IPv4 et en IPv6, plutôt que de vous fier au seul affichage.

Publicité

Cet article vous a-t-il aidé ?

À lire aussi