Настройка pi hole на роутере

В прошлой статье мы внедрили домашний сервер DoH с использованием Pi-Hole, чем не только пофильтровали большое количество рекламы, но и инкапсулировали наши DNS-запросы в HTTPS, что вывело их из поля фильтрации запросов оператором связи.

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

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

TL;DR

Настраиваем автоматическое переключение DNS-сервиса между Pi-Hole и Mikrotik, используя протокол VRRP в реализации демона keepalived.

Никаких волшебных know-how не открывается, простая пошаговая инструкция для тех, кому не хочется разбираться во всех хитросплетениях самому.

Что вам для этого потребуется

  1. Внедренное решение Pi-Hole из предыдущей статьи. Понятно, что описываемое решение можно использовать для отказоустойчивости в принципе чего угодно, но в данном конкретном случае мы сосредоточимся на именно этой реализации. Базовый Linux у решения — Ubuntu.

  2. Маршрутизатор Mikrotik в качестве бордера. Опять же, подойдет и OpenWRT, и EdgeRouter, и какой-нибудь софтовый на PC, но рассмотреть всё разнообразие в статье не получится никак. Если ваш роутер поддерживает VRRP — он сможет быть частью этого решения, а как конкретно его настраивать, если возникнут сложности, спросите в комментариях к посту. Впрочем, если ваш роутер VRRP не поддерживает — можно всё то же самое построить между двумя Pi-Hole или Pi-Hole и другим DNS-сервером.

Исходные данные

  • IPv4-адрес нашего сервера Pi-Hole в домашней сети: 192.168.1.10 и он назначен как статический.

  • IPv4-адрес нашего маршрутизатора в домашней сети: 192.168.1.1 и он назначен как статический на интерфейсе bridge маршрутизатора.

  • Новый IPv4-адрес DNS: 192.168.1.9

  • Настройки на Linux выполняем от root (т.е. перед началом настройки выполняем команду sudo -i).

Логика решения и немного теории

Чтобы не превращать статью в совсем уж деревянную инструкцию «нажмите третьим пальцем левой руки на кнопку W», расскажу самую базовую теорию того, что мы пытаемся сделать.

Итак, название протокола VRRP расшифровывается как Virtual Router Redundancy Protocol и он входит в группу протоколов NHRP (Next-Hop Resolution Protocol). Почему-то многие люди считают, что с использованием этих протоколов можно резервировать только адреса шлюзов по умолчанию, хотя, разумеется, это не так. Самому протоколу совершенно без разницы, какие сервисы с его помощью резервируются, он работает на третьем уровне модели ISO/OSI и фактически просто создает виртуальный IP-адрес, который будет перемещаться между устройствами, входящими в VRRP-группу, по определенным критериям. Очевидно, что такая логика подразумевает существование этого адреса только на одном устройстве, поэтому обеспечить, например, балансировку нагрузки между серверами с помощью стандартного VRRP нельзя (но в нашем случае этого и не требуется). Для тех кейсов, где это необходимо, существует, например, проприетарный протокол Cisco GLBP, где адрес активен одновременно на всех устройствах группы, а балансировка осуществляется за счет разных ARP-ответов. По подобной GLBP логике работает и протокол CARP.

В случае VRRP все устройства, входящие в группу, анонсируют себя через рассылку мультикаст-пакетов на адрес 224.0.0.18, внутри которых передается множество технической информации. Из нее нам важен один параметр — приоритет. Логика простая — все устройства, входящие в группу, меряются приоритетом, у кого длиннее больше, тот и победил и приземлил на себя виртуальный IP группы. Остальные сидят в засаде и ждут, пока победитель зазевается и умрет (перестанет слать нужный мультикаст), в этом случае опять проходят выборы и опять побеждает устройство с наибольшим приоритетом. Если устройств с одинаковым приоритетом несколько — побеждает больший IP-адрес, но хорошим тоном считается таких ситуаций избегать и разруливать приоритеты явно.

Большим плюсом для нас является возможность изменять приоритет на ходу. У Cisco используемая для этого фича, например, называется Enhanced Object Tracking. Но она такая есть у любой известной мне имплементации протокола, в том числе и у линуксового демона.

На основе этой фичи вырисовывается логика всей нашей конструкции:

  1. Настраиваем на нашем маршрутизаторе в качестве основных DNS сервера провайдера.

  2. Настраиваем между маршрутизатором и Pi-Hole VRRP с приоритетами 100 на маршрутизаторе и 90 на Pi-Hole.

  3. Создаем на Pi-Hole скрипт, проверяющий работоспособность DNS и при успешности повышающий приоритет на Pi-Hole до 110.

  4. Раздаем домашним клиентам по DHCP наш виртуальный IP-адрес как адрес DNS.

Настройка

1. Настройка DNS на Mikrotik

Если помните, в предыдущей статье мы много обсуждали, какой адрес DNS раздавать клиентам и куда форвардить запросы с маршрутизатора. Для целей же нашего нового решения важно на маршрутизаторе указать в качестве DNS-серверов именно сервера нашего провайдера — чтобы они оставались доступны при блокировке сервиса за неуплату, например. Поэтому или настраиваем получение DNS от оператора по DHCP, или идем в Winbox по пути IP — DNS и в поле Servers прописываем адреса DNS-серверов провайдера.

2. Настройка VRRP на Mikrotik

Создаем новый VRRP интерфейс с привязкой к интерфейсу Bridge и навязываем на него наш виртуальный адрес. Можно сделать в Winbox, но гораздо проще сделать это в терминале:

/interface vrrp add interface=bridge name=vrrp-dns version=2 vrid=10
/ip address add address=192.168.1.9/24 interface=vrrp-dns network=192.168.1.0

Здесь vrrp-dns — это имя интерфейса (можете выбрать любое на свой вкус, главное совпасть в обеих командах), vrid — ID группы, можно тоже выбрать любой в диапазоне 1-255, нужно совпасть на обоих устройствах. Имя интерфейса bridge и IPv4-адреса нужно скорректировать под вашу домашнюю сеть.

