Table of Contents

Перехоплення DNS (DNS hijacking)

Вступ

Мета

Налаштування через веб-інтерфейс

Налаштуйте файрвол для перехоплення DNS-запитів:

  1. Перейдіть до LuCI → Network → Firewall → Port Forwards
  2. Натисніть Add і вкажіть:
    • Назва: Intercept-DNS
    • Обмежити сімейство адрес: IPv4 та IPv6
    • Протокол: TCP, UDP
    • Зона джерела: lan
    • Зовнішній порт: 53
    • Зона призначення: не вказується
    • Внутрішня IP-адреса: будь-яка
    • Внутрішній порт: будь-який
  3. Натисніть Save, потім Save and apply

Налаштування через командний рядок

Налаштуйте файрвол для перехоплення DNS-запитів:

# Перехоплення DNS
uci -q del firewall.dns_int
uci set firewall.dns_int="redirect"
uci set firewall.dns_int.name="Intercept-DNS"
uci set firewall.dns_int.family="any"
uci set firewall.dns_int.proto="tcp udp"
uci set firewall.dns_int.src="lan"
uci set firewall.dns_int.src_dport="53"
uci set firewall.dns_int.dest_port="53"
uci set firewall.dns_int.target="DNAT"
uci commit firewall
service firewall restart

Перевірка

Встановіть різні DNS-провайдери на клієнті та маршрутизаторі. Переконайтесь, що виявлений DNS-сервер збігається лише з тим, який налаштовано на маршрутизаторі.

Вирішення проблем

Зберіть і проаналізуйте таку інформацію:

# Журнал і статус
service firewall restart
 
# Поточна конфігурація
nft list ruleset
 
# Постійна конфігурація
uci show firewall

Додатково

DNS через HTTPS (DoH)

Використовуйте banIP для блокування DoH-трафіку, змушуючи клієнтів у LAN використовувати незашифрований DNS.

DNS через TLS (DoT)

Налаштуйте файрвол для блокування DoT-трафіку, змушуючи клієнтів у LAN використовувати звичайний DNS:

# Блокування DoT
uci -q delete firewall.dot_fwd
uci set firewall.dot_fwd="rule"
uci set firewall.dot_fwd.name="Deny-DoT"
uci set firewall.dot_fwd.src="lan"
uci set firewall.dot_fwd.dest="wan"
uci set firewall.dot_fwd.dest_port="853"
uci set firewall.dot_fwd.proto="tcp udp"
uci set firewall.dot_fwd.target="REJECT"
uci commit firewall
service firewall restart

Переспрямування DNS (DNS forwarding)

Налаштуйте переспрямування DNS до локального DNS-сервера за допомогою Dnsmasq. Припускається, що локальний DNS-сервер у тій же підмережі. Налаштуйте файрвол, щоб уникнути циклічної маршрутизації.

# Файрвол
uci set firewall.dns_int.src_mac="!11:22:33:44:55:66"
uci commit firewall
service firewall restart

Перенаправлення DNS (DNS redirection)

Не використовуйте Dnsmasq. Налаштуйте файрвол для перенаправлення DNS-трафіку на локальний DNS-сервер. Перенесіть DNS-сервер у окрему підмережу, щоб уникнути маскарадингу:

# Файрвол
uci set firewall.dns_int.name="Redirect-DNS"
uci set firewall.dns_int.family='ipv4'
uci set firewall.dns_int.dest_ip="192.168.2.2"
uci set firewall.dns_int.src_ip='!192.168.2.2'
uci commit firewall
service firewall restart
 
# Мережа
uci add_list network.lan.ipaddr="192.168.2.1/24"
uci commit network
service network restart