Привязать ограничение скорости DNS и значения для ответов в секунду и окна
В моем DNS-сервере named.conf я вижу
rate-limit {
responses-per-second 5;
window 5;
};
Что это на самом деле означает? И это может вызвать проблемы клиентов DNS? Это слишком узкая конфигурация?
4 ответа
Это ограничивает количество идентичных ответов, которые один DNS-клиент может получить за секунду. window 5
опция позволяет получить 5*5 ответов.
"Идентичные ответы" и "один DNS-клиент" - это несколько неочевидные термины, прочитайте их для получения дополнительной информации: http://web.archive.org/web/20140209100744/http://ss.vix.su/~vjs/rl-arm.html.
Как правило, полезно ограничивать скорость - может помочь вам в случае атаки DOS когда-нибудь. Значения по умолчанию должны быть в порядке в большинстве случаев.
Вы должны прочитать справочное руководство администратора для BIND 9.9.
В основном, responses-per-second
количество идентичных ответов, которые могут быть отправлены одному получателю в секунду. Определения хитры.
Один пункт назначения - это блок сетевых адресов, размер которого настроен в ipv4-prefix-length
или же ipv6-prefix-length
применимо. Итак, если ipv4-prefix-length
24, и оба 192.0.2.1
а также 192.0.2.2
запрашивают DNS-сервер, они разделяют эту квоту и могут отправлять только столько запросов между двумя из них.
Идентичные ответы - это ответы на запросы для определенного типа RR для определенного существующего имени или для несуществующего имени. Следующие запросы все разные:
IN A example.net.
IN A www.example.net.
IN AAAA example.net.
IN A nonexistent.domain.example.net.
Тем не менее, все следующие запросы идентичны (при условии nonexistent.domain.example.net.
и т.д. соответствуют своим именам)
IN A nonexistent.domain.example.net.
IN A nonexistent.domain2.example.net.
IN SOA other.nonexistent.domain.example.net.
window
усложняет вещи еще немного. Это количество секунд, за которое может быть наложена квота. Умножив window
а также responses-per-second
дает максимум, на который может быть положительной любая квота, или, в более общих чертах, пакетная мощность.
Чтобы дать общий пример:
Вы нерекурсивный, авторитетный сервер имен для example.net.
, Представьте, что за последние 10 секунд DNS-трафик вообще не был замечен, и конфигурация, о которой идет речь, применяется глобально. Следующие события происходят последовательно:
- Хост 198.51.100.1 отправляет 100 запросов для
IN NS example.net.
, 25 будет разрешено, а остальные 75 будут игнорироваться. - Хост 198.51.100.1 отправляет 100 запросов для
IN A nonexistent.example.net.
, 25 будет разрешено, а остальные 75 будут игнорироваться. - Хост 198.51.100.1 отправляет 1 запрос для
IN MX nonexistent-domain.example.net.
Он будет игнорироваться, так как был достигнут предел для несуществующих доменов. - Хост 198.51.100.1 отправляет 1 запрос для
IN A example.net.
, Это разрешено - Хосты с 192.0.2.1 по 192.0.2.50 отправляют по одному
IN NS example.net.
, 25 из них получают ответы, а остальные 25 игнорируются; квота для 198.51.100.0/24 не применяется к этим хостам, но они разделяют квоту для 192.0.2.0/24. - Проходит одна секунда
- Хосты с 192.0.2.26 по 192.0.2.50 повторяют свой запрос
IN NS example.net.
, 5 из них получают ответы, а остальные 20 игнорируются, поскольку квота пополняется только на 5 запросов в секунду.
iptables -A INPUT -p udp --dport 53 -m recent --set --name dnslimit
iptables -A INPUT -p udp --dport 53 -m recent --update --seconds 60 --hitcount 11 --name dnslimit -j DROP
IPtables может работать так же хорошо. Полностью удерживает трафик вне службы, если обнаружена атака.
Я не думаю, что это хорошая идея, чтобы ограничить оценку, спросите себя: вы также ограничиваете ответы веб-сервера? Как вы думаете, почему ответы DNS менее важны, чем ответы веб-серверов?
И даже если вы ограничите скорость, эти 5 запросов в секунду звучат очень низко.
У меня очень близкая конфигурация (без значения окна 5) на рабочем сервере привязки 9, который подвергается атаке усиления. Я выполнил захват пакетов DNS, и сервер правильно отвечал на законные запросы и не отвечал на запросы атаки. Это был захват 5000 пакетов за период около 30 минут. С моей точки зрения, эти ценности полностью предотвратили Атаку.