После выполнения этого действия можно попинговать 192.168.1.9 — он уже должен отвечать с маршрутизатора, если пинг не закрыт файрволом.

UPD. Если у вас жесткие настройки файрвола — проверьте, что DNS на виртуальном адресе работает (nslookup google.com 192.168.1.9 с вашего компьютера). И если нет — добавьте разрешающее правило для 53/udp.

3. Настройка VRRP на Pi-Hole

Устанавливаем демон keepalived:

apt install keepalived

Создаем файл конфигурации демона /etc/keepalived/keepalived.conf:

! Configuration File for keepalived

global_defs {
   router_id PiHole        # give unique id for each router
   vrrp_skip_check_adv_addr
   script_user root
   enable_script_security
}

vrrp_script check_dns {
  script "/etc/keepalived/check_dns.sh"
  interval 5 # every 5 seconds
  weight 20 # add 20 points if OK
  timeout 5 # 
  rise 2 # avoid flapping
  fall 2 # avoid flapping
}

vrrp_instance VI_1 {
    state MASTER
    interface ens160
    virtual_router_id 10
    priority 90
    advert_int 1
    virtual_ipaddress {
        192.168.1.9/24
    }
    track_script {
        check_dns
    }
}

Здесь обратите внимание на имя интерфейса, на котором сейчас работает Pi-Hole — в примере дефолтное ens160, у вас может быть другое (проверить можно, например, через команду ifconfig).

Создаем скрипт проверки живости DNS /etc/keepalived/check_dns.sh:

#!/bin/bash
host -s -4 -t A amazon.com 127.0.0.1 > /dev/null 2>&1

и не забываем сделать его исполняемым:

chmod +x /etc/keepalived/check_dns.sh

С методикой проверки DNS вы можете экспериментировать как угодно. Для себя я выбрал проверку резолвинга адреса amazon.com. Плюс этого варианта в том, что TTL этой записи — 1 минута, поэтому дольше чем на минуту ваш Pi-Hole закэшировать запись не сможет и, соответственно, на это время максимум и отложится убегание сервиса в случае потери связи с миром. Основной принцип, который надо помнить — если скрипт выдает 0 в качестве error code, то keepalived будет считать, что всё хорошо, и добавит приоритета. Любой другой error code — и адрес уползет на Mikrotik.

Теперь достаточно перезапустить сервис:

systemctl restart keepalived

и всё заработает. В логе Mikrotik можно будет увидеть запись, подобную этой:

vrrp-dns now BACKUP, got higher priority 110 from 192.168.1.10

Вы можете проверить, что теперь на адресе 192.168.1.9 отвечает Pi-Hole, самый простой способ проверки — это резолвинг имени pi.hole:

nslookup pi.hole 192.168.1.9
Server:		192.168.1.9
Address:	192.168.1.9#53

Name:	pi.hole
Address: 192.168.1.10

Обратите внимание, что резолвиться будет в адрес сервера Pi-Hole, а не в наш виртуальный IP — это правильно и так и должно быть.

4. Настройка DHCP на Mikrotik

Ну и наконец нам надо научить DHCP-сервис Mikrotik раздавать клиентам правильный адрес DNS. Это удобнее сделать из WinBox — там вы увидите все свои пулы. Идем по пути IP — Networks, смотрим глазами на все сети, которые у вас связаны с Pi-Hole сейчас и изменяем поле DNS Servers с адреса Pi-Hole 192.168.1.10 на виртуальный адрес 192.168.1.9.

Обновляем аренду адреса на компьютерах, проверяем, что получили правильный адрес DNS, проверяем, что резолвинг работает (например, командой nslookup pi.hole — уже без прямого указания имени используемого сервера). Радуемся.

Особо ответственные могут каким-либо образом сломать своему DNS-серверу резолвинг и проконтролировать, что по истечении таймаута виртуальный адрес переползет на Mikrotik. Но это уже зависит от вашей фантазии.

Заключение

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

На вопросы, традиционно, отвечу и с настройками помогу.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Что скажете про статью?


52.63%
Интересно, полезно, буду внедрять
60


24.56%
Интересно, но внедрять не буду
28


