Recréer les règles de connexion RDP à un serveur Windows
Introduction
La manipulation des règles du pare-feu Defender demande une certaine expérience. En effet, pour qu'un service ou une application puisse fonctionner, il est nécessaire de bien comprendre ses intrications avec les services systèmes de Windows, car une seule règle ne suffit souvent pas à autoriser l'accès à internet (ou au serveur).
RDP est un exemple typique. Nous allons voir les mécanismes nécessaires à la recréation des règles RDP permettant la connexion à un serveur Windows (Core ou Desktop).
L'idée ici est de se passer des règles prédéfinies de Windows et d'apprendre à les recréer. Pourquoi ? Parce qu'en Core, il est impossible de ré-appliquer les règles du magasin par défaut (à ma connaissance) une fois supprimées, sans devoir faire un reset de l'ensemble des règles par défaut. Il faut donc apprendre à les recréer une par une en analysant les originales.
1. Vérification des règles existantes
Avant toute modification, il est essentiel de vérifier les règles Windows par défaut concernant le Bureau à distance. Elles sont au nombre de 3. Voici comment afficher les détails de ces règles afin de les recréer plus tard.
Get-NetFirewallRule -Name "RemoteDesktop-UserMode-In-UDP" | Format-List *
Get-NetFirewallRule -Name "RemoteDesktop-UserMode-In-TCP" | Format-List *
Get-NetFirewallRule -Name "RemoteDesktop-Shadow-In-TCP" | Format-List *
Ces commandes affichent les détails complets des règles actuellement configurées.
2. Faire table rase des règles et appliquer un blocage par défaut
Nous allons :
- supprimer la totalité des règles du pare-feu Windows
- appliquer une politique de blocage par défaut sur tous les profils
- créer des règles de blocage de tous les flux par défaut
(ce qui se réalise ainsi) :
Supprimer toutes les règles de trafic entrant
Get-NetFirewallRule -Direction Inbound | Remove-NetFirewallRule
Supprimer toutes les règles de trafic sortant
Get-NetFirewallRule -Direction Outbound | Remove-NetFirewallRule
Appliquer la politique de blocage par défaut sur tous les profils
Set-NetFirewallProfile -Profile Domain,Private,Public -DefaultInboundAction Block -DefaultOutboundAction Block
Créer des règles de blocage pour les réseaux de multidiffusion et multidiffusion SSDP
New-NetFirewallRule -DisplayName "Block inbound from 224.0.0.0-239.255.255.255" -Direction Inbound -Action Block -Protocol Any -RemoteAddress "224.0.0.0-239.255.255.255" -Profile Domain,Private,Public
New-NetFirewallRule -DisplayName "Block inbound from 239.255.255.250" -Direction Inbound -Action Block -Protocol Any -RemoteAddress "239.255.255.250" -Profile Domain,Private,Public
New-NetFirewallRule -DisplayName "Block outbound to 224.0.0.0-239.255.255.255" -Direction Outbound -Action Block -Protocol Any -RemoteAddress "224.0.0.0-239.255.255.255" -Profile Domain,Private,Public
New-NetFirewallRule -DisplayName "Block outbound to 239.255.255.250" -Direction Outbound -Action Block -Protocol Any -RemoteAddress "239.255.255.250" -Profile Domain,Private,Public
Une fois fait, vous n'avez plus accès à rien ! Attention, ça coupera également les connexions RDP/SSH/WinRM, TOUT !! Mieux vaut vous entraîner dans une VM.
3. Recréation des règles RDP
Pour UDP (3389)
New-NetFirewallRule
-Name "RemoteDesktop-UserMode-In-UDP"
-DisplayName "Bureau à distance - Mode utilisateur (UDP entrant)"
-Description "Règle de trafic entrant pour que le service Bureau à distance autorise le trafic RDP. [UDP 3389]"
-Group "@FirewallAPI.dll,-28752"
-Direction Inbound
-Action Allow
-Protocol UDP
-LocalPort 3389
-Profile Any
-EdgeTraversalPolicy Block
-Enabled True
Pour TCP (3389)
New-NetFirewallRule
-Name "RemoteDesktop-UserMode-In-TCP"
-DisplayName "Bureau à distance - Mode utilisateur (TCP entrant)"
-Description "Règle de trafic entrant pour le service Bureau à distance pour autoriser le trafic RDP. [TCP 3389]"
-Group "@FirewallAPI.dll,-28752"
-Direction Inbound
-Action Allow
-Protocol TCP
-LocalPort 3389
-Profile Any
-EdgeTraversalPolicy Block
-Enabled True
Pour Shadow (Contrôle à distance)
New-NetFirewallRule
-Name "RemoteDesktop-Shadow-In-TCP"
-DisplayName "Bureau à distance - Contrôle à distance (TCP-In)"
-Description "Règle entrante pour que le service Bureau à distance autorise le contrôle à distance d'une session Bureau à distance existante. (TCP-In)"
-Group "@FirewallAPI.dll,-28752"
-Direction Inbound
-Action Allow
-Protocol TCP
-Profile Any
-EdgeTraversalPolicy DeferToApp
-Enabled True
4. Restreindre l'accès par IP locales
Si votre serveur possède plusieurs interfaces réseau, restreignez l'accès aux adresses IP locales spécifiques :
$LocalIp = @("IP-1","IP-2")
Set-NetFirewallRule -Name "RemoteDesktop-UserMode-In-UDP" -LocalAddress $LocalIP
Set-NetFirewallRule -Name "RemoteDesktop-UserMode-In-TCP" -LocalAddress $LocalIP
Set-NetFirewallRule -Name "RemoteDesktop-Shadow-In-TCP" -LocalAddress $LocalIP
5. Restreindre l'accès par IP distantes
Pour augmenter la sécurité, spécifiez uniquement les seules adresses IP distantes autorisées à se connecter :
$RemoteIp = @("IP-1","IP-2")
Set-NetFirewallRule -Name "RemoteDesktop-UserMode-In-UDP" -RemoteAddress $RemoteIP
Set-NetFirewallRule -Name "RemoteDesktop-UserMode-In-TCP" -RemoteAddress $RemoteIP
Set-NetFirewallRule -Name "RemoteDesktop-Shadow-In-TCP" -RemoteAddress $RemoteIP
6. Activer les connexions RDP
Après configuration des règles, activez-les ainsi que le service nécessaire pour autoriser les connexions RDP :
Enable-NetFirewallRule -Name "RemoteDesktop-UserMode-In-UDP"
Enable-NetFirewallRule -Name "RemoteDesktop-UserMode-In-TCP"
Enable-NetFirewallRule -Name "RemoteDesktop-Shadow-In-TCP"
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name "fDenyTSConnections" -Value 0
Set-Service -Name TermService -StartupType Automatic
Start-Service -Name TermService
Vous devez à présent pouvoir vous connecter au serveur via RDP.
↑ Haut de page