Современный интернет превратился в агрессивную среду. Ваш Smart TV отправляет снимки экрана на серверы аналитики каждую секунду. Умные лампочки «стучат» на китайские серверы. Робот-пылесос строит карту квартиры и делится ей с рекламными сетями. А браузерные расширения вроде uBlock Origin, какими бы мощными они ни были, защищают только один конкретный браузер на одном конкретном ПК. Они бессильны против IoT-устройств, мобильных приложений и системной телеметрии операционных систем.
Как системные администраторы и инженеры, мы не можем мириться с тем, что наша личная инфраструктура живет своей жизнью и сливает трафик. Нам нужен архитектурный контроль. И сегодня мы построим «черную дыру» для мусорного трафика на базе Pi-hole, интегрировав её с нашим роутером MikroTik. Мы будем резать телеметрию на уровне DNS.
🧠 1. Архитектура DNS-фильтрации (Sinkholing)
Чтобы понять, как мы будем защищаться, нужно кристально ясно понимать, как работает протокол DNS. DNS (Domain Name System) — это телефонная книга интернета. Когда ваш телевизор хочет отправить отчет о том, какой канал вы смотрите, он не знает IP-адрес сервера аналитики. Он знает только доменное имя: telemetry.samsungcloud.com.
Телевизор отправляет DNS-запрос: «Эй, роутер, какой IP-адрес у telemetry.samsungcloud.com?». И вот здесь вступает в игру наша архитектура.
Вместо того чтобы пересылать этот запрос провайдеру или публичным серверам Google (8.8.8.8), наш роутер отправит его на внутренний сервер Pi-hole. Pi-hole сверяет запрошенный домен со своими огромными списками блокировки (миллионы записей).
- 🟢 Если домен чистый (например, github.com), Pi-hole возвращает настоящий IP-адрес, и устройство работает нормально.
- 🔴 Если домен находится в черном списке, Pi-hole возвращает пустой ответ (IP 0.0.0.0).
Телевизор радостно пытается отправить пакет телеметрии «в никуда», соединение мгновенно сбрасывается (TCP RST), устройство не зависает, ожидая таймаута, а мы экономим пропускную способность канала и сохраняем приватность.
🧰 2. Подготовка инфраструктуры (Hardware & OS)
Проект называется Pi-hole, потому что изначально задумывался для работы на микрокомпьютерах Raspberry Pi. Но в 2026 году архитектура FTL (Fastest Tracker Lookup), на которой работает ядро Pi-hole, настолько оптимизирована, что может работать практически на чем угодно.
Где разворачивать? Выбор инженера:
- 🍓 Raspberry Pi (Zero 2 W или модель 3/4): Классика. Низкое энергопотребление.
- 🖥️ Тонкий клиент (HP, Dell, Lenovo): Идеальный выбор, если у вас завалялся старый офисный мини-ПК.
- 📦 Контейнер LXC в Proxmox VE: Самый элегантный и надежный вариант для домашней лаборатории (об этом мы поговорим в нашей следующей статье).
- 🐳 Docker-контейнер: Отлично подходит для NAS-серверов (Synology, TrueNAS).
Операционная система:
Я настоятельно рекомендую использовать чистый Debian 12 или Ubuntu Server 24.04 LTS. Никаких графических оболочек (GUI), только хардкорный терминал. Графика будет съедать ресурсы, которые нужны для мгновенной обработки тысяч DNS-запросов в секунду.
⚙️ 3. Фундамент: Настройка статического IP-адреса
Критическая ошибка новичков — установка Pi-hole на сервер с динамическим IP. DNS-сервер — это инфраструктурный узел. Его адрес должен быть высечен в камне. Если DHCP-сервер роутера выдаст вашему Pi-hole новый IP-адрес после перезагрузки, весь интернет в доме пропадет, потому что устройства будут отправлять запросы в пустоту.
Мы будем настраивать статику через netplan (стандарт для современных систем на базе Ubuntu).
- Откройте конфигурационный файл: sudo nano /etc/netplan/00-installer-config.yaml (имя файла может немного отличаться).
- Приведите его к следующему архитектурному стандарту:
- network:
- version: 2
- ethernets:
- eth0:
- dhcp4: false
- addresses: [192.168.88.10/24]
- routes:
- - to: default
- via: 192.168.88.1
- nameservers:
- addresses: [1.1.1.1, 8.8.8.8]
В этом примере 192.168.88.10 — это IP нашего будущего Pi-hole, а 192.168.88.1 — IP роутера MikroTik. Сохраните файл и примените настройки командой sudo netplan apply.
🚀 4. Установка ядра Pi-hole
Разработчики сделали процесс инсталляции невероятно простым. Выполняем в консоли одну команду (да, мы знаем про безопасность пайпов в bash, но это официальный и проверенный скрипт):
- curl -sSL https://install.pi-hole.net | bash
Запустится псевдографический мастер установки (TUI). Пройдемся по ключевым архитектурным решениям, которые нужно будет принять:
- 🌐 Upstream DNS Provider: Мастер спросит, к кому Pi-hole будет обращаться за адресами, которых нет в его кэше. Выбирайте Cloudflare (1.1.1.1) или Quad9 (9.9.9.9 — отличный выбор для блокировки вредоносного ПО). Позже мы заменим это на собственный рекурсивный сервер Unbound.
- 📜 Blocklists: Соглашайтесь на установку списка по умолчанию (StevenBlack).
- 📡 Protocols: Оставьте включенными IPv4 и IPv6 (если ваш провайдер его поддерживает).
- 🛡️ Web Admin Interface: Обязательно устанавливаем. Это наш пульт управления (lighttpd + PHP).
- 📊 Privacy Mode: Выбирайте «Show everything» (Уровень 0). Мы администраторы, нам нужны полные логи для отладки.
После завершения скрипт выдаст вам пароль для доступа к веб-интерфейсу. Запишите его. Теперь вы можете зайти в админку по адресу http://192.168.88.10/admin.
🕸️ 5. Интеграция с MikroTik: Истинный инженерный подход
Установить Pi-hole — это только 10% работы. Главная задача — заставить все устройства в доме использовать его.
Самый простой путь — зайти в настройки DHCP-сервера на MikroTik и указать IP-адрес Pi-hole в качестве DNS-сервера, который выдается клиентам.
- Перейдите в Winbox: IP -> DHCP Server -> Networks.
- Откройте вашу сеть и в поле DNS Servers укажите IP-адрес Pi-hole (192.168.88.10).
Но здесь кроется гигантская проблема умного дома. Многие производители Smart TV (особенно Samsung и LG), IoT-розеток и приставок вроде Chromecast плевать хотели на ваш DHCP-сервер. В их прошивку жестко зашито («захардкожено») использование серверов Google (8.8.8.8) или Cloudflare. Они проигнорируют настройки сети и пойдут напрямую.
Чтобы победить это, мы применим грубую силу — правила Destination NAT (DST-NAT) на нашем MikroTik. Мы будем перехватывать абсолютно любые DNS-запросы (порт 53 UDP/TCP), летящие наружу, и принудительно заворачивать их на наш Pi-hole.
Открываем терминал MikroTik и пишем архитектурно безупречные правила:
- /ip firewall nat add action=dst-nat chain=dstnat dst-port=53 protocol=udp src-address=!192.168.88.10 to-addresses=192.168.88.10
- /ip firewall nat add action=dst-nat chain=dstnat dst-port=53 protocol=tcp src-address=!192.168.88.10 to-addresses=192.168.88.10
- /ip firewall nat add action=masquerade chain=srcnat dst-address=192.168.88.10 dst-port=53 protocol=udp src-address=192.168.88.0/24
- /ip firewall nat add action=masquerade chain=srcnat dst-address=192.168.88.10 dst-port=53 protocol=tcp src-address=192.168.88.0/24
Что мы только что сделали?
Первые два правила перехватывают весь трафик на 53 порт от всех устройств в сети (кроме самого Pi-hole, иначе получится бесконечная петля маршрутизации), и подменяют адрес назначения на 192.168.88.10.
Вторые два правила — это Hairpin NAT. Они нужны, чтобы устройства внутри сети не отбросили ответ от Pi-hole, думая, что он пришел от чужого IP.
Теперь ни одна умная колонка не сможет пробить наш щит. Все DNS-запросы без исключения проходят через фильтр.
🗃️ 6. Гравитация и списки: Превращаем Pi-hole в оружие массового поражения телеметрии
Базовый список блокировки Pi-hole хорош, но для тотальной защиты его недостаточно. Мы будем использовать механизм Gravity — базу данных SQLite, которая агрегирует правила из разных источников.
В админке Pi-hole перейдите в раздел Adlists и добавьте несколько ультимативных списков:
- 🛡️ OISD (oisd.nl): Один из лучших списков, который блокирует рекламу, трекеры и фишинг, при этом имеет крайне низкий процент ложных срабатываний (false positives).
- 📱 Списки для Smart TV: Поищите на GitHub специализированные списки блокировок для Samsung Tizen или LG WebOS. Они вырезают агрессивную рекламу в главном меню телевизоров.
После добавления ссылок перейдите в раздел Tools -> Update Gravity и нажмите кнопку Update. Pi-hole скачает списки, удалит дубликаты и скомпилирует единую монолитную базу для мгновенного поиска.
Регулярные выражения (RegEx)
Иногда спамеры используют сотни поддоменов (например, track1.ad.com, track2.ad.com). Добавлять каждый вручную бессмысленно. Мы используем регулярные выражения. В разделе Domains переключитесь на вкладку RegEx filter и добавьте, например:
- ^(.+[_.-])?telemetry[_.-] — это заблокирует любой домен, содержащий слово telemetry с разделителями.
🕵️ 7. Высший пилотаж: Unbound (Свой собственный корневой сервер)
Даже с Pi-hole вы все равно отправляете разрешенные запросы на серверы Google или Cloudflare. Они знают, на какие сайты вы ходите. Если вы настоящий параноик (в хорошем инженерном смысле), нам нужно разорвать эту зависимость.
Мы установим Unbound — рекурсивный DNS-резолвер. Вместо того чтобы спрашивать Google «Где находится github.com?», Unbound будет обращаться напрямую к корневым серверам интернета (Root Servers), затем к серверам зоны .com, а затем к серверам github.
- Устанавливаем: sudo apt install unbound
- Настраиваем файл конфигурации /etc/unbound/unbound.conf.d/pi-hole.conf так, чтобы Unbound слушал нестандартный порт (например, 5335), не конфликтуя с Pi-hole.
- Обязательно отключаем проброс DNSSEC в Pi-hole, так как Unbound будет проверять подписи самостоятельно, обеспечивая железобетонную криптографическую защиту от подмены DNS (DNS Spoofing).
В админке Pi-hole (Settings -> DNS) убираем галочки с Cloudflare/Google и ставим галочку Custom 1 (IPv4), прописывая 127.0.0.1#5335.
Всё. Вы стали абсолютно независимы от инфраструктуры провайдеров и корпораций. Вы сами являетесь своим собственным интернет-провайдером на уровне разрешения имен.
🛠️ 8. Траблшутинг и «Фактор одобрения жены» (WAF)
Самое сложное в эксплуатации Pi-hole — это не установка, а соблюдение баланса между паранойей и удобством семьи. Рано или поздно ваша жена не сможет открыть ссылку из рассылки магазина, или перестанет загружаться видео в приложении умного дома. Это называется WAF (Wife Acceptance Factor).
Если сайт не работает:
- Откройте веб-интерфейс Pi-hole и перейдите в Query Log.
- Попросите домочадца воспроизвести проблему (нажать на неработающую ссылку).
- Вы мгновенно увидите красные строки — домены, которые были заблокированы в эту секунду.
- Нажмите кнопку Whitelist прямо в строке лога. Домен будет добавлен в белый список, и через 2 секунды сайт заработает.
Архитектура системы должна служить вам, а не создавать препятствия.
🏁 Резюме архитектора
Внедрение Pi-hole на уровне MikroTik — это гигантский скачок в понимании того, как работает ваша сеть. Вы больше не слепой пассажир, вы — диспетчер, который контролирует каждый пакет. Вы с удивлением обнаружите, что до 30-40% всего DNS-трафика в вашем доме — это фоновая телеметрия, шпионские модули аналитики и скрытая реклама.
Отрезав этот пласт цифрового мусора, вы не только защитите свою приватность, но и субъективно ускорите загрузку страниц на всех устройствах.
Сделаем следующий шаг? Хотите, я подготовлю детальный разбор установки Proxmox VE на старый системный блок, чтобы мы могли перенести наш Pi-hole в отказоустойчивый LXC контейнер с автоматическими бэкапами? Пишите в комментариях.