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

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

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

Самый известный способ заблокировать определенный сайт в Windows — отредактировать файл hosts. Обычно файл находится в каталоге %windir%system32driversetc. Обратите внимание, что у файла 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%System32driversetchosts
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:WindowsSystem32driversetchosts'
$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:WindowsSystem32driversetchosts'
$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.

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

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

DNS интернет-фильтр — это интернет сервис, который позволяет фильтровать нежелательные серверы в интерент по их доменным именам. Например сайт www.virus.org — распространяет вирус на компьютеры пользователей, которые на него заходят. Если у такого пользователя будет подключен интернет-фильтр на основе DNS то вместо зараженного сайта пользователь увидит сообщение о блокировке опасного сайта. То же самое произойдет с поддельным сайтом, который попытается украсть ваши пароли от соцсетей или номера кредитных карт.

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

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

Как работает dns-фильтр

Сильно упрощенно это выглядит следующим образом:

  1. Пользователь вводит в строке браузера адрес сайта.
  2. Компьютер преобразует символьный адрес сайта в ip-адрес используя службу dns. Таким образом на сервер фильтра отправляется запрос с адресом сайта.
  3. Если адрес сайта на dns сервере не находится в черном списке, то компьютеру пользователя передаётся ip-адрес сервера обслуживающего сайт и пользователь получает в окне браузера содержимое сайта.
  4. Если адрес сайта находится в черном списке dns сервера, то пользователю передается ip-адрес специального веб-сервера который отображает в окне браузера пользователя сообщение о блокировке узла.

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

Общедоступные DNS-фильтры

На сегодняшний день существует много подобных сервисов и большинство из них предлагают возможности фильтрации бесплатно. У многих антивирусных компаний существуют свои закрытые и публичные dns-фильтры. Далее я перечислю наиболее известные публичные сервисы, которые уже проверены временем и людьми.

  1. Публичный DNS сервер Google. Этот сервер по сути создавался не для фильтрации, а для ускорения работы интернет за счёт очень быстрого резаольвинга, но кроме того публичный dns от Google так же фильтрует фишинговые и вредоносные серверы. Кроме того данный сервер умеет работать по IPv6
    Адреса DNS Google:
    IPv4 8.8.8.8, 8.8.4.4
    IPv6 2001:4860:4860::8888, 2001:4860:4860::8844
  2. OpenDNS — пожалуй старейший DNS-фильтр. Есть платные и бесплатные возможности. Умеет исправлять неправильно набранные адреса сайтов, а так же показывает страницу с поиском и рекламой, в случае если адрес исправить не удалось автоматически. Имеет профили для Родительского контроля доступные бесплатно после регистрации. Без регистрации декларируется быстрый резольвинг и фильтрацию вредоносных серверов.
    Адреса DNS OpenDNS:
    208.67.222.222
    208.67.220.220
    https://www.opendns.com/
  3. SkyDNS — один из первых отечественных сервисов. Есть платные и бесплатные тарифы. Имеется возможность ручного составления черных и белых списков, блокировка сайтов по категориям, блокировка рекламы, статистика. На бесплатном тарифе урезаны возможности по ручной блокировке, статистика только за месяц и т.д. Без регистрации сервис фильтрует только фишинговые и вредоносные сайты. Есть возможности родительского контроля путем фильтрации опасных сайтов и замены поисковых систем на безопасный поиск от SkyDNS. Управление аккаунтом на сайте либо через приложение устанавливаемое на компьютер под управлением Windows.
    Адрес DNS SkyDNS:
    193.58.251.251
    http://www.skydns.ru
  4. Яндекс.DNS. Публичный DNS фильтр от отечественного поискового гиганта. Никакой регистрации не требуется. Предполагает 3 сценария использования 1) Быстрый и надежный резольвинг 2) Резольвинг + фильтрация опасных серверов 3) Резаольвинг + фильтрация опасных серверов + ролительский контроль. Для составления черных списков используются данные поисковой системы. Сервер поддерживает IPv6.
    Адреса DNS серверов Яндекс:
    Базовый IPv4 77.88.8.8, 77.88.8.1, IPv6 2a02:6b8::feed:0ff, 2a02:6b8:0:1::feed:0ff
    Безопасный IPv4 77.88.8.88, 77.88.8.2, IPv6 2a02:6b8::feed:bad, 2a02:6b8:0:1::feed:bad
    Семейный IPv4 77.88.8.7, 77.88.8.3, IPv6 2a02:6b8::feed:a11, 2a02:6b8:0:1::feed:a11
    http://dns.yandex.ru/advanced/
  5. Norton ConnectSafe. Безопасные сервера DNS от Symantec. Как и в случае с Яднексом не требует регистрации для персонального использования. Имеет аналогичную структуру серверов по 3 категориям: 1) Безопасный 2) Безопасный и порно 3) Безопасный, Порно и прочее нежелаетльное детям.
    Адреса DNS Norton:
    Безопасный: 199.85.126.10, 199.85.127.10
    Безопасный+Порн: 199.85.126.20, 199.85.127.20
    Родительский контроль: 199.85.126.30, 199.85.127.30
    https://dns.norton.com/
