Блокировка ip адреса windows server 2008

Обновлено: 07.07.2024

Я более знаком с инструментами Linux для предотвращения атак методом перебора, поэтому у меня возникают проблемы с поиском подходящих инструментов для Windows. Я использую Windows Server 2008 R2 с терминальным сервером, и я хотел бы заблокировать IP-адрес после повторных попыток входа через RDP. Есть намеки?

Windows box - это VPS, управляемый хостинговой компанией, поэтому у меня нет доступа к сетевым устройствам. Вы можете настроить событие «Расписание задач» при неудачных входах в систему для запуска сценария PS; PS Svript должен будет подсчитать количество попыток IP, а затем заблокировать его с помощью правила брандмауэра. У меня нет такого сценария, но его можно было бы создать. @Chris S: Это более или менее то, что делает мой скрипт ts_block, за исключением того, что он работает как «сток» журнала событий и получает обратный вызов каждый раз, когда регистрируются новые события. Как таковой, он работает более или менее в режиме реального времени. Используйте VPN - установите, например. OpenVPN на роутере. Никогда не помещайте коробку окон непосредственно в интернет - это опасно.

чтобы остановить попытки входа в rdp, как уже говорилось, вам нужен контроль над вашим брандмауэром, чтобы изолировать определенный ip. Вы можете сделать некоторые настройки в Администрирование -> Диспетчер служб терминалов, но ничего не можете сделать, чтобы остановить один ip таким образом. Возможно, вам стоит рассмотреть пакетный сценарий для прослушивания порта rdp и контроля сбоев входа в систему, поэтому, если были попытки попытки (вы выбираете число . ) с тем же ip, то никакая другая попытка за известный промежуток времени не могла бы быть. Я не уверен, если это возможно, но может быть способ .

Хорошо, так как я и думал. Я должен изучить Event Viewer, чтобы увидеть, могу ли я экспортировать IP-адреса в файл для пакетной обработки. В настоящее время приходится извлекать их из вручную созданных дампов .csv Самое смешное, что я хочу ограничить IP-адреса, но ошибка входа не сообщает об IP-адресе Смена порта только затеняет. Они найдут новый порт с интеллектуальной программой сканирования портов. @CsabaToth Журнал событий не записывает полезную информацию по умолчанию. Вы можете включить подробное ведение журнала в сервисе netlogon с контроллера домена или компьютера, получающего запросы RDP для получения дополнительной информации. Вы можете включить ведение журнала брандмауэра Windows, чтобы определить IP-адрес.

Вы действительно должны блокировать эти попытки на своем пограничном межсетевом экране, хотя бы с ограничением скорости. Если у вас нет возможности сделать это, читайте дальше.

Если вы не можете заблокировать на пограничном брандмауэре и хотите, чтобы RDP открывался только подмножеству Интернета, используйте встроенные функции брандмауэра Windows для блокировки входящих соединений.

Наконец, если вы действительно хотите, чтобы RDP был открыт для всей сети Intenet, вы можете взглянуть на модифицированную версию моей программы SSH для Windows, которая есть в репозитории github . Этот сценарий ts_block блокирует попытки входа в систему служб терминалов путем перебора в Windows Server 2003, 2008 и 2008 R2. К сожалению, из-за изменений в событиях, регистрируемых Windows при использовании уровня безопасности TLS / SSL для RDP, этот сценарий становится все менее эффективным . (Почему Microsoft решила не указывать IP-адрес хоста, пытающегося пройти аутентификацию, мне не под силу. Похоже, это было бы довольно важным занести в журнал, а?)

Я использую страницу ts_block, и это удивительно! Мой сервер Windows (2008 R2) раньше замедлялся под многочисленными атаками грубой силы, но не больше! TS_BLOCK написан на vbscript - и может / должен быть установлен как служба Windows - но не используйте версию MSI, просто отредактируйте код .vbs и установите себя с помощью утилиты nssm. Вам не нужны записи реестра, потому что код .vbs имеет жестко заданные значения по умолчанию. <P> Я отредактировал код, и он немедленно блокирует КАЖДЫЙ неудачный вход в систему - поскольку я являюсь моим собственным веб-сервером, НЕТ неудачных попыток входа в систему. Итак, сценарий @RyanBolger: У меня есть слабость к VBScript и интерпретируемым языкам в целом. Я считаю, что использование «Non-Sucking Service Manager» делает довольно безболезненным запуск программ VBScript в качестве сервисов. ts_block удивительно, это именно то, что я искал. «Спасибо, Эван Андерсон». Когда я в течение одного дня разместил свой первый виртуальный виртуальный сервер Terminal в Интернете, у меня было более 10 000 неудачных входов. Когда у меня есть время, я могу изменить его и добавить постоянную блокировку на основе количества предыдущих блоков. Например: IP забанен 4 раза в день. (Если только он не был создан)

