ANAVEM
Languageen
Comment configurer la protection étendue dans Exchange Server 2019/2016

Comment configurer la protection étendue dans Exchange Server 2019/2016

Activez la protection étendue sur Exchange Server pour prévenir les attaques par relais d'authentification et les attaques de type homme du milieu en utilisant des scripts PowerShell et des méthodes de configuration manuelles.

Emanuel DE ALMEIDAEmanuel DE ALMEIDA
17 mars 2026 18 min 4
hardexchange-server 8 étapes 18 min

Pourquoi configurer la protection étendue dans Exchange Server ?

La protection étendue est une fonctionnalité de sécurité critique qui empêche les attaques de relais d'authentification et les attaques de type homme du milieu contre Exchange Server. Elle fonctionne en liant l'authentification Windows (NTLM) aux informations de canal TLS dans IIS, rendant impossible pour les attaquants de relayer des jetons d'authentification capturés vers d'autres services.

Depuis août 2022, Microsoft a rendu la protection étendue obligatoire pour le renforcement de la sécurité d'Exchange Server. Les serveurs sans cette protection restent constamment vulnérables aux attaques d'authentification sophistiquées. Exchange Server 2019 CU14 et les versions ultérieures activent automatiquement la protection étendue lors de l'installation, mais les versions plus anciennes prises en charge nécessitent une configuration manuelle.

Quelles attaques d'authentification la protection étendue empêche-t-elle ?

La protection étendue atténue spécifiquement les attaques de relais NTLM où les attaquants interceptent les demandes d'authentification et les rejouent contre d'autres services Exchange. Sans cette protection, un attaquant qui capture le trafic d'authentification NTLM peut potentiellement accéder aux boîtes aux lettres, aux interfaces administratives ou à d'autres services Exchange en utilisant les identifiants capturés.

La protection fonctionne en créant une liaison cryptographique entre le canal TLS et le jeton d'authentification, garantissant que les demandes d'authentification ne peuvent être utilisées que dans la session TLS spécifique où elles ont été créées. Cela rend les attaques de relecture de crédentiels inefficaces même si l'attaquant a accès au réseau.

Quelles versions d'Exchange Server prennent en charge la protection étendue ?

La protection étendue est prise en charge sur Exchange Server 2013, 2016 et 2019, mais nécessite des mises à jour minimales spécifiques. Exchange 2016 et 2019 nécessitent au moins la mise à jour de sécurité d'août 2022, tandis qu'Exchange 2013 nécessite le même niveau de correctif minimal. Exchange 2019 CU14 et les versions ultérieures activent automatiquement la protection étendue lors de l'installation, rendant la configuration manuelle inutile pour les nouvelles installations.

Guide de mise en oeuvre

Procédure complète

01

Téléchargez et préparez le script de gestion de la protection étendue

Microsoft fournit un script PowerShell officiel pour gérer la protection étendue sur les serveurs Exchange. Téléchargez ce script depuis le dépôt GitHub officiel.

# Créer un répertoire de scripts
New-Item -Path "C:\Scripts" -ItemType Directory -Force

# Télécharger le script officiel (utiliser le navigateur ou PowerShell)
Invoke-WebRequest -Uri "https://github.com/microsoft/CSS-Exchange/raw/main/Security/ExchangeExtendedProtectionManagement/ExchangeExtendedProtectionManagement.ps1" -OutFile "C:\Scripts\ExchangeExtendedProtectionManagement.ps1"

# Définir la politique d'exécution si nécessaire
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Naviguez vers le répertoire des scripts et vérifiez le téléchargement :

cd C:\Scripts
Get-ChildItem ExchangeExtendedProtectionManagement.ps1 | Select-Object Name, Length, LastWriteTime
Astuce pro : Téléchargez toujours les scripts depuis les dépôts officiels de Microsoft pour garantir l'authenticité et les derniers correctifs de sécurité.
02

Vérifier l'état actuel de la protection étendue

Avant de faire des modifications, évaluez la configuration actuelle de la Protection Étendue sur tous les serveurs Exchange et répertoires virtuels.

