UNIXAWESOME

Установка блокировщика рекламы на Orange Pi Zero

Jan. 4, 2021

Имеется одноплатный компьютер Orange Pi Zero с 512 мегабайтами оперативной памяти. Задача состоит в том, чтобы запустить на нём блокировщик рекламы на уровне DNS, который будет использоваться в домашней локальной сети и блокировать нежелательную рекламу, трекеры и прочую гадость.

Запись образа на карту

Для начала нужно установить ОС. Я буду устанавливать Armbian, так как он в основе своей Debian, а он мне нравится. Переходим на страницу загрузки, выбираем нашу плату и скачиваем необходимую нам версию системы. https://www.armbian.com/download/

После скачивания необходимо распаковать образ.

Для записи берём microSD карту памяти минимум на 16 Гб и при помощи программы etcher или подобной, записываем образ системы на карту. Я буду делать это при помощи dd.

Перед записью обязательно смотрим каким устройством отображается карта памяти в системе, если конечно у вас linux. У меня это /dev/sdb

sudo dd bs=4M if=Armbian_20.11_Orangepizero_buster_current_5.8.16.img of=/dev/sdb conv=fsync

После записи образа на карту вставляем её в Orange Pi и подключаем питание. Первый старт системы может занять чуть больше времени, где-то около 2 минут. Во время загрузки ip адрес будет получен по dhcp, поэтому заходим на наш роутер и смотрим какую айпишку взяла наша Orange Pi. У меня это 192.168.0.110

Базовые настройки системы

Далее подключаемся по ssh. Логин: root, пароль: 1234

ssh root@192.168.0.110

Ставим обновления

apt update
apt upgrade

Доставляем необходимые пакеты

apt install mc vim net-tools nmap

И перезагружаемся.

Смотрим статус беспроводных интерфейсов

nmcli radio wifi

Если необходимо, то отключаем wifi модуль. Так как он мне не нужен.

nmcli radio wifi off

Отключаем wpa_supplicant.

systemctl stop wpa_supplicant
systemctl disable wpa_supplicant

Делаем запуск исполняемых файлов из /usr/sbin от обычного пользователя. Не обязательно, но так удобней.

Для этого просто в файле .bashrc в конце добавляем строку

export PATH="${PATH}:/usr/sbin"

Выбор блокировщика рекламы

Есть несколько неплохих решений:

  • pi-hole

https://pi-hole.net/

  • AdGuardHome

https://adguard.com/en/adguard-home/overview.html

Оба решения блокируют запросы на уровне DNS по специальным спискам адресов или правилами фильтрации. У каждого конечно же есть свои плюсы и минусы. Доступна установка как из докер образа, так и со скрипта.

Я остановлю выбор на AdGuardHome, так как я его ещё не пробовал устанавливать и использовать. И у него больше интересного функционала которого нет у pi-hole

Установка AdGuardHome

apt install curl
curl -sSL https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh

Далее 5 простых шагов в инсталяторе и Готово.

Делаем systemd сервис для автоматического старта AdGuardHome.

Создаём файл /etc/systemd/system/AdGuardHome.service со следующим содержанием:

[Unit]
Description=AdGuardHome
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/AdGuardHome
ExecStart=/opt/AdGuardHome/AdGuardHome
Restart=always

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start AdGuardHome
systemctl status AdGuardHome
systemctl enable AdGuardHome

Дополнительные чёрные списки DNS можно взять здесь https://firebog.net/

Также не забываем указать ip адрес Orange Pi на нашем роутере, что бы клиенты нашей сети при подключении к ней получали адрес нашего DNS сервера.