Однако для удаленного рабочего стола я обнаружил, что при переходе в «Конфигурация узла сеанса удаленного рабочего стола» и изменении соединения RDP-TCP, чтобы уровень безопасности «Уровень безопасности RDP» вместо «Согласовать» или «SSL (TLS 1.0)» возвращал IP-адреса.

Если вы действительно хотите это сделать, это другой вопрос для вас: «Если вы выберете RDP Security Layer, вы не сможете использовать аутентификацию на уровне сети».

Я нашел http://www.windowsecurity.com/articles/logon-types.html полезным. Я использовал EventLogWatcher и привязал его к «* [System / EventID = 4625 или System / EventID = 4624]», чтобы можно было сбросить неверный счет при успехе, если пользователь действительно только что неправильно ввел свой пароль. Также я в белом списке :: 1, 0.0.0.0, 127.0.0.1 и "-". Вы можете или не хотите вносить белый список IP-адресов LAN / управления.

Я использую Forefront TMG, поэтому я использовал API для добавления плохих IP-адресов в группу IP-адресов таким образом, и я попросил Cisco добавить API-доступ к одному из своих SMB-маршрутизаторов (что, как они уверяли, они могут сделать!)

Если вы хотите использовать собственный брандмауэр Windows для их блокировки, взгляните на API для этого («netsh advfirewall»).

Я разрешаю x количество попыток, прежде чем забанить, и в случае успеха счет сбрасывается.

Вы пытаетесь предотвратить взломы или загроможденные журналы? Если вы пытаетесь предотвратить взломы, в Windows есть встроенный способ блокировать попытки входа в систему. Существует параметр групповой политики «Пороговое значение блокировки учетной записи» в разделе «Конфигурация компьютера» -> «Политики» -> «Параметры Windows» -> «Параметры безопасности» -> Политика учетной записи -> Политика блокировки учетной записи.

Злоумышленники будут использовать общие имена пользователей, такие как Администратор, и они наверняка заблокируют их. Вам потребуется отдельная учетная запись для фактического администрирования, что, вероятно, в любом случае целесообразно.

Автоматическая блокировка на уровне брандмауэра потребует некоторого чтения журнала в сценарии с автоматическим обновлением правил брандмауэра. Вы должны иметь возможность добавлять правила на основе IP-адреса таким образом. Это в основном то, что iptables делает в системе Linux.

Это может быть немного очевидно, но рассматривали ли вы также запуск служб удаленных рабочих столов на нестандартном порту ? Это было очень эффективно для меня, чтобы помешать взломам.

В этой инструкции описаны рекомендуемые действия по защите Вашего сервера.

Переименуйте стандартную учетную запись администратора

Нажмите Win + X и выберите «Управление компьютером»:

RDP_security_7.jpg

Затем выберите «Локальные пользователи» --→ «Пользователи» --→ кликните правой кнопкой мыши по имени пользователя «Администратор» и выберите «Переименовать»:

RDP_security_8.jpg

Переименуйте пользователя и используйте это имя для последующих подключений к удаленному рабочему столу.

Блокировка RDP-подключений для учетных записей с пустым паролем

Усилить безопасность можно запретив подключаться к учетным записям с пустым паролем. Для этого нужно включить политику безопасности «Учетные записи»: разрешить использование пустых паролей только при консольном входе»:

Откройте локальную политику безопасности (нажмите Win + R и введите команду secpol.msc)

Перейдите в раздел «Локальные политики» –-> «Параметры безопасности».

IPBan_edit_4.jpg

3. Дважды щелкните на политике «Учетные записи: разрешить использование пустых паролей. » и убедитесь, что она включена:

RDP_security_2.jpg