# Ouvrir Exchange Management Shell en tant qu'administrateur
# Exécuter la commande de vérification de l'état
.\ExchangeExtendedProtectionManagement.ps1 -ShowExtendedProtection

Le script affichera un rapport complet montrant :

  • Noms des serveurs et leur statut de Protection Étendue
  • Répertoires virtuels (OWA, ECP, EWS, ActiveSync, etc.)
  • Valeurs de TokenChecking : None, Accept, ou Required
  • ExtendedProtectionFlags : None ou Proxy

Interprétation de l'exemple de sortie :

Serveur : EX01
  OWA : TokenChecking=None, Flags=None (VULNÉRABLE)
  ECP : TokenChecking=None, Flags=None (VULNÉRABLE)
  EWS : TokenChecking=Required, Flags=Proxy (PROTÉGÉ)

Vérification : Recherchez les valeurs "VULNÉRABLE" ou "None" indiquant des répertoires non protégés.

Avertissement : Les serveurs montrant des états de protection mixtes indiquent une configuration incomplète pouvant permettre un contournement de l'authentification.
03

Vérifier les prérequis et la compatibilité du serveur

La protection étendue nécessite des versions minimales spécifiques et une configuration cohérente dans votre environnement Exchange.

# Vérifier la version d'Exchange et les mises à jour cumulatives
Get-ExchangeServer | Select-Object Name, Edition, AdminDisplayVersion

# Vérifier la cohérence de la configuration TLS
Get-ExchangeServer | ForEach-Object {
    $server = $_.Name
    Write-Host "Vérification de TLS sur $server"
    Invoke-Command -ComputerName $server -ScriptBlock {
        Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "Enabled" -ErrorAction SilentlyContinue
    }
}

Vérifier les considérations de déploiement hybride :

# Identifier les serveurs d'agent hybride (si applicable)
Get-HybridConfiguration | Select-Object SendingTransportServers, ReceivingTransportServers

# Vérifier la configuration hybride moderne
Get-IntraOrganizationConnector | Select-Object Name, TargetAddressDomains

Vérification des exigences :

  • Exchange 2019 : CU14 ou ultérieur (active automatiquement EP)
  • Exchange 2016 : Mise à jour de sécurité minimum d'août 2022
  • Exchange 2013 : Mise à jour de sécurité minimum d'août 2022
  • Versions TLS : Doivent être identiques sur tous les serveurs

Vérification : Tous les serveurs doivent afficher des versions compatibles et des paramètres TLS cohérents.

04

Activer la protection étendue à l'aide du script officiel

Utilisez le script Microsoft pour activer la Protection Étendue sur tous les serveurs Exchange. Le script gère la vérification des prérequis et applique une configuration cohérente.

Pour les déploiements Exchange standard :

# Activer la Protection Étendue sur tous les serveurs
.\ExchangeExtendedProtectionManagement.ps1

# Le script va :
# 1. Vérifier les prérequis (versions CU/SU, cohérence TLS)
# 2. Définir ExtendedProtectionTokenChecking=Required
# 3. Définir ExtendedProtectionFlags=Proxy sur les répertoires virtuels
# 4. Appliquer les modifications à OWA, ECP, EWS, ActiveSync, PowerShell, Autodiscover, OAB, MAPI

Pour les déploiements hybrides (exclure EWS Front-End) :

# Hybride moderne - exclure EWS Front-End pour éviter les problèmes d'authentification
.\ExchangeExtendedProtectionManagement.ps1 -ExchangeServerNames "EX01,EX02" -ExcludeVirtualDirectories "EWSFrontEnd"

Pour des serveurs spécifiques uniquement :

# Cibler des serveurs spécifiques
.\ExchangeExtendedProtectionManagement.ps1 -ExchangeServerNames "EX01,EX02,EX03"

Surveillez l'exécution du script pour toute erreur ou avertissement. Le script fournit une sortie détaillée montrant chaque répertoire virtuel configuré.

Vérification : Exécutez à nouveau la vérification de l'état pour confirmer que tous les répertoires affichent les paramètres "Required" et "Proxy" :

