понедельник, 22 декабря 2014 г.

Небольшое исследование работы DNS+DHCP в MikroTik

В своё время с товарищами столкнулись с такой багой (и не говорите, что это фича) в сабже, что опция Allow Remote Requests заставляет слушать DNS-сервис на всех портах маршрутизатора. Таким образом при включении сервиса мы становились отличным хостом для атаки ботами и прочей нечистью из Интернетов.


Всё нижеописанное происходило в версии RouterOS v6.23. Акцентирую внимание, т.к. этот вендор любит фундаментально менять логику работы, синтаксис и расположение утилит даже внутри мажорной версии.

Первоначально решили это созданием блокирующего правила в iptables Firewall.
add action=drop chain=input dst-port=53 in-interface={ваш WAN} protocol=udp
add action=drop chain=input dst-port=53 in-interface={ваш WAN} protocol=tcp
Да, решение в лоб, особо не парились.
Сегодня посетила такая мысль: а зачем вообще мне дома нужен кэширующий DNS-сервер?
Никаких нагрузок или задач, которые требовали бы такой сервис, у меня дома естественно нет. Сеть настраивается по DHCP, статические настройки нигде не используются.
Полез в настройки через WinBox, IP -> DHCP Server -> Networks.
Для всех подсетей у меня было выставлено поле DNS Servers, соответствующее IP-адресу роутера для неё. Очистил поле.
Результат: клиент получает всё тот же адрес роутера, но добавились ещё и адреса DNS-серверов провайдера, полученные от него через PPPoE соединение. В моём случае это было итого 3 сервера.
Удивился логике. Это был не совсем тот результат, который  ожидал.
Полез IP->DNS->Allow Remote Requests, снял галочку, сделал ipconfig /renew
На этот раз DHCP сервер отдал только адреса серверов DNS провайдера. PROFIT

Совсем неочевидное поведение, возможно описано где-то в недрах документации. но может кому-то пригодится.

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

Отправить комментарий