Вещь полезная, поэтому не оставляйте этот параметр без внимания.

Смена стандартного порта Remote Desktop Protocol

Не лишним будет сменить стандартный порт на котором работает протокол RDP. Как это сделать уже описано в наших инструкциях: Windows Server 2012 и Windows Server 2016.

Защита от буртфорса

Чтобы блокировать множественные попытки подключения с неверными данными, можно отслеживать журнал событий и вручную блокировать атакующие IP адреса посредством брандмауэра Windows или воспользоваться готовым приложением. Последний случай мы рассмотрим подробнее.

Для блокировки атакующих IP адресов будем использовать свободно распратраняющееся ПО - IPBan. Это приложение проверено и работает в Windows Server 2008 и всех последующие версях. Windows XP и Server 2003 - не роддерживаются. Алгоритм его работы простой: программа мониторит журнал событий Windows, фиксирует неудачные попытки входа в систему и, после 5-ти попыток злоумышленника подобрать пароль, блокирует IP адрес на 24 часа.

  1. Cкачайте архив с программой здесь;
  2. В нем находятся два архива IPBan-Linux-x64.zip и IPBan-Windows-x86.zip, нам нужен последний. Распакуйте архив IPBan-Windows-x86.zip в любое удобное место (в примере это корень диска C:);
  3. Так как файлы скачанные с интернета система автоматически блокирует в целях безопасности, для работы приложения необходимо разблокировать все файлы. Щелкните правой кнопкой мыши на все извлеченные файлы и выберите свойства. Обязательно выберите «разблокировать», если этот параметр доступен. Либо, откройте окно PowerShell (Win + R, введите powershellи "ОК") и воспользуйтесь командой следующего вида:

IPBan_3_0.jpg

4. Вам нужно внести следующие изменения в локальную политику безопасности, чтобы убедиться, что в логах системы отображаются IP-адреса. Октройте "Локальную политику безопасности" (Win + R, введите secpol.msc и "OK"). Перейдите в "Локальные политики" --> "Политика аудита" и включить регистрацию сбоев для "Аудита входа в систему" и "Аудита событий входа в систему":

IPBan_4.jpg

5. Для Windows Server 2008 или эквивалентного вам следует отключить логины NTLM и разрешить только NTLM2-вход в систему. В Windows Server 2008 нет другого способа получить IP-адрес для входа в систему NTLM. Октройте "Локальную политику безопасности" (Win + R, введите secpol.msc и "OK"). Перейдите в "Локальные политики" --> "Параметры безопасности" --> "Сетевая безопасность: Ограничения NTLM: входящий трафик NTLM" и установите значение "Запретить все учетные записи":

IPBan_edit_1.jpg

6. Теперь необходимо создать службу IPBan, чтобы приложение запускалось при старте системы и работало в фоновом режиме. Запустите оснастку PowerShell (Win + R, введите powershell и "ОК") и выпоните команду типа:

IPBan_6_0.jpg

Перейдите в службы (Win + R, введите services.msc и "OK") и запустите службу IPBAN, в дальнейшем она будет запускаться автоматически:

IPBan_edit_3.jpg

В "Диспетчере задач" можно убедиться, что служба запущена и работает:

IPBan_8.jpg

Таким образом, программа следит за неудачными попытками авторизации и добавляет неугодные IP адреса в созданное правило для входящих подключений брандмауэра Windows:

IPBan_edit_2.jpg

IPBan_10.jpg

Заблокированные IP адреса можно разблокировать вручную. Перейдите на вкладку "Область" в свойствах правила "IPBan_0" и удалите из списка нужный Вам IP адрес:

Насколько я могу судить по собственному опыту, системы Windows Server 2008 R2 и Windows Server 2008 — это первые версии Windows Server, обеспечивающие успешную работу сервера в корпоративной среде при включенном межсетевом экране. Ключевую роль в этом процессе играет оснастка Firewall with Advanced Security консоли Microsoft Management Console (MMC)

В наши дни модель безопасности целиком строится на концепции уровней безопасности. Если средства защиты вашей сети окажутся скомпрометированными, уровни безопасности могут, по меньшей мере, ограничить фронт атаки злоумышленников или ослабить удар. .

Профили брандмауэров