2.63%
Всё очевидно, уже внедрил ((или легко внедрил бы сам, если бы надо было)
3


2.63%
Зачем это вообще на Хабре?!
3

Проголосовали 114 пользователей.

Воздержались 14 пользователей.

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

Только небольшая особенность Pi-hole заключается в том, что нужно какое-то устройство или платформа, на котором установить это решение. Как вариант – это какая-то платформа на базе Raspberry Pi / Orange Pi. Или какая-то ITX платформа со встроенным процессором и пассивным охлаждением. Тут уже все зависит от личных предпочтений, бюджетов и опыта работы.

Pi-hole – это программное решение, которое выступает в качестве DNS сервера (есть еще и встроенный DHCP сервер) и обрабатывает DNS-запросы от клиентов. Естественно, при условии, что на самих клиентах в качестве DNS сервера указан Pi-hole. Альтернативный вариант – на роутере в качестве DNS форвардера указать адрес Pi-hole.

У Pi-hole есть заранее настроенный список адресов для блокировки рекламы. При необходимости вы можете вносить корректировки в этот список. Например, добавлять какие-то определенные сайты в список блокируемых.

Дополнительно вы можете управлять клиентами (если Pi-hole на клиентах указан в качестве DNS сервера). Например, исключить отдельного клиента или подсеть из блокировки.

Также Pi-hole позволяет получить статистику по запросам к сайтам и блокировке рекламы.

Есть даже определенная изюминка – вы можете настроить DNS over HTTPS. Проверил – работает.

Предварительные требования

Вы можете даже развернуть Pi-hole из Docker образа с помощью docker-compose. Но я пойду немного другим путем – установка поверх операционной системы.

Вообще, аппаратные требования у Pi-hole очень демократичные:

  • 512 МБ оперативной памяти.
  • 4 ГБ места на диске.

Pi-hole поддерживает следующие операционные системы:

Дистрибутив Версия Архитектура
Raspberry Pi OS Buster / Bullseye ARM
Ubuntu 20.x / 22.x ARM / x86_64
Debian 10 / 11 ARM / x86_64 / i386
Fedora 36 / 37 ARM / x86_64
CentOS Stream 8 / 9 x86_64

Я буду использовать операционную систему Ubuntu Server 22.04.

Установка и использование Pi-hole

Перейдем к процессу установки Pi-hole. В самом процессе нет ничего сложного.

Установка Pi-hole

Установка Pi-hole на любой поддерживаемый дистрибутив Linux до безобразия проста. Запускаем процесс установки:

sudo curl -sSL https://install.pi-hole.net | bash

На первом шаге мастер установки предупреждаем нас о том, что наша операционная система будет настроена в качестве блокировщика рекламы.

Также мастер предупредит нас о том, что статическая сетеваяа дресация на интерфейсе крайне рекомендуется.

На следующем шаге мастер установки предлагает нам выбрать какой из DNS сервером будет использоваться Pi-hole в качестве форвардера.

Пока я буду использовать Pi-hole в ознакомительных целях. Поэтому мне будет достаточно списков блокировки, которые предоставляются “из коробки”.

Также я хочу установить веб интерфейс администрирования.

Если вы, как и я, выбрали установку веб интерфейса администрирования, то мастер установки уведомит нас о том, что будет установлен веб сервер и php.

Дополнительно я скажу мастеру установки о том, что я хочу собирать статистику DNS запросов.

Причем я буду собирать все максимально подробно. Интересно же протестировать отчет работе Pi-hole.

После ответов на все вопросы мастер установки продолжит свою работу. После завершения процесса установки мастер отобразит для нас сводную информацию об итогах установки и информацию по доступу в веб панель администрирования.

[i] Pi-hole blocking will be enabled
/usr/local/bin/pihole: line 27: /etc/pihole/versions: No such file or directory
  [i] Enabling blocking
  [✓] Reloading DNS lists
  [✓] Pi-hole Enabled
  [i] Web Interface password: zhh6D83G
  [i] This can be changed using 'pihole -a -p'

  [i] View the web interface at http://pi.hole/admin or http://10.10.10.63/admin

  [i] You may now configure your devices to use the Pi-hole as their DNS server
  [i] Pi-hole DNS (IPv4): 10.10.10.63
  [i] If you have not done so already, the above IP should be set to static.

  [i] The install log is located at: /etc/pihole/install.log
  [✓] Installation complete! 
roman@pihole:~$ 

Установка Pi-hole завершена.

Обзор панели администрирования

После завершения установки мы можем перейти к веб панели администрирования (если в процессе установки вы попросили мастера установить её).

http://10.10.10.63/admin

После того, как вы введете пароль администратора вы попадете на начальный экран веб панели администрирования.

На странице “Query Log” будет представлена статистика всех DNS запросов от наших клиентов.

По прошествии определенного количества времени вы уже сможете получить какую-то статистику.

Настройки DNS-сервера на ПК и роутере

Для того, чтобы ваши клиентские устройства (ПК, ноутюуки, планшеты, телефоны) могли использовать Pi-hole есть три варианта:

1. Настроить адрес DNS сервера на клиенте вручную, указав в качестве DNS-сервера адрес Pi-hole. Например, настройка адреса DNS сервера на ПК с Windows 10:

2. Настроить адрес выдаваемого DNS-сервера в параметрах DHCP сервера на маршрутизаторе. Например, для маршрутизатора Mikrotik:

3. В настройках маршрутизатора в качестве адреса DNS форвардера использовать адрес сервера Pi-hole. Например:

Лично я бы выбрал для себя вариант №3. Так вам не придется перенастраивать IP-адресацию на всех клиентах. Даже где настроена статическая адресация (при условии, что в качестве адреса DNS сервера указан IP-адрес маршрутизатора).

Выводы

У меня давно было в планах заняться проработкой какого-то решения для борьбы с рекламой в браузере. Но каждый раз я находил какие-то более важные дела. Я протестировал работы Pi-hole в связке с плагином uBlock для Chrome. Мне очень понравился итоговый результат. Причем я даже уже поставил себе в план работу по выбору платформы для Pi-hole. Пока еще не знаю – будет ли это какой-то Raspberry Pi или что-то на базе ITX платы со встроенным процессором (или что-то иное). Также мне понравилось, что Pi-hole поддерживает DNS over HTTPS. Я бы рекомендовал этот продукт, если вы так же озадачились борьбой с рекламой. По крайней мере рекомендовал бы к ознакомлению и тестированию.

Pi hole – это программное обеспечение, которое позволяет блокировать рекламу и нежелательные домены на всем домашнем сетевом устройстве. Сегодня мы расскажем вам, как настроить Pi hole на вашем роутере, чтобы обеспечить себе безопасность и комфортное пребывание в сети.

Первым шагом в настройке Pi hole является изменение настроек вашего роутера. Вам понадобится зайти в панель управления роутером, используя свой браузер. Обычно адрес панели управления роутера – это 192.168.1.1 или 192.168.0.1, но это может варьироваться в зависимости от вашей установки.

После входа в панель управления роутером вам нужно найти раздел настроек DNS. Обычно это можно сделать в разделе «Интернет» или «Настройки сети». В этом разделе вы должны найти поле для ввода серверов DNS, которое нужно изменить на адрес вашего Raspberry Pi, где установлен Pi hole.

Примечание: Raspberry Pi может иметь разные адреса IP в зависимости от вашей конфигурации. Убедитесь, что вы вводите правильный IP-адрес для вашего Raspberry Pi.

После ввода адреса Raspberry Pi в поле серверов DNS, сохраните настройки и перезагрузите роутер. Теперь ваш роутер будет использовать Pi hole в качестве основного сервера DNS, блокируя рекламу и нежелательные домены на всем вашем домашнем устройстве.

Содержание

  1. Подготовка и установка Pi hole на Raspberry Pi
  2. Выбор необходимой версии Raspberry Pi
  3. Установка операционной системы на Raspberry Pi
  4. Настройка статического IP-адреса на Raspberry Pi
  5. Настройка роутера для использования Pi hole
  6. Проверка и использование Pi hole для блокировки рекламы:

Подготовка и установка Pi hole на Raspberry Pi

Перед установкой Pi hole на Raspberry Pi необходимо выполнить несколько подготовительных действий. В этом разделе мы расскажем вам, что нужно сделать, чтобы ваш роутер работал с Pi hole.

Шаг 1: Настройка статического IP-адреса для Raspberry Pi

Прежде чем перейти к установке Pi hole, необходимо настроить статический IP-адрес для вашей Raspberry Pi. Это позволит вашему роутеру всегда знать, где находится Raspberry Pi и как к нему обратиться. Для этого откройте файл /etc/dhcpcd.conf и добавьте следующие строки в конец файла:

interface eth0
static ip_address=192.168.1.2/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

Шаг 2: Установка Pi hole

После настройки статического IP-адреса, вы готовы приступить к установке Pi hole. Для этого выполните следующие шаги:

  1. Соедините Raspberry Pi с вашим роутером с помощью Ethernet-кабеля.
  2. Откройте терминал на Raspberry Pi или подключитесь к нему по SSH.
  3. Выполните команду curl -sSL https://install.pi-hole.net | bash для загрузки и запуска установочного скрипта Pi hole.
  4. Следуйте инструкциям на экране для настройки Pi hole.
  5. Введите IP-адрес, который вы назначили в Шаге 1, как статический IP-адрес для Pi hole.
  6. Дождитесь завершения установки и перезагрузите Raspberry Pi.

Шаг 3: Настройка роутера для использования Pi hole

После установки Pi hole необходимо настроить ваш роутер, чтобы использовать его в качестве DNS-сервера. Для этого выполните следующие шаги:

  1. Войдите в настройки вашего роутера с помощью браузера, введя его IP-адрес в адресной строке.
  2. Найдите раздел настройки DNS-сервера (обычно называется «Настройки DHCP» или «LAN-настройки»).
  3. Замените текущий DNS-сервер на IP-адрес вашей Raspberry Pi, который вы назначили в Шаге 1.
  4. Сохраните изменения и перезапустите роутер.

После выполнения этих шагов ваш роутер будет использовать Pi hole в качестве DNS-сервера, блокируя рекламу и защищая вас от нежелательных контента в интернете.

Выбор необходимой версии Raspberry Pi

Перед тем как начать настройку Pi hole на роутере, нужно выбрать подходящую версию Raspberry Pi. Ниже представлены несколько популярных моделей:

Raspberry Pi 4 Model B: Это самая новая и мощная модель Raspberry Pi, которая обеспечивает высокую производительность и поддержку последних версий программного обеспечения. Она имеет 4 ГБ или 8 ГБ оперативной памяти и различные порты для подключения устройств.

Raspberry Pi 3 Model B+: Это предыдущая версия Raspberry Pi с более ограниченными характеристиками, но все еще способная обеспечить надежную работу Pi hole. Он имеет 1 ГБ оперативной памяти и схожие порты с Pi 4.

Raspberry Pi Zero W: Это самая маленькая и доступная модель Raspberry Pi. Он имеет ограниченные характеристики, но может быть идеальным выбором для небольших проектов или ограниченного бюджета.

При выборе версии Raspberry Pi для использования с Pi hole, учитывайте требования программного обеспечения и ресурсы, которые вам нужны.

Установка операционной системы на Raspberry Pi

Прежде чем начать использовать Raspberry Pi, необходимо установить операционную систему на его карту памяти. Существует несколько вариантов операционных систем для Raspberry Pi, включая Raspbian, Ubuntu Mate, OSMC и другие.

Вот шаги для установки операционной системы на Raspberry Pi:

  1. Скачайте образ выбранной операционной системы с официального сайта Raspberry Pi Foundation.
  2. Скачайте и установите на свой компьютер программу для записи образа на карту памяти, например, Etcher.
  3. Подключите карту памяти к компьютеру.
  4. Откройте программу для записи образов и выберите скачанный образ операционной системы.
  5. Выберите карту памяти, которую хотите использовать для Raspberry Pi.
  6. Нажмите на кнопку «Запись», чтобы начать процесс записи образа на карту памяти.
  7. По завершении записи, извлеките карту памяти из компьютера и вставьте её в слот для карт памяти на Raspberry Pi.
  8. Подключите Raspberry Pi к питанию и к монитору, а также подключите клавиатуру и мышь.
  9. Включите Raspberry Pi.
  10. После загрузки операционной системы, следуйте инструкциям на экране для первоначальной настройки.

Поздравляю! Теперь у вас установлена операционная система на Raspberry Pi и вы можете начать использовать его для различных целей.

Настройка статического IP-адреса на Raspberry Pi

Настройка статического IP-адреса на Raspberry Pi позволяет надежно закрепить устройство в вашей сети и обеспечить его постоянную доступность.

Следуйте этим шагам для настройки статического IP-адреса:

  1. Откройте терминал на Raspberry Pi.
  2. Введите следующую команду:

sudo nano /etc/dhcpcd.conf

Это откроет файл настройки демона DHCP-клиента.

  1. Прокрутите файл вниз до раздела, связанного с вашим соединением Ethernet или Wi-Fi. Обычно он называется «eth0» для Ethernet или «wlan0» для Wi-Fi.
  2. Найдите строки:

# Example static IP configuration:
#interface eth0
#static ip_address=192.168.1.10/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
#static routers=192.168.1.1
#static domain_name_servers=192.168.1.1

Раскомментируйте строки, удалив символ «#» в начале каждой строки. Затем измените значения на желаемые IP-адрес, маску подсети, шлюз по умолчанию и DNS-серверы. Например:

#interface eth0
static ip_address=192.168.1.10/24
static routers=192.168.1.1
static domain_name_servers=8.8.8.8 8.8.4.4

  1. Нажмите Ctrl+X, затем Y, а затем Enter, чтобы сохранить изменения.
  2. Перезапустите Raspberry Pi с помощью следующей команды:

sudo reboot

После перезагрузки Raspberry Pi будет использовать статический IP-адрес, который вы указали.

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

Настройка роутера для использования Pi hole

Перед тем как приступить к настройке роутера для использования Pi hole, удостоверьтесь, что у вас есть доступ к административной панели роутера. Вам также понадобится IP-адрес вашего Pi hole-сервера. Если вы еще не установили Pi hole, убедитесь, что у вас есть Raspberry Pi или другое совместимое устройство.

Шаг 1: Войдите в административную панель роутера, введя его IP-адрес в веб-браузере.

Шаг 2: Найдите раздел настроек DNS или DHCP.

Шаг 3: Внесите изменения в настройки DNS или DHCP, чтобы использовать IP-адрес вашего Pi hole-сервера в качестве преобразователя адресов (DNS).

Шаг 4: Сохраните изменения и перезагрузите роутер, чтобы они вступили в силу.

После завершения настройки роутера вы должны увидеть, что весь трафик, проходящий через роутер, фильтруется Pi hole. Теперь вы можете пользоваться интернетом без рекламы.

Проверка и использование Pi hole для блокировки рекламы:

Шаг 1: Подключение Pi hole к вашему роутеру

Первым шагом является подключение Pi hole к вашему роутеру. Если вы используете проводное подключение, просто подсоедините Raspberry Pi к роутеру с помощью Ethernet-кабеля. Если вы предпочитаете беспроводное подключение, вам также потребуется Wi-Fi-адаптер.

Шаг 2: Установка операционной системы на Raspberry Pi

Далее вам нужно установить операционную систему на Raspberry Pi. Рекомендуется использовать Raspbian, так как это одна из самых популярных операционных систем для Raspberry Pi. Скачайте образ Raspbian с официального сайта Raspberry Pi и установите его на SD-карту.

Шаг 3: Установка Pi hole

Когда операционная система будет установлена, подключитесь к Raspberry Pi по SSH или используйте монитор и клавиатуру для настройки. Следуйте инструкциям по установке Pi hole на Raspbian. Обычно этот процесс заключается в выполнении нескольких команд через командную строку.

Шаг 4: Настройка роутера для использования Pi hole

Теперь необходимо настроить роутер для использования Pi hole. Войдите в настройки роутера и найдите раздел настройки DNS. Задайте IP-адрес вашей Raspberry Pi в качестве основного DNS-сервера. Если вы не знаете IP-адрес Raspberry Pi, вы можете найти его в Pi hole Dashboard.

Шаг 5: Проверка и использование Pi hole

После настройки роутера попробуйте открыть любую веб-страницу на любом устройстве в вашей домашней сети. Если Pi hole работает должным образом, вы не увидите рекламных баннеров и всплывающих окон. Вы также можете проверить работу Pi hole, посетив его Dashboard и просмотрев статистику заблокированных запросов и показанной рекламы.

Поздравляю! Теперь вы знаете, как проверить и использовать Pi hole для блокировки рекламы на всех устройствах в вашей домашней сети.

Разработанный для платформы Raspberry Pi, Pi hole является мощным инструментом для блокировки рекламы и защиты от нежелательного контента на вашей домашней сети. По своей сути, Pi hole является сетевым блокировщиком рекламы, который блокирует запросы к серверам, содержащим рекламные и вредоносные домены.

Однако, использование Pi hole на отдельном устройстве не всегда удобно. В этой статье я расскажу вам, как настроить Pi hole на вашем роутере, чтобы все устройства в вашей домашней сети могли пользоваться его преимуществами.

Перед началом настройки Pi hole на вашем роутере, вам понадобится Raspberry Pi с установленной операционной системой Raspbian и установленным программным обеспечением Pi hole. Вы также должны иметь доступ к настройкам вашего роутера. Готовы начать? Давайте пошагово пройдемся по процессу настройки.

Содержание

  1. Шаг 1: Установка Pi hole на роутере
  2. Шаг 2: Настройка DNS-сервера на роутере
  3. Шаг 3: Проверка работы Pi hole и блокировка рекламы

Шаг 1: Установка Pi hole на роутере

Перед тем как начать устанавливать Pi hole на своем роутере, необходимо сделать резервную копию текущих настроек роутера. Это позволит вам быстро восстановить их, если что-то пойдет не так.

Пожалуйста, убедитесь, что вы имеете доступ к административной панели вашего роутера. Обычно это делается через веб-интерфейс, открывая ваш любимый браузер и вводя IP-адрес роутера в строке адреса. Если вы не знаете IP-адрес вашего роутера, вы можете найти его, выполните команду ipconfig в командной строке, найдите «Основной шлюз» и введите его в браузер.

Когда у вас уже есть доступ к административной панели роутера, следующий шаг — найти раздел, называемый «Настройки DNS», «DNS-настройки» или что-то похожее. В этом разделе вы должны найти поле, в котором можно изменить DNS-серверы роутера.

Вставьте IP-адрес вашего сервера Pi hole в соответствующее поле DNS-серверов. Например, если IP-адрес вашего сервера Pi hole — 192.168.1.100, вставьте его в поле DNS-серверов. Если поле позволяет вставить несколько IP-адресов DNS-серверов, вы можете добавить второй IP-адрес DNS-сервера (например, 8.8.8.8 для Google Public DNS) для резервирования.

После внесения изменений сохраните настройки роутера и перезагрузите его, чтобы изменения вступили в силу.

Шаг 2: Настройка DNS-сервера на роутере

Для начала откройте веб-интерфейс управления вашим роутером. Обычно это делается введением IP-адреса роутера в адресную строку веб-браузера и вводом административных учетных данных.

Настройка DNS-сервера может отличаться в зависимости от модели и производителя роутера. Обычно вы найдете настройки DNS в разделе «Настройки сети» или «Интернет».

Указывая адреса DNS-серверов, мы создадим связь между роутером и Pi hole. Введите следующие значения:

  • Основной DNS-сервер: введите IP-адрес вашего Pi hole.
  • Альтернативный DNS-сервер: введите IP-адрес вашего основного DNS-сервера (обычно это IP-адрес вашего роутера).

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

Теперь, когда DNS-сервер роутера настроен на Pi hole, все устройства в вашей сети будут использовать Pi hole в качестве своего DNS-сервера для фильтрации рекламы и блокировки нежелательного контента.

Шаг 3: Проверка работы Pi hole и блокировка рекламы

После успешной настройки Pi hole на вашем роутере, пришло время проверить его работу и убедиться, что реклама действительно блокируется. Следуйте указанным ниже шагам:

  1. Откройте веб-браузер и введите IP-адрес вашего роутера в адресной строке. Обычно IP-адрес роутера можно найти на наклейке сзади роутера или в его настройках.
  2. Вас должна встретить страница администрирования вашего роутера. Войдите в нее, используя логин и пароль администратора.
  3. Найдите раздел настроек DNS (обычно он называется «DNS Settings» или «Network Settings»).
  4. В этом разделе найдите поле для ввода IP-адреса DNS-сервера и введите IP-адрес вашего роутера. Это позволит вашему роутеру использовать Pi hole в качестве основного DNS-сервера.
  5. Сохраните изменения и перезагрузите роутер.

Теперь Pi hole должен быть активирован и начать блокировать рекламу на всех подключенных устройствах в вашей сети. Чтобы проверить его работу, откройте веб-браузер на любом устройстве в вашей сети и посетите любой сайт, где обычно появляется реклама.

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

Поздравляю! Вы успешно настроили Pi hole на вашем роутере и блокируете рекламу в своей сети. Наслаждайтесь более чистым и удобным опытом просмотра веб-страниц!

После эксперимента с роутером ASUS и возвращением на mesh wifi NetGear мне захотелось сделать с домашней сетью что-нибудь еще. Конечно, до виртуальных локальных сетей и серверных шкафов домашней сети мне пока далеко, да и не очень хочется этим заниматься пока что, а вот какие-то базовые вещи вполне можно сделать.У ASUS там были кое-какие встроенные настройки для безопасности сети, есть что-то и у NetGear, но за них хотят отдельную подписку. Поэтому очевидной была идея улучшения безопасности сети, и в частности — добавления механизма предотвращения трекинга в интернете устройств, находящихся в локальной сети дома. Один из таких инструментов — это построение “черной дыры” запросов DNS.

Многие, если не все, слышали про расширения для браузеров, которые отрезают рекламу и трекеры за пользователями на отдельно взятом устройстве — телефоне или компьютере. “Черные дыры” по сути, позволяют делать то же самое, но на уровне локальной сети с помощью фильтрации запросов DNS. Все, что нужно для этого сделать — добавить в сеть специальное программное обеспечение, перехватывающее DNS-запросы. Когда пользователь вбивает адрес сайта в строку браузера, на сервер DNS уходит запрос о переводе URL в IP-адрес сайта, к которому надо подключиться. Фильтры, о которых речь пойдет ниже, умеют блокировать часть DNS-запросов по известным спискам, таким образом предотвращая загрузку контента из сети. В списках в данном случае содержатся доменные адреса различных рекламных сетей, трекеров, фишинговых и других вредоносных сайтов. Я попробовал пару таких решений — Pi-hole и AdGuard Home — и делюсь тем, что я об этом узнал, поскольку в твиттере получил много вопросов по этому поводу.

За основу я взял микро-компьютер Rapsberry Pi. В принципе, можно использовать любой компьютер с Linux, но мне давно хотелось поиграться с Raspberry Pi, а тут подвернулась очевидно хорошая и полезная причина. Зачем это вообще? Домашний интернет-фильтр:
– Решение, по сути, бесплатное, за исключением стоимости самого компьютера Raspberry Pi
– Позволяет обеспечить фильтрацией все домашние устройства, даже что-то типа Smart TV, хотя их вообще лучше в интернет не выпускать
– Оптимизирует трафик путем блокировки большого количества запросов до того, как они загрузились к вам домой.

Но, например, для телефона, который носите с собой, локальный блокировщик все равно может понадобиться. И для этого есть решения: можно на Raspberry Pi настроить свой VPN, и, выходя из дома, подключаться в сеть через этот VPN, заодно фильтруя DNS запросы. Вообще Raspberry Pi, как домашняя сетевая платформа внезапно оказалась очень интересной темой, но в рамках этого поста мы поговорим только про “отрезание” трекинга и рекламы.

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

Аппаратная часть
Для реализации этого плана в первую очередь вам понадобится Raspberry Pi — полноценный компьютер размером с ладонь, который работает под управлением варианта Linux. Можно купить только плату, а можно сразу купить набор у реселлеров, где в комплекте сразу будет то, что и так понадобится: блок питания, карта памяти с установщиком системы, кабель HDMI, корпус для платы. Я купил вот такой у CanaKit, в котором есть сразу все:


(Позже я купил другой корпус с улучшенным охлаждением, что позволило отказаться от кулера)

Кроме этого, для настройки понадобятся USB клавиатура и мышь, а также Ethernet-кабель для подключения к сети. Хотя у Raspberry Pi есть Wifi, подключать её как сетевой фильтр лучше через кабель. Сам процесс настройки Raspberry Pi достаточно простой и сопровождается графическим интерфейсом, поэтому там даже рассказывать особо нечего. Если вы купили набор, типа того, который выше, там на SD-карте уже сразу будет установщик, который проведет вас через нужные шаги установки системы. Можно скачать установщик системы, который отформатирует на Маке карту памяти и запишет туда загрузочный образ, где можно будет выбрать вариант операционной системы для Rasbperry

Для такого фонового процесса как Pi-hole даже графический интерфейс системы не нужен, поэтому можно установить версию Raspbian Lite OS без него. Но если вас пугает необходимость управлять системой в командной строке, то можно и обычную Raspbian ставить, так как Pi-hole не пожирает много ресурсов, и ничего ужасного в работе GUI не будет. Либо в командной строке, либо же через интерфейс Raspbian лучше сразу активировать возможность подключаться к устройству по ssh (в терминале можно сделать touch ssh и скопировать файл на карту памяти). Пройдя настройку Raspberry Pi, вы получите работающий компьютер с логином pi и паролем raspberry, который, разумеется, лучше сразу поменять на что-то другое (для этого можно использовать passwd в терминале).

Важный момент: для надежной работы Pi-hole нужно зафиксировать за Raspberry IP-адрес в локальной сети, чтобы роутер не поменял его в какой-то момент. Процедура для этого будет зависеть от вашего роутера, но важно, чтобы в результате манипуляций IP адрес был закреплен за Raspberry Pi. При этом, как я упоминал выше, лучше использовать подключение кабелем Ethernet, и фиксировать на роутере адрес именно для интерфейса Ethernet. То есть последовательность такая:
– Устанавливаете систему на Raspberry Pi
– Подключаете кабелем к роутеру в какой-нибудь из портов Ethernet
– Вычисляете IP адрес интерфейса Ethernet (либо в терминале, либо в настройках роутера)
– Закрепляете этот адрес за Raspberry Pi

Теперь можно ходить к Raspberry Pi удаленно через SSH (или, например, клиентом VNC, включив в настройках Raspbian доступ по VNC). В любом случае, при работе с Raspbian часто команды придется выполнять в командной строке, поэтому лучше к этому привыкать.

Установка фильтра Pi-hole
Следующим шагом вам надо определиться с тем, какой фильтр DNS-запросов устанавливать. Я вначале попробовал AdGuard Home, который многие в твиттере рекомендовали как более продвинутое решение. Принципиально AdGuard Home и Pi-hole не отличаются, но у AdGuard есть интересные возможности, для которых на Pi-hole еще надо делать дополнительные приседания.

Я бы с удовольствием продолжил пользоваться AdGuard Home, но у меня после его установки возникли проблемы. Не знаю, с чем именно это связано, но на некоторых устройствах дома DNS сошел с ума, и многие совершенно обычные ресурсы перестали загружаться. Я читал, что иногда роутер NetGear Orbi может перехватывать запросы DNS, и это может вызывать проблемы при работе фильтра в сети. У меня они возникли, и в итоге пришлось срочно все отключить, чтобы не ломался рабочий день (мы же в эпохе WFH). Вместо повторной настройки AdGuard Home я решил сделать второй попыткой установку Pi-hole, и в этот раз у меня все заработало без проблем. Возможно, я сделаю еще один подход к AdGuard Home, потому что мне не очень нравится интерфейс Pi-hole, но уже потом, когда появится дополнительное желание.

С установкой Pi-hole все почти так же просто, как и к настройкой Raspberry Pi — нужно закачать установщик из интернета, запустить его, и дальше следовать шагам визарда. Я выбрал путь ручной загрузки и установки отсюда. В терминале (разумеется, по ssh на Raspberry Pi) делаем:

wget -O basic-install.sh https://install.pi-hole.net
sudo bash basic-install.sh

А дальше достаточно просто пройти путь настройки Pi-hole через прекрасный визуальный визард:

Примерно 12-15 экранов визарда расскажут вам, что для Pi-hole нужен нужен фиксированный IP-адрес, позволят выбрать интерфейс (Ethernet или Wifi), напомнят о необходимости задонатить бесплатному проекту, а также выбрать DNS-сервер, к которому будет ходить Pi-hole, чтобы резолвить запросы, которые не блокируются. Я выбрал Cloudflare за их подход к конфиденциальности: они не торгуют данными пользователей, и не хранят логи дольше 24 часов.

Как я уже упоминал выше, Pi-hole использует списки доменов для того, чтобы блокировать определенные ресурсы. Если я правильно помню, установщик во время настройки предложит установить один или больше популярных списков, а в дальнейшем такие списки можно отдельно находить и добавлять в Pi-hole. Потом визард Pi-hole предложит установить веб-интерфейс, с помощью которого можно просматривать статистику и управлять приложением. Фильтром можно управлять и через командную строку, но лучше все-таки поставить веб-портал. На Raspberry Pi установщик, если не ошибаюсь, еще установит веб-сервер lighttpd, чтобы могла работать админская консоль. Еще один экран предложит сохранять логи запросов, что позволит как раз просматривать статистику разрешенных и заблокированных запросов, но ускорит износ SD-карты. (Для продления сроков её жизни есть методы, которые в этой статье затрагивать не будем). Последний экран покажет вам всю нужную информацию о настройке сервера, включая пароль к админской консоли (не забудьте его поменять потом на что-то свое!)


(я потерял свой скриншот, поэтому пришлось одолжить из интернета)

Собственно, после того, как пройдена первоначальная настройка Pi-hole, дальше почти что и делать нечего. Самое главное — нужно добавить Pi-hole как DNS в локальной сети. Для этого в настройках роутера нужно указать IP-адрес Pi-hole вместо тех DNS-серверов, которые там прописаны (вероятней всего — что-то, полученное автоматически от провайдера). Таким образом это позволит всем устройствам в домашней сети пользоваться преимуществами Pi-hole по фильтрации запросов. Альтернативно можно прописать IP-адрес Raspberry Pi в качестве DNS-сервера на тех устройствах, которым вы хотите обеспечить работу фильтра, но это нивелирует смысл разворачивания такого DNS-фильтра в локальной сети.

Второе, что понадобится сделать — добавить списки доменов, которые надо блокировать. Списки обычно собирает, обновляет и распространяет весьма активное сообщество, за что ему, безусловно, спасибо. Список — это txt файл, в котором перечислены домены, которые будут блокироваться вашей Pi-hole. Есть масса сайтов в сети, откуда такие списки распространяются, есть мегасписки, которые содержат другие списки, и тд. Но со списками надо осторожно, и не надо стараться добавить сразу все: если перестараться, то легко заблокировать что-то лишнее: некоторые сайты могут перестать работать, или будут работать неправильно. Можно добавлять списки по одному (там в списках, как правило, сразу десятки тысяч доменов), и смотреть, что из критического перестало работать (если перестало).

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

Блокировка: https://firebog.net
Исключения https://github.com/anudeepND/whitelist
(Исключения — это проверенные временем домены, которые не стоит блокировать, потому что может сломаться функциональность сайтов)

Сама же панель управления Pi-hole доступна по IP-адресу, который вы выделяли для Raspberry Pi, в моем случае это http://10.0.0.33/admin/index.php. (да, надо еще заморочиться на https)

Через консоль можно смотреть статистику, добавлять и удалять домены для блокировки и исключений, и, в общем-то, все. Дополнительно можно установить полезное мобильное приложение Pi-hole Remote (от стороннего разработчика), и смотреть статистику, и управлять самой pi-hole через него. Важный момент: для того, чтобы получить доступ к консоли в мобильном приложении, надо просканировать токен, который можно найти в настройках веб-консоли, пароль к админской части консоли для этой цели не годится.

Посмотреть, как работает Pi-hole, лучше всего на каком-нибудь сайте, где много рекламы и трекеров (типа Buzzfeed). Достаточно загрузить этот сайт с включенной и выключенной Pi-hole, и вы сразу почувствуете разницу (ну, может, не сразу, так как надо обычно сделать несколько перезагрузок сайтов, чтобы все кэши обновились). Надо также учитывать, что некоторые сайты понимают факт блокировки рекламы через Pi-hole, и все равно будут требовать отключить блокировщик рекламы. Тут как раз одно из неудобств PiHole и проявляется: просто так отключить её как расширение в браузере для конкретной страницы нельзя. Также не получится просто добавить сам домен сайта в исключения, потому что проблема как раз в загружающейся на этом сайте рекламе и трекерах. Я еще пока что изучаю, что по этому поводу делать. Есть смысл периодически заглядывать в статистику: так я узнал, что больше всего Pi-hole блокирует один из адресов CDN Apple. Что странно — я не замечал никаких побочных эффектов, кроме того, что в Apple News перестала загружаться реклама. Правда, я считаю это честной игрой: я плачу за Apple News+, а мне все равно показывают рекламу, да еще и в виде автоматически проигрывающегося видео, и это даже нельзя отключить. Кстати, о рекламе в видео: YouTube активно борется с блокировками Pi-hole и заблокировать рекламу на YouTube сложно, а работающие сегодня методы могут перестать работать уже завтра.

Еще один момент: на данном этапе все запросы на Pi-hole показываются “от роутера”, потому что он оказывается главным “клиентом”, который ходит в сеть от лица всех домашних устройств. Мне это не показалось большой проблемой, хотя если захочется вычислить какое-то активно “стучащее” в сеть устройство, то надо будет заморочиться. Этот вопрос решается, например, путем поднятия DHCP-сервера на Raspberry, тогда каждое устройство будет ходить на Raspberry Pi со своим IP-адресом.

Парочка вещей, которые я планирую сделать, когда меня в очередной раз настигнет желание улучшить домашнюю сеть:
– Во-первых, как я упоминал выше, нужно продлить жить SD-карте, так как её постоянно эксплуатирует запись логов. Один из способов — вынести логи в оперативную память, второй — перевести Raspberry Pi на работу с SSD диска. Думаю, какой-нибудь небольшой NVMe с коробочкой через какое-то время замутить.
– Во-вторых, хочу сделать DNS Over HTTPS (DoH). Вообще я хотел это сделать сразу, но поскольку наступил на грабли с работой AdGuard, то решил пока ограничиться Pi-hole, убедиться, что все работает, и дальше уже переходить к следующему этапу. Из того, что я почитал о процессе — никаких ракетных технологий, и в результате Raspberry Pi/Pi-hole начинают разговаривать с Cloudflare DNS по HTTPS протоколу, и, соответственно, домашний провайдер не может собирать и продавать информацию о ваших предпочтениях в сайтах на сторону. Не то, чтобы мне есть что скрывать…
– И в третьих, хочу также установить Pi.Alert — еще один проект для Raspberry Pi, сервис, который сканирует сеть и предупреждает о подключении к сети неизвестных устройств, а также об отключении обычно подключенных устройств.
– Плюс VPN, о котором я тоже упоминал выше.

Наверняка у Raspberry Pi есть и еще какие-то полезные применения, буду продолжать исследовать этот вопрос. Пока исследую, может быть, найду время хотя бы упорядочить устройства и провода в “сетевом углу”, а не “как попало”, как это сейчас. Но, я надеюсь, я донес главное: настроить такую штуку дома — совершенно несложно, не нужно этого бояться.

  • Настройка pptp на роутере keenetic
  • Настройка ospf на роутере cisco
  • Настройка pppoe ростелеком роутер ростелеком
  • Настройка openvpn сервера на роутере keenetic
  • Настройка pppoe подключение для роутера