рекомендации по настройке TLS Exchange Server
В этой документации описаны действия, необходимые для правильной настройки (включения или отключения) определенных версий TLS в Exchange Server 2013, Exchange Server 2016 и Exchange Server 2019. В этой статье также объясняется, как оптимизировать наборы шифров и алгоритмы хэширования, используемые TLS. Если TLS настроен неправильно, при взаимодействии с Microsoft 365 или другими системами могут возникнуть различные проблемы, настроенные таким образом, что для них требуется определенный минимальный стандарт TLS.
Дополнительные сведения о протоколах TLS (и SSL) см. в статье Протокол безопасности транспортного уровня .
Важно!
Прочтите внимательно, так как некоторые описанные здесь действия могут выполняться только в определенных операционных системах или Exchange Server версиях.
В начале каждого раздела есть матрица, показывающая, поддерживается ли параметр и уже настроен ли он в определенной версии Exchange Server.
Что следует учитывать перед отключением версии TLS
Совет
Скрипт Exchange HealthChecker можно использовать для проверка текущей конфигурации TLS сервера Exchange.
Убедитесь, что каждое приложение поддерживает версии TLS, которые остаются включенными. Рекомендации, такие как (но не только):
- Поддерживают ли ваши контроллеры домена и серверы глобального каталога, например конфигурацию только TLS 1.2?
- Поддерживают ли партнерские приложения (например, sharePoint, Lync, Skype для бизнеса и т. д.), например конфигурацию только TLS 1.2?
- Обновили ли вы более старые рабочие столы Windows 7 с помощью Outlook для поддержки TLS 1.2 по WinHTTP?
- Поддерживают ли подсистемы балансировки нагрузки протокол TLS 1.2?
- Поддерживают ли классические, мобильные и браузерные приложения TLS 1.2?
- Поддерживают ли устройства, такие как многофункциональные принтеры, TLS 1.2?
- Поддерживают ли сторонние или пользовательские собственные приложения, которые интегрируются с Exchange Server или Microsoft 356, надежную реализацию TLS?
Поэтому мы настоятельно рекомендуем выполнить все действия, которые вы предпринимаете для перехода на TLS 1.2 и более старых протоколов безопасности, сначала выполнять в лабораториях, которые имитируют рабочие среды, прежде чем вы начнете медленно развертывать их в рабочей среде.
Действия, используемые для отключения определенной версии TLS, как описано ниже, применяются к следующим функциям Exchange Server:
- Протокол SMTP
- Подключение клиента Outlook (Любой Outlook/ MAPI/HTTP)
- Exchange Active Sync (EAS)
- Outlook в Интернете (OWA)
- Центр Администратор Exchange (EAC) и Exchange панель управления (ECP)
- Автообнаружения
- Веб-службы Exchange (EWS)
- REST (Exchange Server 2016/2019)
- Использование PowerShell в Exchange по протоколу HTTPS
- POP и IMAP
Предварительные условия
Добавлена поддержка TLS 1.2 с Exchange Server 2013 CU19 и Exchange Server 2016 CU8. Exchange Server 2019 по умолчанию поддерживает TLS 1.2.
Exchange Server не может работать без Windows Server, поэтому важно установить последние обновления операционной системы для запуска стабильной и безопасной реализации TLS.
Кроме того, требуется наличие последней версии платформа .NET Framework и связанных исправлений, поддерживаемых накопительным пакетом обновления.
В зависимости от операционной системы убедитесь, что также установлены следующие обновления (они должны быть установлены, если сервер является текущим в Windows Обновления):
Если ваша операционная система Windows Server 2012 или Windows Server 2012 R2, перед включением TLS 1.2 необходимо установить KB3161949 и KB2973337.
Предупреждение
расширенная поддержка Windows Server 2012 и Windows Server 2012 R2 прекращена 10 октября 2023 г. Эти серверы больше не будут получать Безопасность Windows Обновления без ESU. Мы настоятельно рекомендуем выполнить миграцию на поддерживаемую версию как можно скорее!
Обязательно перезагрузите Exchange Server после применения конфигурации TLS. Он становится активным после перезапуска сервера.
Подготовка платформа .NET Framework к наследованию значений по умолчанию от Schannel
В следующей таблице показаны сочетания Exchange Server и Windows Server с конфигурацией наследования Schannel по умолчанию платформа .NET Framework:
Exchange Server | Windows Server | Поддерживается | Настроено по умолчанию |
---|---|---|---|
Exchange Server 2019 CU14 или более поздней версии | Любой | Да | Да (только для новых установок) |
Exchange Server 2019 | Любой | Да | Частично (SchUseStrongCrypto необходимо настроить вручную) |
Exchange Server 2016 | Любой | Да | Нет (будут использоваться значения по умолчанию для ОС) |
Exchange Server 2013 | Любой | Да | Нет (будут использоваться значения по умолчанию для ОС) |
Значение SystemDefaultTlsVersions
реестра определяет, какие версии протокола безопасности по умолчанию будут использоваться платформа .NET Framework 4.x. Если для параметра задано значение 1
, то платформа .NET Framework 4.x наследует значения по умолчанию от значений реестра Windows Secure Channel (Schannel). DisabledByDefault
Если значение не определено, оно ведет себя так, как если бы для него задано значение 0
.
Надежное шифрование (настроенное значением SchUseStrongCrypto
реестра) использует более безопасные сетевые протоколы (TLS 1.2 и TLS 1.1) и блокирует небезопасные протоколы.
SchUseStrongCrypto
влияет только на клиентские (исходящие) подключения в приложении. Настроив платформа .NET Framework 4.x наследование значений от Schannel, мы получаем возможность использовать последние версии TLS, поддерживаемые ОС, включая TLS 1.2.
Включение наследования Schannel платформа .NET Framework 4.x
Выполните следующие команды в окне PowerShell с повышенными привилегиями, чтобы настроить наследование Schannel платформа .NET Framework 4.x:
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -Value 1 -Type DWord
Включение наследования Schannel платформа .NET Framework 3.5
Примечание.
Exchange Server 2013 и более поздних версиях этот параметр не требуется. Однако мы рекомендуем настроить его идентично параметрам .NET 4.x, чтобы обеспечить согласованную конфигурацию.
Выполните следующие команды в окне PowerShell с повышенными привилегиями, чтобы настроить наследование Schannel платформа .NET Framework 3.5:
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v2.0.50727" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v2.0.50727" -Name "SchUseStrongCrypto" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727" -Name "SchUseStrongCrypto" -Value 1 -Type DWord
Действия по настройке TLS 1.2
В следующей таблице показаны сочетания Exchange Server и Windows Server, в которых поддерживается ПРОТОКОЛ TLS 1.2. В таблице также показана конфигурация по умолчанию:
Exchange Server | Windows Server | Поддерживается | Настроено по умолчанию |
---|---|---|---|
Exchange Server 2019 | Любой | Да | Да (enabled ) |
Exchange Server 2016 | Любой | Да | Нет |
Exchange Server 2013 | Любой | Да | Нет |
Включить протокол TLS 1.2
Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы включить TLS 1.2 для клиентских и серверных подключений:
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.2" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "Enabled" -Value 1 -Type DWord
Отключение TLS 1.2
Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы отключить TLS 1.2 для клиентских и серверных подключений:
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.2" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "Enabled" -Value 0 -Type DWord
Действия по настройке TLS 1.1
В следующей таблице показаны сочетания Exchange Server и Windows Server, в которых поддерживается ПРОТОКОЛ TLS 1.1. В таблице также показана конфигурация по умолчанию:
Exchange Server | Windows Server | Поддерживается | Настроено по умолчанию |
---|---|---|---|
Exchange Server 2019 | Любой | Да | Да (disabled ) |
Exchange Server 2016 | Любой | Да | Нет |
Exchange Server 2013 | Любой | Да | Нет |
Включение TLS 1.1
Примечание.
Реализация Microsoft TLS 1.1 не имеет известных уязвимостей системы безопасности. Но из-за возможности будущих атак с понижением уровня протокола и других уязвимостей TLS рекомендуется тщательно спланировать и отключить TLS 1.1. При тщательном планировании клиенты могут потерять подключение.
Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы включить TLS 1.1 для клиентских и серверных подключений:
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.1" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -Name "Enabled" -Value 1 -Type DWord
Отключение TLS 1.1
Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы отключить TLS 1.1 для клиентских и серверных подключений:
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.1" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -Name "Enabled" -Value 0 -Type DWord
Действия по настройке TLS 1.0
В следующей таблице показаны сочетания Exchange Server и Windows Server, в которых поддерживается TLS 1.0. В таблице также показана конфигурация по умолчанию:
Exchange Server | Windows Server | Поддерживается | Настроено по умолчанию |
---|---|---|---|
Exchange Server 2019 | Любой | Да | Да (disabled ) |
Exchange Server 2016 | Любой | Да | Нет |
Exchange Server 2013 | Любой | Да | Нет |
Включение TLS 1.0
Примечание.
Внедрение Microsoft TLS 1.0 не имеет известных уязвимостей безопасности. Но из-за возможности будущих атак с понижением уровня протокола и других уязвимостей TLS рекомендуется тщательно спланировать и отключить TLS 1.0. При тщательном планировании клиенты могут потерять подключение.
Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы включить TLS 1.0 для клиентских и серверных подключений:
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.0" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" -Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" -Name "Enabled" -Value 1 -Type DWord
Отключение TLS 1.0
Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы отключить TLS 1.0 для клиентских и серверных подключений:
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.0" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" -Name "Enabled" -Value 0 -Type DWord
Рекомендации по алгоритмам шифрования и хэширования
Важно!
Шаги, описанные в этом разделе, являются необязательными для описанных ранее шагов. Перед выполнением следующих действий необходимо настроить TLS 1.2 и полностью отключить TLS 1.0 и 1.1.
Рассмотрите возможность применения этих параметров отдельно к отключению TLS 1.0 и TLS 1.1 для изоляции проблемных клиентов с конфигурацией.
Настройка строгого режима повторного согласования TLS клиента и сервера
В следующей таблице показаны сочетания Exchange Server и Windows Server с конфигурацией строгого режима перезаключения TLS по умолчанию.
Exchange Server | Windows Server | Поддерживается | Настроено по умолчанию |
---|---|---|---|
Exchange Server 2019 | Любой | Да | Да (strict mode enabled ) |
Exchange Server 2016 | Любой | Да | Нет |
Exchange Server 2013 | Любой | Нет | Н/Д |
Эти параметры используются для настройки строгого режима повторного согласования TLS. Это означает, что сервер разрешает только тем клиентам, к которым применяется это обновление для системы безопасности , для настройки и повторного согласования сеансов TLS. Сервер не разрешает клиентам, к которым не применяется это обновление для системы безопасности , для настройки сеанса TLS. В этом случае сервер завершает такие запросы от клиентов.
Аналогичным образом, если это обновление для системы безопасности применяется к клиенту и клиент находится в строгом режиме, клиент может настроить и перезаготовить сеансы TLS со всеми серверами, для которых применяется это обновление для системы безопасности. Клиенты не могут вообще настроить сеансы TLS на серверах, для которых это обновление для системы безопасности не применяется. Клиент не может выполнить попытку согласования TLS с такими серверами.
Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы включить строгий режим повторного переговоров:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "AllowInsecureRenegoClients" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "AllowInsecureRenegoServers" -Value 0 -Type DWord
Включение рекомендуемых наборов шифров
В следующей таблице показаны сочетания Exchange Server и Windows Server с рекомендуемой конфигурацией наборов шифров по умолчанию.
Exchange Server | Windows Server | Поддерживается | Настроено по умолчанию |
---|---|---|---|
Exchange Server 2019 | Любой | Да | Да |
Exchange Server 2016 | Любой | Да | Нет |
Exchange Server 2013 | Windows Server 2012 (R2) | Да | Нет |
Windows Server 2012 и Windows Server 2012 R2.
Выполните следующие команды в окне PowerShell с повышенными привилегиями, чтобы настроить рекомендуемые наборы шифров:
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002" -Name "Functions" -PropertyType MultiString -Value "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256" -Force
Windows Server 2016 или выше
Примечание.
Наборы шифров можно настроить, используя объект групповая политика (GPO). Вы не можете настроить их вручную с помощью Enable/Disable-TLSCipherSuite
командлета, если они уже настроены с помощью объекта групповой Functions
политики или раздел реестра уже существует по следующему пути: HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002
Выполните следующие команды в окне PowerShell с повышенными привилегиями, чтобы настроить рекомендуемые наборы шифров.
Первая задача — отключить все существующие наборы шифров:
foreach ($suite in (Get-TLSCipherSuite).Name) {
if (-not([string]::IsNullOrWhiteSpace($suite))) {
Disable-TlsCipherSuite -Name $suite -ErrorAction SilentlyContinue
}
}
Вторая задача заключается в том, чтобы включить только рекомендуемые наборы шифров TLS 1.2:
$cipherSuites = @('TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384',
'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256',
'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384',
'TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256',
'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384',
'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256',
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384',
'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256')
$suiteCount = 0
foreach ($suite in $cipherSuites) {
Enable-TlsCipherSuite -Name $suite -Position $suiteCount
$suiteCount++
}
Отключение устаревших шифров и хэшей
В следующей таблице показаны сочетания Exchange Server и Windows Server с устаревшей конфигурацией шифров и хэшей по умолчанию.
Exchange Server | Windows Server | Поддерживается | Настроено по умолчанию |
---|---|---|---|
Exchange Server 2019 | Любой | Да | Да |
Exchange Server 2016 | Любой | Да | Нет |
Exchange Server 2013 | Windows Server 2012 (R2) | Да | Нет |
Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы отключить устаревшие шифры и хэши:
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "Hashes" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "Ciphers" -ErrorAction SilentlyContinue
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("DES 56/56")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("NULL")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC2 40/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC2 56/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC2 56/56")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC4 40/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC4 56/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC4 64/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC4 128/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("Triple DES 168")
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes" -Name "MD5" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\DES 56/56" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\NULL" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 40/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 56/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 56/56" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 64/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\MD5" -Name "Enabled" -Value 0 -Type DWord
Настройка предпочтения эллиптических кривых
В следующей таблице показаны сочетания Exchange Server и Windows Server с конфигурацией предпочтения эллиптических кривых по умолчанию.
Exchange Server | Windows Server | Поддерживается | Настроено по умолчанию |
---|---|---|---|
Exchange Server 2019 | Любой | Да | Да |
Exchange Server 2016 | Windows Server 2016 | Да | Нет |
Exchange Server 2013 | Любой | Нет | Н/Д |
Примечание.
Мы рекомендуем отключить curve25519
эллиптическую кривую, так как она недоступна в режиме FIPS. Дополнительные сведения см. в статье Tls Elliptic Curves in Windows 10 версии 1607 и более поздних.
Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы настроить параметр эллиптической кривой:
Disable-TlsEccCurve -Name "curve25519"
Enable-TlsEccCurve -Name "NistP384" -Position 0
Enable-TlsEccCurve -Name "NistP256" -Position 1
Проверка использования TLS 1.2
После включения TLS 1.2 может быть полезно убедиться, что работа выполнена успешно и система сможет согласовать ПРОТОКОЛ TLS 1.2 для входящих (серверных) и исходящих (клиентских) подключений. Существует несколько методов проверки использования TLS, некоторые из которых рассматриваются в следующих разделах.
Многие протоколы, используемые в Exchange Server, основаны на HTTP и, следовательно, проходят процессы IIS на сервере Exchange Server. MAPI/HTTP, Outlook Anywhere, Веб-службы Exchange, Exchange ActiveSync, REST, OWA & EAC, загрузка автономной адресной книги и автообнаружение — это примеры протоколов на основе HTTP, используемых Exchange Server.
Журналы служб IIS
Команда IIS добавила возможности для Windows Server 2012 R2 или более поздней версии для регистрации настраиваемых полей, связанных с версиями протокола шифрования и шифрами. Мы рекомендуем просмотреть в блоге документацию о том, как включить эти настраиваемые поля и начать анализ журналов для получения сведений о входящих подключениях в вашей среде, связанных с протоколами на основе HTTP.
Эти настраиваемые поля IIS не существуют для версии Windows Server, предшествующей Windows Server 2012 R2. Эти сведения могут предоставляться в журналах подсистемы балансировки нагрузки или брандмауэра. Запросите рекомендации у поставщиков, чтобы определить, могут ли их журналы предоставлять эту информацию.
Проверка версии TLS с помощью средств разработчика Microsoft Edge
Вы можете использовать Developer Tools
, доступные в Microsoft Edge, чтобы проверка версию TLS, которая использовалась для установки безопасного подключения, при подключении к Outlook в Интернете (OWA) или Exchange Администратор Center (ECP). Для этого выполните следующие действия:
- Откройте браузер Microsoft Edge и установите HTTPS-подключение к OWA или ECP.
- Нажмите ,
CTRL + SHIFT + I
чтобы открытьDeveloper Tools
. - Щелкните символ в
+
правом верхнем углу. -
Security
Щелкните в раскрывающемся меню. - Проверьте версию TLS в
Connection - secure connection settings
разделе .
Заголовки сообщений (Exchange Server 2016 или более поздней версии)
Данные заголовков сообщений в Exchange Server 2016 или более поздней версии предоставляют протокол, согласованный и используемый, когда отправляющий и получающий узел обменивается фрагментом почты. Вы можете использовать анализатор заголовков сообщений , чтобы получить четкий обзор каждого прыжка.
Примечание.
Существует одно известное исключение из примера заголовков сообщений. Когда клиент отправляет сообщение путем подключения к серверу с использованием протокола SMTP с проверкой подлинности (также известного как протокол отправки клиента SMTP), версия TLS в заголовках сообщений не отображает правильную версию TLS, используемую клиентом или устройством клиента. Корпорация Майкрософт изучает возможность добавления этой информации в будущем обновлении.
Поток обработки почты через ведение журнала SMTP
Журналы SMTP в Exchange Server 2013 и более поздних версиях будут содержать протокол шифрования и другую информацию, связанную с шифрованием, используемую при обмене электронной почтой между двумя системами.
Если сервером является SMTP receiving system
, найдите в журнале Server value
в зависимости от используемой версии TLS. Если сервером является SMTP sending system
, найдите в журнале Client value
в зависимости от используемой версии TLS.
Версия TLS | Значение сервера | Значение клиента |
---|---|---|
TLS 1.0 | SP_PROT_TLS1_0_SERVER | SP_PROT TLS1_0_CLIENT |
TLS 1.1 | SP_PROT_TLS1_1_SERVER | SP_PROT-TLS1_1_CLIENT |
TLS 1.2 | SP_PROT_TLS1_2_SERVER | SP_PROT TLS1_2_CLIENT |
В следующем примере выполняется поиск подключений, выполненных по протоколу TLS 1.0, в файлах журнала на сервере Exchange Server, на котором выполняется роль почтового ящика.
Select-String -Path (((Get-TransportService -Identity $env:COMPUTERNAME).ReceiveProtocolLogPath).PathName.Replace("Hub","FrontEnd")+"\*.log") "SP_PROT_TLS1_0"
Пример поиска файлов журналов на сервере Exchange Server, на котором выполняется роль пограничного транспорта, для подключений, выполненных по протоколу TLS 1.1:
Select-String -Path (((Get-TransportService -Identity $env:COMPUTERNAME).ReceiveProtocolLogPath).PathName+"\*.log") "SP_PROT_TLS1_1"
POP и IMAP
Не существует ведения журнала, которое будет предоставлять версию протокола шифрования, используемую для клиентов POP и IMAP. Чтобы захватить эти сведения, может потребоваться записать трассировку Netmon с сервера или проверить трафик по мере его прохождения через подсистему балансировки нагрузки или брандмауэр, где выполняется мостовая передача HTTPS.