В современных сетях Windows широковещательные протоколы NetBIOS, LLMNR и mDNS используются для разрешения имен в небольших или домашних сетях, где отсутствует DNS-сервер. Однако в корпоративных средах с настроенным DNS эти протоколы не только избыточны, но и представляют угрозу безопасности, так как могут быть использованы для атак типа спуфинг, relay или MITM, включая перехват NTLM-хэшей. В этой статье мы подробно разберем, как отключить NetBIOS over TCP/IP, LLMNR и mDNS в доменной среде Windows вручную или с помощью групповых политик (GPO), обеспечив безопасность сети и минимизацию рисков.
Обзор протоколов NetBIOS, LLMNR и mDNS
В сетях Windows предпочтительным методом разрешения имен является DNS. Однако в отсутствие DNS-сервера система по умолчанию использует альтернативные протоколы в следующем порядке:
1. mDNS (Multicast DNS)
2. LLMNR (Link-Local Multicast Name Resolution)
3. NetBIOS (NetBIOS Name Service, NBNS)
— LLMNR — протокол, появившийся в Windows начиная с Vista, используется для широковещательного разрешения имен в локальной сети (L2-сегмент) по протоколам IPv4 и IPv6. Работает через порт UDP/5355 и применяется для сетевого обнаружения в рабочих группах, если DNS недоступен.
— NetBIOS over TCP/IP (NBT-NS) — устаревший протокол, использующий порты UDP/137, UDP/138 и TCP/139. По умолчанию включен для всех сетевых интерфейсов и применяется для публикации и поиска ресурсов в локальной сети.
— mDNS — протокол, доступный с Windows 10 (версия 1703) и Windows Server 2019, используется для разрешения имен в небольших сетях с суффиксом .local. Работает через UDP/5353 и поддерживает автоматическое обнаружение устройств, таких как сетевые принтеры.
Для проверки активности NetBIOS можно использовать команды:
nbtstat -A 192.168.31.90
Эта команда возвращает имя компьютера по его IP-адресу. Для отображения кэша NetBIOS выполните:
nbtstat -c
В последних версиях Windows 11 NetBIOS используется только в случае отсутствия ответа от mDNS или LLMNR. В доменных сетях с настроенным DNS эти протоколы рекомендуется отключить для повышения безопасности сети.
Важное замечание перед отключением
Отключение NetBIOS, LLMNR и mDNS может повлиять на работу устаревших систем или приложений, особенно в сетях с не-Windows устройствами. Перед массовым отключением протестируйте изменения в вашей среде. Отключение LLMNR обычно безопасно, но NetBIOS может быть критичен для старых систем.
Отключение LLMNR в доменной среде
Для отключения LLMNR в доменной сети рекомендуется использовать групповые политики (GPO), что позволяет централизованно применить настройки ко всем компьютерам и серверам.
1. Настройка GPO для отключения LLMNR
— Откройте консоль управления групповыми политиками (gpmc.msc).
— Создайте новую политику или отредактируйте существующую, применяемую к рабочим станциям и серверам.
— Перейдите в раздел: Конфигурация компьютера -> Политики -> Административные шаблоны -> Сеть -> Клиент DNS.
— Включите следующие политики, установив значение Включено:
— Отключить разрешение имен многоадресной рассылкой (Turn off multicast name resolution).
— Отключить интеллектуальное разрешение имен для нескольких узлов (Turn off smart multi-homed name resolution).
— Примените политику и обновите настройки на клиентах командой:
gpupdate /force
2. Отключение LLMNR через реестр
Если GPO недоступна, можно отключить LLMNR с помощью реестра. Выполните в PowerShell:
New-Item "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT" -Name DNSClient -Force
New-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" -Name EnableMultiCast -Value 0 -PropertyType DWORD -Force
New-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" -Name DisableSmartNameResolution -Value 1 -PropertyType DWORD -Force
Эти команды создают параметры реестра для отключения LLMNR.
Отключение NetBIOS over TCP/IP
NetBIOS over TCP/IP может быть необходим для устаревших систем, поэтому перед отключением протестируйте изменения.
1. Ручное отключение через свойства сетевого адаптера
— Откройте панель управления сетевыми подключениями (ncpa.cpl).
— Выберите активное сетевое подключение, щелкните правой кнопкой мыши и выберите Свойства.
— Выберите Протокол Интернета версии 4 (TCP/IPv4) и нажмите Свойства.
— Нажмите кнопку Дополнительно, перейдите на вкладку WINS и выберите Отключить NetBIOS через TCP/IP.
— Сохраните изменения.
Если в системе несколько сетевых адаптеров или VLAN, повторите процедуру для каждого интерфейса.
2. Проверка статуса NetBIOS
Проверьте, отключен ли NetBIOS, командой:
ipconfig /all | find "NetBIOS"
Ожидаемый результат: NetBIOS через TCP/IP: Отключен.
3. Отключение NetBIOS через реестр
Для каждого сетевого адаптера в реестре существует ветка HKLM\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces\Tcpip_{GUID}. Чтобы отключить NetBIOS:
— Откройте редактор реестра (regedit.exe).
— Найдите ветку адаптера и измените параметр NetbiosOptions на значение 2 (по умолчанию 0).
4. Отключение NetBIOS через DHCP
Если клиенты получают IP-адреса от DHCP-сервера на Windows Server:
— Откройте консоль управления DHCP (dhcpmgmt.msc).
— Перейдите в Параметры области (Scope Options) или Параметры сервера (Server Options).
— На вкладке Дополнительно выберите Microsoft Windows 2000 Options в поле Класс поставщика.
— Активируйте опцию 001 Microsoft Disable Netbios Option и установите значение 0x2.
5. Отключение NetBIOS через GPO
В стандартных шаблонах ADMX нет прямой политики для отключения NetBIOS. Используйте PowerShell-скрипт в GPO:
— Создайте скрипт disableNetbios.ps1 со следующим кодом:
$regkey = "HKLM:SYSTEM\CurrentControlSet\services\NetBT\Parameters\Interfaces"
Get-ChildItem $regkey | foreach { Set-ItemProperty -Path "$regkey\$($_.pschildname)" -Name NetbiosOptions -Value 2 -Verbose }
— Альтернативный вариант с использованием WMI:
Get-WmiObject -Class Win32_NetworkAdapterConfiguration | % {$_.SetTcpipNetbios(2)}
— Сохраните скрипт в каталоге GPO и настройте его запуск через: Конфигурация компьютера -> Политики -> Параметры Windows -> Сценарии -> Автозагрузка -> Сценарии PowerShell.
— Если выполнение скрипта заблокировано, подпишите его или используйте режим -bypass.
— После применения скрипта перезагрузите компьютер или переподключите сетевые адаптеры.
6. Проверка отключения NetBIOS
Убедитесь, что NetBIOS отключен, командой:
wmic nicconfig get caption,index,TcpipNetbiosOptions
Все адаптеры (кроме туннельных) должны показывать TcpipNetbiosOptions = 2.
Отключение mDNS в Windows
Для отключения mDNS выполните следующие шаги:
1. Отключение через реестр
Создайте параметр EnableMDNS в реестре:
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters" /v EnableMDNS /t REG_DWORD /d 0 /f
2. Отключение через GPO
Используйте Group Policy Preferences:
— Перейдите в Конфигурация компьютера -> Параметры -> Параметры Windows -> Реестр.
— Настройте параметр:
— Действие: Обновить
— Раздел: HKEY_LOCAL_MACHINE
— Путь: SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
— Имя параметра: EnableMDNS
— Тип: DWORD
— Значение: 0
3. Блокировка mDNS через брандмауэр
Создайте правило в Windows Defender Firewall для блокировки входящего трафика mDNS:
— Откройте Брандмауэр Защитника Windows (wf.msc).
— Найдите правило mDNS (UDP-In) и отключите его для доменного профиля.
Это позволит сохранить функциональность mDNS для пользователей вне офиса (например, для ноутбуков в других сетях).
Предупреждение
Отключение mDNS может нарушить работу устройств, использующих Miracast (беспроводные дисплеи, проекторы) или некоторые сетевые принтеры. Проверьте совместимость перед отключением.
Проверка отключения протоколов
Для подтверждения, что NetBIOS, LLMNR и mDNS отключены, проверьте открытые порты:
netstat -nao | find /i ":137 "
netstat -nao | find /i ":5353 "
netstat -nao | find /i ":5355 "
Если протоколы отключены, команды не должны возвращать активных соединений на портах 137, 5353 или 5355.
Эти шаги помогут повысить безопасность сети, минимизируя риски атак через широковещательные протоколы. Перед массовым применением обязательно протестируйте настройки в вашей среде, чтобы избежать проблем с устаревшими системами или устройствами.