- Как заблокировать доступ к сайту в Windows с помощью PowerShell
- Блокировка сайтов в Windows с помощью файла hosts
- Блокировка сайтов через DNS
- Блокируем IP адрес сайта в брандмауэре Windows
- PowerShell: правила блокировки сайтов по имени и IP адресу в брандмауэре Windows
- Запрет прямого ip подключения Server 2012 R2
- Запрет подключения по RDP на Windows Server 2012 R2
Как заблокировать доступ к сайту в 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.
Проверим, что блокирующее правило для исходящего появилось в консоли.
Эта статья прежде всего разминка для ума. В корпоративной сети для ограничения доступа к сайтам нужно использовать фильтрацию на уровне шлюза доступа в интернет или прокси-сервере. Блокировка доступа на уровне хостов не столь эффективна.
Запрет прямого ip подключения Server 2012 R2
Многие системные администраторы хотят обезопасить свою сеть, помимо настройки локальной политике безопасности необходимо обезопасить свою сеть еще одним образом, а именно запретить вход по RDP и удаленному рабочему столу по прямому IP адресу.
В каких случаях может понадобится данная процедура? В моей практике встречались случаи, когда было необходимо запретить любой доступ к серверу извне! Но при этом на одной из сетевых карт был установлен прямой IP адрес от интернета провайдера, если вы немного знакомы с ролью VPN Server 2012 R2, то вы уже знаете о том, что любой пользователь, у которого подключен интернет сможет подключиться с помощью удаленного рабочего стола к компьютеру, на котором установлен прямой IP адрес. Поэтому в целях безопасности если вы не используете VPN или терминальный сервер настоятельно рекомендую вам обезопасить свою сеть!
Запрет подключения по RDP на Windows Server 2012 R2
Первым этапом откройте «Панель управления» и перейдите во вкладку «Администрирование»
Открываем раздел «Локальная политика безопасности»
Затем кликаем правой кнопкой мыши по разделу: «Политика IP безопасности на локальный компьютер» и выбираем пункт «Создать политику IP безопасности»
В стартовом окне мастера установки жмем «Далее»
В поле Имя введите название политики и нажмите «Далее»
В запросах безопасного соединения оставляем все по умолчанию и кликаем «Далее»
Далее жмем «Готово»
Кликаем по вновь созданному подключению и выбираем пункт «Добавить»
В мастере создания новых правил для IP безопасности нажимаем «Далее»
В данном окне выберите пункт «Это правило не определяет туннель» и нажмите «Далее»
Выберите тип сети к которому будет применяться данное правило, в нашем примере я укажу «Все сетевые подключения» после чего «Далее»
Теперь нам необходимо создать IP фильтр для того типа IP трафика, к которому будет применено правило безопасности, так как у нас нет действующих фильтров жмем «Добавить»
Итак, список так называемых IP фильтров формируется из множества фильтров, поэтому у нас появляется возможность сгруппировать в один фильтров несколько подсетей.
Задаем Имя в соответствующее поле и кликаем «Добавить»
В появившимся мастере нажимаем «Далее»
По желанию можете заполнить Описание, но я обычно данной настройкой пренебрегаю, поэтому жмем «Далее»
Здесь будьте внимательны, в адресе источника пакетов, из раскрывающегося списка выбираем «Любой IP адрес» и жмем «Далее»
Соответственно в адресе назначения указываем IP адрес к которому хотим запретить прямое IP подключение и нажимаем «Далее»
В разделе Тип протокола выбираем вкладку «Любой» и жмем «Далее»
Ну и завершаем работу мастера кнопкой «Готово»
Итак, после вышеуказанных процедур мы создали список IP фильтров на этом настройка не заканчивается поэтому нажмите «Ок»
Теперь мы должны привязать действие к списку IP фильтра, выбираем ранее созданный список и жмем «Далее»
Для того что бы добавить действие IP фильтра жмем «Добавить»
В мастере настройки снова кликаем «Далее»
Задаем Имя действия фильтра и нажимаем «Далее»
Обратите особое внимание на данный пункт, в нем мы непосредственно указываем действие для получаемых и отправляемых пакетов на наш прямой IP адрес, так как мы решили запретить доступ извне выбираем пункт «Блокировать» затем «Далее»
Завершаем мастер кнопкой «Готово»
После того как мы создали действие блокировки применяем его на списке фильтров, для этого выберем его в списке и нажмем «Далее»
Завершаем вышеуказанные настройки нажав «Готово»
Во вкладке «Правила» необходимо выбрать ранее созданный «Список IP фильтров» и нажать «Применить»
В завершении вышеуказанных настроек необходимо запустить наш запрет подключения по прямому IP, для этого кликаем правой кнопкой мыши, по политике которую мы создали и выбираем пункт «Назначить»
Теперь если пользователи захотят подключиться через удаленный рабочий стол по прямому IP адресу к счастью у них ничего не получится так как мы запретили все пакеты для данного IP адреса.
Если у вас возникли вопросы по данной статье пишите мне в комментарии и подписывайтесь на рассылку. Всем спасибо за прочтение и удачи во всех начинаниях!