.\ExchangeExtendedProtectionManagement.ps1 -ShowExtendedProtection
Astuce pro : Le script crée automatiquement des sauvegardes des configurations IIS avant de faire des modifications, permettant un retour en arrière facile si nécessaire.
05

Configurer la protection étendue manuellement via PowerShell

Pour un contrôle granulaire ou un dépannage, configurez la protection étendue manuellement en utilisant les cmdlets Exchange Management Shell.

Configurer les services d'accès client :

# Définir la protection étendue sur les services d'accès client
Get-ClientAccessService | Set-ClientAccessService -ExtendedProtectionTokenChecking Required

Configurer des répertoires virtuels individuels :

# Services Web (EWS)
Get-WebServicesVirtualDirectory | Set-WebServicesVirtualDirectory -ExtendedProtectionTokenChecking Required -ExtendedProtectionFlags Proxy

# Outlook Web App (OWA)
Get-OwaVirtualDirectory | Set-OwaVirtualDirectory -ExtendedProtectionTokenChecking Required -ExtendedProtectionFlags Proxy

# Panneau de contrôle Exchange (ECP)
Get-EcpVirtualDirectory | Set-EcpVirtualDirectory -ExtendedProtectionTokenChecking Required -ExtendedProtectionFlags Proxy

# ActiveSync
Get-ActiveSyncVirtualDirectory | Set-ActiveSyncVirtualDirectory -ExtendedProtectionTokenChecking Required -ExtendedProtectionFlags Proxy

# PowerShell
Get-PowerShellVirtualDirectory | Set-PowerShellVirtualDirectory -ExtendedProtectionTokenChecking Required -ExtendedProtectionFlags Proxy

# Autodiscover
Get-AutodiscoverVirtualDirectory | Set-AutodiscoverVirtualDirectory -ExtendedProtectionTokenChecking Required -ExtendedProtectionFlags Proxy

Pour des scénarios avancés, configurez directement via IIS web.config :

# Configurer plusieurs répertoires virtuels en masse
$VirtualDirectories = @("Microsoft-Server-ActiveSync","OWA","ECP","EWS","OAB","PowerShell","Autodiscover","MAPI")
foreach ($VDir in $VirtualDirectories) {
    try {
        Set-WebConfigurationProperty -Filter "system.webServer/security/authentication/windowsAuthentication" -Name "extendedProtection.tokenChecking" -Value "Required" -PSPath "IIS:\" -Location "Default Web Site/$VDir"
        Set-WebConfigurationProperty -Filter "system.webServer/security/authentication/windowsAuthentication" -Name "extendedProtection.flags" -Value "Proxy" -PSPath "IIS:\" -Location "Default Web Site/$VDir"
        Write-Host "Configured Extended Protection for $VDir" -ForegroundColor Green
    }
    catch {
        Write-Warning "Failed to configure $VDir: $($_.Exception.Message)"
    }
}

Vérification : Vérifiez les paramètres des répertoires virtuels individuels :

# Vérifier la configuration OWA
Get-OwaVirtualDirectory | Select-Object Server, Name, ExtendedProtectionTokenChecking, ExtendedProtectionFlags

# Vérifier la configuration EWS
Get-WebServicesVirtualDirectory | Select-Object Server, Name, ExtendedProtectionTokenChecking, ExtendedProtectionFlags
06

Configurer la protection étendue via le gestionnaire IIS

Utilisez le Gestionnaire IIS pour la configuration visuelle et le dépannage des paramètres de Protection Étendue sur les répertoires virtuels individuels.

Ouvrez le Gestionnaire IIS et accédez aux répertoires virtuels :

# Ouvrir le Gestionnaire IIS
inetmgr.exe

Étapes de configuration manuelle :

  1. Accédez à Sites → Site Web par Défaut (ou Exchange Back End)
  2. Sélectionnez un répertoire virtuel (par exemple, OWA, ECP, EWS)
  3. Double-cliquez sur Authentification dans la Vue des Fonctionnalités
  4. Sélectionnez Authentification Windows → Paramètres Avancés
  5. Définissez la Protection Étendue sur "Requis"
  6. Définissez les Indicateurs de Protection Étendue sur "Proxy" (si vous utilisez un équilibreur de charge) ou "Aucun" (connexion directe)

