Le Bureau à distance Windows écoute sur le port 3389. C’est connu, c’est le premier port que scannent les outils automatisés qui cherchent des accès exposés. Sur un réseau interne isolé derrière un NAT correct, le risque est limité. Mais dès qu’une machine est accessible depuis l’extérieur — ou simplement si on veu une couche de sécurité supplémentaire sans effort — déplacer RDP sur un port non-standard est une mesure simple et efficace.

Ce que cette GPO fait :

  1. Change le port RDP de 3389 vers un port personnalisé (ici 12345 lol)
  2. Ouvre ce nouveau port dans le pare-feu Windows
  3. Bloque explicitement le port 3389 — pas juste “ne pas ouvrir”, mais bloquer activement

La troisième étape est souvent oubliée. Ne pas ouvrir le port 3389 dans le pare-feu ne suffit pas si des règles héritées ou locales l’autorisent. Le bloquer explicitement via la GPO écrase les règles locales et coupe net les tentatives de connexion sur l’ancien port.

Le port retenu : 12345

Le choix du port est arbitraire, tant qu’il est dans la plage 1024–65535 et qu’il n’est pas déjà utilisé par un autre service. 12345 est un exemple hein ! n’utilisez pas ca en prod.

En hexadécimal : 0x3039 — c’est la valeur qu’on entre dans le registre.

Création de la GPO

Dans la GPMC :

Clic droit sur l'OU cible → Create a GPO in this domain and link it here
Nom : RDP Custom Port

Lier selon le scope souhaité : SERVEURS, STATIONS, ou les deux.

Étape 1 — Activer RDP via ADMX

Computer Configuration → Policies → Administrative Templates
  → Windows Components → Remote Desktop Services
    → Remote Desktop Session Host → Connections
      → "Allow users to connect remotely by using Remote Desktop Services"
        → Activé

Étape 2 — Changer le port via GPP Registry

Computer Configuration → Preferences → Windows Settings → Registry
→ New → Registry Item
Champ Valeur
Action Mettre à jour
Ruche HKEY_LOCAL_MACHINE
Chemin SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
Nom de la valeur PortNumber
Type REG_DWORD
Données 3039 (base hexadécimale)

0x3039 = 12345 en décimal. Vérifier en calculatrice si besoin — une erreur ici et RDP devient inaccessible sur toutes les machines.

Étape 3 — Règles pare-feu

Computer Configuration → Policies → Windows Settings → Security Settings
  → Windows Firewall with Advanced Security → Inbound Rules

Règle 1 — Autoriser le nouveau port RDP

New Rule → Port
Protocol : TCP
Local Port : 12345
Action : Allow the connection
Security : Require authentication
Name : RDP Perso

Règle 2 — Bloquer TCP 3389

New Rule → Port
Protocol : TCP
Local Port : 3389
Action : Block the connection
Name : Block RDP TCP 3389

Règle 3 — Bloquer UDP 3389

New Rule → Port
Protocol : UDP
Local Port : 3389
Action : Block the connection
Name : Block RDP UDP 3389

Ne pas oublier la règle UDP. RDP utilise UDP 3389 depuis Windows 8/Server 2012 pour améliorer les performances. Un scanner qui ne trouve pas TCP 3389 essaiera UDP.

Vérification post-déploiement

Après gpupdate /force et reboot :

# Vérifier le port configuré (doit retourner 12345)
Get-ItemPropertyValue `
    "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" `
    -Name PortNumber

# Vérifier que RDP écoute sur le bon port
netstat -an | findstr 12345

# Vérifier les règles pare-feu
Get-NetFirewallRule -DisplayName "RDP Perso" | Select-Object DisplayName, Enabled, Action
Get-NetFirewallRule -DisplayName "Block RDP*" | Select-Object DisplayName, Enabled, Action

Pour tester la connexion depuis un autre poste, dans le client RDP :

mstsc /v:192.168.x.x:12345