В этой статье я кратко опишу принцип DDoS атак DNS Amplification.
Так как по UDP с DNS сервером не устанавливается соединение, а только по TCP. То злоумышленник может слать UDP запросы с поддельным IP адресом, а DNS сервер будет отвечать на этот поддельный IP адрес (IP адрес жертвы). То есть злоумышленник может лично либо с помощью ботов запросить у одного или нескольких публичных DNS серверов информацию про какой нибудь домен подставив адрес жертвы как адрес источника запроса и публичные DNS сервера будут отвечать на адрес жертвы. Чем больше информации в ответе, тем больше трафика будет идти на жертву, таким образом можно заполнить интернет канал жертвы в несколько десятков гигабит.
Проверить DNS сервер можно на специальных сервисах, например тут openresolver.com
Если DNS сервер используется для локальной сети как кэширующий, то необходимо ограничить к нему доступ и рекурсивные запросы через ACL, например как я описывал в статье:
Установка и настройка DNS-сервера BIND9
IPTables правила для DNS
Если DNS сервер только авторитативный, то необходимо отключить рекурсивные запросы:
allow-transfer {"none";};
allow-recursion {"none";};
recursion no;
Также при необходимости на авторитативном DNS сервере можно настроить функцию RRL (Response Rate Limiting) для ограничения количества ответов и запросов к серверу для каждого IP адреса, также подобное ограничение можно сделать через IPTables.
Также необходимо правильно настроить логи, чтобы не заполнить ими все дисковое пространство и выявить флуд, смотрите мою статью:
Настройка логов Bind9
Если трафик DDoS атаки больше вашего uplink канала, то вышестоящие провайдеры зачастую могут добавить IP адрес вашего сервера в BGP blackhole, чтобы избежать переполнения канала и после этого ваш IP адрес будет не доступен.