Sur un VPS, chaque port ouvert peut exposer un service aux scans, aux tentatives de connexion et aux failles de configuration. Pour protéger votre serveur au Maroc, vous devez limiter les accès aux seuls ports nécessaires et contrôler précisément les adresses autorisées.
Vous sécurisez les ports ouverts en fermant les services inutiles, en appliquant un pare-feu comme UFW ou nftables, et en autorisant uniquement les connexions indispensables. Vous découvrirez aussi comment vérifier les ports actifs, protéger SSH et adapter les règles aux besoins d’une PME, d’un indépendant ou d’une agence.
Points clés
- Fermez les ports et services dont vous n’avez pas besoin.
- Autorisez uniquement les adresses et connexions nécessaires.
- Vérifiez régulièrement les règles et les ports exposés.
Comprendre les risques liés aux services exposés
Chaque port ouvert ajoute un point d’entrée potentiel vers votre VPS. Limitez l’exposition aux services indispensables, contrôlez les accès autorisés et surveillez les tentatives de connexion depuis Internet.
Identifier les ports réellement nécessaires
Commencez par lister les services installés et leur usage réel. Un serveur web utilise généralement 80 pour HTTP et 443 pour HTTPS.
Une connexion SSH peut utiliser le port 22, mais vous pouvez la restreindre à votre adresse IP fixe ou à un VPN.
| Service | Port courant | Mesure recommandée |
|---|---|---|
| SSH | 22 | Autoriser uniquement vos IP ou le VPN |
| HTTP | 80 | Rediriger vers HTTPS si nécessaire |
| HTTPS | 443 | Ouvrir publiquement pour un site web |
| Base de données | 3306, 5432 | Ne jamais exposer directement à Internet |
| Panneau d’administration | Variable | Limiter par IP ou VPN |
Sur un VPS utilisé par une PME marocaine, une base MySQL, PostgreSQL ou Redis doit généralement rester accessible uniquement en local ou depuis le serveur applicatif. Fermez les ports associés aux logiciels désinstallés, aux tests terminés et aux interfaces d’administration inutilisées.
Évaluer les menaces courantes sur un VPS
Les attaquants balaient en permanence les adresses IPv4 publiques pour détecter SSH, FTP, bases de données et panneaux d’administration. Un port exposé ne signifie pas automatiquement qu’une compromission aura lieu, mais un service vulnérable ou mal configuré peut permettre le vol de données, l’installation d’un logiciel malveillant ou l’utilisation du serveur pour envoyer du spam.
Pour SSH, utilisez des clés, désactivez l’authentification par mot de passe et interdisez la connexion directe de l’utilisateur root. Maintenez chaque service à jour, activez les journaux et appliquez une limitation des tentatives avec Fail2ban ou une règle équivalente.
N’exposez jamais une interface sensible sans contrôle supplémentaire. Autorisez uniquement les adresses nécessaires dans UFW, nftables ou le pare-feu fourni par votre hébergeur, puis vérifiez régulièrement les ports visibles avec ss -tulpn et un scan depuis un réseau externe.
Mettre en place un filtrage réseau efficace
Un filtrage efficace limite les services exposés sur votre VPS et réduit les risques liés aux scans automatisés. Bloquez tout trafic inutile, autorisez uniquement les flux nécessaires à vos applications et protégez strictement l’administration à distance.
Définir une politique de refus par défaut
Configurez votre pare-feu pour refuser les connexions entrantes par défaut. Avec UFW, utilisez notamment :
sudo ufw default deny incoming
sudo ufw default allow outgoing
Cette politique bloque les ports oubliés ou ouverts accidentellement. Elle convient à la plupart des VPS hébergeant un site web, une API ou des services internes.
Autorisez ensuite uniquement les ports nécessaires. Conservez une session SSH ouverte pendant la configuration et testez chaque règle dans une seconde session afin d’éviter de vous verrouiller hors du serveur.
Vérifiez régulièrement les règles actives :
sudo ufw status numbered
Supprimez les règles obsolètes avec leur numéro. Sur un VPS utilisé par une PME ou une agence au Maroc, cette vérification mensuelle aide à maintenir une exposition réseau limitée.
Autoriser uniquement les flux indispensables
Identifiez les services réellement utilisés avant d’ouvrir un port. Pour un serveur web, les ports 80/TCP et 443/TCP suffisent généralement pour le trafic HTTP et HTTPS :
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
N’exposez pas directement les ports d’une base de données, d’un panneau interne ou d’un outil de supervision à Internet. Autorisez-les seulement depuis une adresse IP fixe, un réseau privé ou un VPN :
sudo ufw allow from 203.0.113.25 to any port 5432 proto tcp
Remplacez cette adresse par une IP maîtrisée. Si votre fournisseur d’accès change régulièrement votre adresse, utilisez plutôt un VPN avec une adresse de sortie stable.
Contrôlez les ports réellement à l’écoute :
sudo ss -tulpen
Fermez tout service inutile avant de modifier le pare-feu.
Renforcer l’accès d’administration à distance
Limitez SSH à une adresse IP connue lorsque c’est possible :
sudo ufw allow from 203.0.113.25 to any port 22 proto tcp
Si plusieurs collaborateurs administrent le VPS depuis des réseaux différents, préférez un VPN plutôt qu’une ouverture SSH mondiale. Vous pouvez aussi utiliser un port SSH différent, mais ce changement réduit surtout le bruit des scans et ne remplace pas les mesures de sécurité essentielles.
Désactivez l’authentification par mot de passe après avoir testé une clé SSH :
PasswordAuthentication no
PermitRootLogin no
Appliquez ensuite la configuration du service SSH et conservez un accès de secours validé. Activez également une protection contre les tentatives répétées, comme Fail2ban, et journalisez les connexions pour détecter rapidement les accès inhabituels.
Foire aux questions
Vous pouvez auditer les ports avec ss, nmap et les règles du pare-feu. Gardez uniquement les accès nécessaires, limitez SSH à votre adresse IP lorsque c’est possible et protégez les services web avec TLS et une authentification adaptée.
Comment vérifier quels ports sont ouverts sur mon VPS ?
Connectez-vous en SSH et exécutez :
sudo ss -tulpen
Cette commande affiche les ports en écoute, le protocole utilisé et le service associé. Vérifiez aussi les règles actives :
sudo ufw status verbose
Pour tester l’accès depuis Internet, lancez nmap depuis un autre ordinateur :
nmap -Pn -p- ADRESSE_IP_DU_VPS
Un port ouvert localement peut rester bloqué par le pare-feu du fournisseur VPS. Contrôlez donc aussi les règles réseau dans le panneau de votre hébergeur.
Quels ports doivent rester ouverts sur un serveur VPS ?
Ouvrez uniquement les ports correspondant aux services utilisés :
22/TCPpour SSH, idéalement limité à votre IP d’administration ;80/TCPpour HTTP et les redirections vers HTTPS ;443/TCPpour HTTPS ;- le port nécessaire à votre VPN, si vous en utilisez un ;
- un port applicatif seulement si Internet doit y accéder directement.
N’exposez pas publiquement les ports de bases de données comme 3306, 5432 ou 6379. Faites écouter ces services sur 127.0.0.1 ou autorisez uniquement le réseau privé et les adresses indispensables.
Comment fermer un port inutile avec un pare-feu ?
Avec UFW, supprimez d’abord la règle existante :
sudo ufw status numbered
sudo ufw delete NUMERO
Vous pouvez aussi bloquer explicitement un port, par exemple 8080/TCP :
sudo ufw deny 8080/tcp
Pour éviter de perdre votre session distante, autorisez SSH avant d’activer ou de modifier le pare-feu :
sudo ufw allow from VOTRE_IP to any port 22 proto tcp
sudo ufw enable
Vérifiez ensuite la configuration avec sudo ufw status numbered. Si vous utilisez nftables, firewalld ou le pare-feu du fournisseur, appliquez la fermeture dans l’outil réellement actif.
Le port 80 doit-il utiliser TCP ou UDP ?
Le trafic HTTP classique utilise TCP, donc ouvrez 80/TCP :
sudo ufw allow 80/tcp
HTTP/3 utilise QUIC sur UDP/443, et non sur 80/UDP. N’ouvrez 80/UDP que si un service précis l’exige et que vous avez vérifié sa documentation.
Comment vérifier si le port 443 est accessible depuis Internet ?
Depuis un réseau externe, testez d’abord l’ouverture TCP :
nc -vz ADRESSE_IP_DU_VPS 443
Vous pouvez aussi utiliser :
nmap -Pn -p 443 ADRESSE_IP_DU_VPS
Puis vérifiez la réponse TLS et le certificat :
curl -Iv https://votre-domaine.ma
Le domaine doit pointer vers la bonne adresse IP, le service web doit écouter sur 0.0.0.0:443 ou sur l’adresse publique, et les pare-feu du VPS et du fournisseur doivent autoriser 443/TCP.
Comment sécuriser les ports 8080 et 8000 sur un VPS ?
N’exposez pas ces ports directement si votre application peut écouter sur 127.0.0.1. Publiez plutôt le service avec Nginx ou Apache sur 443/TCP, puis bloquez l’accès externe :
sudo ufw deny 8000/tcp
sudo ufw deny 8080/tcp
Si une agence ou un prestataire doit y accéder, limitez l’autorisation à ses adresses IP fixes :
sudo ufw allow from ADRESSE_IP_AUTORISEE to any port 8080 proto tcp
Ajoutez une authentification applicative, maintenez le framework à jour et consultez les journaux. Un port non standard, à lui seul, ne constitue pas une mesure de sécurité suffisante.