Comment configurer en toute sécurité les règles de pare-feu d’un VPS
Publié le 4 septembre 2026

Un pare-feu doit autoriser le trafic dont votre serveur a besoin et refuser discrètement le reste. Pour configurer en toute sécurité les règles de pare-feu d’un VPS, commencez par les services qui doivent rester accessibles, en particulier SSH, puis ajoutez les ports web et applicatifs un par un. Ne commencez pas par tout bloquer depuis la seule session de terminal que vous avez ouverte. C’est ainsi qu’une tâche de maintenance tranquille se transforme en opération de récupération via la console.
Pour la plupart des déploiements de VPS Linux, l’objectif pratique est simple : refuser par défaut le trafic entrant non sollicité, autoriser le trafic sortant requis et créer des règles entrantes restrictives pour les utilisateurs et services de confiance. Cela réduit la surface d’attaque sans compliquer l’administration courante.
Commencez par la cartographie du trafic
Avant de modifier la moindre règle, notez ce que le VPS fait réellement. Un site WordPress public, par exemple, a généralement besoin de SSH pour l’administration et des ports 80 et 443 pour le trafic web. Une API privée peut n’avoir besoin que de HTTPS, tandis qu’un serveur de base de données ne devrait généralement accepter des connexions que depuis un serveur applicatif sur un réseau privé.
Vérifiez d’abord les services à l’écoute. Sur la plupart des distributions Linux, cette commande offre une vue utile :
```bash sudo ss -tulpn ```
N’ouvrez pas automatiquement chaque port affiché. Certains services n’écoutent que sur localhost ou sur une interface privée et n’ont pas besoin d’un accès public via le pare-feu. D’autres peuvent être d’anciens services de test, des agents de supervision ou des logiciels qui ne devraient pas du tout être accessibles depuis Internet.
Pour chaque port exposé au public, répondez à trois questions : qui en a besoin, depuis où et via quel protocole ? Une règle autorisant HTTPS depuis n’importe où est normale pour un site web public. Une règle autorisant un port de base de données depuis n’importe où est généralement un problème qui attend poliment dans les journaux.
Conservez une voie de récupération avant de configurer les règles de pare-feu du VPS
Maintenez deux sessions SSH actives pendant que vous modifiez le pare-feu. Utilisez une session pour appliquer les règles et laissez la seconde intacte. Après avoir appliqué une modification, testez une nouvelle connexion depuis un autre terminal avant de fermer quoi que ce soit. Cela permet de détecter les erreurs dans le chemin de connexion réel au lieu de compter sur l’optimisme.
Vérifiez également que la console de votre fournisseur de VPS est disponible. Une console accessible depuis le navigateur ou un environnement de secours sert de solution de repli si SSH est bloqué. Ce n’est pas un substitut à un travail soigneux, mais c’est une bonne assurance opérationnelle.
Si SSH s’exécute sur un port non standard, vérifiez-le avant de créer des règles :
```bash sudo ss -tulpn | grep ssh ```
Un port SSH non standard peut réduire le bruit de fond des analyses automatisées, mais ce n’est pas une mesure de sécurité réellement significative à lui seul. Une authentification forte, un accès source limité et l’application rapide des correctifs font le vrai travail.
Utilisez une politique entrante de refus par défaut avec UFW
UFW est une interface de pare-feu pratique pour les serveurs VPS Ubuntu et basés sur Debian. Il est facile à relire par la suite, ce qui compte lorsqu’un autre administrateur doit résoudre une panne à 2 h du matin.
Commencez par définir des valeurs par défaut raisonnables :
```bash sudo ufw default deny incoming sudo ufw default allow outgoing ```
Ensuite, autorisez SSH avant d’activer le pare-feu. Si votre serveur utilise le port SSH par défaut, utilisez :
```bash sudo ufw allow OpenSSH ```
Si SSH écoute sur un port personnalisé, indiquez-le explicitement. Cet exemple utilise le port 2222 :
```bash sudo ufw allow 2222/tcp ```
Pour un site web public classique, autorisez HTTP et HTTPS :
```bash sudo ufw allow 80/tcp sudo ufw allow 443/tcp ```
Activez ensuite le pare-feu et vérifiez la politique obtenue :
```bash sudo ufw enable sudo ufw status numbered ```
L’état numéroté est utile, car les règles peuvent ensuite être supprimées avec précision. Évitez de laisser des règles temporaires trop larges en place après le dépannage. Les règles temporaires ont cette drôle d’habitude de devenir du mobilier permanent.
Si le VPS héberge une application web derrière un proxy inverse, il se peut que le port de l’application n’ait pas besoin d’être public. Par exemple, Nginx peut accepter le trafic sur les ports 80 et 443 tandis que l’application écoute sur `127.0.0.1:3000`. Dans cette conception, aucune règle de pare-feu pour le port 3000 n’est nécessaire.
Restreignez l’accès administratif par adresse IP source
SSH ne devrait pas être ouvert à toutes les adresses à moins que votre équipe n’ait réellement besoin de cette souplesse. Si votre bureau, VPN ou hôte de rebond dispose d’une adresse IP publique stable, limitez SSH à celle-ci :
```bash sudo ufw allow from 203.0.113.25 to any port 22 proto tcp ```
Pour une équipe distribuée avec des IP domestiques changeantes, un VPN ou un hôte bastion est souvent une meilleure solution que d’ouvrir SSH globalement. Cela ajoute un peu de travail de configuration, mais vous offre un chemin d’administration unique et contrôlé ainsi qu’une piste d’audit plus propre.
La limitation de débit peut également réduire les tentatives basiques de devinette de mot de passe SSH :
```bash sudo ufw limit 22/tcp ```
Cela ne remplace pas les clés SSH, la désactivation de l’authentification par mot de passe lorsque cela est approprié, ni l’accès multifacteur via votre chemin d’administration. Considérez cela comme un panneau de clôture, pas comme toute la clôture.