Configurer un pare-feu sur votre VPS avec UFW
Un pare-feu bien réglé ferme toutes les portes inutiles de votre VPS. Avec UFW, c'est simple. Voici comment autoriser vos services et bloquer le reste, sans vous enfermer dehors.
À quoi sert un pare-feu sur un VPS ?
Un pare-feu UFW VPS contrôle les connexions réseau autorisées à entrer ou sortir de votre serveur. Son objectif est de réduire la surface d’attaque en bloquant les ports qui ne correspondent à aucun service utile.
Sans filtrage, un logiciel configuré pour écouter sur toutes les interfaces réseau peut devenir accessible depuis Internet. Avec un pare-feu, vous appliquez une logique simple :
Tout bloquer par défaut
↓
Autoriser uniquement les services nécessaires
UFW signifie Uncomplicated Firewall. Il fournit une interface simplifiée pour gérer le pare-feu Linux basé sur Netfilter, sans devoir écrire directement des règles complexes.
Un pare-feu peut notamment :
- autoriser la connexion SSH ;
- ouvrir les ports d’un site web ;
- rendre accessible un serveur de jeu ;
- limiter certaines tentatives répétées ;
- bloquer les connexions entrantes non autorisées ;
- afficher clairement les règles actives.
UFW ne remplace pas les mises à jour, l’authentification par clé SSH ou la sécurisation des applications. Il constitue une couche de protection complémentaire.
Ouvrir un port ne sécurise pas le service qui l’utilise. Le logiciel accessible sur ce port doit également être mis à jour et correctement configuré.
Installer et vérifier UFW
UFW est souvent déjà installé sur Ubuntu. Vérifiez sa présence avec :
sudo ufw status
Si la commande n’existe pas, installez le paquet sur Debian ou Ubuntu :
sudo apt update
sudo apt install -y ufw
Contrôlez ensuite son état :
sudo ufw status
Avant son activation, le résultat peut être :
Status: inactive
Cela signifie que le pare-feu n’applique pas encore les règles UFW. Vous pouvez les préparer avant de l’activer.
Affichez également les profils d’applications disponibles :
sudo ufw app list
Vous pouvez notamment retrouver un profil :
OpenSSH
Les profils permettent d’autoriser un service par son nom plutôt que de saisir manuellement ses ports.
Pour connaître les ports associés à un profil :
sudo ufw app info OpenSSH
Pare-feu UFW VPS : autoriser SSH avant l’activation
Lorsque vous administrez le VPS à distance, la connexion SSH est votre seul accès au terminal. Si vous activez UFW sans autoriser son port, vous risquez de bloquer votre prochaine connexion.
Attention — règle impérative : autorisez SSH avant d’exécuter
ufw enable. Gardez également votre session actuelle ouverte pendant les tests.
Si votre VPS utilise le profil OpenSSH :
sudo ufw allow OpenSSH
Vous pouvez aussi autoriser directement le port SSH standard :
sudo ufw allow 22/tcp
Si votre serveur SSH écoute sur un port personnalisé, autorisez ce port à la place :
sudo ufw allow 2222/tcp
Ne supposez pas que votre port est 22. Vérifiez la session utilisée ou la configuration SSH :
sudo sshd -T | grep '^port'
Vous pouvez aussi contrôler les ports en écoute :
sudo ss -lntp
Après l’ajout de la règle SSH, vérifiez-la :
sudo ufw status
Le résultat doit contenir une autorisation semblable à :
22/tcp ALLOW Anywhere
ou :
OpenSSH ALLOW Anywhere
Ne fermez pas votre connexion SSH actuelle. Elle constitue un accès de secours pendant l’activation et le premier test.
Pour revoir les bases de la connexion distante, consultez le guide pour se connecter à un VPS en SSH. Pour renforcer davantage cet accès, mettez aussi en place une clé SSH.
Définir les politiques par défaut
Une stratégie simple consiste à refuser les nouvelles connexions entrantes et à autoriser les connexions sortantes.
Configurez les politiques :
sudo ufw default deny incoming
sudo ufw default allow outgoing
La première commande bloque les connexions entrantes qui ne correspondent à aucune règle d’autorisation :
sudo ufw default deny incoming
La seconde permet au VPS d’établir des connexions sortantes, par exemple pour :
- télécharger des mises à jour ;
- joindre une API ;
- accéder à une base de données distante ;
- contacter Discord ;
- résoudre des noms de domaine.
sudo ufw default allow outgoing
Cette politique suit le principe :
Entrant → refusé, sauf autorisation explicite
Sortant → autorisé
Dans certains environnements très contrôlés, les flux sortants peuvent aussi être filtrés. Cette configuration demande toutefois de connaître précisément toutes les destinations nécessaires aux applications.
Autoriser uniquement les ports nécessaires
Chaque service accessible depuis Internet doit disposer d’une règle adaptée. N’ouvrez pas une plage complète lorsqu’un seul port suffit.
Serveur web HTTP et HTTPS
Pour un site web :
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Le port 80/tcp correspond généralement à HTTP et 443/tcp à HTTPS.
Lorsque le profil est disponible, vous pouvez utiliser :
sudo ufw allow "Nginx Full"
Vérifiez toujours son contenu avant de l’ajouter :
sudo ufw app info "Nginx Full"
Serveur Minecraft
Pour un serveur Minecraft Java utilisant son port habituel :
sudo ufw allow 25565/tcp
Adaptez la règle si votre configuration utilise un autre port.
Serveur FiveM
Un serveur FiveM utilise couramment le même numéro de port en TCP et UDP. Si votre configuration utilise 30120 :
sudo ufw allow 30120/tcp
sudo ufw allow 30120/udp
Le port réellement requis doit correspondre à votre fichier de configuration. N’ouvrez pas automatiquement un port simplement parce qu’il apparaît dans un tutoriel.
Autoriser une adresse IP précise
Vous pouvez limiter l’accès à un service à une seule adresse IP :
sudo ufw allow from 198.51.100.25 to any port 3306 proto tcp
Cette règle est préférable à une ouverture publique d’un service d’administration ou d’une base de données, lorsque l’adresse cliente est stable.
N’exposez pas publiquement MySQL, PostgreSQL, Redis ou un panneau d’administration sans nécessité et sans restriction complémentaire.
Activer et vérifier le pare-feu
Après avoir autorisé SSH et les services nécessaires, activez UFW :
sudo ufw enable
UFW affiche un avertissement concernant les connexions SSH. Confirmez uniquement après avoir vérifié la règle autorisant votre port.
Contrôlez la configuration :
sudo ufw status verbose
Vous devez retrouver les politiques par défaut et les règles actives :
Status: active
Default: deny (incoming), allow (outgoing)
Affichez les règles avec leurs numéros :
sudo ufw status numbered
Ouvrez ensuite une deuxième fenêtre de terminal et testez une nouvelle connexion SSH :
ssh utilisateur@ADRESSE_IP
Ne fermez la première session qu’après avoir réussi ce test.
Testez également vos services depuis un autre appareil ou réseau. Un programme doit être démarré et écouter sur le port pour être accessible : une règle UFW ne lance pas le service.
Pour afficher les ports réellement en écoute :
sudo ss -lntup
Ajouter, limiter ou supprimer des règles
Supprimer une règle par son numéro
Affichez les règles :
sudo ufw status numbered
Exemple :
[ 1] OpenSSH ALLOW IN Anywhere
[ 2] 25565/tcp ALLOW IN Anywhere
Supprimez la règle numéro 2 :
sudo ufw delete 2
Les numéros peuvent changer après chaque suppression. Affichez de nouveau la liste avant de supprimer une autre règle.
Supprimer une règle par sa définition
Vous pouvez aussi reprendre sa syntaxe :
sudo ufw delete allow 25565/tcp
Limiter les tentatives SSH
UFW propose une règle limit destinée à ralentir les tentatives répétées de connexion.
Si vous avez déjà une règle allow OpenSSH, supprimez-la avant de la remplacer :
sudo ufw delete allow OpenSSH
sudo ufw limit OpenSSH
Avec un port personnalisé :
sudo ufw delete allow 2222/tcp
sudo ufw limit 2222/tcp
Vérifiez immédiatement que la nouvelle règle est présente :
sudo ufw status
Cette limitation ne remplace pas une clé SSH ni la désactivation de l’authentification par mot de passe.
Recharger ou désactiver UFW
Après une modification :
sudo ufw reload
Pour désactiver temporairement le pare-feu :
sudo ufw disable
La désactivation conserve normalement les règles pour une future réactivation.
La commande suivante réinitialise UFW et supprime ses règles :
sudo ufw reset
Utilisez-la avec prudence, particulièrement sur un VPS administré uniquement par SSH.
Pour compléter cette configuration avec les mises à jour, un utilisateur non-root et une authentification par clé, consultez le guide pour sécuriser votre serveur Linux.
Des sauvegardes automatiques sont incluses pour vous aider à restaurer. Conservez aussi vos propres exports réguliers : vous restez responsable de vos données.
En résumé
- Un pare-feu UFW VPS bloque les connexions entrantes non autorisées.
- Installez UFW avec
sudo apt install -y ufw. - Vérifiez son état avec
sudo ufw status. - Autorisez impérativement SSH avant
sudo ufw enable. - Utilisez
sudo ufw allow OpenSSHou autorisez le véritable port SSH en TCP. - Gardez une session ouverte et testez une deuxième connexion avant de la fermer.
- Appliquez
deny incomingetallow outgoingcomme politiques de base. - Ouvrez uniquement les ports réellement utilisés par vos services.
- Autorisez séparément TCP et UDP lorsqu’une application exige les deux protocoles.
- Vérifiez les règles avec
sudo ufw status verboseetsudo ufw status numbered. - Supprimez une règle avec
sudo ufw delete NUMERO. - Utilisez
ufw limitpour limiter les tentatives SSH répétées. - Pour configurer un pare-feu UFW VPS sur une infrastructure hébergée en France avec stockage NVMe, Anti-DDoS L3/L4/L7 inclus, panel de gestion et support francophone, découvrez les offres VPS TalCloud.