Использование устаревших протоколов без явной необходимости может являться потенциальной брешью в безопасности любой компьютерной сети. В этом плане показательна недавняя шумиха вокруг шифровальщика WCry, простейшая защита от которого заключалась в отказе от использования устаревшего протокола SMBv1 путем его полного отключения. Широковещательные протоколы NetBIOS через TCP/IP и LLMNR также являются устаревшими протоколами, и в большинстве современных сетей они используются только с целями совместимости. Одновременно с этим в инструментарии хакеров есть различные инструменты, позволяющие использовать уязвимости в протоколах NetBIOS и LLMNR для перехвата учетных данных пользователей в локальной подсети (в т.ч. хэши NTLMv2). Поэтому в целях безопасности в доменной сети эти протоколы следует отключать. Разберемся как отключить LLMNR и NetBIOS с помощью групповых политик.
Прежде всего следует напомнить, что это за протоколы.
Протокол LLMNR
LLMNR (UDP/5355, Link-Local Multicast Name Resolution — механизм широковещательного разрешения имен) – протокол присутствует во всех версиях Windows, начиная с Vista и позволяет IPv6 и IPv4 клиентам за счет широковещательных запросов в локальном сегменте сети L2 разрешать имена соседних компьютеров без использования DNS сервера. Этот протокол также автоматически используется при недоступности DNS. Соответственно, при работающих DNS-серверах в домене, этот протокол абсолютно не нужен.
Протокол NetBIOS поверх TCP/IP
Протокол NetBIOS over TCP/IP или NBT-NS (UDP/137,138;TCP/139) – является широковещательным протоколом-предшественником LLMNR и используется в локальной сети для публикации и поиска ресурсов. Поддержка NetBIOS over TCP/IP по умолчанию включена для всех интерфейсов во всех ОС Windows.
Таким образом эти протоколы позволяют компьютерам в локальной сети найти друг друга при недоступности DNS сервера. Возможно они и нужны в рабочей группе, но в доменной сети оба этих протокола можно отключить.
Отключение протокола LLMNR с помощью групповой политики
В доменной среде широковещательные запросы LLMNR на компьютерах домена можно отключить с помощью групповой политики. Для этого:
- В консоли GPMC.msc создайте новую или отредактируйте имеющуюся политику, применяемую ко всем рабочим станциям и серверам.
- Перейдите в раздел Computer Configuration -> Administrative Templates -> Network -> DNS Client
- Включите политику Turn Off Multicast Name Resolution, изменив ее значение на Enabled
Отключение протокола NetBIOS over TCP/IP
На конкретном клиенте отключить NetBIOS можно вручную.
- Откройте свойства сетевого подключения
- Выберите протокол TCP/IPv4 и откройте его свойства
- Нажмите кнопку Advanced, затем перейдите на вкладку WINS и выберите опцию Disable NetBIOS over TCP (Отключить NetBIOS через TCP/IP)
- Сохраните изменения
Отключить поддержку NetBIOS для конкретного сетевого адаптера можно и из реестра. Для каждого сетевого адаптера компьютера есть отдельная ветка с его TCPIP_GUID внутри HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces.
Чтобы отключить NetBIOS для конкретного адаптера, нужно открыть его ветку и изменить значение параметра NetbiosOptions на 2 (по умолчанию значение – 0).
Для полного отключение протокола NetBIOS, рассмотренные выше операции нужно выполнить для всех сетевых адаптеров компьютера.
На клиентах домена, получающих IP адреса с DHCP сервера, отключить NetBIOS можно через настройку опций DHCP сервера.
- Для этого откройте консоль dhcpmgmt.msc и выберите настройки зоны Scope Option (или сервера – Server Options)
- Перейдите на вкладку Advanced, в выпадающем списке Vendor class выберите Microsoft Windows 2000 Options
- Включите опцию 001 Microsoft Disable Netbios Option и измените ее значение на 0x2
Отдельной опции, позволяющей отключить NETBIOS over TCP/IP для всех сетевых адаптеров компьютера через групповые политики нет. Чтобы отключить NETBIOS для всех адаптеров компьютера воспользуйтесь следующим PowerShell скриптом, который нужно поместить в политику Computer Configuration -> Policies -> Windows Settings ->Scripts ->Startup->PowerShell Scripts
$regkey = "HKLM:SYSTEM\CurrentControlSet\services\NetBT\Parameters\Interfaces"
Get-ChildItem $regkey |foreach { Set-ItemProperty -Path "$regkey\$($_.pschildname)" -Name NetbiosOptions -Value 2 -Verbose}
Ну LLMNR не является устаревшим протоколом, он как раз относительно свежий и появился на замену NetBIOS. Но у него задачи другие — он для небольших сетей. Ну и конечно для корпоративных сетей, где DNS настроен корректно, включенный LLMNR совсем не нужен и его стоит отключить — тут я согласен. )
В общем то да, вы правы, протокол LLMNR относительно свежий, но это не умоляет того факта, что он в домене не нужен
Ну да, я так и написал что согласен. 🙂
LLMNR не поддерживает ipv4 (по крайней мере так говорит книга проектирование сетевой инфраструктуры Windows server 2008 Тони Нортроп и Макин)
Да, так и есть. Именно благодаря этому, несколько компьютеров на базе Windows Vista и выше, подключенные к одному коммутатору, могут видеть друг друг безо всякой настройки сетевых интерфейсов в Windows. )
просто написано — протокол присутствует во всех версиях Windows, начиная с Vista и позволяет IPv6 и IPv4 клиентам
но причем тут клиенты ipv4?
Согласно RFC 4795 — протокол LLMNR работает для ipv4 и ipv6 клиентов.
Насчет реализации его MSFT — не уверен, возможно и есть какие-то свои особенности.
Достаточно просто ввести команду обвновления политик: gpupdate /force