Служба KDC Proxy (Kerberos Key Distribution Center Proxy) обеспечивает аутентификацию Kerberos через промежуточный сервер, что полезно, когда клиенты не могут напрямую подключаться к контроллерам домена Active Directory. Это особенно актуально для внешних пользователей или рабочих групп, недоступных напрямую.
Для нормального функционирования Kerberos аутентификации между клиентом и KDC обычно открываются следующие порты:
| Порт | Описание |
|---|---|
| UDP/TCP 88 | Аутентификация Kerberos и получение TGT |
| UDP/TCP 464 | Смена пароля через Kerberos |
Открытие этих портов для внешних пользователей небезопасно, поэтому используется KDC Proxy, который создает защищённый туннель через HTTPS (TCP/443) для передачи аутентификационных запросов.
При использовании Remote Desktop Gateway (RDGW) отключение NTLM аутентификации приводит к ошибкам, если внешние пользователи, не являющиеся частью домена, пытаются подключиться. Чтобы решить эту проблему, необходимо развернуть службу KDC Proxy на RDGW.
Для KDC Proxy требуется установить сертификат, который будет использоваться для шифрования и аутентификации. Следует включить в сертификат использования AKU (Extended Key Usage) для сервера, клиента и Kerberos. Сертификат можно получить от внутреннего CA или использовать самоподписанный.
NETSH http add urlacl url=https://+:443/KdcProxy user="NT authority\Network Service"
$appguid = [Guid]::NewGuid().ToString("B")
$kdccert="2E9D8A634ACA8A17657AD597CE0CA7E1D634B088"
netsh http add sslcert ipport=0.0.0.0:443 certhash=$kdccert appid=$appguid
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\KPSSVC\Settings" /v HttpsClientAuth /t REG_DWORD /d 0x0 /f
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\KPSSVC\Settings" /v DisallowUnprotectedPasswordAuth /t REG_DWORD /d 0x0 /f
Set-Service kpssvc -StartupType Automatic
Start-Service kpssvc
New-NetFirewallRule -DisplayName "Allow KDCProxy TCP" -Direction Inbound -Protocol TCP -LocalPort 443
Настройка KDC Proxy может быть выполнена через GPO или непосредственно в реестре:
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos" /v KdcProxyServer_Enabled /t REG_DWORD /d 1 /f
После перезагрузки клиентского компьютера пользователи смогут аутентифицироваться через KDC Proxy. Можно проверить успешное получение билета Kerberos с помощью команды:
klist get krbtgt
Логи доступны в Event Viewer под KDCProxy.
В будущем Microsoft планирует упростить развертывание KDC Proxy через Windows Admin Center.
Добавить комментарий