Пользователи системы Server 2008 R2 могут применять три различных профиля Windows Firewall. В каждый момент активным может быть только один из них.

  1. Профиль домена (Domain profile). Этот профиль активен в ситуации, когда сервер подключен к домену Active Directory (AD) по внутренней сети. Как правило, в активном состоянии бывает именно этот профиль, поскольку серверы по большей части являются членами домена AD.
  2. Частный профиль (Private profile). Этот профиль активен, когда сервер является членом рабочей группы. Для данного профиля специалисты Microsoft рекомендуют использовать настройки с более строгими ограничениями, чем для профиля домена.
  3. Общий профиль (Public profile). Этот профиль активен, когда сервер подключен к домену AD через общедоступную сеть. Microsoft рекомендует применять для него настройки с самыми строгими ограничениями.

Открыв оснастку Firewall with Advanced Security, вы можете увидеть, какой профиль брандмауэра активен в данный момент. Хотя специалисты Microsoft указывают на возможность применения различных настроек безопасности в зависимости от параметров профиля сетевого экрана, я обычно настраиваю брандмауэр так, как если бы внешнего сетевого экрана не было вовсе. При таких настройках, если какие-либо порты на внешних брандмауэрах случайно останутся открытыми, трафик будет заблокирован экраном Windows Firewall в Server 2008. Как и в предыдущих версиях продукта Windows Firewall, в версии Server 2008 R2 все входящие соединения блокируются, а все исходящие от сервера по умолчанию беспрепятственно функционируют (если только в данный момент не действует правило Deny).

В организации, где я работаю, используются описанные выше параметры, так что конфигурация наших брандмауэров напоминает среду общих профилей. Создавая некое правило, мы активируем его для всех трех профилей. Используя единообразную для всех трех доменных профилей конфигурацию сетевых экранов, мы устраняем угрозу возможного и нежелательного открытия портов в случае изменения профиля брандмауэра Windows Firewall.

IPsec и изоляция доменов

Не отключайте брандмауэр

Я рекомендую при первоначальной установке системы Server 2008 R2 не отключать брандмауэр. В наши дни почти все приложения достаточно «интеллектуальны», чтобы автоматически открывать нужный порт в сетевом экране в процессе установки (что снимает необходимость вручную открывать на сервере порты для приема запросов интернет-клиентов). Одно из оснований не отключать брандмауэр в ходе установки состоит в том, чтобы обеспечить защиту операционной системы до того, как вы получите возможность применить новейшие обновления.

Брандмауэр интегрирован с ролями и средствами диспетчера Server Manager. Когда на сервере добавляется роль или функция, брандмауэр автоматически открывает соответствующие порты для приема интернет-запросов. Система управления базами данных SQL Server по умолчанию использует порт TCP 1433. Поэтому администратор должен вручную создать правило для приема запросов, санкционирующее трафик для SQL Server через порт TCP 1433. Альтернативное решение — изменить настройки по умолчанию.

Создание правил для обработки входящего трафика

Если вы не будете отключать брандмауэр, вам, скорее всего, придется в тот или иной момент вручную создавать правило для приема запросов. Существует немало правил, созданных (но отключенных по умолчанию) для большого числа популярных приложений Windows.

Перед тем как приступать к созданию правила, удостоверьтесь, что правило, санкционирующее обработку интересующего вас трафика, пока не составлено. Если такое правило уже существует, вы можете просто активировать его и, возможно, изменить заданную по умолчанию область применения. Если же найти подходящее правило не удается, вы всегда можете создать его, что называется, с чистого листа.

В меню Start выберите пункт Administrative Tools, а затем щелкните на элементе Windows Firewall with Advanced Security. На экране появится окно оснастки Firewall with Advanced Security. Я покажу на примере, как создать правило, санкционирующее входящий трафик SQL Server через порт TCP 1433 с интерфейсного сервера Microsoft Office SharePoint Server.

Правой кнопкой мыши щелкните на пункте Inbound Rules и выберите элемент New Rule. Как показано на экране 1, в качестве типа правила (rule type) можно указать Program, Port, Predefined или Custom. Я обычно выбираю тип Custom, поскольку в этом случае система предлагает ввести область применения правила. Для продолжения нажмите кнопку Next.

Выбор типа для нового правила обработки входящего трафика
Экран 1. Выбор типа для нового правила обработки входящего трафика

