Я думаю каждый из нас сталкивается с изобилием рекламы в современном мире. Она повсюду – ТВ, сайте и даже приложения. Причем как на ПК, так и на смартфонах. Есть много профильных приложений, плагинов к браузерам, которые могут в большей или меньшей степени помочь нам с блокировкой рекламы. Но все это требует установку и иногда настройку на каждом из устройств.
Мне даже стало интересно – есть ли какое-то средство, которое может как-то относительно системно решить вопрос с рекламой. Оказалось, что есть. Одно из наиболее рекомендуемых – Pi-hole. Но, как правило, в дополнении к нему устанавливают еще какой-то плагин для браузера. Поэтому я решил подготовить этот материал – установка и использование Pi-hole.
Только небольшая особенность Pi-hole заключается в том, что нужно какое-то устройство или платформа, на котором установить это решение. Как вариант – это какая-то платформа на базе Raspberry Pi / Orange Pi. Или какая-то ITX платформа со встроенным процессором и пассивным охлаждением. Тут уже все зависит от личных предпочтений, бюджетов и опыта работы.
5 Things You Need To Know About PiHole!
Что такое Pi-hole
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 |
What is Pi-Hole and Should You Get It?
Я буду использовать операционную систему Ubuntu Server 22.04.
Установка и использование Pi-hole
Перейдем к процессу установки Pi-hole. В самом процессе нет ничего сложного.
Владимир :
Здравствуйте. Далёк от сферы IT технологий, но жизнь заставляет учиться сетевым премудростям. Настроил на своём роутере Mikrotik DoH от Clouflare, но дальше захотелось большего. Серверы DoH AdGuard по состоянию на 26.05.23. почему то не работают. В поисках решения попал к вам.
Сервер 10.10.10.63 не “пингуется” ни с роутера, ни с компьютера, соответственно настроить на него роутер невозможно. Сервис не доступен? Санкции или другие причины?
А что за сервер 10.10.10.63? Это какой-то сервер из внутренней сети? Попробуйте еще проверить актуальность сертификатов – https://forummikrotik.ru/viewtopic.php?f=1start=10
Источник: itproblog.ru
Собираем ваш новый роутер с тотальной защитой в интернете. Называется Pi-Hole
С каждым годом в сети становится все больше мусора, рекламы и потенциальных угроз для пользователей. Защититься от постоянного отслеживания и убрать все ненужное с посещаемых страниц становится довольно трудно.
Сейчас мы расскажем о набирающем популярность решении под названием Pi-hole.
Pi-hole – это специальная сборка на основе Linux, которая позволяет блокировать рекламу и сохранять конфиденциальные данные во время работы в сети. Блокировка происходит на уровне DNS и позволяет гибко настраивать списки запрещенных ресурсов.
Изначально сборка разрабатывалась для работы на одноплатных компьютерах Raspberry Pi, но сейчас ее возможно установить на любой компьютер под управлением Linux.
Pi-hole может бороться с рекламными баннерами, всевозможными скриптами и шпионскими веб-приложениями, которые следят за пользователем. Все это позволяет ускорить загрузку страниц и уменьшить расход трафика, что будет полезно при лимитированном подключении.
Что нам понадобится
Разумеется, наш любимый одноплатный компьютер “Малинка”:
Выбирайте модель с корпусом и блоком питания. Большинство зарядок от смартфона могут не подойти.
Подойдут лишь три модификации третьей и четвертой версии (Raspberry Pi 3A+, 3B+ и 4B), которые оснащены Wi-Fi модулем с поддержкой стандарта ac. “Малинка” будет работать в домашней сети и помогать фильтровать трафик, для этого она должна поддерживать все распространенные стандарты беспроводной передачи данных.
Еще понадобится карта памяти microSD от 2 ГБ. Наверняка, у вас в столе завалялось несколько старых флешек от камер или Android-смартфонов. Подойдет даже “гигабайтная” карточка, если устанавливать систему без графической оболочки.
Как настроить Pi-hole на Raspberry Pi
1. Скачиваем образ операционной системы Raspbian с официального сайта.
Лучше выбирайте версию Raspbian Buster with desktop, чтобы при необходимости получить систему с графическим интерфейсом и рабочим столом. В противном случае все манипуляции с устройством придется делать через командную строку.
2. Скачиваем и устанавливаем приложение Etcher для записи образа на карту памяти.
3. Подключаем карту памяти microSD к компьютеру. Да, тут могут возникнуть трудности. Для большинства современных Mac потребуется внешний адаптер, а может еще и переходник с SD на microSD карты.
4. Записываем образ Raspbian на карту памяти при помощи приложения Etcher.
5. Устанавливаем карточку в Raspberry Pi и подключаем “малинку” к сети.
Далее потребуется определить способ управления нашим одноплатником. При наличии USB-клавиатуры и монитора можно вывести картинку на экран, а можно открыть доступ по протоколу SSH и настраивать систему удаленно.
Подробнее об управлении Raspberry по SSH можно прочитать в этой статье.
Для включения SSH нужно:
▸ На карте памяти с записанным образом для Raspberry Pi найти раздел Boot.
▸ Создать в нем файл ssh без расширения.
▸ Установить карту в Raspberry, после загрузки SSH будет подключен.
▸ Для первоначальной настройки придется подключать “малинку” к роутеру по сетевому кабелю.
6. В Терминале на Raspbian или в Терминале на компьютере при SSH подключении вводим команду:
7. В разделе Network options настраиваем Wi-Fi, если первый раз подключались по кабелю.
Обратите внимание, что для подключения к сети 5 ГГц необходимо в конфигурации Raspbian перейти в раздел Network options – Change Wi-Fi Country и указать регион US. В противном случае система будет видеть только 2.4 ГГц сети.
8. В настройках своего роутера задаем для Raspberry статический IP-адрес.
9. Выполняем на “малинке” скрипт для установки Pi-hole командой:
sudo curl -sSL https://install.pi-hole.net | bash
10. В процессе установки выбираем DNS-сервер провайдера. Можно остановиться на Google или OpenDNS и выбираем предложенные списки адресов для блокировки контента.
11. Соглашаемся на установку веб-интерфейса.
12. На последнем шаге запоминаем сгенерированный пароль для входа в систему.
13. После окончания процесса в браузере на компьютере или смартфоне переходим по адресу: http://ip-адрес-малинки/admin и авторизуемся при помощи полученных учетных данных.
Как направить трафик через Pi-hole
Чтобы система заработала, необходимо настроить фильтрацию DNS-запросов. Для этого потребуется использовать настроенную малинку в качестве локального DNS-сервера.
Это можно сделать для всех устройств в сети, настроив только домашний роутер, или для нескольких устройств, задав параметры на каждом из них.
Как настроить DNS на роутере:
1. Переходим в веб-интерфейс маршрутизатора.
2. В разделе с настройками DHCP находим параметр DNS-сервер.
3. Вводим IP-адрес нашей “малинки”.
4. Сохраняем конфигурацию и перезагружаем роутер.
Как настроить DNS на iOS:
1. В настройках iPhone или iPad переходим в раздел Wi-Fi.
2. Нажимаем на индикатор “i” возле используемой беспроводной сети.
3. В разделе Настройка DNS выбираем режим Вручную.
4. Указываем IP-адрес “малинки”
Как настроить DNS на macOS:
1. В Системных настройках открываем раздел Сеть.
2. Выделяем текущее подключение и нажимаем кнопку Дополнительно…
3. На вкладке DNS добавляем новый адрес.
4. В строку вписываем IP-адрес “малинки”.
Что делать дальше
Изначально система Pi-hole настроена на блокировку распространенных англоязычных рекламных ip-адресов и в наших реалиях окажется практически бесполезной. Эффект заметите при посещении заморских сайтов вроде Amazon или Ebay.
Для расширения возможностей придется вручную добавить подходящие списки блокировки.
Здесь все зависит от ваших потребностей. Можно настроить Pi-hole для блокировки рекламы, отключения слежки за действиями пользователя в сети или убрать со страниц вредоносные и небезопасные скрипты.
Списки заблокированных адресов нужно поддерживать в актуальном состоянии и регулярно обновлять. Каждый из вас самостоятельно может найти подходящие списки и добавить их по такому алгоритму:
1. Переходим в веб-интерфейс Pi-hole через браузер на компьютере или смартфоне.
2. Открываем раздел Blacklists.
3. Вставляем ссылку на список блокировки и добавляем его.
4. Перезагружаем Pi-hole из меню Settings.
Вот примеры списков блокировки для разных целей:
В сети доступно множество других списков блокировки под разные задачи.
Кроме этого в дополнение к Pi-hole неплохо было бы подключить VPN, но это тема для отдельной статьи.
(26 голосов, общий рейтинг: 4.69 из 5)
Хочешь больше? Подпишись на наш Telegram.
Источник: www.iphones.ru
Переводим на DoH домашнюю сеть, или еще один щелчок по носу фильтрации
После сравнительно недавнего анонса компанией Mozilla запуска поддержки DNS-over-HTTPS (DoH) в продакшн в сети не утихают споры, зло это или благо. По моим ощущениям, позиция «зло» базируется в основном на том, что при этом манипуляция вашими DNS-запросами даже в полезных для вас целях будет затруднена, поэтому я пока что остаюсь на позиции «благо».
В Российской Федерации операторы связи, поставленные в очень жесткие условия нашим законодательством, вынуждены строить изощренные многоуровневые системы блокировок доступа к запрещенному Роскомнадзором на территории РФ контенту, на одном из уровней которых более-менее успешно работает перехват DNS-запросов. Использование DoH позволит обойти этот уровень, что в совокупности с использованием VPN может несколько облегчить вам жизнь. Обратите внимание, само по себе решение не может избавить вас от блокировок, потому что вряд ли в России есть провайдер, полагающийся только на фильтрацию через DNS. Вам нужен еще какой-то вариант обойти блокировки, например VPN, один из описанных в моих предыдущих статьях.
Парадоксально, но в текущем паноптикуме оператору связи ничем не грозит ваш обход его блокировок (с использованием специальных средств для этого), поэтому если вы опасаетесь навредить ему таким образом — эти опасения напрасны.
Но переходить на специальный браузер, чтобы обойти перехват DNS — не наш путь. Наш путь — перевести все устройства домашней сети на DoH, быстро, эффективно и без лишних трудозатрат.
Disclaimer
Поскольку публиковать способы обхода блокировок доступа к информации, запрещенной на территории Российской Федерации, не очень законно, целью этой статьи будет рассказать о методе, позволяющем автоматизировать получение доступа к ресурсам, разрешенным на территории Российской Федерации, но из-за чьих-то действий недоступным напрямую через вашего провайдера. А доступ к другим ресурсам, получаемый в результате действий из статьи, является досадным побочным эффектом и целью статьи ни в коем случае не является.
TL;DR
Разворачиваем собственный DNS-сервер на базе Pi-Hole, использующий Cloudflare DoH для запросов в мир. Цель — зашифровать все DNS-запросы и обойти таким образом операторскую фильтрацию через перехват DNS. Полезный бонус — фильтрация рекламы.
Никаких волшебных know-how не открывается, простая пошаговая инструкция для тех, кому не хочется разбираться во всех хитросплетениях самому.
Что вам для этого потребуется
- Доверять Cloudflare. На самом деле это очень важный пункт, поскольку в описываемой реализации все ваши DNS-запросы обрабатываются сервисом Cloudflare. Если вы ему не доверяете — вам придется внедрить другое решение (и это немногим сложнее, чем описанное, но целью этой статьи не является).
- Иметь возможность поддерживать в домашней сети постоянно работающий сервер с Linux, который будет обслуживать DNS-запросы ваших устройств. Требование Pi-Hole — от 512M оперативной памяти (впрочем, работу с меньшим объемом сам не проверял). Если ваш роутер или NAS умеют виртуальные машины — это прекрасный вариант, если на полке где-то завалялась Raspberry Pi или другой микрокомпьютер на ARM — не менее хорошо, если на антресолях в коридоре жужжит виртуальная ферма на ESXi — то что я вам рассказываю, вы и сами всё знаете. Если у вас ничего из этого нет — самые младшие решения, типа Orange Pi Zero, на вторичном рынке можно найти за единицы сотен рублей либо привезти из Али за плюс-минус те же деньги. Но выбор платформы сильно выходит за рамки этой статьи, поэтому считаем, что у вас что-то есть. Впрочем, вопросы на этот счет можно задавать в комментариях.
- Вы должны иметь представление о использовании Linux и сетевых технологиях. Или хотя бы хотеть получить такое представление. Поскольку объять необъятное в этот раз я не готов, некоторые непонятные для вас моменты вам придется изучить самостоятельно. Впрочем, на конкретные вопросы, конечно же, отвечу в комментариях и вряд ли окажусь единственным отвечающим, так что не стесняйтесь спрашивать.
Исходные данные
IPv4-адрес нашего сервера в домашней сети: 192.168.1.10 и он назначен как статический.
Настройки на Linux выполняем от root (т.е. перед началом настройки выполняем команду sudo su -).
Кратко — логика решения
- Устанавливаем и настраиваем Pi-Hole
- Устанавливаем и настраиваем cloudflared
- Настраиваем ваш домашний роутер
- Решаем проблемы
Собственно решение
1. Устанавливаем и настраиваем Pi-Hole
Pi-Hole — это известная домашняя платформа, предназначенная прежде всего для борьбы с рекламой через блокирование запросов к доменам из централизованно обновляемого списка. Не то чтобы это был необходимый компонент решения, но если начал собирать домашний DNS, становится трудно остановиться. А если серьезно — Pi-Hole, возможно, и не идеален, но снимает большой объем головной боли с человека, которому надо «чтобы работало».
Чтобы установить Pi-Hole на уже имеющийся у нас запущенный Linux-сервер, нам достаточно выполнить одну команду:
curl -sSL https://install.pi-hole.net | bash
И далее запущенный скрипт проведет вас по шагам установки.
В момент, когда он спросит вас про выбор Upstream DNS Provider, вы можете выбрать любой, поскольку на следующем шаге мы всё равно будем его менять. Все остальные параметры можно смело оставлять по умолчанию.
В конце инсталляции скрипт покажет вам сгенерированный случайным образом пароль от веб-интерфейса, который вам было бы полезно записать.
Если что-то при установке пошло не так — можно использовать альтернативные способы, описанные тут.
2. Устанавливаем и настраиваем cloudflared
Для того, чтобы перейти на DNS over HTTPS мы используем типовое решение от Cloudflare. Изначально демон cloudflared был создан для поднятия со стороны абонента туннеля Argo, позволяющего опубликовать в Cloudflare CDN ваш веб-сервер, даже если он размещен на приватном IP-адресе за NAT. Но очень полезным свойством этого демона является работа в качестве DoH-proxy, и это свойство мы здесь используем.
Тут для установки нам потребуется приложить немного больше усилий, но тоже ничего особо сложного.
Выбираем и загружаем инсталлятор для нашей платформы.
# For amd64 Debian/Ubuntu cd /tmp wget https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-amd64.deb apt-get install ./cloudflared-stable-linux-amd64.deb cloudflared -v # For amd64 CentOS/RHEL/Fedora cd /tmp wget https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-amd64.rpm yum install ./cloudflared-stable-linux-amd64.rpm cloudflared -v # For ARM cd /tmp wget https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-arm.tgz tar -xvzf cloudflared-stable-linux-arm.tgz cp ./cloudflared /usr/local/bin chmod +x /usr/local/bin/cloudflared cloudflared -v
После выполнения последней команды мы должны получить вывод, подобный следующему:
cloudflared version 2019.9.0 (built 2019-09-06-0333 UTC)
Если он у вас такой (естественно, номер версии и билда может отличаться) — то поздравляю, установка прошла успешно. Теперь дело за настройкой.
Создаем пользователя для работы сервиса:
useradd -s /usr/sbin/nologin -r -M cloudflared
Создаем файл конфигурации сервиса /etc/default/cloudflared:
# Commandline args for cloudflared CLOUDFLARED_OPTS=—port 5053 —upstream https://1.1.1.1/dns-query —upstream https://1.0.0.1/dns-query
И даем на него и на исполняемый файл права свежесозданному пользователю:
chown cloudflared:cloudflared /etc/default/cloudflared chown cloudflared:cloudflared /usr/local/bin/cloudflared
Далее создаем файл /lib/systemd/system/cloudflared.service, который даст нам возможность интеграции сервиса в systemd:
[Unit] Description=cloudflared DNS over HTTPS proxy After=syslog.target network-online.target [Service] Type=simple User=cloudflared EnvironmentFile=/etc/default/cloudflared ExecStart=/usr/local/bin/cloudflared proxy-dns $CLOUDFLARED_OPTS Restart=on-failure RestartSec=10 KillMode=process [Install] WantedBy=multi-user.target
Активируем сервис и запускаем его:
systemctl enable cloudflared systemctl start cloudflared systemctl status cloudflared
Если всё получилось — вы увидите, что сервис в состоянии active (running).
Вы можете проверить работу сервиса, например командой dig:
В answer section ответа вы увидите IP-адрес, который ваш сервис получил для google.com через DoH, что-то типа:
google.com. 217 IN A 172.217.6.142
Осталось только подключить сервис к Pi-Hole. Для этого вы заходите в веб-интерфейс Pi-Hole (тут вам пригодится записанный в первом этапе пароль), идете в пункт меню Settings — DNS и делаете его выглядящим приблизительно вот так:
Главное — заполнить поле Custom записью 127.0.0.1#5053 и оставить галку у него, убрав ее со всех остальных. После этого не забудьте промотать страницу вниз и нажать Save.
Если вы забыли записать пароль — ничего страшного, заходите на сервер через ssh и исполняете команду pihole -a -p, она позволит задать новый пароль. Ну и в целом посмотрите ключи команды pihole, там много интересного. Например, обновление системы делается одной командой pihole -up.
3. Настраиваем ваш домашний роутер
Всё многообразие роутеров я, конечно, закрыть этим текстом не могу. Но для большинства домашних роутеров справедливы следующие моменты:
1) У роутера можно задать кастомный DNS-сервер в настройках WAN-интерфейса, даже если IP-адрес получается от провайдера динамически
2) Роутер выдает внутренним клиентам свой адрес в качестве DNS и переправляет их запросы на тот сервер, который указан в настройках WAN
Соответственно, в этом случае нам необходимо и достаточно прописать адрес нашего Pi-Hole в качестве DNS-сервера в настройках WAN-интерфейса домашнего роутера. Важно, чтобы он был единственным DNS-сервером в настройках, если будет указан какой-то еще — роутер будет балансировать запросы между ними по только ему известному принципу и такая ситуация крайне неудобна для отладки проблем в сети.
Если вдруг что-то пошло не так и сервис перестал работать, указанную выше настройку достаточно поменять на адрес DNS-сервера вашего провайдера или, например, 8.8.8.8, а уже потом начинать разбираться.
Если у вас роутер более умный и, например, имеет возможность указать в DHCP, какой адрес раздавать клиентам в качестве DNS-сервера, можете пойти по альтернативному пути и настроить раздачу адреса Pi-Hole клиентам напрямую. Это немного разгрузит роутер, но зато усложнит вышеописанный откат с использования сервиса.
В случае, если что-то не будет получаться — спрашивайте в комментариях, найдем решение.
4. Решаем проблемы
В целом после выполнения вышеописанных пунктов у вас уже всё должно быть хорошо, но бывают нюансы, с которыми я и мои клиенты иногда сталкивались.
После начала использования Pi-Hole вы можете ощутить необычные чувства уменьшения объемов рекламы в ваших устройствах (особенно мобильных). Не пугайтесь, это так и задумано. Также некоторые сервисы могут перестать работать привычным вам путем и это потребует вашего участия в настройках. Например, сайт Aliexpress периодически пытается переадресовать вас на адрес best.Aliexpress.com, который находится в списке рекламных, и это блокирует весь доступ к Али.
Обнаружить такую проблему достаточно просто — если вы пытаетесь зайти на заблокированный сервер, ваш браузер показывает вам ошибку ERR_NAME_NOT_RESOLVED или подобную, а проверка в командной строке через nslookup в ответ выдает 0.0.0.0.
Решить проблему для конкретного сервера тоже несложно — достаточно добавить его в whitelist. Для этого заходим на http://pi.hole/admin, логинимся, в левом меню выбираем Whitelist и добавляем нужный нам сервер. Мне, например, пришлось открывать кроме упомянутого best.Aliexpress.com еще и s.click.Aliexpress.com, а также группу сайтов в домене miui.com для работы сервисов Xiaomi. Вам, вероятно, потребуется что-то своё. Но отследить, что именно надо открыть, не так и сложно — на главной странице Dashboard сервиса и в Query Logs вы всегда можете посмотреть, запросы на какие домены были заблокированы, и добавить их в whitelist.
Также регулярно бывает, что Pi-Hole инсталлируют на сервер, на котором уже работает какой-то веб-сервис. В этом случае вы не получите доступа к веб-интерфейсу управления. Как разруливать такой конфликт — зависит от конкретной ситуации, но основные пути решения — это:
- Если веб-сервер не использовался, а просто стоял по умолчанию — найти и отключить
- Если веб-сервер используется и вы умеете с ним работать — добавьте Pi-Hole веб-интерфейс отдельным ресурсом в ваш веб-сервер.
- Также вы можете посадить веб-интерфейс Pi-Hole на другой порт, исправив параметр server.port в файле /etc/lighttpd/lighttpd.conf. Но это потребует помнить, на каком порту работает сервер, поэтому я такие схемы не приветствую.
Заключение
Как и обещал, не написал ничего нового. Для многих читателей эта схема понятна и очевидна, и или уже внедрена, или не внедрена за ненадобностью. Многие другие построили что-то подобное по-другому, с использованием тех же или иных компонентов. Предлагаю рассматривать этот пост скорее как заготовку для вашего собственного решения, если оно вам когда-либо потребуется. Но, выполнив его как пошаговую инструкцию, вы уже получите сервис, закрывающий ваши базовые потребности в фильтрации рекламы и использовании DoH.
На вопросы, традиционно, отвечу и с настройками помогу.
P.S. Замечание от GennPen — при использовании DoH вы становитесь зависимыми от наличия у вас интернета и если на счету закончились деньги — то даже в личный кабинет провайдера зайти не сможете, чтобы их заплатить. Поэтому для таких сайтов в этом решении желательно прописать статические записи в Pi-Hole — это можно сделать в консоли командой pihole -a -r или просто вручную в файле /etc/hosts. В веб-интерфейсе для этого инструмент, к сожалению, не заложен.
Источник: habr.com