Event ID 5168: SPN check for SMB/SMB2 failed — решение проблемы
Симптомы ошибки проверки SPN в SMB (Event ID 5168)
Пользователи или сетевые клиенты теряют доступ к общим сетевым папкам (SMB Shares), файловым кластерам или DFS-пространствам с ошибками STATUS_ACCESS_DENIED или The target principal name is incorrect. В журнале Security сервера регистрируется Event ID 5168.
| Журнал | Security |
|---|---|
| Источник | Microsoft-Windows-Security-Auditing |
| Категория | Detailed Tracking / File Share |
| Код ошибки | Event ID 5168 |
| Текст сообщения | SPN check for SMB/SMB2 failed. The client provided an invalid SPN during SMB session setup. |
Данная ошибка возникает, когда на файловом сервере включена обязательная проверка SPN (Server Principal Name validation), а клиент обращается к общему ресурсу по CNAME-псевдониму, IP-адресу или некорректно зарегистрированному DNS-имени, что приводит к срыву взаимной аутентификации Kerberos.
Инструкция по восстановлению аутентификации Kerberos и SPN для SMB
- Проверка переданного клиентом SPN: Откройте детали события 5168 в журнале Security и найдите значение поля Client Provided SPN (например,
cifs/fileserver.domain.localилиcifs/192.168.1.50). - Регистрация недостающего SPN на учетной записи сервера: Если обращение идет по альтернативному DNS-имени (CNAME/Alias), добавьте SPN для учетной записи компьютера файлового сервера:
setspn -S cifs/fileserver-alias.domain.local DOMAIN\FILESERVER$ setspn -S cifs/fileserver-alias DOMAIN\FILESERVER$ - Проверка дубликатов SPN в лесу Active Directory: Устраните возможные коллизии имен:
setspn -X - Настройка уровня проверки SMB SPN на сервере: Если доступ по IP-адресу легитимен, отредактируйте параметры проверки SMB через PowerShell:
Set-SmbServerConfiguration -SmbServerNameHardeningLevel 0 -ForceЛибо задайте мягкий режим проверки (1 — если поддерживается клиентом) через реестр:
reg add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v SmbServerNameHardeningLevel /t REG_DWORD /d 1 /f - Очистка кэша Kerberos-билетов на клиентской машине:
klist purge
Безопасность: Полное отключение проверки SPN (SmbServerNameHardeningLevel = 0) снижает защиту от атак типа SMB Relay и NTLM Reflection. Рекомендуемым решением является корректная регистрация всех DNS-псевдонимов в SPN через утилиту setspn.
Частые вопросы (FAQ)
Почему при обращении к серверу по IP-адресу возникает Event 5168?
Kerberos не поддерживает работу по IP-адресам без специальных настроек. При обращении по IP клиент формирует невалидный SPN вида 'cifs/192.168.X.X', что блокируется механизмом валидации SPN файлового сервера.
Как проверить все текущие SPN файлового сервера?
Выполните команду в командной строке от имени администратора: 'setspn -L ИМЯ_СЕРВЕРА' или 'setspn -L DOMAIN\SERVERNAME$'.
Что означают уровни SmbServerNameHardeningLevel (0, 1, 2)?
0 — проверка SPN отключена; 1 — проверка выполняется, но при отсутствии SPN разрешается откат на NTLM; 2 — строгое требование валидного SPN, без которого соединение мгновенно сбрасывается.
Требуется ли перезагрузка службы LanmanServer после изменения SPN?
Регистрация SPN вступает в силу немедленно в масштабах AD, однако клиентам требуется очистить кэш билетов Kerberos командой 'klist purge'.