В открывшемся диалоговом окне, показанном на экране 2, можно указать программы или службы, к которым будет применяться правило. В нашем примере я выбрал пункт All programs, так что трафик будет управляться в зависимости от номера порта.

Затем, как видно на экране 3, я в качестве протокола указал TCP, а в раскрывающемся меню Local port выбрал пункт Specific Ports и указал порт 1433, по умолчанию применяющийся при работе с SQL Server. Поскольку удаленные порты относятся к категории динамических, я выбрал пункт All Ports.

В диалоговом окне Scope, показанном на экране 4, я в качестве локального IP-адреса указал 192.168.1.11, а в качестве удаленного IP-адреса — 192.168.1.10 (это IP-адрес интерфейсного сервера SharePoint нашей организации). Я настоятельно рекомендую указывать диапазон для каждого правила — на тот случай, если данный сервер вдруг окажется открытым для доступа из нежелательных подсетей.

Определение локального и удаленного IP-адресов в области применения нового правила обработки входящего трафика
Экран 4. Определение локального и удаленного IP-адресов в области применения нового правила обработки входящего трафика

В диалоговом окне Action на экране 5 я выбрал пункт Allow the connection, так как хотел разрешить входящий трафик для системы SQL Server. Можно использовать и другие настройки: разрешить трафик только в том случае, если данные зашифрованы и защищены средствами Ipsec, или вообще заблокировать соединение. Далее требуется указать профиль (профили), для которого будет применяться данное правило. Как показано на экране 6, я выбрал все профили (оптимальный метод). Затем я подобрал для правила описательное имя, указал разрешенную службу, область и порты, как показано на экране 7. И завершаем процесс создания нового правила для обработки входящего трафика нажатием кнопки Finish.

Указание действий, которые необходимо предпринять, если при соединении выполняется условие, заданное в новом правиле обработки входящего трафика
Экран 5. Указание действий, которые необходимо предпринять, если при соединении выполняется условие, заданное в новом правиле обработки входящего трафика

Назначение профилей, к которым будет применяться новое правило обработки входящего трафика
Экран 6. Назначение профилей, к которым будет применяться новое правило обработки входящего трафика

Именование нового правила обработки входящего трафика
Экран 7. Именование нового правила обработки входящего трафика

Создание правил для обработки исходящего трафика

Во всех трех профилях брандмауэра (то есть в доменном, открытом и частном) входящий трафик по умолчанию блокируется, а исходящий пропускается. Если воспользоваться настройками по умолчанию, вам не придется открывать порты для исходящего трафика. Можете прибегнуть к другому способу: заблокировать исходящий трафик (но тогда вам придется открыть порты, необходимые для пропускания исходящих данных).

Создание правил для обработки исходящего трафика аналогично созданию правил для входящего; разница лишь в том, что трафик идет в противоположном направлении. Если на сервер попал вирус, который пытается атаковать другие компьютеры через те или иные порты, вы можете заблокировать исходящий трафик через эти порты с помощью оснастки Firewall with Advanced Security.

Управление параметрами брандмауэра

Диагностика

Если при попытке подключиться к серверу у вас возникают трудности, попробуйте активировать процедуру регистрации; это позволит получить информацию о том, блокируются ли нужные вам порты. По умолчанию функция входа в систему через брандмауэр отключена. Для ее включения следует правой кнопкой мыши щелкнуть на оснастке Windows Firewall with Advanced Security и в открывшемся меню выбрать пункт Properties. Теперь в разделе Logging перейдите на вкладку Active Profile (Domain, Private, or Public) и выберите пункт Customize.

По умолчанию журнал регистрации брандмауэра располагается по адресу C:\Windows\system32\Log Files\Firewall\pfirewall.log. Выясняя причины неполадок в функционировании средств подключения, я, как правило, регистрирую только потерянные пакеты, как показано на экране 8; иначе журналы могут заполниться массой ненужных сведений об успешных соединениях. Откройте журнал в редакторе Notepad и выясните, происходит ли потеря пакетов при прохождении брандмауэра.

Активация журнала брандмауэра для доменного профиля
Экран 8. Активация журнала брандмауэра для доменного профиля

