Je vais parler ici de la possibilité de configurer un VPN IPsec sécurisé entre des hôtes Microsoft Windows situés sur le même LAN, afin d'améliorer grandement la sécurité du réseau. Grâce à cette configuration, tous les échanges entre les machines seront cryptés, sans exception.
Pour les besoins de cet article, nous garderons une architecture aussi simple que possible. Il s'agit d'établir une connexion sécurisée avec un VPN IPsec sécurisé par PSK (Pre-shared key) entre un ordinateur fonctionnant sous Windows 11 et un serveur fonctionnant sous Windows 2022. Les deux ordinateurs seront sur le même réseau local.
PS C:\> $PSKAuthProp = New-NetIPsecAuthProposal -Machine -PreSharedKey "IPsuperSECRET"
PS C:\> $PSKAuthSet = New-NetIPsecPhase1AuthSet -DisplayName "PSK auth" -Proposal $PSKAuthProp
PS C:\> New-NetIPsecRule -DisplayName "IPsec" -Name "IPsec" -Mode Transport -InboundSecurity Require -OutboundSecurity Require -LocalAddress 192.168.1.200 -RemoteAddress 192.168.1.30 -Enable True -Phase1AuthSet $PSKAuthSet.Name
Nous allons la créer une règle de pare-feu pour permettre les flux chiffrés.
PS C:\> New-NetFirewallRule -DisplayName "IPsec ALLOW" -Direction Inbound -Enabled True -Action Allow -LocalAddress 192.168.1.200 -RemoteAddress 192.168.1.0/24 -Protocol Any -Encryption Dynamic -Authentication Required
Nous avons maintenant terminé la configuration du serveur. Il est maintenant temps de passer à la configuration du client.
Je vais les décrire toutes, mais les étapes sont globalement les mêmes que celles que nous avons suivies pour le serveur.
A partir d'ici, tout devrait être fonctionnel et les connexions sont chiffrées. Nous allons voir comment renforcer davantage la sécurité en choisissant des protocoles IPsec plus robustes que ceux proposés par défaut. Toutes les commandes ci-dessous doivent être entrées à la fois sur le client et sur le serveur.
PS C:\> Set-NetIPsecRule -DisplayName "IPsec" -KeyModule IKEv2 -ForwardPathLifetime 120
PS C:\> $proposal1 = (New-NetIPsecQuickModeCryptoProposal -Encapsulation ESP -Encryption AES256 -ESPHash SHA256)
PS C:\> $mMCryptoSet=(New-NetIPsecQuickModeCryptoSet -DisplayName "Quick Mode Rule" -Proposal $proposal1)
PS C:\> Set-NetIPsecRule -DisplayName IPsec -QuickModeCryptoSet $mMCryptoSet.Name
PS C:\> Get-NetIPsecRule -DisplayName IPsec
PS C:\> Remove-NetIPsecRule -DisplayName IPsec
PS C:\> Get-NetIPsecMainModeRule -DisplayName IPsecMain
PS C:\> Remove-NetIPsecMainModeRule -Name "{XXX-XXX-XXX}"
PS C:\> Get-NetIPsecMainModeSA
PS C:\> Get-NetIPsecQuickModeSA
Contact :