AdGuard Home: персональный DNS-сервер с функцией блокировки рекламы

()

Разработчики сервиса блокировки рекламы AdGuard представили новый сервис: AdGuard Home, являющийся DNS-сервером, предназначенным для использования в небольшой сети. Основное отличие от других DNS-серверов это возможность блокировки рекламы, защиты от фишинга и сайтов для взрослых. Кроме того есть возможность использования DoH-серверов вместо DNS-серверов провайдера, что позволит защитить ваш DNS-трафик от перехвата и подмены.

AdGuard Home легко можно запустить на любой i386/amd64/arm-машине под под управлением дистрибутива Linux на базе Debian/Ubuntu и их производных. Рассмотрим установку AdGuard Home на домашний роутер на базе OrangePi One под управлением Armbian Bionic (установка и запуск на i386/amd64 машины под управленим Ubuntu Bionic в целом выполняется аналогично).

Первым делом необходимо скачать архив под вашу архитектуру. В случае OrangePi - arm. Далее пакет нужно распаковать командой:

tar zxfv AdGuardHome*.tar.gz -C /opt/

После этого сразу пытаемся запустить сервис командой:

/opt/AdGuardHome/AdGuardHome

При первом запуске будет предложено задать логин и пароль для веб-интерфейса сервиса. Разумеется стоит их задать. После этого будут созданы файлы конфигурации со значением по умолчанию. Закончится попытка запуска сообщением "listen tcp :53: bind: address already in use". Здесь кроется небольшая проблема: в настоящий момент AdGuard Home может "слушать" только на 0.0.0.0:53/udp, а в современных дистрибутивах на 127.0.0.53:53/udp работает systemd-resolved.

Для решения этой проблемы придётся останавливать и отключать systemd-resolved. Но так как это приведёт к отказу всей системы разрешения имён, то необходимо сразу подготовить запасной вариант (в данном случае AdGuard Home).

Создаём файл "/etc/systemd/system/AdGuardHome.service", описывающий наш новый юнит systemd. Файл имеет вид:

[Unit]
Description=AdGuardHome
After=network.target

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

[Install]
WantedBy=multi-user.target

Перечитываем конфигурацию systemd:

systemctl daemon-reload

Выключаем и останавливаем systemd-resolved:

systemctl disable systemd-resolved.service && systemctl stop systemd-resolved.service

Включаем и запускаем AdGuard Home:

systemctl enable AdGuardHome.service && systemctl start AdGuardHome.service

По умолчанию веб-интерфейс доступен только при обращении с localhost. Чтобы сделать его доступным из локальной сети необходимо отредактировать файл &quuot;/opt/AdGuardHome/AdGuardHome.yaml", указав в параметр "bind_host" IP-адрес, которым сервер подключен к локальной сети и перезапустить сервис:

systemctl restart AdGuardHome.service

Если что-то пойдёт не так то логи можно смотреть командой:

journalctl -xe -u AdGuardHome.service

По умолчанию AdGuard Home пересылает все запросы на DNS-Over-HTTPS сервера CloudFlare (имеют IP-адреса 1.1.1.1 и 1.0.0.1). В качестве альтернативы можно указать DOH-сервера Google (8.8.8.8 и 8.8.4.4). Сделать это можно в файле &quuot;/opt/AdGuardHome/AdGuardHome.yaml" или через веб-интерфейс (вкладка "Settings"), доступный по умолчанию на порту 3000/tcp.

Web-интерфейс AdGuard Home

В Web-интерфейсе AdGuard Home доступен детальный лог-запросов, возможность управлять подписками на списки блокировки, включение и выключение блокировок по этим спискам, а так же возможность управлять серверами, на которые будут пересылаться запросы.

Блокировка нежелательных доменов реализована просто: при попытке разрешить A-запись для заблокированного домена возвращается сообщение об отсутствии таковой.

На этом всё. Приятной работы!

Ключевые слова: adguard, adguardhome, adguard home, doh, dns over http, adblock, dns.

Подписаться на обновления: RSS-лента Telegram канал Twitter

Комментарии:

Anonymous 2018-11-30 00:08:45 (#)

А это сработает на OpenWrt?

MooSE 2018-12-11 15:33:34 (#)

А это сработает на OpenWrt?
Не пробовал:) Но пакетов под OpenWRT вроде как нет.
Новый комментарий

Жирный текстКурсивный текстПодчёркнутый текстЗачёркнутый текстПрограммный кодСсылкаИзображение




© 2006-2018 Вадим Калинников aka MooSE