Я использую PowerDNS Recursor в среде местного интернет-провайдера. Рекурсия разрешена только из нашего диапазона IP, но у меня возникла странная проблема. ПК наших клиентов продолжает атаковать наш DNS-сервер такими запросами, как:
15:43:38.473842 IP [CLIENT_IP].51097 > [DNSSERVER_IP].domain: 42318+ A? qhmrazabkvghwtgv.www.dl26.com. (47)
15:43:38.474161 IP [CLIENT_IP].40825 > [DNSSERVER_IP].domain: 14848+ A? yzqxqtklodgzuv.www.dl26.com. (45)
15:43:38.474443 IP [CLIENT_IP].34094 > [DNSSERVER_IP].domain: 35692+ A? inahybijsvqt.www.sf97.net. (43)
15:43:38.474953 IP [CLIENT_IP].39432 > [DNSSERVER_IP].domain: 7105+ A? kpkfgrsxihst.www.tpa.net.cn. (45)
Удаленный домен почти всегда .cn, но остальная часть доменного имени постоянно меняется. Самое простое решение - добавить правило на основе hashlimit для iptables, но клиенты находятся за NAT, поэтому трафик, поступающий на DNS, помечается IP-адресом концентратора. Я пробовал также использовать зону spywaredomains, но удаленный домен постоянно меняется, поэтому я не могу его заблокировать. Количество запросов с доменами спама приводит к чрезмерному разрастанию кэша PowerDNS, а также значительно увеличивает счетчик remote_timeout. Есть ли способ защититься от такого трафика и заставить DNS снова работать как шарм?
многие установки PowerDNS в Linux настроены на использование (намного) большего количества файловых дескрипторов, чем доступно на самом деле ... Для исправления есть четыре варианта:
- Уменьшите max-mthreads до 512 (или потоков до 1, а max-mthreads до 1024) (max-mthreads был введен в Recursor 3.2; но если вы используете старую версию, обновите ее!)
- Перед запуском выполните ‘ulimit -n 32768’ (возможно, поместите это в сценарий /etc/init.d/). Нет причин пропускать этот номер.
- Изучите значения по умолчанию в /etc/security/limits.conf
- Применить патч в https://github.com/Habbie/pdns/commit/e24b124a4c7b49f38ff8bcf6926cd69077d16ad8
Из http://blog.powerdns.com/2014/04/03/f Further-dos-guidance-packages-and-patches-available/ (перефразируя):
Установите рекурсор из git head (снимки по разным URL-адресам, перечисленным в статье, или найдите его самостоятельно по адресу https://autotest.powerdns.com/), или вовремя выпустили версии 3.5.4 или новее. Затем установите
server-down-max-fails
на подходящий номер. Мы рекомендуем 32 или 16 при сильной атаке.
Это одна из распространенных атак на авторитетные DNS-серверы, которые наблюдались в последнее время. (не путать с более популярными атаками с усилением DNS) Жертвами являются серверы имен, отвечающие за домен, ближайший к TLD - tpa.net.cn
, sf97.net
и т. д. Стратегия атаки заключается в генерации запросов, которые не будут кэшироваться.
Это не просто вопрос блокировки отдельного клиента. Если вы видите это, обычно это симптом одного из следующих факторов:
По моему опыту, вам необходимо определить, что из этого имеет место, и предпринять шаги для уменьшения векторов злоупотреблений в вашей сети.
Что вы можете сделать, так это заблокировать доступ этого клиента к серверу имен. Альтернативным решением может быть очистка клиентских систем. Лично я предлагаю сделать второе, первое было бы хорошо, только если вы перенаправляете клиента на IP-адрес, на котором есть страница, предупреждающая его и помогающая решить проблему.