Читайте также:  Драйвер вай фай для ноутбука dell inspiron

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

Какой dns-фильтр выбрать?

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

  • По скорости работы: SkyDNS, Google, Яндекс
  • По функциональным возможностям SkyDNS, OpenDNS
  • По Безопасности Яндекс, Norton, Google

Для тестирования производительности описанных выше DNS серверов я использовал утилиту DNS Benchmark, результаты отсортированы по времени ответа.

Как видите из моей сети самый быстрый оказался SkyDNS, следующий за ним Google, затем сервера Яндекс (С полными фильтрами для родительского контроля). Ситуация из вашей сети, либо в другое время суток может отличаться. Лучше всего протестировать каждый сервис самостоятельно! У каждого сервиса свои алгоритмы построения черных списков, поэтому существует вероятность ложных блокировок надежных сайтов. На мой взгляд хорошей золотой серединой выглядят сервера Яндекса.

Пишите в комментариях что вы думаете по этому поводу! Буду рад ссылкам на другие аналогичные сервисы и авторитетным (подкрепленным аргументами) критическим высказываниям по теме.

5 бесплатных dns интернет-фильтров: 5 комментариев

Зарегистрировался на сайте SkyDNS, разрешил (убрал галочки) «Прокси и анонимайзеры» и «Сайты для взрослых», и установил себе в роутере SkyDNS. Пока всё нравится. Спасибо за статью.

Забыл написать: Ещё необходимо в аккаунте на сайте ввести свой IP-адрес. Если этого не сделать, то это всё равно что не регистрировался.

Справедливое дополнение, но это актуально только если у вас статический ip-адрес. Если динамический, то только устанавливать клиента.

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

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

Добавить комментарий Отменить ответ

Внимание! Нажимая кнопку «Отправить комментарий» вы соглашаетесь с политикой конфиденциальности сайта.

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

Как заблокировать доступ к сайту через файл hosts

Хорошо знакомый способ ограничения доступа к сайту в операционной системе Windows — это добавление необходимых строк в файл hosts. Часто вирусные приложения поступают подобным образом, блокируя пользователям возможность, например, заходить во ВКонтакте или на другие сайты именно через файл hosts. Пользователь также может самостоятельно добавить ресурсы, которые он не хочет, чтобы открывались через браузер на компьютере, в этот файл:

  1. Для начала потребуется открыть приложение «Блокнот» от имени администратора. Для этого начните писать слово «Блокнот» в поиске и когда приложение будет найдено, нажмите на него правой кнопкой мыши и выберите пункт «Запуск от имени администратора»;
  2. Открыв приложение «Блокнот» от имени администратора, нужно нажать в верхнем меню «Файл» — «Открыть» и найти файл hosts, который располагается по следующему адресу:

