Свой DNS сервис с блекджеком и блокировщиком рекламы

Мы любим Адблоки и не любим рекламу. Но, например, на телевизоре нет Адблока, да и плагина для апки YouTube в SmartTV вряд ли найдется. Да и вообще, зачем этот телевизор ходит по трем разным адресам Самсунга по кд, даже когда им не пользуются? В этот раз про очередные попытки обмануть систему и хакнуть время.

В заметке про борьбу с отвлечениями в работе я приводил в пример пару Адблоков, а так же упомянул, что существует возможность всю эту хрень блокировать на уровне DNS для самых упоротых. Тулза называется Pi-Hole. Это опенсорсная разработка, которая подразумевает установку на Raspberry Pi и подключение напрямую к домашнему роутеру. Но, конечно, ее можно поставить где угодно, так как это обычный пакет для Линукса.

Как это работает?

Нужно просто вручную вписать адрес Pi-Hole в DNS на роутере (или на компе) и трафик пойдет через него. Он в свою очередь все отфильтрует, запишет и пустит в эти ваши интернеты. Заблокирует всю рекламу, сервисы сбора аналитики, трекинговые ссылки – в общем, все что не требуется непосредственно для работы приложений.
По адресу Pi-Hole доступен дашборд, на котором можно полазить и посмотреть весь трафик:

А вот так, например, выглядит лог запросов:

На скрине видно, что блокируется сбор аналитики.

Собственно все. Профит.
Можно создавать свои блек/вайт листы, анализировать топ клиентов и доменов и прочие ништяки. Но уверенно заявляю, что из коробки он свою задачу отлично выполняет, можно не париться.

Как установить

Пару команд. Инструкции на официальном сайте.
Есть мануал и для докера.
Для ленивых – готовая сборка в связке с OpenVPN на маркетплейсе Digital Ocean. Но в ней подвох – сертификаты живут 3 месяца, якобы ради безопасности. А потом нужно создать новый сервер, лол. Странное решение, но сервер действительно ставится в один клик и сразу выплевывает VPN сертификат. В роутер, наверное, этот DNS сервер уже не пропишешь, ибо изначально он доступен только внутри туннеля. Не забудьте включить на Дроплете IPV6 адрес, чтоб не быть лохом.
К слову, работа Пайхола и ВПН сервера будет самым разумным решением, лучше так сразу и делать.

Тормозит?

Задам встречный вопрос – а вы вообще в жизни ощущаете, как работает обычный DNS? Вот тут тоже самое. Я допускаю минимальные задержки, если Pi-Hole захостится где-нибудь в Европе на удаленном сервере (хотя сам не замечаю такого), но если ставить дома, то точно ничего не изменится, а скорее всего станет даже быстрее.

Что еще сделать

Вкатить DOH. В оф доке Пайхола есть страничка о том как настроить DNS over HTTPS через Cloudlfare. Можно стать очень модным.
Конечно, Расбери покупать не обязательно. Можно купить робот пылесос Xiaomi и установить Пайхол на него. Он все равно весь день стоит включенный и сидит в сети. Не шучу – именно так изначально и делал сам. Конечно, был геморрой доустановки пакетов (в дефолтной ОС робота не установлен даже wget), потом естественно закончилось место и последовало несколько сбросов прошивки, получения рут прав и т.п., но в конечном итоге он завелся и работал. Но этот вариант не прижился, так как я не хотел ограничивать использование DNS сервера домом, а пробрасывать робота в мир не хотелось. Так что как будет работать в долгосрочной перспективе – не знаю.

Минусы

  • К этому DNS серверу может подключиться кто угодно – через пару дней использования вы заметите приходящие сканеры в клиентах Пайхола. Не то чтобы это проблема, но как-то неприятно.
  • Админка хоть и запаролена, но по дефолту открыта в вебе. Если сидеть под впном и разместить Пайхол на том же сервере, то по ip/admin любой узнает, что стоит DNS сервер. Как вариант решения – закрыть страницу за авторизацией веб сервера или может за порт хотя бы не стандартный воткнуть.

Итого

  1. OpenVPN
  2. PiHole
  3. Cloudflared
  4. Выебываемся перед корешами.

Референсы

Pi-Hole
Digital Ocean Marketplace
Configuring DNS-Over-HTTPS on Pi-hole – Pi-hole documentation
NetworkConfiguration – Debian WikiLocal DNS Resolver on Ubuntu

Share
Send
Pin
 1751   2020   Linux   PiHole   Productivity   Security
Popular