Еще один совет из области диагностики: отключите брандмауэр; вероятно, после этого возможности соединения будут восстановлены. Если вам удалось восстановить соединение с отключенным сетевым экраном, откройте окно командной строки и введите команду Netstat -AN; таким образом вы сможете просмотреть детали соединения. Если приложение подключается по протоколу TCP, вы сможете определить порты приложения, просмотрев локальные и «чужие» IP-адреса с состоянием Established. Это особенно удобно в ситуациях, когда вы не знаете наверняка, какой порт (или порты) то или иное приложение использует для установления соединения.

Ваш помощник — сетевой экран

Системы Server 2008 R2 и Server 2008 — это первые версии Windows Server, допускающие возможность функционирования корпоративной среды без отключения сетевого экрана. Важно только не отключать брандмауэр при установке на сервере какой-либо программы. Таким образом вы сможете испытывать средства подключения сервера до их развертывания в производственной сети. Чтобы узнать, имеет ли место потеря пакетов при прохождении через сетевой экран, установите настройку Log dropped packets. Тем, кто решит активировать брандмауэр на сервере после того, как этот сервер в течение некоторого времени проработал в производственной сети, я рекомендую для начала поместить его в лабораторную среду и определить, какие порты необходимы для открытия брандмауэра.

date

26.09.2019

directory

Windows 10, Windows Server 2016

comments

комментария 3

Рассмотрим несколько способов, которые помогут вам запретить доступ к отдельным сайтам, URL и IP адресам в Windows без использования сторонних программ. Обычно блокировку сайтов наиболее эффективно настраивать на уровне сетевого шлюза (роутер, маршрутизатор, Wi-Fi точка доступа, через которую вы выходите в Интернет), или с помощью стороннего ПО (фильтры контента, DNS фильтры и т.д.). В нашем случае мы попробуем заблокировать определенный сайт с помощью встроенных средств Windows 10 и автоматизации PowerShell.

Блокировка сайтов в Windows с помощью файла hosts

Самый известный способ заблокировать определенный сайт в Windows – отредактировать файл hosts. Обычно файл находится в каталоге %windir%\system32\drivers\etc\. Обратите внимание, что у файла hosts нет расширения.

DataBasePath путь к файлу hosts в реестре HKLM\CurrentControlSet\Services\Tcpip\Parameters

Путь к каталогу с файлом hosts задается в параметре DataBasePath в ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters. По-умолчанию это %SystemRoot%\System32\drivers\etc.

Файл hosts используется для ручного назначения соответствий между IP адресами и DNS именами. При выполнении разрешении имен файл hosts имеет приоритет над DNS серверами, указанными в настройках сетевых подключений,

блокировка сайта через файл hosts

Сохраните файл и перезагрузите компьютер (или очистите DNS кэш командой: ipconfig /flushdns ).

Вы можете добавлять новые строки с URL сайтов в файл hosts с помощью такого bat файла:

@echo off
set hostspath=%windir%\System32\drivers\etc\hosts

Либо можно воспользоваться следующими PowerShell функциями для автоматизации блокировки (разблокировки) определенных сайтов в списке запрещенных доменов в файле hosts.

Function BlockSiteHosts ( [Parameter(Mandatory=$true)]$Url) $hosts = 'C:\Windows\System32\drivers\etc\hosts'
$is_blocked = Get-Content -Path $hosts |
Select-String -Pattern ([regex]::Escape($Url))
If(-not $is_blocked) $hoststr //pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"> >
Set-Content -Path $hosts -Value $newhosts
>
>

powershell - функция блокировки сайтов в файле hosts

Теперь чтобы добавить определенный сайт в заблокированные достаточно выполнить функцию:

Чтобы разблокировать сайт запустите:

Блокировка сайтов через DNS

Если ваши клиенты пользуются одним DNS сервером, вы можете аналогичным образом заблокировать определенный сайты с помощью создания DNS записи в этом DNS, указывающей на 127.0.0.1 (или что-то в таком роде). По такому принципу, кстати, работают большинство коммерческих контент фильтров DNS (OpenDNS, SkyDNS, Яндекс.DNS и т.д.).

Блокируем IP адрес сайта в брандмауэре Windows

Также вы можете заблокировать определенные сайты с помощью встроенного Windows Firewall. Главный недостаток такого метода – вы не сможете использовать имя домена или сайта в правиле блокировке. Брандмауэр Windows в качестве источника/назначения позволяет указать только IP адрес или подсеть.

