Установка блокировщика рекламы на Orange Pi Zero
Имеется одноплатный компьютер Orange Pi Zero с 512 мегабайтами оперативной памяти. Задача состоит в том, чтобы запустить на нём блокировщик рекламы на уровне DNS, который будет использоваться в домашней локальной сети и блокировать нежелательную рекламу, трекеры и прочую гадость.
Запись образа на карту
Для начала нужно установить ОС. Я буду устанавливать Armbian, так как он в основе своей Debian, а он мне нравится. Переходим на страницу загрузки, выбираем нашу плату и скачиваем необходимую нам версию системы. https://www.armbian.com/download/
После скачивания необходимо распаковать образ.
Для записи берём microSD карту памяти минимум на 16 Гб и при помощи программы etcher или подобной, записываем образ системы на карту. Я буду делать это при помощи dd.
Перед записью обязательно смотрим каким устройством отображается карта памяти в системе, если конечно у вас linux. У меня это /dev/sdb
1sudo 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
1ssh root@192.168.0.110
Ставим обновления
1apt update
2apt upgrade
Доставляем необходимые пакеты
1apt install mc vim net-tools nmap
И перезагружаемся.
Смотрим статус беспроводных интерфейсов
1nmcli radio wifi
Если необходимо, то отключаем wifi модуль. Так как он мне не нужен.
1nmcli radio wifi off
Отключаем wpa_supplicant.
1systemctl stop wpa_supplicant
2systemctl disable wpa_supplicant
Делаем запуск исполняемых файлов из /usr/sbin
от обычного пользователя. Не обязательно, но так удобней.
Для этого просто в файле .bashrc
в конце добавляем строку
1export PATH="${PATH}:/usr/sbin"
Выбор блокировщика рекламы
Есть несколько неплохих решений:
-
pi-hole
-
AdGuardHome
Оба решения блокируют запросы на уровне DNS по специальным спискам адресов или правилами фильтрации. У каждого конечно же есть свои плюсы и минусы. Доступна установка как из докер образа, так и со скрипта.
Я остановлю выбор на AdGuardHome, так как я его ещё не пробовал устанавливать и использовать. И у него больше интересного функционала которого нет у pi-hole
Установка AdGuardHome
1apt install curl
1curl -sSL https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh
Далее 5 простых шагов в инсталяторе и Готово.
Делаем systemd сервис для автоматического старта AdGuardHome.
Создаём файл /etc/systemd/system/AdGuardHome.service
со следующим содержанием:
1[Unit]
2Description=AdGuardHome
3After=network.target
4
5[Service]
6Type=simple
7WorkingDirectory=/opt/AdGuardHome
8ExecStart=/opt/AdGuardHome/AdGuardHome
9Restart=always
10
11[Install]
12WantedBy=multi-user.target
1systemctl daemon-reload
2systemctl start AdGuardHome
3systemctl status AdGuardHome
4systemctl enable AdGuardHome
Дополнительные чёрные списки DNS можно взять здесь https://firebog.net/
Также не забываем указать ip адрес Orange Pi на нашем роутере, что бы клиенты нашей сети при подключении к ней получали адрес нашего DNS сервера.