Назад | Перейти на главную страницу

Android, похоже, обходит правило брандмауэра, которое ограничивает запрос на порт 53

Я пытаюсь настроить свой Fios G1100 на принудительный DNS-запрос на мой внутренний DNS-сервер 192.168.1.131. На этом устройстве работает Pi-hole, который настроен на отправку DNS-запросов на 1.1.1.3 и 1.0.0.3. Это отлично сработало!

Но теперь я пытаюсь ограничить устройства в сети от обхода DNS-сервера DHCP путем ручной настройки DNS. Первоначально я наткнулся на эту статью, которая дает способ избежать этого обхода: Как запретить пользователям обход OpenDNS с помощью правил брандмауэра.

Итак, я настроил свой Fios G1100 со следующим правилом контроля доступа:

Насколько я понимаю, это правило позволит только 192.168.1.0, 192.168.1.1, 192.168.1.131 сделать DNS-запрос вне LAN.

Я перезагрузил G1100 и убедился, что запрошенный DNS все еще работает и маршрутизация через 192.168.1.131. Они есть.

Затем на моем Mac я вошел в System Preferences -> Network -> Wi-Fi:Advanced -> DNS и добавил 8.8.8.8 DNS-сервер. Конечно, DNS заблокирован на устройстве.

Однако, когда я делаю то же самое на своем Pixel 2 XL, запросы DNS разрешаются и 192.168.1.131 обойден. У меня отключены мобильные данные, а конфигурация Wi-Fi следующая:

Proxy:                  None
IP settings:            Static
Privacy:                Use device MAC
IP address:             192.168.1.120
Gateway:                192.168.1.1
Network prefix length:  24
DNS 1:                  1.1.1.1

Что позволяет Android обходить правило контроля доступа?

Как оказалось, в Android есть возможность DNS через TLS, иначе называемая Частный DNS. Настройка частного DNS будет использовать порт 853, а не порт 53.

DNS через TLS имеет свой собственный порт, порт 853. DNS через HTTPS использует порт 443, который является стандартным портом для трафика HTTPS.

В чем разница между DNS через TLS и DNS через HTTPS

Похоже, что порт 853 посвящен службам DNS, поэтому блокировка этого порта (так же, как и порт 53) не должна вызывать никаких проблем. Однако DNS через HTTPS использует порт 443, который не предназначен для служб DNS и поэтому не должен блокироваться.