Tooreagen Posted December 15, 2023 Всем привет! Есть рекурсивный DNS сервер для своей сети, подскажите какие правила неверные, что подкорректировать, чего добавить. Никто кроме моих клиентов не может пользоваться DNS сервером. Условно подсеть моих клиентов 111.222.333.444. Комп админа 11.11.11.11, zabbix server 172.16.35.253 Спасибо! sudo iptables -S -P INPUT DROP -P FORWARD ACCEPT -P OUTPUT ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -s 11.11.11.11/32 -p tcp -m tcp --dport 22 -m state --state NEW -m tcp -j ACCEPT -A INPUT -s 111.222.333.444/23 -i vlan41 -p udp -m udp --dport 53 -j ACCEPT -A INPUT -s 111.222.333.444/23 -i vlan41 -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -s 172.16.35.253/32 -p tcp -m tcp --dport 10050 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ipaddr.ru Posted December 15, 2023 9 hours ago, Tooreagen said: Никто кроме моих клиентов не может пользоваться DNS сервером А какая цель? Хотите открыться всему интернету? Плюс непонятно, ваш резолвер в мир за DNS-ом как ходить будет? С другого интерфейса? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Tooreagen Posted December 18, 2023 Цель - выдавать DNS абонентам в сети и больше никому, т.е. чтобы мои пользователи им пользовались. Открываться всему интернету как раз и не нужно. Интерфейс один vlan41, он смотри в мир и к нему подключаются. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
myth Posted December 19, 2023 назначить интерфейс для прослушивания в конфиге днс не предлагать? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Tooreagen Posted December 19, 2023 Ну интерфейс один - смотрит наружу, на нем белый IP. Сервер доступен из локалки. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ipaddr.ru Posted December 19, 2023 Повторю вопрос - вот ваш резолвер пойдет за разрешением имени к руту, например, a.root-servers.net. Запрос отправит с порта 12345, это будет UDP на порт 53. Ответ придёт на этот же порт. И что, отфильтруется же? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
disappointed Posted December 19, 2023 Всё нормально с правилами. Пойдёт. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Tooreagen Posted December 20, 2023 Блин почему у меня цитирование не работает? По поводу вопроса: Цитата Повторю вопрос - вот ваш резолвер пойдет за разрешением имени к руту, например, a.root-servers.net. Запрос отправит с порта 12345, это будет UDP на порт 53. Ответ придёт на этот же порт. И что, отфильтруется же? Разве правило: -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT Не примет в ответ уже отправленный запрос? Ну как бы сервер работает, просто не знаю насколько все безопасно и правильно. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jffulcrum Posted December 20, 2023 Как вы будете разруливать, когда большой ответ приходит от вышестоящего ресольвера не в UDP, а в TCP? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
boco Posted December 20, 2023 не надо фаервола, используйте acl самого резолвера Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ipaddr.ru Posted December 20, 2023 5 hours ago, Tooreagen said: Разве правило: -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT Не примет в ответ уже отправленный запрос? Conntrack разве работает с UDP? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
disappointed Posted December 20, 2023 2 часа назад, ipaddr.ru сказал: Conntrack разве работает с UDP? sysctl -a | grep conntrack | grep udp net.netfilter.nf_conntrack_udp_timeout = 30 net.netfilter.nf_conntrack_udp_timeout_stream = 120 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sirmax Posted December 26, 2023 В 20.12.2023 в 11:01, jffulcrum сказал: Как вы будете разруливать, когда большой ответ приходит от вышестоящего ресольвера не в UDP, а в TCP? А вы такие случаи видели? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted December 27, 2023 Цитата Цель - выдавать DNS абонентам в сети и больше никому, т.е. чтобы мои пользователи им пользовались. В iptables разрешайте доступ к легитимным публичным сервисам (udp/53). Доступ на уровне подсетей (только для своих пользователей) делайте в ACL самого DNS-сервера. Это будет проще в обслуживании и более гибко. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jffulcrum Posted December 27, 2023 14 часов назад, sirmax сказал: А вы такие случаи видели? Да, тут я перебрал. Сначала ответ придет в UDP с частичным содержимым и флагом TC в конце. Уже клиент сам должен в TCP будет запросить, отдельным соединением. Впрочем, сейчас-то вообще EDNS все решает, и без TCP. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted December 27, 2023 On 12/20/2023 at 10:27 AM, boco said: не надо фаервола, используйте acl самого резолвера Это заметно затратнее по ресурсам. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sirmax Posted December 27, 2023 4 часа назад, jffulcrum сказал: Да, тут я перебрал. Сначала ответ придет в UDP с частичным содержимым и флагом TC в конце. Уже клиент сам должен в TCP будет запросить, отдельным соединением. Впрочем, сейчас-то вообще EDNS все решает, и без TCP. Я бы хотел понимать процент таких случаев, я вот не припоминаю, попробую нетфлоу посмотреть наверно, но это мне кажется мизер Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted December 27, 2023 57 minutes ago, sirmax said: Я бы хотел понимать процент таких случаев, я вот не припоминаю, попробую нетфлоу посмотреть наверно, но это мне кажется мизер Это где то в статистике сервера надо смотреть, у unbound куча всяких счётчиков есть. Из практики я не заморачивался такими деталями отдельно, просто разрешил все исходящие с хоста, EDNS тоже включён. За лет 10+ unbound резолвил практически всё, в домашнем применении. Было случаев наверное 3 когда требовалось что то руками править. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ipaddr.ru Posted December 27, 2023 9 hours ago, jffulcrum said: Сначала ответ придет в UDP с частичным содержимым и флагом TC в конце. Уже клиент сам должен в TCP будет запросить, отдельным соединением. Впрочем, сейчас-то вообще EDNS все решает, и без TCP Вы не можете предсказать, когда DNSSEC-enabled сервер захочет с вами TCP. Или когда того же захочет авторитативный сервер с большой ресурсной записью. Исходя из этого, tcp/53 для ответов должен быть разрешён всегда. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jffulcrum Posted December 28, 2023 3 часа назад, ipaddr.ru сказал: Вы не можете предсказать, когда DNSSEC-enabled сервер захочет с вами TCP. Я специально сниффером посмотрел. Не инициирует DNS сервер TCP соединение с клиентом, его всегда инициирует клиент, получив сперва урезанный ответ в UDP. С включенным conntrack все будет улажено в iptables автоматически. Конкретно DNSSEC вообще скажет - гони EDNS0, и все пойдёт в UDP. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
boco Posted December 28, 2023 В 27.12.2023 в 22:35, Ivan_83 сказал: Это заметно затратнее по ресурсам. за счет чего? и насколько затратнее? топикстартеру я бы вообще рекомендовал отключить фаервол: зябликс и рекурсер имеют свои acl, а ssh прикрывается в hosts.allow. зато не надо каждый пакет через фаер прогонять и не наступишь на граблю с размером коннтрак. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sirmax Posted December 28, 2023 26 минут назад, boco сказал: за счет чего? и насколько затратнее? топикстартеру я бы вообще рекомендовал отключить фаервол: зябликс и рекурсер имеют свои acl, а ssh прикрывается в hosts.allow. зато не надо каждый пакет через фаер прогонять и не наступишь на граблю с размером коннтрак. Это была рубрика «вредные советы» ? уж простите за сарказм Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ipaddr.ru Posted December 28, 2023 17 hours ago, jffulcrum said: Не инициирует DNS сервер TCP соединение с клиентом, его всегда инициирует клиент, получив сперва урезанный ответ в UDP Да, вы правы. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
boco Posted December 29, 2023 7 часов назад, sirmax сказал: Это была рубрика «вредные советы» ? нет. я предполагаю, что кроме зябликс-агента, рекурсера и sshd никто сеть не слушает. в чем вред? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ixi Posted December 29, 2023 12 часов назад, boco сказал: зябликс и рекурсер имеют свои acl А там tcp-reset или drop? 12 часов назад, sirmax сказал: и не наступишь на граблю с размером коннтрак. Коннтрак в этом конфиге и не нужен, достаточно изменить порядок правил 4 часа назад, boco сказал: в чем вред? Ни в чём, конечно же. Можно спокойно жить и с открытым ssh и всё будет нормально. Но висящее на стене ружьё обязательно выстрелит. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...