PowerDNS как внутренний преобразователь и закрытый рекурсор
У меня есть два недавно настроенных сервера PowerDNS. Один действует как хозяин, второй - как раб. На каждом из них работает два демона: powerdns и powerdns-recursor. Первый связан с портом 5300 tcp, второй - с портом 53. Я добавил следующие правила в recursor.conf (1.2.3.4 - это IP-адрес сервера):
forward-zones=.=1.2.3.4:5300
forward-zones-recurse=.=1.2.3.4:5300;8.8.8.8
Благодаря им мои серверы разрешают домены, которые добавляются как внутри, так и во внешних доменах, таких как google.com. Единственная проблема заключается в том, что если я разрешу отправлять рекурсивные запросы только своим локальным IP-адресам, внутренние домены не будут доступны для всего мира. С другой стороны, если я установлю allow-from
параметр 0.0.0.0/0 в recursor.conf, мои серверы будут уязвимы для атак с усилением DNS. Что я должен делать? Я хочу разрешить всем IP-адресам запрашивать у моих серверов домены, на которые они имеют полномочия, но запрещать рекурсивные запросы.
1 ответ
Для сценария, который вы описываете в этом вопросе, когда клиенты ожидают рекурсии, а другие ожидают достоверных ответов, pdns-rec - это не то, что вы должны представить миру в первую очередь.
Читая немного между строк, я думаю, что на самом деле вопрос в том, как запустить pdns-auth и pdns-rec с одного IP-адреса теперь, когда pdns-auth больше не имеет опции конфигурации рекурсора, которая использовала существующий в прошлое.
Для этого вам, вероятно, стоит обратить внимание на руководство PowerDNS по миграции с использования рекурсии на Authoritative Server на использование рекурсоров.
То, к чему сводится это руководство для вашего сценария, это, во-первых, самый простой и, пожалуй, лучший подход - просто разместить эти сервисы на разных IP-адресах, но с предложенным альтернативным решением, прикрепив dnsdist перед вашими pdns-auth и pdns -rec экземпляры (dnsdist прослушивает порт 53), позволяя dnsdist передавать запросы от клиентов, которые должны иметь рекурсию в пул с вашим экземпляром pdns-rec, и все другие запросы в пул с вашим экземпляром pdns-auth.