Skip to content

Fermer ou bloquer un port (Windows & Linux)

Apprenez à fermer un port correctement : arrêter le service vs le bloquer au pare-feu. Couvre le pare-feu Windows, ufw, firewalld, iptables et la désactivation des services.

Publié le 4 min de lecture

« Comment fermer un port ? » signifie généralement l'une de deux choses différentes : arrêter le programme qui écoute, ou bloquer le trafic vers lui avec un pare-feu. Les deux ont leur place, mais ne sont pas équivalents. Ce guide couvre la vraie solution (arrêter ou désactiver le service) et la couche défensive (bloquer le port au pare-feu) sous Windows et Linux, avec des exemples concrets pour les services à risque.

Arrêter le service vs bloquer le port

Si un port est ouvert, un service y est lié. La solution la plus complète est d'arrêter ce service pour que plus rien n'écoute : un port sans service à l'écoute est fermé sur toutes les interfaces et ne présente rien à attaquer. Une règle de pare-feu est différente : le service continue de tourner et d'écouter, et vous bloquez simplement le trafic qui cherche à l'atteindre. Les pare-feux sont une excellente défense en profondeur, mais un service arrêté ne peut pas être exposé par une future erreur de configuration. Règle générale : si vous n'avez pas besoin du service, désactivez-le ; si vous en avez besoin mais seulement en local, bloquez-le au pare-feu.

Étape 1 : identifier ce qui écoute

Avant de fermer quoi que ce soit, confirmez ce qui possède le port (voir notre guide sur la vérification des ports ouverts).

# Linux
sudo ss -tulpn | grep :3389
# Windows
netstat -ano | findstr :3389

Arrêter ou désactiver le service (la vraie solution)

Sous Linux avec systemd, arrêtez l'unité maintenant et empêchez-la de démarrer au boot :

# Exemple : arrêter et désactiver un Redis exposé sur le port 6379
sudo systemctl stop redis-server
sudo systemctl disable redis-server

La même approche ferme définitivement le port 23 (Telnet) en supprimant ou désactivant son démon, ou arrête une base de données en écoute sur le port 3306 (MySQL) ou le port 5432 (PostgreSQL) qui ne devrait pas tourner.

Sous Windows, arrêtez et désactivez le service :

# Exemple : désactiver le service Bureau à distance si le RDP n'est pas nécessaire
Stop-Service -Name TermService -Force
Set-Service -Name TermService -StartupType Disabled

Si le service doit rester actif mais ne doit pas accepter de connexions distantes, liez-le à localhost plutôt qu'à 0.0.0.0 dans sa configuration. Cela seul ferme le port 27017 (MongoDB) ou le port 6379 (Redis) au réseau tout en gardant les applications locales fonctionnelles.

Bloquer un port avec le pare-feu Windows

Quand vous ne pouvez pas arrêter le service, bloquez-le. Utilisez la cmdlet moderne de PowerShell :

# Bloquer le RDP entrant sur le port 3389
New-NetFirewallRule -DisplayName "Block RDP" -Direction Inbound `
  -Protocol TCP -LocalPort 3389 -Action Block

# Bloquer le SMB entrant sur le port 445
New-NetFirewallRule -DisplayName "Block SMB" -Direction Inbound `
  -Protocol TCP -LocalPort 445 -Action Block

La syntaxe classique netsh fonctionne toujours et est pratique dans les scripts :

netsh advfirewall firewall add rule name="Block Telnet" `
  dir=in action=block protocol=TCP localport=23

Bloquer un port avec ufw (Ubuntu/Debian)

ufw est l'interface de pare-feu Linux la plus simple :

# Refuser MySQL et PostgreSQL entrants
sudo ufw deny 3306/tcp
sudo ufw deny 5432/tcp

# Autoriser SSH depuis un seul réseau de confiance, le refuser ailleurs
sudo ufw allow from 203.0.113.0/24 to any port 22 proto tcp
sudo ufw enable

C'est un moyen propre de fermer le port 5900 (VNC) ou le port 8080 (HTTP alt) au public tout en les gardant ouverts en interne.

Bloquer un port avec firewalld (RHEL/Fedora/CentOS)

# Retirer un service/port de la zone active, puis recharger
sudo firewall-cmd --permanent --remove-port=3389/tcp
sudo firewall-cmd --permanent --remove-service=samba   # SMB 445/139
sudo firewall-cmd --reload

N'oubliez pas que le port 139 accompagne le port 445 pour SMB, fermez donc les deux si vous désactivez le partage de fichiers.

Bloquer un port avec iptables

Pour les systèmes sans interface de plus haut niveau, les règles iptables brutes fonctionnent partout :

# Rejeter le trafic entrant vers Redis sur le port 6379
sudo iptables -A INPUT -p tcp --dport 6379 -j DROP

# Rejeter MongoDB entrant sur le port 27017
sudo iptables -A INPUT -p tcp --dport 27017 -j DROP

Rendez les règles persistantes (iptables-save ou le service de votre distribution) pour qu'elles survivent à un redémarrage. D'autres ports à verrouiller depuis Internet incluent le port 1433 (SQL Server) et le port 161 (SNMP).

Vérifier que le port est fermé

Après tout changement, revérifiez depuis la machine et idéalement depuis l'extérieur :

# En local : quelque chose écoute-t-il encore ?
sudo ss -tulpn | grep :3389

# Depuis un autre hôte que vous possédez : est-il accessible ?
nmap -p 3389 <target>

Si ss ne montre aucun service en écoute et que Nmap signale le port fermé ou filtré, c'est terminé.

Conclusion

Bien fermer un port est surtout une question d'intention. Si vous n'avez pas besoin du service, arrêtez-le et désactivez-le pour que le port se ferme partout, la solution la plus propre pour les expositions à risque comme le RDP sur le port 3389, le SMB sur le port 445 ou Telnet sur le port 23. Si vous devez garder le service, liez-le à localhost ou bloquez-le avec le pare-feu Windows, ufw, firewalld ou iptables en défense en profondeur. Pour identifier n'importe quel port avant de le fermer, parcourez tous les ports sur ProtocolPorts.

Articles liés

Les ports exposés sur Internet que les attaquants ciblent en premier — RDP, SSH, SMB, bases de données — et la mesure de durcissement essentielle pour chacun.
Un guide pratique des ports à ne jamais exposer sur internet — SMB, RDP, Telnet, bases de données et plus — avec le risque et une alternative plus sûre pour chacun.
Ports liés aux chevaux de Troie, backdoors et C2 — NetBus, Back Orifice, ingreslock, Meterpreter et services légitimes détournés — et comment détecter une compromission.