Количество навязчивой рекламы в Интернете в последние годы достигло того уровня, при котором бывает очень некомфортно работать со многими привычными сайтами. Кроме того, сайты с рекламой еще и занимаются сбором Ваших персональных данных, и не всегда очевидно, кто, зачем и какие именно данные собирает. Сегодня мы расскажем Вам о том, как заблокировать всю рекламу на всех устройствах на уровне DNS. Поскольку нашей основной темой является кибербезопасность — мы также отработаем блокировку следующих угроз с помощью Cisco Umbrella:
- вредоносных сайтов;
- ботнет-серверов;
- фишинговых ресурсов.
Для обеспечения защиты у нас будет предварительно заготовлен список всех нежелательных ресурсов, и когда Ваш компьютер будет пытаться к ним обратиться — DNS-сервер на базе Pi-Hole будет блокировать доступ. Сегодня подобные навыки высоко ценятся работодателями на рынке труда.
Содержание:
-
- Что такое DNS
- Как работает блокировка на уровне DNS
- Как заблокировать всю рекламу на уровне DNS
- Что нам потребуется для блокировки рекламы на уровне DNS с помощью Raspberry Pi
- Устанавливаем операционную систему на Raspberry Pi
- Подготавливаем Raspberry Pi к работе
- Подключаемся к Raspberry Pi по SSH
- Обновляем операционную систему Debian Linux
- Устанавливаем Pi-hole
- Настраиваем блокирование всей рекламы с помощью Pi-hole
- Настраиваем блокирование запросов на нежелательные сайты
- Выводы
Что такое DNS
DNS (Domain Name System) — это система доменных имен, позволяющая получить IP-адрес по соответствующему ему доменному имени. Система построена на основе распределенной сети DNS-серверов, формирующих единую иерархию и взаимодействующих по особому протоколу.
Читайте также: Список бесплатных и общедоступных DNS серверов.
Как работает блокировка на уровне DNS
На практике блокировка на уровне DNS работает следующим образом:
- Сайт делает запрос на сервер, чтобы загрузить рекламу (либо пользователь пытается обратиться к нежелательному ресурсу).
- DNS-сервер сверяется со списком нежелательных Интернет-ресурсов и обнаруживает совпадение.
- Пользователю вместо результатов запроса, будь то вредоносный сайт или реклама, возвращается заглушка (например, локальный IP-адрес — 127.0.0.1).
В результате Вы пресекаете до этапа загрузки всю ненужную рекламу, которая может составлять до 20-30% всего трафика. А также препятствуете обращениям на потенциально опасные сайты, с которых могут осуществляться различные атаки на Вашу сеть.
Как заблокировать всю рекламу на уровне DNS
Существует несколько способов заблокировать всю рекламу на уровне DNS. Например, это можно сделать непосредственно на облачном сервере (именно такой метод мы использовали у себя в SEDICOMM University). Также блокировку рекламы можно организовать с помощью Pi-hole на основе Raspberry Pi.
Raspberry Pi — это компактный (размером с банковскую карту — 85 * 65 мм) одноплатный компьютер, созданный в 2012 году британской компанией Raspberry Pi Foundation. Изначально он позиционировался в качестве недорогой платформы для обучения в IT. Однако на сегодняшний день Raspberry Pi обрел огромную популярность у специалистов и энтузиастов, и успешно применяется для решения самых разных задач в секторе информационных технологий.
Для начала давайте посмотрим, как выглядит та самая навязчивая реклама. Для этого попробуем открыть популярный сайт, услугами которого пользуются многие из наших читателей.
В дальнейшем мы сделаем так, чтобы у нас получилось заблокировать на этом сайте всю рекламу на уровне DNS.
Читайте также: Как настроить работу удаленных рабочих столов RDP на тонком клиенте (Thin Client) Raspberry Pi.
Что нам потребуется для блокировки рекламы на уровне DNS с помощью Raspberry Pi
Чтобы реализовать локальную блокировку всей рекламы на всех устройствах на уровне DNS, Вам понадобятся:
- компьютер Raspberry Pi в рабочем состоянии;
- карта памяти microSD (от 2 ГБ и более);
- переходник / адаптер microSD на SD (чтобы карту памяти можно было вставить в кардридер Вашего персонального компьютера);
- программа PuTTY, установленная на Ваш ПК;
- доступ к сервису Cisco Umbrella или OpenDNS.
Устанавливаем операционную систему на Raspberry Pi
Сперва нам нужно установить на Raspberry Pi соответствующую операционную систему. Давайте вместе отработаем весь алгоритм действий.
Читайте также: Настройка WiFi на Raspberry Pi.
Скачиваем Raspberry Pi Imager
Для этого переходим на официальный сайт по ссылке: https://www.raspberrypi.com/software/. После чего скачиваем Raspberry Pi Imager — программу, которая помогает установить на устройство операционную систему, развернуть ее и настроить. Для этого выбираем версию приложения для Вашей операционной системы из предложенных вариантов:
- Windows;
- macOS;
- Ubuntu.
Устанавливаем Raspberry Pi Imager
Как только завершилось скачивание — устанавливаем Imager в Вашу систему. В процессе соглашаемся с предложениями мастера установки.
Ждем завершения процесса инсталляции программы.
Выбираем ОС для Raspberry Pi
Как только программа установится — запускаем ее. После этого вставляем адаптер с нашей картой microSD в кардридер компьютера и нажимаем в приложении Raspberry Pi Imager кнопку CHOOSE OS.
Важно: по умолчанию Imager предложит Вам установить в качестве ОС десктопную версию дистрибутива Debian Linux — в нашем случае это будет напрасной тратой ограниченной вычислительной мощности одноплатного компьютера.
Выбираем вариант установки серверной версии Debian без рабочего стола. Для этого выбираем пункт меню Raspberry Pi OS (other).
После чего останавливаем свой выбор на варианте Raspberry Pi OS Lite (32 bit).
Читайте также: Как настроить SSH (Secure Shell) вход без пароля в Debian 10.
Выбираем карту памяти для установки ОС
Теперь переходим к следующему шагу — выбираем нашу карту памяти для записи ОС. Для этого нажимаем кнопку CHOOSE STORAGE.
После этого находим в списке заготовленную карту microSD и выбираем ее.
Задаем настройки для Debian
Теперь нам нужно выбрать настройки операционной системы, которые позволят нам использовать устройство для блокирования всей рекламы на уровне DNS. Для этого нажимаем на кнопку в виде шестерни в приложении Raspberry Pi Imager.
После чего отмечаем в чекбоксе следующие пункты:
- Set hostname и вводим в качестве имени хоста название Pi-hole;
- Enable SSH и оставляем вариант аутентификации по паролю;
- Set username and password и указываем наши имя пользователя и пароль;
- Set locale settings — чтобы указать часовой пояс и раскладку клавиатуры (раскладку стоит выбрать us);
- Eject media when finished — чтобы после завершения записи ОС наш съемный носитель был извлечен из системы.
Нажимаем кнопку SAVE, чтобы сохранить выбранные настройки операционной системы.
Читайте также: Лучшие дистрибутивы Linux на 2022 год.
Записываем операционную систему на нашу карту microSD
Теперь мы задали все настройки операционной системы. Настало время записать ОС на съемный носитель. Для этого нажимаем кнопку WRITE.
Программа попросит подтвердить наш выбор, для этого нажимаем кнопку YES.
Важно: если Вы первый раз устанавливаете ОС с помощью Raspberry Pi Imager — придется дождаться, пока приложение скачает образ системы из Интернета (300-400 МБ).
После завершения процесса скачивания и установки Debian программа выдаст соответствующее сообщение — Raspberry Pi OS Lite (32 bit) has been written to SDSH Card, You can remove the SD card from the reader. После этого карту microSD можно безопасно извлечь из кардридера. Нажимаем кнопку CONTINUE и закрываем программу.
Теперь мы готовы переходить к следующим шагам, которые позволят заблокировать всю рекламу на всех устройствах на уровне DNS!
Подготавливаем Raspberry Pi к работе
Сперва вставляем карту microSD в компьютер Raspberry Pi.
Важно: карту памяти стоит вставлять контактами вниз — по направлению к плате Raspberry Pi.
После этого подключаем наше устройство к локальной сети (в нашем случае соединение будет установлено с помощью сетевого кабеля, но при желании Вы можете воспользоваться подключением по Wi-Fi) и блоку питания. В результате должны загореться два светодиода:
- красный;
- зеленый.
Одноплатный компьютер с установленной ОС работает! Теперь определяем его IP-адрес в нашей сети, чтобы получить удаленный доступ SSH. Кстати, SSH (Secure Shell) — это протокол безопасного сетевого соединения, позволяющий получать доступ к удаленному управлению операционной системой. SSH отличается от протоколов Telnet и RLOGIN шифрованием всего передаваемого трафика, в том числе паролей.
Чтобы найти интересующий нас IP-адрес — заходим в соответствующее меню Вашего маршрутизатора (DHCP lease). И находим там хост под названием Pi-hole. В нашем случае видим, что устройство имеет адрес 192.168.15.71.
Важно: если у Вас по какой-либо причине не получается проверить IP-адрес устройства в меню маршрутизатора — просто подключите к одноплатному компьютеру монитор с клавиатурой, запустите операционную систему (введя заданные ранее логин и пароль) и введите в командную строку команду ip addr show
.
Подключаемся к Raspberry Pi по SSH
PuTTY — это свободно распространяемая программа, представляющая собой клиент для работы с различными протоколами удаленного доступа (включая такие популярные протоколы как SSH, Telnet и RLOGIN).
Открываем программу PuTTY и вводим IP-адрес в поле Host Name (or IP address).
Ниже в чекбоксе Connection type выбираем вариант SSH и нажимаем кнопку Open.
Скорее всего, придется подождать, пока операционная система Debian загрузится. После этого клиент PuTTY запросит обмен ключами шифрования RSA. Нажимаем кнопку «Да».
После этого вводим последовательно свои логин и пароль, которые задавали еще на этапе настройки параметров Debian Linux перед записью на карту microSD.
Об успешном подключении будут свидетельствовать соответствующий вывод и приглашение ко вводу в командную строку от имени заданного пользователя операционной системы.
Читайте также: Как настроить аутентификацию без пароля по ключу на Cisco IOS.
Обновляем операционную систему Debian Linux
Мы успешно установили операционную систему Debian Linux на наш одноплатный компьютер и подключились к нему по SSH. Однако версия нашей ОС. скорее всего, не самая свежая, а потому желательно ее сразу же обновить, чтобы работать уже с актуальной версией программного обеспечения. Начать стоит с получения прав суперпользователя. Для этого мы воспользуемся командой sudo su
:
После этого воспользуемся следующей командой, чтобы обновить все пакеты в нашей операционной системе:
Теперь давайте разберемся в том, что именно включает в себя эта команда:
-
apt update
— обновляем список пакетов в репозитории;apt -y dist-upgrade
— обновляем все доступные пакеты;shutdown -r now
— командой выключения с опцией-r
и аргументомnow
немедленно перезагружаем операционную систему Linux.
Важно: для экономии времени мы вводим по сути три разные команды одновременно — разделяя символами &&
(двойным амперсандом). За счет чего они будут выполняться системой последовательно — по очереди.
Теперь осталось лишь дождаться завершения процесса обновления пакетов. Скорость выполнения этой процедуры будет напрямую зависеть от производительности Вашего Raspberry Pi и от ширины канала подключения к Интернету. В результате перезагрузки ОС соединение по SSH будет прекращено, потому просто переподключаемся точно так же, как мы это делали ранее.
Читайте также: 20 полезных команд apt-get и 5 удобных команд apt-cache для управления пакетами.
Устанавливаем Pi-hole
Настало время установить на наш одноплатный компьютер Pi-hole. Однако для начала разберемся в том, что же это такое.
Pi-hole — это программное обеспечения для блокирования нежелательной рекламы на уровне DNS, разработанное для работы на устройствах под управлением Linux. Pi-hole ориентирован на устройства со скромными вычислительными мощностями — вроде Raspberry Pi. Однако при желании Вы можете развернуть его на любом компьютере с установленной ОС семейства GNU / Linux. С помощью Pi-hole можно заблокировать рекламу на всех устройствах, подключенных к Вашей локальной сети:
- настольных компьютерах;
- ноутбуках;
- телефонах;
- планшетах;
- smart-телевизорах.
Установить Pi-hole очень просто — для этого введите в командную строку следующую команду:
В процессе на экран будут выводиться сообщения от мастера установки, требующие от пользователя выбрать тот или иной вариант настроек. Сначала подтверждаем свое согласие на превращение устройства в блокировщик рекламы. Затем подтверждаем свою осведомленность о том, что Pi-hole — бесплатное программное обеспечение (желающие могут перейти по ссылке для пожертвований). Следующие шаги уже будут касаться непосредственно настройки Вашего Pi-hole.
Задаем статический IP-адрес нашему устройству
Установщик спросит, желаете ли Вы задать статический IP-адрес Вашему устройству. Выбираем вариант ответа Yes.
После чего мастер установки автоматически определит текущие значения IP address и Gateway (нашем случае это 192.168.15.71/26 и 192.168.15.65, тогда как у Вас значения будут другими). На выбор Вам будут доступны следующие варианты действия:
- Yes Set static IP using current values («Да, задать статический IP-адрес, используя текущие значения»);
- No Set static IP using custom values («Нет, задать статический IP-адрес, используя свои значения»);
- Skip I will set a static IP later, or have already done so («Пропустить, я задам статический IP-адрес потом либо уже сделал это»).
В нашем случае выбираем первый вариант — просто оставляем те значения, которые автоматически определил мастер установки.
Далее установщик может проинформировать Вас о том, что возможны конфликты IP-адресов. Как правило, маршрутизаторы самостоятельно справляются с такими проблемами — потому просто нажимаем Ok.
Выбираем провайдер DNS с использованием сторонних черных списков
Следующий шаг, требующий от пользователя внимания — это выбор провайдера DNS. В нашем случае мы воспользуемся сервисом Cisco Umbrella, потому выбираем вариант OpenDNS (ECS, DNSCES).
Далее мастер установки спросит, желаете ли Вы использовать сторонние черные списки (blacklists) — нажимаем Ok.
Устанавливаем веб-интерфейс для управления Pi-hole и веб-сервер lighttpd
Следующий шаг — это установка веб-интерфейса для более удобной работы с программой. Выбираем вариант On (Recommended).
Мастер установки спросит Вас, стоит ли ему установить веб-сервер lighttpd с необходимыми модулями PHP. Снова выбираем вариант On (Recommended), потому что он нас полностью устраивает.
Настраиваем ведение журнала и его детализацию
Также мастер установки спросит, хотите ли Вы вести журнал, в котором будут фиксироваться запросы из Вашей сети. Соглашаемся на ведение журнала — выбираем вариант On (Recommended).
Нужно будет указать, насколько подробным должен быть наш журнал. На выбор доступны следующие варианты:
- 0 Show everything («Показывать все»);
- 1 Hide domains («Скрывать домены»);
- 2 Hide domains and clients («Скрывать домены и клиентов»);
- 3 Anonymous mode («Анонимный режим»).
Выбираем вариант 0 Show everything, чтобы собирать статистику всех нежелательных запросов из Вашей сети.
После этого начинается непосредственно установка Pi-hole с учетом заданных параметров. Просто дожидаемся скачивания и развертывания всех необходимых пакетов программного обеспечения, служб и зависимостей. О завершении установки Вас уведомит соответствующее сообщение.
Важно: обратите внимание, что сообщение о завершении установки программы содержит ссылку на веб-интерфейс (в нашем случае — https://192.168.15.71/admin
) и автоматически сгенерированный пароль для авторизации (в нашем случае — DH1OxJkD, тогда как у Вас будет другой).
Читайте также: Как очистить или удалить файлы журнала в Linux или UNIX.
Настраиваем блокирование всей рекламы с помощью Pi-hole
Теперь нужно зайти в веб-интерфейс для управления программой. Для этого переходим по полученной ранее ссылке:
Далее нажимаем в веб-интерфейсе кнопку Login и вводим в поле Password автоматически сгенерированный мастером установки пароль, после чего жмем кнопку Log in.
Меняем пароль к веб-интерфейсу Pi-hole
Наверняка сгенерированный пароль будет довольно трудно запомнить, а значит многие пользователи захотят его поменять. Для этого в командной строке Linux вводим следующую команду:
После чего вводим новый пароль и подтверждаем его ввод.
Важно: если Вы не введете новый пароль и просто нажмете Enter — доступ к веб-интерфейсу Pi-hole будет возможен без пароля.
Обновляем Pi-hole
Время от времени Вам может потребоваться обновить версию Pi-hole. Для начала полезно узнать, какая версия установлена у Вас в данный момент. Для этого вводим в командную строку Linux следующую команду:
В нашем случае вывод содержит следующие результаты:
В скобках указаны свежие версии пакетов, в нашем случае они совпадают с установленными — то есть, обновление не требуется.
Однако спустя некоторое время выйдет более новая версия Pi-hole. Для обновления программы вводим в командную строку Linux следующую команду:
После этого ждем, пока процессы скачивания и установки пакетов завершатся.
Указываем Pi-hole в настройках маршрутизатора в качестве DNS-сервера
Чтобы заблокировать всю рекламу на всех устройствах на уровне DNS с помощью Pi-Hole на Raspberry Pi и пресекать запросы на потенциально опасные сайты, нужно внести изменения в настройки маршрутизатора. Открываем веб-интерфейс маршрутизатора и заходим в раздел меню, который называется DNS. В поле Servers вместо значения по умолчанию (у нас было 1.1.1.1) вводим IP-адрес Вашего Raspberry Pi.
Далее чистим DNS-кэш маршрутизатора. В нашем случае для этого нажимаем кнопку Cache и в открывшемся меню жмем на кнопку Flush Cache.
Важно: у Вашего маршрутизатора раздел меню, содержащий функцию очистки DNS-кэша, может выглядеть по-другому.
Теперь нужно почистить DNS-кэш на тех устройствах, которые подключены к Вашей сети. Например, в операционной системе Microsoft Windows для этого нужно ввести в командную строку команду ipconfig /flushdns
:
Читайте также: Как настроить WireGuard VPN на MikroTik RouterOS.
Проверяем, как работает блокировка на уровне DNS для рекламы
Давайте проверим, как работает наш DNS-сервер на основе Pi-hole. Для этого откроем тот же популярный сайт, который проверяли в самом начале этой статьи.
Как можно увидеть, никакой рекламы на сайте больше не осталось. При этом, если посмотреть статистику в веб-интерфейсе Pi-hole, можно увидеть, сколько было сделано запросов и какая часть из них была заблокирована (в нашем случае из 33 запроса заблокировано 6 — или 17,1%).
Перейдем в журнал, чтобы увидеть детальную информацию о заблокированных запросах. Для этого нажимаем кнопку Query Log.
Видим, что в журнале есть записи о блокировании запросов на адреса популярных сервисов Интернет-рекламы.
Настраиваем блокирование запросов на нежелательные сайты
Не менее важной функцией DNS-сервера на основе Pi-hole является обеспечение безопасности. Сейчас мы займемся блокированием сайтов с вредоносным ПО, фишинговых ресурсов и ботнет-сетей. Для этой цели мы воспользуемся сервисом Cisco Umbrella.
Cisco Umbrella — это облачный сервис от компании Cisco, предназначенный для обеспечения безопасности в сети за счет фильтрации DNS-запросов. С его помощью пользователь может защитить свою сеть от различных угроз: сайтов, распространяющих вредоносное ПО, фишинговых сайтов, ботнет-серверов.
Это платное решение, которое стоит довольно дорого. Однако при желании можно воспользоваться бесплатными пакетами для домашнего использования — OpenDNS Family Shield и OpenDNS Home. Для этого нужно создать на официальном сайте сервиса новую учетную запись: https://www.opendns.com/home-internet-security/.
Добавляем сеть в учетную запись Cisco Umbrella / OpenDNS для фильтрации трафика
Войдите в свой аккаунт, перейдите на вкладку SETTINGS и нажмите кнопку ADD THIS NETWORK.
Сервис попросит Вас указать название добавляемой сети (в нашем случае мы выбрали название master-class). Поскольку у нас статический IP-адрес — убираем галочку из чекбокса Yes, it is dynamic. После этого нажимаем кнопку DONE.
После этого Ваша сеть появится в списке, озаглавленном как Your networks.
Настраиваем параметры защиты в Cisco Umbrella / OpenDNS
Нажимаем на ее IP-адрес и переходим в меню настроек.
Проверить и изменить текущие настройки фильтрации различных угроз можно на вкладке Security. По умолчанию включены:
- Malware / Botnet Protection — защита от сайтов, распространяющих вредоносное ПО, и ботнет-серверов;
- Phishing Protection — защита от фишинговых ресурсов, выуживающих персональные данные пользователей.
На вкладке Web Content Filtering можно выбрать один из нескольких режимов фильтрации сайтов для Вашей сети:
- None — без фильтрации трафика;
- Low — фильтрация только порнографии;
- Moderate — фильтрация всего контента для взрослых и нелегальных активностей;
- High — фильтрация всего контента для взрослых и нелегальных активностей, социальных сетей, видеохостингов и основных ресурсов, отнимающих время;
- Custom — фильтрация своего набора категорий сайтов.
Скорее всего, Вы захотите настроить свой режим фильтрации трафика, чтобы ограничить доступ к определенным категориям Интернет-ресурсов.
Проверяем, как работает блокировка на уровне DNS для нежелательного трафика
Попробуем внести в список запрещенных категорий сайтов все, что связано с компьютерными играми. Для этого в чекбоксе поставим галочку напротив категории Games.
Важно: для применения настроек в OpenDNS обычно требуется несколько минут.
Теперь попробуем открыть сайт популярного сервиса цифровой дистрибуции игр. В результате видим, что он не открывается — вместо него браузер выводит заглушку от Cisco Umbrella.
Также с помощью поля Manage individual domains можно добавить сайт, доступ к которому будет блокироваться или наоборот, не будет блокироваться — независимо от выбранных блокируемых категорий.
Читайте также: Как установить и настроить OpenVPN сервер на Ubuntu / Debian / CentOS за 5 минут.
Выводы
У нас получилось заблокировать всю рекламу и запретить переходы на опасные либо нежелательные Интернет-ресурсы на всех устройствах сети. И все это — на уровне DNS с помощью локального одноплатного компьютера Raspberry Pi, приложения Pi-hole и сервиса Cisco Umbrella / OpenDNS. При желании повторить всю последовательность действий из этого руководства можно как дома, так и на предприятии.
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.