Un VPS Windows Server exposé sur Internet avec le Bureau à distance (RDP) ouvert sur le port 3389 par défaut est une cible permanente. Les scanners automatisés détectent un nouveau serveur en quelques minutes, et un VPS sans durcissement peut recevoir entre 5 000 et 50 000 tentatives de connexion par jour. Selon les données sectorielles de 2024-2025, 40 à 60 % des infections par rançongiciel ont commencé par un accès RDP exposé. Ce guide couvre les mesures concrètes pour durcir l'accès distant, le pare-feu et les stratégies de groupe (GPO) d'un VPS Windows Server 2022 ou 2025.
Pourquoi un port RDP exposé est un risque critique
Le protocole RDP écoute par défaut sur le port TCP 3389. Ce port est le premier que les outils d'attaque automatisés scannent sur une adresse IP publique. Plus de 4,4 millions d'instances RDP sont visibles publiquement selon les recensements Shodan. En pratique, trois scénarios menacent un VPS Windows non durci :
- Force brute : des robots testent des combinaisons identifiant/mot de passe en continu. Sans verrouillage de compte ni mot de passe robuste, l'accès finit par être trouvé.
- Exploitation de vulnérabilités : des failles comme BlueKeep (CVE-2019-0708) permettaient l'exécution de code à distance avant authentification sur des serveurs non patchés. L'activation de NLA (Network Level Authentication) bloquait l'exploitation de BlueKeep car l'authentification échouait avant d'atteindre le code vulnérable.
- Vol d'identifiants : un mot de passe administrateur obtenu par hameçonnage ou fuite de données donne un accès complet si aucune restriction réseau n'est en place.
La suite de ce guide détaille chaque mesure à appliquer sur votre VPS Windows pour réduire drastiquement cette surface d'attaque.
Activer NLA (Network Level Authentication)
NLA oblige le client RDP à s'authentifier avant que le serveur n'alloue une session graphique. Sans NLA, le serveur affiche l'écran de connexion à n'importe quel visiteur, ce qui consomme des ressources et expose la surface d'attaque. NLA est activé par défaut sur Windows Server 2022 et 2025, mais certaines images préconfigurées ou templates d'installation le désactivent.
Pour vérifier l'état de NLA en PowerShell :
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" | Select-Object UserAuthentication, SecurityLayer
La valeur UserAuthentication doit être à 1. Si ce n'est pas le cas, activez NLA :
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name "UserAuthentication" -Value 1
Vous pouvez aussi l'activer via l'interface graphique : Propriétés système, onglet Utilisation à distance, cochez "Autoriser uniquement les connexions des ordinateurs exécutant le Bureau à distance avec authentification au niveau du réseau".
Changer le port RDP par défaut
Déplacer RDP du port 3389 vers un port non standard ne constitue pas une mesure de sécurité en soi (un scan de ports le trouvera), mais cela élimine l'essentiel des tentatives automatisées qui ne ciblent que le port par défaut. La documentation Microsoft décrit la procédure via le registre :
$portValue = 41389
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name 'PortNumber' -Value $portValue
Après la modification, créez les règles de pare-feu pour le nouveau port avant de redémarrer, sinon vous perdrez l'accès :
New-NetFirewallRule -DisplayName 'RDP-Custom-TCP-In' -Profile Any -Direction Inbound -Action Allow -Protocol TCP -LocalPort $portValue
New-NetFirewallRule -DisplayName 'RDP-Custom-UDP-In' -Profile Any -Direction Inbound -Action Allow -Protocol UDP -LocalPort $portValue
Supprimez ensuite les anciennes règles qui autorisent le port 3389, puis redémarrez le serveur. Pour vous reconnecter, ajoutez le port à l'adresse : votre-ip:41389. Si vous perdez l'accès après un changement de port, notre guide débloquer un VPS Windows quand le port RDP est bloqué explique comment reprendre la main via la console VNC.
Restreindre l'accès RDP avec le pare-feu Windows
Le pare-feu Windows avec sécurité avancée permet de limiter les connexions RDP aux seules adresses IP autorisées. C'est la mesure la plus efficace si vous vous connectez depuis un nombre limité d'emplacements (bureau, domicile, VPN). En PowerShell :
# Remplacez par vos adresses IP publiques autorisées
$ipsAutorisees = @('203.0.113.10', '198.51.100.20')
# Supprimez les règles RDP existantes ouvertes à tous
Get-NetFirewallRule -DisplayName "*Remote Desktop*" | Remove-NetFirewallRule
# Créez une règle restreinte à vos IP
New-NetFirewallRule -DisplayName 'RDP-Restreint-TCP' -Profile Any -Direction Inbound -Action Allow -Protocol TCP -LocalPort 3389 -RemoteAddress $ipsAutorisees
Si votre adresse IP change régulièrement, cette approche seule ne suffit pas : combinez-la avec un accès VPN (voir la section dédiée plus bas). Vérifiez aussi que le profil de pare-feu actif est bien "Public" ou "Domaine" et non "Privé", car les règles par défaut du profil privé sont plus permissives.
Pour les administrateurs de serveurs dédiés, les mêmes principes s'appliquent avec en complément la possibilité de filtrer au niveau du switch réseau ou du pare-feu matériel.
Configurer la stratégie de verrouillage de compte
Le verrouillage de compte bloque automatiquement un compte après un nombre défini de tentatives échouées. C'est le rempart principal contre les attaques par force brute. La baseline de sécurité Microsoft recommande un seuil de 10 tentatives invalides, avec un déverrouillage automatique après 30 minutes.
Configuration via la stratégie de groupe locale (gpedit.msc) :
Naviguez vers Configuration ordinateur, Paramètres Windows, Paramètres de sécurité, Stratégies de compte, Stratégie de verrouillage du compte, puis configurez :
| Paramètre | Valeur recommandée |
|---|---|
| Seuil de verrouillage du compte | 10 tentatives |
| Durée de verrouillage du compte | 30 minutes |
| Réinitialiser le compteur après | 30 minutes |
Un seuil trop bas (3 tentatives) risque de verrouiller des comptes légitimes, notamment si des services ou des tâches planifiées utilisent des identifiants périmés. Le seuil de 10 offre un bon équilibre entre sécurité et disponibilité selon la documentation Microsoft.
Appliquer une politique de mot de passe robuste
Un mot de passe faible annule toutes les autres mesures. Configurez la stratégie de mot de passe via gpedit.msc sous Configuration ordinateur, Paramètres Windows, Paramètres de sécurité, Stratégies de compte, Stratégie de mot de passe :
| Paramètre | Valeur recommandée |
|---|---|
| Longueur minimale du mot de passe | 14 caractères |
| Le mot de passe doit respecter des exigences de complexité | Activé |
| Durée de vie maximale du mot de passe | 90 jours (ou 0 si vous utilisez des mots de passe longs et uniques) |
| Conserver l'historique des mots de passe | 24 mots de passe |
Les exigences de complexité de Windows imposent au moins trois types de caractères parmi majuscules, minuscules, chiffres et symboles. Pour un VPS Windows administré par une seule personne, un mot de passe de 20 caractères ou plus généré aléatoirement et stocké dans un gestionnaire de mots de passe est préférable à une rotation fréquente.
Placer RDP derrière un VPN ou un tunnel
La mesure la plus radicale consiste à ne jamais exposer RDP directement sur Internet. En bloquant le port RDP dans le pare-feu pour les connexions entrantes publiques et en n'y accédant que via un tunnel chiffré, vous supprimez toute la surface d'attaque liée aux scans et aux tentatives de force brute.
Deux approches courantes :
- VPN intégré à Windows Server : le rôle "Accès à distance" de Windows Server permet de configurer un serveur VPN (SSTP ou IKEv2). Le client se connecte d'abord au VPN, puis accède à RDP via l'adresse IP privée du VPN.
- Tunnel SSH ou WireGuard : si vous administrez aussi des serveurs Linux, un tunnel SSH inversé ou un serveur WireGuard sur une machine Linux peut servir de point d'entrée unique vers votre VPS Windows. L'équivalent Linux de cette approche est détaillé dans notre guide sécuriser SSH sur un VPS Linux.
Dans les deux cas, désactivez la règle de pare-feu qui autorise RDP depuis l'extérieur. RDP reste accessible uniquement depuis le réseau du VPN.
Maintenir Windows Server à jour
Les correctifs de sécurité Microsoft sont publiés le deuxième mardi de chaque mois (Patch Tuesday). Chaque mois apporte des correctifs pour des vulnérabilités RDP, réseau ou noyau. Un serveur non patché reste vulnérable aux failles connues et exploitées activement.
Pour configurer les mises à jour automatiques via la stratégie de groupe locale, naviguez vers Configuration ordinateur, Modèles d'administration, Composants Windows, Windows Update, Configurer les mises à jour automatiques et sélectionnez l'option 4 (téléchargement automatique et installation planifiée). Choisissez un créneau de maintenance où le serveur peut redémarrer sans impacter vos services, par exemple le dimanche à 4 h du matin.
En PowerShell, vérifiez les mises à jour en attente :
# Installer le module Windows Update si nécessaire
Install-Module -Name PSWindowsUpdate -Force
Get-WindowsUpdate
Côté Linux, l'automatisation des correctifs de sécurité est couverte dans notre guide automatiser les mises à jour de sécurité sur VPS Ubuntu.
Réglages GPO complémentaires pour le durcissement
Au-delà du verrouillage de compte et des mots de passe, plusieurs stratégies de groupe renforcent la sécurité globale du serveur :
| Paramètre GPO | Chemin | Valeur |
|---|---|---|
| Renommer le compte administrateur | Configuration ordinateur, Paramètres Windows, Paramètres de sécurité, Stratégies locales, Options de sécurité | Un nom non devinable (pas "admin", "administrateur") |
| Limiter les sessions RDP simultanées | Configuration ordinateur, Modèles d'administration, Composants Windows, Services Bureau à distance, Hôte de session, Connexions | 1 ou 2 sessions maximum |
| Délai d'inactivité de session RDP | Même chemin, Limites de temps des sessions | 15 minutes pour les sessions déconnectées |
| Audit des échecs de connexion | Configuration ordinateur, Paramètres Windows, Paramètres de sécurité, Stratégies locales, Stratégie d'audit | Auditer les événements de connexion : Échec activé |
L'audit des échecs de connexion génère des événements dans le journal de sécurité Windows (ID 4625). Surveillez ce journal régulièrement : une explosion du nombre d'événements 4625 signale une attaque par force brute en cours.
Pour une approche globale de la sécurisation d'un nouveau serveur, notre guide sécuriser un serveur dédié : premiers réglages couvre les fondamentaux applicables à tout environnement. Et si votre VPS devient inaccessible après une modification, le guide diagnostiquer un VPS inaccessible en 30 secondes fournit la méthode de diagnostic réseau rapide.
Récapitulatif des mesures par priorité
| Priorité | Mesure | Effet |
|---|---|---|
| 1 | Activer NLA | Bloque les connexions non authentifiées avant allocation de session |
| 2 | Restreindre les IP dans le pare-feu | Supprime les scans et les tentatives depuis des IP inconnues |
| 3 | Verrouillage de compte (10 tentatives / 30 min) | Stoppe les attaques par force brute |
| 4 | Mot de passe robuste (14+ caractères, complexité) | Rend la force brute inefficace |
| 5 | Changer le port RDP | Élimine les scans automatisés sur le port 3389 |
| 6 | VPN ou tunnel | Supprime toute exposition directe de RDP |
| 7 | Mises à jour automatiques | Corrige les vulnérabilités connues |
| 8 | GPO de durcissement complémentaires | Réduit la surface d'attaque résiduelle |
Chaque mesure se cumule avec les précédentes. Un VPS Windows Server configuré avec l'ensemble de ces réglages oppose une résistance radicalement supérieure aux attaques comparé à une installation par défaut.