Короткий ответ
NTLM в contoso.example должен быть исключением, не транспортом по умолчанию. Kerberos не взлетает, когда клиент идёт на IP, нет SPN, время уехало, или приложение умеет только NTLM. Сначала аудит: 4624 (пакет NTLM) и 4776 на DC, политика Restrict NTLM в режиме Audit. Потом точечный Deny с allow-list серверов. Не ставьте «Network security: Restrict NTLM = Deny all» в пятницу на весь домен. Не отключайте firewall и Defender, чтобы «NTLM прошёл».
Связанные риски: NTLM кормит pass-the-hash. RDP в интернет усугубляет brute-force NTLM — закройте 3389.
Симптомы и как отличить
- В Security на
WS-042или сервере 4624 сAuthentication Package: NTLMпри доступе к шарам/IIS/WinRM HTTP. - На
DC01пачка 4776 (проверка учётных данных NTLM). - Приложения с адресом
http://10.0.10.10вместо имениapp.contoso.example. - После ужесточения Restrict NTLM отвалилась печать, старая CRM, NAS.
| Видно | Это не «лишний NTLM» |
|---|---|
| 4624 Kerberos Type 10 с jump | нормальный RDP |
| Только локальный 4624 Type 2 | интерактив, не сеть |
| SMBv1 сессии | сначала SMBv1 |
| Lockout без NTLM в логе | пароль/Kerberos pre-auth, lockout |
Возможные причины
- Клиенты ходят на IP или CNAME без SPN.
- SPN не зарегистрированы на учётках служб IIS/MSSQL.
- Локальные учётки и NAS без Kerberos.
- WinRM/HTTP, SQL auth, старые Java/Apache с NTLM.
- Доверие с рабочими группами, LDAP simple bind путают с NTLM — проверяйте пакет.
- Время/DNS сломаны — Kerberos падает, клиент откатывается на NTLM, если разрешён.
Диагностика
1. Выборка на DC01
Get-WinEvent -ComputerName DC01 -FilterHashtable @{ LogName = 'Security'; Id = 4776 } -MaxEvents 50 |
Select-Object TimeCreated, MessageСмотрите имя компьютера/учётки, которые проверяются по NTLM. Не выгружайте логи с паролями — их там нет, но есть имена.
2. На прикладном сервере
Get-WinEvent -FilterHashtable @{ LogName = 'Security'; Id = 4624 } -MaxEvents 100 |
ForEach-Object {
$xml = [xml]$_.ToXml()
[pscustomobject]@{
Time = $_.TimeCreated
Target = ($xml.Event.EventData.Data | Where-Object Name -eq TargetUserName).'#text'
Package = ($xml.Event.EventData.Data | Where-Object Name -eq AuthenticationPackageName).'#text'
LmPackage = ($xml.Event.EventData.Data | Where-Object Name -eq LmPackageName).'#text'
LogonType = ($xml.Event.EventData.Data | Where-Object Name -eq LogonType).'#text'
Ip = ($xml.Event.EventData.Data | Where-Object Name -eq IpAddress).'#text'
}
} | Where-Object Package -eq 'NTLM'Соберите уникальные Ip + Target за неделю.
3. Аудит Restrict NTLM (ещё не Deny)
GPO: Computer Configuration → Windows Settings → Security Settings → Local Policies → Security Options:
- Network security: Restrict NTLM: Audit NTLM authentication in this domain
- Network security: Restrict NTLM: Audit Incoming NTLM Traffic
- Network security: Restrict NTLM: Outgoing NTLM traffic to remote servers = Audit all
События аудита Restrict NTLM пишутся в журнал Microsoft-Windows-NTLM/Operational (смотрите фактические события на пилоте после включения Audit). Политика «Audit» не блокирует.
4. Почему не Kerberos
setspn -Q HTTP/app.contoso.example
setspn -Q HOST/WS-042.contoso.example
w32tm /query /status
Resolve-DnsName app.contoso.exampleНет SPN / дубли SPN / DNS в никуда — Kerberos не начнётся. Сначала чините это, потом режьте NTLM.
Решение
Сценарий A. Можно перевести на Kerberos
- Пользователи и приложения — только FQDN
app.contoso.example. - Корректные SPN на учётках служб, не на случайном компьютере.
- Время с DC, DNS домена, не публичный резолвер.
- Повторите выборку 4624: пакет Kerberos.
Для IIS: имя в URL = SPN HTTP/. Для SMB: имя шары = FQDN сервера.
Сценарий B. Легитимный NTLM (NAS, старое ПО)
Зафиксируйте хост в списке исключений после Audit. Restrict NTLM умеет add-list серверов, которым ещё можно. Держите список коротким, с владельцем и датой вывода.
Не оставляйте NTLM ради удобства RDP с улицы.
Сценарий C. Сужение после аудита
Порядок:
- Audit all / Audit incoming — недели, не часы.
- Исключения для подтверждённых серверов.
- Incoming: Deny all account / Deny all, начиная с пилотной OU рабочих станций, не с DC.
- Outgoing Deny на клиентах, когда список серверов NTLM пуст.
LmCompatibilityLevel / отказ LM: держите NTLMv2, LM не включайте. Это не то же самое, что Restrict NTLM, но в одном окне Security Options проверьте, что LM не ожил.
Как проверить, что проблема устранена
- Количество 4776 на
DC01упало относительно базовой недели, остаток совпадает с allow-list. - Критичные приложения (почта, файлы, CRM) входят по Kerberos (4624 Authentication Package Kerberos).
- Пилот Restrict Deny: пользователи
WS-042работают, исключения документированы. - Нет всплеска lockout из-за повторов NTLM с кривым сканером.
Сохраните до/после счётчики 4776 в заявке.
Если не помогло
- После Deny отвалился только один киоск с IP в ярлыке — верните Kerberos-имя, не весь NTLM.
- WinRM по HTTP 5985 с IP — переведите на HTTPS/имя, статья WinRM.
- Двойные SPN (
setspn -X) — Kerberos случайный, клиент падает на NTLM. - Локальная учётка на NAS — Kerberos не появится, это исключение или замена NAS.
- Не путайте LDAP simple bind (пароль на проводе) с NTLM — разные протоколы, разные журналы.
Профилактика
- Запрет в регламенте: новые системы только Kerberos/gMSA, NTLM — исключение с тикетом.
- Мониторинг 4776 выше порога.
- Шаблоны ярлыков и GPO drive maps — только FQDN.
- Парольная политика не заменяет отказ от NTLM, но слабые пароли на фоне NTLM хуже: парольная политика.
FAQ
NTLM полностью запретить в 2026?
В чистом парке Windows 11 + Server 2022/2025 — часто да, после аудита. В реальности остаётся хвост NAS/МФУ. Цель — измеримый минимум, не лозунг.
LMCompatibilityLevel 5 достаточно?
Это отрезает LM/NTLMv1 в типичной схеме, но не убирает NTLMv2. Restrict NTLM — про сам факт NTLM.
Event 8004 в контексте NTLM
В журналах NTLM/Netlogon встречаются коды отказа при Restrict. Смотрите текст события и пару клиент–сервер, не гадайте. Если код на вашей сборке другой — ориентируйтесь на Operational NTLM и 4624.
Нужен ли NTLM для RDP?
RDP может идти через Kerberos при FQDN и NLA. IP в mstsc → NTLM. Пользователей учите на имя WS-042.contoso.example внутри VPN.
Отключение NTLM сломает локального Administrator по сети?
Сетевой вход локальным админом и так нежелателен. Для аварий — консоль. Это плюс к уникальным паролям.
Можно ли резать NTLM только на DC?
Часть проверок 4776 живёт на DC. Restrict Incoming на member-серверах убирает приём NTLM приложениями. Нужны оба контура по карте, не одна галка.