В моем DNS-сервере named.conf я вижу
rate-limit {
responses-per-second 5;
window 5;
};
Что это на самом деле означает? И это может вызвать проблемы клиентов DNS? Это слишком узкая конфигурация?
В моем DNS-сервере named.conf я вижу
rate-limit {
responses-per-second 5;
window 5;
};
Что это на самом деле означает? И это может вызвать проблемы клиентов DNS? Это слишком узкая конфигурация?
Ответы:
Это ограничивает количество идентичных ответов, которые один DNS-клиент может получить за секунду. window 5
Опция позволяет взрыв 5 * 5 ответов.
«Идентичные ответы» и «один DNS-клиент» - это несколько неочевидные термины, прочитайте их для получения дополнительной информации: http://web.archive.org/web/20140209100744/http://ss.vix.su/~ vjs / rl-arm.html .
Как правило, полезно ограничивать скорость - может помочь вам в случае атаки DOS когда-нибудь. Значения по умолчанию должны быть в порядке в большинстве случаев.
window
используется только для контроля временного интервала, в течение которого отслеживаются «идентичные ответы», отправленные каждому «отдельному DNS-клиенту». В BIND 9 Справочное руководство администратора гласит: код [РРЛ клиента] счет не может стать более положительным , чем на второй предел или более отрицательным , чем window
раз предел каждого второго. Это сообщение Вернона Шрайвера объясняет поведение алгоритма более подробно.
Вы должны прочитать справочное руководство администратора для 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-трафик вообще не был замечен, и конфигурация, о которой идет речь, применяется глобально. Следующие события происходят последовательно:
IN NS example.net.
. 25 будет разрешено, а остальные 75 будут игнорироваться.IN A nonexistent.example.net.
. 25 будет разрешено, а остальные 75 будут игнорироваться.IN MX nonexistent-domain.example.net.
он будет проигнорирован, поскольку достигнут предел для несуществующих доменов.IN A example.net.
. Это разрешеноIN NS example.net.
. 25 из них получают ответы, а остальные 25 игнорируются; квота для 198.51.100.0/24 не применяется к этим хостам, но они разделяют квоту для 192.0.2.0/24.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 запросов в секунду звучат очень низко.