Защита от DNS Amplification attack (BIND)

Вся информация и фото, взяты с http://blog.asidorov.name/2013/10/dns-amplification-attack-bind.html

Существует такой вид DDOS, как DNS Amplification attack. В этой заметке я опишу, как защититься от него на примере BIND. Данная заметка актуальна для Debian 5/6/7Ubuntu 10.04/12.04 и CentOS 5.4-6.4 — на этих системах я тестировал лично.

1. Отключить рекурсивные запросы

Debian/Ubuntu:
# vim /etc/bind/named.conf.options

CentOS:
# vim /etc/named.conf

И добавляем в секцию Options { … } или если ее нет, добавляем и саму секцию, запись:
recursion no;

После чего перезапускаем BIND:
Debian/Ubuntu:
# sudo /etc/init.d/bind restart

CentOS:
# service named restart

2. Разрешаем рекурсивные запросы, только для локалхосте:

Debian/Ubuntu:
# vim /etc/bind/named.conf.options
CentOS:
# vim /etc/named.conf
И добавляем в секцию Options { … } или если ее нет, добавляем и саму секцию, записи:
recursion yes;
allow-recursion {localhost; }
Или же можно записать:
allow-recursion { «none»; }
Но данная запись мне кажется излишней, так как она эквивалентна записи в первом примере.

И перезапускаем BIND:
Debian/Ubuntu:
# sudo /etc/init.d/bind restart

CentOS:
# service named restart


3. Защита от AXRF-возвращения

Так же, что бы случайно не отдать все свои зоны злоумышленнику AXFR-возвращение:
Debian/Ubuntu:
# vim /etc/bind/named.conf.options
CentOS:
# vim /etc/named.conf

И добавляем в секцию Options { … } или если ее нет, добавляем и саму секцию, запись:
allow-transfer { none; } — Если у нас нет вторичных серверов DNS.
Или
allow-transfer { 192.168.1.100; } — Указав IP-адрес вторичного сервера.

И перезапустим BIND:
Debian/Ubuntu:
# sudo /etc/init.d/bind restart
CentOS:
# service named restart
Теперь получить ваши зоны сможет либо никто (none) либо определенный DNS-сервер (192.168.1.100).

Удачи в работе с DNS!