Обратите внимание: По умолчанию «Блокнот» предлагает открывать только текстовые файлы. Чтобы по данному адресу был виден файл hosts, установите внизу окна поиска вариант «Все файлы»;

  • Когда файл hosts будет открыт в блокноте, в него потребуется внести некоторые изменения. Вносятся они в самый низ файла. Возможны два варианта:
      Читайте также:  Где посмотреть тайминги оперативной памяти
    • Сперва прописывается адрес 127.0.0.1 и через пробел адрес сайта. В таком случае доступ к данному сайту будет заблокирован;
    • Сперва прописывается ip-адрес сайта, на который вы хотите включить переадресацию. Например, ip-адрес сайта Yandex — 93.158.134.11, а после него через пробел сайт, при заходе на который будет срабатывать переадресация.
    • Важно: Для каждого сайта желательно создавать две строчки в файле hosts — одна с простым адресом сайта, например vk.com, а вторая с адресом сайта и припиской www в начале, то есть www.vk.com.

    • Когда все необходимые изменения в файл hosts будут внесены, сохраните его.
    • Изменения вступят в силу после перезагрузки компьютера.

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

      В операционной системе Windows, начиная с 7 версии, имеется встроенный брандмауэр, который можно использовать для блокировки сайтов. Сложность состоит в том, что, в отличие от изменений в файле hosts, в брандмауэр нужно вводить ip-адрес сайта, к которому идет подключение. Подробно опишем, как выполнять блокировку сайтов через брандмауэр:

      1. Сначала нужно узнать ip-адрес сайта, который будем блокировать. Для этого запустите командную строку и введите в ней команду: Ping адрес_сайта. После этого нажмите Enter, и в окне командной строки будет направлен запрос на сайт, а вместе с тем можно будет увидеть ip-адрес ресурса. Запишите его, перед тем как переходить к следующему пункту инструкции;
      2. Далее нужно запустить сам брандмауэр Windows, для этого введите в поиск словосочетание «Брандмауэр Windows» и откройте предложенную поиском утилиту. Также запустить приложение можно, если зайти в «Панель управления», далее выбрать режим отображения «Крупные значки» и перейти в раздел «Брандмауэр Windows», а после в «Дополнительные параметры»;
      3. Открыв брандмауэр Windows, нажмите в левой части окна на пункт «Правила для исходящего подключения», а после справа выберите вариант «Создать правило»;
      4. Откроется новое окно, в котором выберите пункт «Настраиваемые» и нажмите «Далее»;
      5. На следующей странице установите галочку в пункт «Все программы» и нажмите «Далее»;
      6. На следующей странице не требуется ничего менять, просто жмите «Далее»;
      7. В разделе «Область» необходимо переключить в графе «Укажите удаленный IP-адрес» на пункт «Указанные IP-адреса». После этого нажмите «Добавить» и откроется окно. В этом окне нужно ввести IP-адреса сайта, который требуется заблокировать на компьютере, после чего нажать «ОК» и «Далее»;
      8. В разделе «Действие» выберите вариант «Блокировать подключение» и нажмите «Далее»;
      9. На странице «Профиль» ничего менять не нужно, а в окне «Имя» укажите название созданного правила.

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

      Как заблокировать доступ к сайтам при помощи Яндекс.DNS

      Интересный сервис представила компания «Яндекс», который позволяет ограничить детей или других пользователей компьютера от посещения нежелательных сайтов. На сайте https://dns.yandex.ru/ пользователям предлагается подключиться к DNS компании Яндекс. При этом представлены 3 варианта:

      • Базовый. При подключении к нему, ограничения на доступ к сайтам не накладываются. Его компания Яндекс рекомендует использовать, чтобы быстрее происходило подключение к интернет-ресурсам;
      • Безопасный. При подключении к данным серверам DNS, пользователь защищается от зараженных сайтов, ресурсов мошенников и ботов;
      • Семейный. При подключении к семейному DNS, помимо защиты от зараженных и мошеннических сайтов, а также ботов, у пользователя блокируются сайты для взрослых и реклама для взрослых, а вместе с тем включается «Семейный поиск Яндекс».

      Чтобы подключиться к одному из DNS компании Яндекс, нужно сделать следующее:

      1. Нажать на клавиатуре сочетание Windows+R и прописать в открывшейся строке «Выполнить» команду ncpa.cpl, после чего нажать «ОК»;
      2. Далее в списке открывшихся подключений нажмите правой кнопкой мыши на то, которое вы используете, и перейдите в «Свойства»;
      3. В меню со списком сетевых протоколов выделите «IP версии 4 (TCP/IPv4)» и перейдите в свойства;
      4. В нижней части окна введите DNS, предложенные компанией Яндекс для желаемого режима.

      Сохраните настройки, после чего защита начнет действовать.

      Расширение в Google Chrome для блокировки сайтов

      Еще один способ заблокировать доступ на нежелательные сайты — это установить в браузер Google Chrome специальное расширение, в котором указать нежелательные для посещения ресурсы. В магазине расширений Google Chrome имеется расширение под названием «Block Site» — оно отлично справляется с блокировкой ресурсов.

      После того как расширение будет установлено, перейти в его настройки можно, если нажать правой кнопкой мыши в любом месте и выбрать пункт «Block Site». Расширение полностью локализовано на русский язык, и в его работе несложно разобраться.

      Расширение позволяет заблокировать отдельные сайты или установить переадресацию при заходе на них. Также можно прописать «стоп-слова», при обнаружении которых в адресе сайта, доступ к ресурсу будет блокироваться. Можно установить и многие другие параметры блокировки, а изменения опций в расширении «Block Site» настроить только по паролю.

      Видеоинструкция