Vérifiez la configuration dans web.config :

# Vérifiez web.config pour les paramètres de Protection Étendue
$webConfigPath = "C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\web.config"
[xml]$webConfig = Get-Content $webConfigPath
$windowsAuth = $webConfig.configuration.'system.webServer'.security.authentication.windowsAuthentication
Write-Host "Vérification du Jeton de Protection Étendue : $($windowsAuth.extendedProtection.tokenChecking)"
Write-Host "Indicateurs de Protection Étendue : $($windowsAuth.extendedProtection.flags)"

Pour plusieurs répertoires virtuels, utilisez PowerShell pour vérifier les paramètres IIS :

# Vérifiez la configuration IIS pour tous les répertoires virtuels Exchange
$VDirs = @("OWA", "ECP", "EWS", "Microsoft-Server-ActiveSync", "PowerShell", "Autodiscover")
foreach ($VDir in $VDirs) {
    try {
        $tokenChecking = Get-WebConfigurationProperty -Filter "system.webServer/security/authentication/windowsAuthentication" -Name "extendedProtection.tokenChecking" -PSPath "IIS:\" -Location "Default Web Site/$VDir"
        $flags = Get-WebConfigurationProperty -Filter "system.webServer/security/authentication/windowsAuthentication" -Name "extendedProtection.flags" -PSPath "IIS:\" -Location "Default Web Site/$VDir"
        Write-Host "$VDir - Vérification du Jeton : $($tokenChecking.Value), Indicateurs : $($flags.Value)" -ForegroundColor $(if($tokenChecking.Value -eq "Required"){"Green"}else{"Red"})
    }
    catch {
        Write-Warning "Impossible de vérifier la configuration de $VDir"
    }
}

Vérification : Tous les répertoires virtuels doivent afficher "Requis" pour la vérification des jetons et les indicateurs appropriés en fonction de votre infrastructure.

Avertissement : Les modifications manuelles de la configuration IIS nécessitent une réinitialisation d'IIS pour prendre effet. Utilisez iisreset /noforce après avoir effectué des modifications.
07

Tester et vérifier la configuration de la protection étendue

Les tests complets garantissent que la Protection Étendue fonctionne correctement et ne bloque pas l'authentification légitime.

Créez un script de vérification complet :

# Vérification complète de la Protection Étendue
$Report = @()
$VDirTypes = @(
    @{Cmdlet="Get-OwaVirtualDirectory"; Type="OWA"},
    @{Cmdlet="Get-EcpVirtualDirectory"; Type="ECP"},
    @{Cmdlet="Get-WebServicesVirtualDirectory"; Type="EWS"},
    @{Cmdlet="Get-ActiveSyncVirtualDirectory"; Type="ActiveSync"},
    @{Cmdlet="Get-PowerShellVirtualDirectory"; Type="PowerShell"},
    @{Cmdlet="Get-AutodiscoverVirtualDirectory"; Type="Autodiscover"}
)

foreach ($VDirType in $VDirTypes) {
    $VDirs = & $VDirType.Cmdlet
    foreach ($VDir in $VDirs) {
        $Report += [PSCustomObject]@{
            Server = $VDir.Server
            Type = $VDirType.Type
            Name = $VDir.Name
            TokenChecking = $VDir.ExtendedProtectionTokenChecking
            Flags = $VDir.ExtendedProtectionFlags
            Status = if($VDir.ExtendedProtectionTokenChecking -eq "Required"){"PROTECTED"}else{"VULNERABLE"}
        }
    }
}

$Report | Format-Table -AutoSize
$Report | Where-Object {$_.Status -eq "VULNERABLE"} | Format-Table -AutoSize

Testez la connectivité client après avoir activé la Protection Étendue :

# Test de la connectivité OWA
Test-OwaConnectivity -ClientAccessServer EX01 -MailboxCredential (Get-Credential)

