Имеется одноплатный компьютер 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
- 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 сервера.