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 :

(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.


⬆️ Retour en haut de la page