# Test de la connectivité EWS
Test-WebServicesConnectivity -ClientAccessServer EX01 -MailboxCredential (Get-Credential)

# Test de la connectivité ActiveSync
Test-ActiveSyncConnectivity -ClientAccessServer EX01 -MailboxCredential (Get-Credential)

Surveillez les journaux Exchange pour les problèmes d'authentification :

# Vérifiez les événements d'authentification récents
Get-WinEvent -LogName "Microsoft-Exchange-HttpProxy/HttpProxy" -MaxEvents 50 | Where-Object {$_.LevelDisplayName -eq "Error" -or $_.LevelDisplayName -eq "Warning"} | Select-Object TimeCreated, LevelDisplayName, Message

Testez à partir de clients externes (si applicable) :

  • Clients Outlook : Vérifiez l'autodiscover et l'accès à la boîte aux lettres
  • Appareils mobiles : Testez la connectivité ActiveSync
  • Navigateurs web : Accédez à OWA depuis différents réseaux
  • Applications tierces : Testez les intégrations basées sur EWS

Vérification : Tous les tests doivent réussir sans erreurs d'authentification. Vérifiez que la colonne Status affiche "PROTECTED" pour tous les répertoires virtuels.

Astuce pro : Gardez le script de vérification à portée de main pour des audits de sécurité réguliers et après l'application des mises à jour Exchange.
08

Gérer le retour en arrière et le dépannage

Si la protection étendue cause des problèmes de connectivité, vous pouvez annuler la configuration ou résoudre des problèmes spécifiques.

Annuler à l'aide du script officiel :

# Annuler la protection étendue à l'état précédent
.\ExchangeExtendedProtectionManagement.ps1 -Rollback

# Le script va :
# 1. Restaurer les valeurs précédentes de ExtendedProtectionTokenChecking
# 2. Réinitialiser ExtendedProtectionFlags à None
# 3. Restaurer la configuration IIS à partir de la sauvegarde

Annulation manuelle via PowerShell :

# Désactiver la protection étendue sur tous les répertoires virtuels
Get-OwaVirtualDirectory | Set-OwaVirtualDirectory -ExtendedProtectionTokenChecking None -ExtendedProtectionFlags None
Get-EcpVirtualDirectory | Set-EcpVirtualDirectory -ExtendedProtectionTokenChecking None -ExtendedProtectionFlags None
Get-WebServicesVirtualDirectory | Set-WebServicesVirtualDirectory -ExtendedProtectionTokenChecking None -ExtendedProtectionFlags None
Get-ActiveSyncVirtualDirectory | Set-ActiveSyncVirtualDirectory -ExtendedProtectionTokenChecking None -ExtendedProtectionFlags None
Get-PowerShellVirtualDirectory | Set-PowerShellVirtualDirectory -ExtendedProtectionTokenChecking None -ExtendedProtectionFlags None
Get-AutodiscoverVirtualDirectory | Set-AutodiscoverVirtualDirectory -ExtendedProtectionTokenChecking None -ExtendedProtectionFlags None

Scénarios courants de dépannage :

# Vérifier les incompatibilités de version TLS
Get-ExchangeServer | ForEach-Object {
    $server = $_.Name
    Write-Host "Vérification de la configuration TLS de $server..."
    Invoke-Command -ComputerName $server -ScriptBlock {
        $tls12 = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -ErrorAction SilentlyContinue
        $tls13 = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server" -ErrorAction SilentlyContinue
        [PSCustomObject]@{
            Server = $env:COMPUTERNAME
            TLS12Enabled = $tls12.Enabled
            TLS13Enabled = $tls13.Enabled
        }
    }
}

# Vérifier les problèmes de certificat
Get-ExchangeCertificate | Where-Object {$_.Status -ne "Valid"} | Select-Object Thumbprint, Subject, Status, NotAfter

Dépannage spécifique à l'hybride :

# Pour les déploiements hybrides, assurez-vous que EWS Front-End est exclu
Get-WebServicesVirtualDirectory | Where-Object {$_.Name -like "*FrontEnd*"} | Select-Object Server, Name, ExtendedProtectionTokenChecking

