December 25, 2022

Правильная установка AdGuardHome на openwrt.

Устанавливаем и запускаем службу скачасть.

opkg update
opkg install adguardhome

service adguardhome enable
service adguardhome start

Официальный пакет OpenWrt по умолчанию использует следующие пути и каталоги:

  1. Приложение AdGuardHomeбудет установлено в /usr/bin/AdGuardHome.
  2. Основной adguardhome.yamlфайл конфигурации хранится по адресу /etc/adguardhome.yaml.
  3. Рабочий каталог /var/adguardhomeпо умолчанию (по умолчанию /varэто символическая ссылка на /tmp).
  4. Рабочий каталог можно настроить в/etc/config/adguardhome
  5. Сценарий init.d предоставляется по адресу /etc/init.d/adguardhome.
  6. Настроенный по умолчанию рабочий каталог будет означать, что журналы запросов и статистика будут потеряны при перезагрузке. Чтобы избежать этого, вы должны настроить постоянный путь хранения раскоментировав строку по пути etc/config/adguardhome:

config adguardhome config
#/var/adguardhome

В этой инструкциии предполагается, что вы используете dnsmasq по умолчанию 53 порт. Действия ниже понизят dnsmasq только до внутреннего преобразователя DNS а роль днс сепаера будет выполнять AGH.


# Получите адреса IPv4 и IPv6 маршрутизатора и сохраните их в следующих переменных для использования во время сценария.

NET_ADDR=$(/sbin/ip -o -4 addr list br-lan | awk 'NR==1{ split($4, ip_addr, "/"); print ip_addr[1] }')
NET_ADDR6=$(/sbin/ip -o -6 addr list br-lan scope global | awk 'NR==1{ split($4, ip_addr, "/"); print ip_addr[1] }')

echo "Router IPv4 : ""${NET_ADDR}"
echo "Router IPv6 : ""${NET_ADDR6}"

# 1. Включите dnsmasq для выполнения PTR-запросов.
# 2. Уменьшите размер кэша dnsmasq, так как он будет предоставлять только информацию PTR/rDNS.

# 3. Отключите защиту от повторной привязки. Отфильтрованные ответы службы DNS от заблокированных доменов: 0.0.0.0 что приводит к тому, что dnsmasq заполняет системный журнал сообщениями об обнаруженных возможных атаках повторной привязки DNS
# 4. Переместите dnsmasq на порт 54.
# 5. Установите Ipv4 DNS, объявленный опцией 6 DHCP
# 6. Установите Ipv6 DNS, объявленный DHCP

uci set dhcp.@dnsmasq[0].noresolv="0"
uci set dhcp.@dnsmasq[0].cachesize="1000"
uci set dhcp.@dnsmasq[0].rebind_protection='0'
uci set dhcp.@dnsmasq[0].port="54"
uci -q delete dhcp.@dnsmasq[0].server
uci add_list dhcp.@dnsmasq[0].server="${NET_ADDR}"

#Удалить существующую конфигурацию, готовую к установке новых параметров.

uci -q delete dhcp.lan.dhcp_option
uci -q delete dhcp.lan.dns

# DHCP option 6:какой DNS (сервер доменных имен) включить в конфигурацию IP для разрешения
имен.

uci add_list dhcp.lan.dhcp_option='6,'"${NET_ADDR}"

#DHCP option 3: маршрутизатор по умолчанию или шлюз последней инстанции для этого интерфейса.

uci add_list dhcp.lan.dhcp_option='3,'"${NET_ADDR}"

#Установить анонсированный DNS IPv6

for OUTPUT in $(ip -o -6 addr list br-lan scope global | awk '{ split($4, ip_addr, "/"); pri

nt ip_addr[1] }')
do
echo "Adding $OUTPUT to IPV6 DNS"
uc

i add_list dhcp.lan.dns=$OUTPUT
done
uci commit dhcp
/etc/init.d/dnsmasq restart

Перейдите по адресу http://192.168.1.1:3000/ (если IP -адрес вашего маршрутизатора не 192.168.1.1, измените его соответствующим образом)