Доступна система блокирования рекламы Pi-hole 6

Представлен релиз проекта Pi-hole 6, развивающего систему для централизованного блокирования рекламы в локальной сети, позволяющую обойтись без установки блокировщиков в браузеры и на конечные устройства пользователя. Предлагаемая схема актуальная для борьбы с рекламой на устройствах в домашних сетях, например, на умных телевизорах и меда-центрах, а также для блокировки рекламы в мобильных приложениях на смартфонах. Блокировка в Pi-hole реализуется на уровне DNS – система применяет чёрный список доменов, используемых при показе рекламы, и на уровне DNS перенаправляет обращения к данным доменам на адрес 0.0.0.0. Наработки проекта распространяются под лицензией EUPL 1.2 (European Union Public License).

Для установки Pi-hole достаточно запустить shell-скрипт, который автоматизирует загрузку и установку необходимых компонентов. Установка поддерживается в Debian, Ubuntu, Fedora, Raspberry Pi OS (Raspbian), Armbian и CentOS Stream для архитектур x86_64, i386, ARM64, ARMv6, ARMv7 и RISC-V. Подразумевается, что Pi-hole можно установить на платах, таких как Raspberry Pi. Дополнительно предлагается преднастроенный образ контейнера, содержащий готовое к работе окружение на базе Pi-hole.

Pi-hole запускает DHCP- и DNS-серверы, основанные на изменённой версии dnsmasq. DHCP-сервер используется для автоматической передачи настроек DNS-сервера, задействованного для блокировки. Для управления DNS-сервером и сбора статистики применяется фоновый процесс FTLDNS (pihole-FTL). Управление FTLDNS может осуществляться через Web API, telnet или утилиту командной строки pihole. FTLDNS накапливает статистику о числе заблокированных и запрошенных доменов, поступающих DNS-запросах, блокировке доменов рекламных сетей, прокэшированных и перенаправленных DNS-запросах, числе клиентов. Статистика хранится с использованием SQLite.

Поверх API, предоставляемого FTLDNS, реализован web-интерфейс для мониторинга и управления блокировками, основанный на коде AdminLTE.
Web-интерфейс адаптирован для работы как с компьютеров с большими экранами, так и с мобильных устройств. Поддерживается доступ к детальным логам, сводные данные (например, наиболее популярные клиенты и домены), наглядная визуализация на графиках и диаграммах, выборка истории за определённый период, фильтрация логов, ведение отдельных белых и чёрных списков, блокировка по регулярным выражениям, управление настройками DHCP и DNS.


В новом выпуске:

  • В фоновый процесс pihole-FTL встроен http-сервер и реализован REST API. Встроенная реализация HTTP-сервера основана на библиотеке CivetWeb. Ранее для организации работы web-интерфейса запускался HTTP-сервер lighttpd. Серверные обработчики web-интерфейса переписаны с PHP на Lua (CivetWeb предоставляет встроенную поддержку Lua, что позволило исключить PHP из зависимостей).
  • Расширены возможности фильтрации доменов и добавлена поддержка подключения внешних белых списков, определяющих домены, доступ к которым будет разрешён независимо от попадания в чёрные списки.
  • Разрозненные файлы конфигурации объединены в один файл в формате toml (/etc/pihole/pihole.toml). Для изменения конфигурации можно напрямую редактировать toml-файл, использовать команду “pihole-FTL –config”, переопределять параметры через переменные окружения, обращаться к API или менять настройки через web-интерфейс.
  • Полностью изменено оформление web-интерфейса, в котором введено разделение на обычный и экспертный режимы.
  • Добавлена поддержка HTTPS с возможностью предоставления как собственного TLS-сертификата, так и автоматической генерации сертификата.
  • Образ контейнера для Docker переведён на использование Alpine Linux вместо Debian, что позволило заметно сократить его размер.

Release. Ссылка here.