# Si EWS Front-End affiche "Required", désactivez-le :
Get-WebServicesVirtualDirectory | Where-Object {$_.Name -like "*FrontEnd*"} | Set-WebServicesVirtualDirectory -ExtendedProtectionTokenChecking None

Dépannage du répartiteur de charge :

  • SSL bridging : Assurez-vous que le même certificat est sur tous les serveurs
  • Proxy flags : Vérifiez que les indicateurs "Proxy" sont correctement définis
  • Health checks : Mettez à jour les URL de vérification de santé du répartiteur de charge si nécessaire

Vérification : Après le dépannage, relancez les tests de connectivité et vérifiez que l'accès client est rétabli.

Avertissement : Annuler la protection étendue supprime des protections de sécurité importantes. N'annulez que temporairement pendant la résolution des problèmes, puis réactivez dès que possible.

Questions Fréquentes

Le serveur Exchange 2019 CU14 active-t-il automatiquement la protection étendue ?+
Oui, Exchange Server 2019 CU14 et les versions ultérieures activent automatiquement la Protection Étendue lors de l'installation par défaut. Cependant, vous pouvez choisir de ne pas l'activer pendant l'installation en utilisant le paramètre /DoNotEnableEP si nécessaire. Pour les déploiements hybrides, utilisez /DoNotEnableEP_FEEWS pour exclure uniquement le répertoire virtuel Front-End EWS tout en protégeant les autres services.
Que se passe-t-il si j'active la Protection étendue sur les déploiements Exchange hybrides ?+
Dans les déploiements hybrides, vous devez exclure le répertoire virtuel EWS Front-End de la Protection Étendue pour éviter les échecs d'authentification avec Office 365. Utilisez le paramètre -ExcludeVirtualDirectories "EWSFrontEnd" avec le script de gestion, ou le paramètre d'installation /DoNotEnableEP_FEEWS. Tous les autres répertoires virtuels doivent avoir la Protection Étendue activée pour la sécurité.
Puis-je annuler la Protection étendue si elle cause des problèmes de connectivité ?+
Oui, vous pouvez annuler la Protection Étendue en utilisant le script officiel ExchangeExtendedProtectionManagement.ps1 avec le paramètre -Rollback. Cela restaure la configuration précédente à partir des sauvegardes automatiques. Vous pouvez également la désactiver manuellement en utilisant des cmdlets PowerShell, mais l'annulation ne devrait être que temporaire pendant la résolution des problèmes, car elle supprime des protections de sécurité importantes.
Quelles sont les versions minimales de Exchange Server qui prennent en charge la Protection étendue ?+
La Protection étendue nécessite Exchange Server 2013, 2016 ou 2019 avec au moins la mise à jour de sécurité d'août 2022 installée. Exchange 2016 et 2019 nécessitent également au minimum les versions CU de septembre 2021 ou CU H1 2022. Les serveurs sans ces mises à jour minimales ne peuvent pas activer la Protection étendue et restent vulnérables aux attaques de relais d'authentification.
Comment puis-je vérifier que la Protection étendue fonctionne correctement sur tous les serveurs Exchange ?+
Utilisez le script ExchangeExtendedProtectionManagement.ps1 avec le paramètre -ShowExtendedProtection pour vérifier l'état sur tous les serveurs et répertoires virtuels. Tous les répertoires protégés doivent afficher ExtendedProtectionTokenChecking=Required et ExtendedProtectionFlags=Proxy. De plus, exécutez des tests de connectivité Exchange comme Test-OwaConnectivity et Test-WebServicesConnectivity pour vous assurer que l'accès client fonctionne toujours correctement.
Emanuel DE ALMEIDA
Écrit par

Emanuel DE ALMEIDA

Microsoft MCSA-certified Cloud Architect | Fortinet-focused. I modernize cloud, hybrid & on-prem infrastructure for reliability, security, performance and cost control - sharing field-tested ops & troubleshooting.

Discussion

Partagez vos réflexions et analyses

Vous devez être connecté pour commenter.

Chargement des commentaires...