- Как заблокировать IP на Windows
- Как заблокировать IP на Windows
- Как заблокировать доступ к сайту в Windows с помощью PowerShell
- Блокировка сайтов в Windows с помощью файла hosts
- Блокировка сайтов через DNS
- Блокируем IP адрес сайта в брандмауэре Windows
- PowerShell: правила блокировки сайтов по имени и IP адресу в брандмауэре Windows
Как заблокировать IP на Windows
Очень легко заблокировать один IP адрес на сервере Linux, но установленный на Windows по умолчанию брандмауэр не позволяет заблокировать один IP адрес на сервере или для отдельных портов. Однако Microsoft реализовала это и ввела Политики Безопасности IP (IP Security Polices) в настройках Локальной Политики Безопасности при выпуске SP2. Но большинство из нас не знают об этой настройке и мы в основном используем брандмауэр от сторонней фирмы и платим им за лицензию. Однако, брандмауэр на Windows 2008 Server является гораздо более развитым, чем на Windows 2003.
Как бы то ни было, ниже перечислены подробные шаги вместе с изображениями о том, как блокировать IP с помощью политики безопасности IP в Windows. Эта опция также доступна на XP, а также Windows 2003 Server Edition.
Как заблокировать IP на Windows
Вы можете открыть MMC с помощью START >> RUN >> MMC и добавить новую оснастку для политики безопасности IP с помощью следующих шагов:
Щёлкните Пуск (‘Start’) > Выполнить (‘Run’) > введите ‘MMC’ нажмите ОК.
В консоли щёлкните > «Консоль» (‘File’) > «Добавить и удалить оснастку» (‘Add/Remove Snap in’)
В «Изолированная оснастка» (‘Standalone Tab’) нажмите кнопку «Добавить» (‘Add’)
Выберите «Монитор IP безопасности» (‘IP Security Policy Managment’) > «Добавить» (‘ADD’) > «Управление компьютером» (‘Local Computer’) > «Готово» (‘Finish’) > «Закрыть» (‘Сlose’) > ‘OK’
Теперь вернитесь обратно в консоль управления.
Чтобы открыть консоль управления политикой безопасности IP просто откройте «Пуск» (START) >> «Программы» («PROGRAMS») >> «Администрирование» («ADMINISTRATIVE TOOLS») >> «Локальная политика безопасности» («LOCAL SECURITY POLICIES ON LOCAL COMPUTER»).
1. Выберите «Политики безопасности IP» (IP Security Policies) и сделайте щелчок правой кнопкой на правой панели, чтобы выбрать создание новой политики. Экран будет выглядеть, как показано ниже:
2. Это откроет мастер создания политики безопасности IP, просто щёлкните по кнопке «Далее» («Next»).
3. На следующем экране вы должны задать имя вашей политики и её описание, а затем щёлкнуть по кнопке «Далее» («Next»).
4. Снимите флажок «Использовать правило по умолчанию» (“Activate the default Response Rule”), а затем щёлкните по кнопке «Далее» («Next»).
5. На следующем экране снимите флажок «Изменить свойства» («Edit Properties») и нажмите «Готово» («Finish»).
6. После нажатия на кнопку «Готово» («Finish»), вы увидите экран, показанный ниже, вместе с вашим правилом, добавленным в список. Теперь создадим список фильтров IP для блокировки IP адресов.
7. Откройте окно свойств двойным щелчком на только что созданном правиле:
8. Так как мы сняли флажок «Использовать правило по умолчанию» (“Activate the default Response Rule”) на шаге 4, правило «Динамический» («Dynamic») не работает. Нажмите кнопку «Добавить» («Add»), чтобы открыть «Мастер правил безопасности» («Security Rule Wizard») и снова щёлкните по кнопке «Добавить» («Add»), чтобы открыть «Мастер правил безопасности» («IP Filter List Wizard»).
9. Вы увидите экран, похожий на Рисунок 9. Введите название вашего списка и нажмите на кнопку «Добавить» («Add»).
10. Это откроет другое окно для добавления IP адресов и портов в список фильтрации IP. В поле «Описание» («Description») введите IP адрес, который вы хотите заблокировать, удостоверьтесь, что установлен флажок «Отражённый. Это так же распространяется на пакеты с полностью противоположными адресами источника и назначения» (“Mirrored. Match packets with the exact appropriate source and destination addresses”) и нажмите кнопку «Далее» («Next»).
11. Выберите «Мой IP адрес» («My IP address») в «Адресе источника пакетов» («Sources Address») из выпадающего списка.
12. Для выбора из списка для обоих адресов источника и назначения (Sources и Destination Address) есть много вариантов. Для работы с этой опцией необходимы некоторые дополнительные знания. Сейчас мы выберем «Мой IP адрес» («My IP address») и нажмём кнопку «Далее» («Next»).
13. В «Адрес назначения пакетов» («IP Traffic Destination») выбираем «Определённый IP адрес» (“A specific IP Address”) и вводим IP адрес, который хотим заблокировать на своей машине. Здесь мы так же можем выбрать из выпадающего списка подсеть и заблокировать подсеть целиком. После окончания ввода IP адреса или подсети нажмите кнопку «Далее» («Next»).
14. В «Протокол» («IP Protocol Type») вы можете указать протокол, который вы хотите заблокировать, он может быть любым из списка, например, TCP, UDP, ICMP и так далее. Мы выберем «Любой» («Any»), что означает все соединения с указанным IP адресом. Если вы выберете протокол из списка и нажмёте «Далее» («Next»), вам будет предложено ввести номер порта, который вы хотите заблокировать, например, 80 (смотрите Рисунок 14.2). Но так как мы хотим блокировать все порты, мы выбираем «Любой» («Any»), нажимаем «Далее» («Next») (Рисунок 14.1), а затем «Готово» («Finish»).
15. После нажатия на кнопку «Готово» («Finish») вы увидите, что правило было добавлено в список фильтрации по IP. Если вы хотите добавить другие IP и подсети, щёлкните по кнопке «Добавить» («Add») и добавьте другое правило или заблокируйте второй IP адрес. После окончания вы будете иметь правила, как показано на Рисунке 15.2.
16. После завершения работы со «Списком фильтров IP» («IP Filter List») нажмите кнопку «OK» для возврата в «Мастер правил безопасности» («Security Rule Wizard»). Укажите список фильтрации IP, который был создан с помощью переключателя и нажмите «Далее» («Next»).
17. На следующем окне «Мастера правил безопасности» («Security Rule Wizard») вы не увидите каких-либо действий в качестве фильтра блокировки, так как по умолчанию он не создаётся. Мы создадим новый фильтр, чтобы заблокировать подключение, нажав на кнопку «Добавить» («Add»).
18. В поле «Имя» («Name») введите “Block” и любое описание, какое хотите, и нажмите «Далее» («Next»).
19. В «Общие параметры действия фильтра» («Filter Action General options») выберите «Блокировать» («Block») и нажмите «Далее» («Next»).
20. А затем нажмите «Готово» («Finish»), чтобы вернуться обратно в «Мастер правил безопасности» («Security Rule Wizard»).
21. Это добавит опцию «Block» в список «Действия фильтра» («Filter Actions»), переключите переключатель и нажмите «Далее» («Next»).
22. Для завершения работы «Мастер правил безопасности» («Security Rule Wizard») нажмите «Готово» («Finish»).
23. Вы увидите правило, добавленное в список, можно добавить другие правила с помощью тех же шагов. Для завершения работы с правилами просто нажмите «OK».
24. Теперь, поскольку мы уже создали правила, чтобы заблокировать желаемый IP адрес, просто щёлкните правой кнопкой мыши на политику безопасности IP и выберите пункт «Назначить» («Assign»), чтобы активировать правило на сервере.
Есть много возможностей обезопасить весь ваш сервер с помощью политики безопасности IP. Вы можете создать правила для блокировки каждого на RDP порту TCP 3389 и позволять работать только избранным IP адресам. IP Secuirity является основанным на IP и порту приложением, а не сервисом, и вы можете создать правила, как вам угодно.
Как заблокировать доступ к сайту в Windows с помощью PowerShell
Рассмотрим несколько способов, которые помогут вам запретить доступ к отдельным сайтам, URL и IP адресам в Windows без использования сторонних программ. Обычно блокировку сайтов наиболее эффективно настраивать на уровне сетевого шлюза (роутер, маршрутизатор, Wi-Fi точка доступа, через которую вы выходите в Интернет), или с помощью стороннего ПО (фильтры контента, DNS фильтры и т.д.). В нашем случае мы попробуем заблокировать определенный сайт с помощью встроенных средств Windows 10 и автоматизации PowerShell.
Блокировка сайтов в Windows с помощью файла hosts
Самый известный способ заблокировать определенный сайт в Windows – отредактировать файл hosts. Обычно файл находится в каталоге %windir%\system32\drivers\etc\. Обратите внимание, что у файла hosts нет расширения.
Файл hosts используется для ручного назначения соответствий между IP адресами и DNS именами. При выполнении разрешении имен файл hosts имеет приоритет над DNS серверами, указанными в настройках сетевых подключений,
Чтобы заблокировать определенный сайт (например, ok.ru), откройте на редактирование файл hosts (с правами администратора) и добавьте в него строки вида:
127.0.0.1 ok.ru
127.0.0.1 www.ok.ru
Сохраните файл и перезагрузите компьютер (или очистите DNS кэш командой: ipconfig /flushdns ).
После этого при попытке открыть сайт ok.ru в любом браузере будет появляется сообщение “Страница не найдена” / “Страница не доступна”.
Вы можете добавлять новые строки с URL сайтов в файл hosts с помощью такого bat файла:
@echo off
set hostspath=%windir%\System32\drivers\etc\hosts
echo 127.0.0.1 www.facebook.com >> %hostspath%
echo 127.0.0.1 facebook.com >> %hostspath%
exit
Либо можно воспользоваться следующими 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=»127.0.0.1 ” + $Url
Add-Content -Path $hosts -Value $hoststr
>
>
Function UnBlockSiteHosts ( [Parameter(Mandatory=$true)]$Url) <
$hosts = ‘C:\Windows\System32\drivers\etc\hosts’
$is_blocked = Get-Content -Path $hosts |
Select-String -Pattern ([regex]::Escape($Url))
If($is_blocked) <
$newhosts = Get-Content -Path $hosts |
Where-Object <
$_ -notmatch ([regex]::Escape($Url))
>
Set-Content -Path $hosts -Value $newhosts
>
>
Теперь чтобы добавить определенный сайт в заблокированные достаточно выполнить функцию:
Чтобы разблокировать сайт запустите:
Блокировка сайтов через DNS
Если ваши клиенты пользуются одним DNS сервером, вы можете аналогичным образом заблокировать определенный сайты с помощью создания DNS записи в этом DNS, указывающей на 127.0.0.1 (или что-то в таком роде). По такому принципу, кстати, работают большинство коммерческих контент фильтров DNS (OpenDNS, SkyDNS, Яндекс.DNS и т.д.).
Блокируем IP адрес сайта в брандмауэре Windows
Также вы можете заблокировать определенные сайты с помощью встроенного Windows Firewall. Главный недостаток такого метода – вы не сможете использовать имя домена или сайта в правиле блокировке. Брандмауэр Windows в качестве источника/назначения позволяет указать только IP адрес или подсеть.
Сначала нужно определить IP адрес сайта, который вы хотите заблокировать. Проше всего это сделать командой nslookup.
Как вы видите в результатах команды присутствует несколько IP адресов, которые назначены сайту. Вам нужно заблокировать их все.
Теперь нужно запустить панель настройки Windows Firewall (Панель управления \Все элементы панели управления\Брандмауэр Защитника Windows\Дополнительные параметры или firewall.cpl).
В секции “Правила для исходящих подключений” создайте новое правило со следующими параметрами:
- Тип правила: Настраиваемые;
- Программа: Все программы;
- Тип протокола: Любой;
- Область: в секции “Укажите удаленные IP адреса, к которым применяется данное правило” выберите пункт “Указанные IP адреса” -> Добавить. В открывшемся окне укажите IP адреса, IP подсети или диапазон IP адресов сайтов, которые нужно заблокировать.
Нажмите OK-> Далее -> Действие: “Блокировать подключение”.
В окне со списком профилей брандмауэра, к которым применяется это правило оставьте все опции. Осталось указать имя правила и сохранить его.
После этого Брандмауэр Защитника 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
Строка “ The rule was parsed successfully from the store” говорит о том, что правило новое правило брандмауэра успешно применено. Вы можете найти его в графическом интерфейсе Windows Firewall.
Чтобы не резолвить имя сайта в IP адреса вручную можно использовать PowerShell командлет Resolve-DnsName для получения IP адресов сайтов.
Resolve-DnsName «ok.ru»| Select-Object -ExpandProperty IPAddress
Таким образом мы можем преобразовать имя домена в 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.
Проверим, что блокирующее правило для исходящего появилось в консоли.
Эта статья прежде всего разминка для ума. В корпоративной сети для ограничения доступа к сайтам нужно использовать фильтрацию на уровне шлюза доступа в интернет или прокси-сервере. Блокировка доступа на уровне хостов не столь эффективна.