Сначала нужно определить IP адрес сайта, который вы хотите заблокировать. Проше всего это сделать командой nslookup.

nslookup - получения ip адресов сайта

Как вы видите в результатах команды присутствует несколько IP адресов, которые назначены сайту. Вам нужно заблокировать их все.

Теперь нужно запустить панель настройки Windows Firewall (Панель управления \Все элементы панели управления\Брандмауэр Защитника Windows\Дополнительные параметры или firewall.cpl).

Windows Firewall создать исходящее правило

В секции “Правила для исходящих подключений” создайте новое правило со следующими параметрами:

  • Тип правила: Настраиваемые;
  • Программа: Все программы;
  • Тип протокола: Любой;
  • Область: в секции “Укажите удаленные IP адреса, к которым применяется данное правило” выберите пункт “Указанные IP адреса” -> Добавить. В открывшемся окне укажите IP адреса, IP подсети или диапазон IP адресов сайтов, которые нужно заблокировать.

указать ip адреса для блокировки

Нажмите OK-> Далее -> Действие: “Блокировать подключение”.

windows firewall блокировать подключение

В окне со списком профилей брандмауэра, к которым применяется это правило оставьте все опции. Осталось указать имя правила и сохранить его.

После этого Брандмауэр Защитника Windows будет блокировать все соединения с данным сайтом. В браузере при подключении к заблокированному сайту будет появляться ошибка:

Unable to connect

Доступ в Интернет закрыт
Возможно, подключение заблокирована брандмауэром или антивирусным ПО.
ERR_NETWORK_ACCESS_DENIED

В домене AD вы можете распространить на компьютеры пользователей политику блокирующую сайт с помощью GPO. Но еще раз скажем, это нецелесообразно. Фильтровать сайты правильнее на шлюзе доступа в Интернет.

PowerShell: правила блокировки сайтов по имени и IP адресу в брандмауэре Windows

Вы также можете с помощью PowerShell создать правило брандмауэра, блокирующее исходящие подключения к определенному сайту:

New-NetFirewallRule -DisplayName "Block Site" -Direction Outbound –LocalPort Any -Protocol Any -Action Block -RemoteAddress 217.20.147.1, 217.20.141.0/26

New-NetFirewallRule - создать правило блокировки сайта PowerShell

Строка “ The rule was parsed successfully from the store” говорит о том, что правило новое правило брандмауэра успешно применено. Вы можете найти его в графическом интерфейсе Windows Firewall.

правило блокировки IP адресов в брандмауэере windows

Чтобы не резолвить имя сайта в IP адреса вручную можно использовать PowerShell командлет Resolve-DnsName для получения IP адресов сайтов.

Resolve-DnsName "ok.ru"| Select-Object -ExpandProperty IPAddress

Resolve-DnsName

Таким образом мы можем преобразовать имя домена в IP адреса и сразу добавить запрещающее правило для блокирования доступа к сайту:

$IPAddress = Resolve-DnsName "ok.ru"| Select-Object -ExpandProperty IPAddress
New-NetFirewallRule -DisplayName "Block Site" -Direction Outbound –LocalPort Any -Protocol Any -Action Block -RemoteAddress $IPAddress

Получается, что теперь вы можете добавить запрещающее правило в Windows Firewall сразу для нескольких сайтов:

$SitesToBlock = “lenta.ru”,”mail.ru”,”facebook.com”
$IPAddress = $SitesToBlock | Resolve-DnsName -NoHostsFile | Select-Object -ExpandProperty IPAddress
New-NetFirewallRule -DisplayName "Block Web Sites" -Direction Outbound –LocalPort Any -Protocol Any -Action Block -RemoteAddress $IPAddress

У командлета Resolve-DnsName я добавил параметр –NoHostsFile, чтобы не использовать при проверке файл hosts.

Проверим, что блокирующее правило для исходящего появилось в консоли.

block web sites правило в консоли windows defender firewall

Эта статья прежде всего разминка для ума. В корпоративной сети для ограничения доступа к сайтам нужно использовать фильтрацию на уровне шлюза доступа в интернет или прокси-сервере. Блокировка доступа на уровне хостов не столь эффективна.

Читайте также: