LINUX.ORG.RU
решено ФорумAdmin

iptables не блокирует соединения на 53-й порт с внешних ip

 , ,


0

1

Всем привет!

Есть сервер на centos 7 с dnsmasq, клиенты выходят через него в сеть. Сегодня разбирался в проблемах с доступом к App Store у клиентов и параллельно обнаружил, что почему-то не блокируется доступ к DNS на сервере с внешних ip, т.е. берем ip нашего сервера centos, вписываем в настройках сетевого соединения на любом устройстве, которое не в нашей сети, и видим, что сервер ресолвит запросы.

iptables -S:

-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-N f2b-zzzzzz
-A INPUT -p udp -m udp --dport 443 -j ACCEPT
-A INPUT -p udp -m multiport --dports 443 -j f2b-zzzzzz
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport xxxxx -j ACCEPT
-A INPUT -p tcp -m tcp --dport xxxxx -m state --state NEW -m recent --set --name ssh --mask 255.255.255.255 --rsource
-A INPUT -p tcp -m tcp --dport xxxxx -m state --state NEW -m recent ! --rcheck --seconds 60 --hitcount 4 --name aaaaa --mask 255.255.255.255 --rsource -j ACCEPT
-A INPUT -s 10.8.0.0/24 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -s 10.8.0.0/24 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j DROP
-A INPUT -p tcp -m tcp --dport 53 -j DROP
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 10.8.0.0/24 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-port-unreachable
-A f2b-openvpn -j RETURN


Ответ на: комментарий от Anoxemian

у тебя типичная проблема XY. в силу полнейшего отсутствия понимания что происходит ты затыкаешь проблему ненужными телодвижениями. открой конфиг днс сервера и задай аопросы себе: какого фига он биндится на все интерфейсы, включая внешку? какого фига он отвечает на запросы кому попало а не только разрешенным хостам/подсетям. iptables тебе вообще ненужен.

Anoxemian ★★★★★ ()
Ответ на: комментарий от Anoxemian

В конфиге dnsmasq:

listen-address=127.0.0.1, 10.8.0.1 

Добавил

except-interface=eth0

Аналогично.

А что плохого в решении задачи при помощи iptables? Ведь его дело блокировать всё, что явно не разрешено: глобально, на уровне всех сервисов, уменьшая риски misconfiguration этих самых сервисов.

P.S.

администратор уровень бох

К сожалению, не у всех с рождения фамилия Linux :)

JohnnyW ()
Ответ на: комментарий от JohnnyW

Проблема решена.

Оказалось, что была ещё фильтрация обращений к DNS на уровне Mikrotik’а: когда клиентский девайс пытается выйти в нет не через сервер с dnsmasq, dns lookup идет не напрямую к dns серверу, указанному в настройках клиентского девайса, а через ещё один сервер. Но я пока не понял, почему в firewall было видно, что dns lookup шел через первоначальный сервер (centos7+dnsmasq), хотя коннекта к нему не было.

JohnnyW ()
Ответ на: комментарий от Anoxemian

какого фига он биндится на все интерфейсы, включая внешку?

Чтобы оно работало нормальным DNS.

какого фига он отвечает на запросы кому попало а не только разрешенным хостам/подсетям.

Есть разные типы «отвечаний». Если есть свой домен, то оно должно отвечать, но не рекурсивно.

vodz ★★★★★ ()
Ответ на: комментарий от vodz

Если есть свой домен, то оно должно отвечать, но не рекурсивно.

Вы, конечно, правы, но судя вот по этому:

Есть сервер на centos 7 с dnsmasq

речи о своем домене тут не идет. IMHO, dnsmasq обычно не ставят для обслуживания своих зон.

Serge10 ★★★★★ ()
Ответ на: комментарий от Serge10

речи о своем домене тут не идет. IMHO, dnsmasq обычно не ставят для обслуживания своих зон.

dsnmasq - fake DNS, но таки «обслуживает» локальные псевдозоны, но методом скорее как hosts через сеть, а не полноценными зонами. Отсюда вытекает, что он должен быть настроен как рекурсирный для локалки и прокси (кеш там никудышный) для резольвинга внешки. Справедливости ради особо телодвижений для этого делать не надо, это надо сильно постараться чтобы это поведение сломать, ибо это там правильно делается по умолчанию.

vodz ★★★★★ ()