Привязать ограничение скорости DNS и значения для ответов в секунду и окна


8

В моем DNS-сервере named.conf я вижу

    rate-limit {
            responses-per-second 5;
            window 5;
    };

Что это на самом деле означает? И это может вызвать проблемы клиентов DNS? Это слишком узкая конфигурация?


2
Что касается «что это на самом деле означает», я бы порекомендовал соответствующий раздел в руководстве , а также см. Тот же раздел для будущей версии 9.10
Håkan Lindqvist

Ответы:


7

Это ограничивает количество идентичных ответов, которые один 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раз предел каждого второго. Это сообщение Вернона Шрайвера объясняет поведение алгоритма более подробно.
Кемпню

11

Вы должны прочитать справочное руководство администратора для 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-трафик вообще не был замечен, и конфигурация, о которой идет речь, применяется глобально. Следующие события происходят последовательно:

  1. Хост 198.51.100.1 отправляет 100 запросов для IN NS example.net.. 25 будет разрешено, а остальные 75 будут игнорироваться.
  2. Хост 198.51.100.1 отправляет 100 запросов для IN A nonexistent.example.net.. 25 будет разрешено, а остальные 75 будут игнорироваться.
  3. Хост 198.51.100.1 отправляет 1 запрос, IN MX nonexistent-domain.example.net. он будет проигнорирован, поскольку достигнут предел для несуществующих доменов.
  4. Хост 198.51.100.1 отправляет 1 запрос для IN A example.net.. Это разрешено
  5. Хосты с 192.0.2.1 по 192.0.2.50 отправляют по одному запросу IN NS example.net.. 25 из них получают ответы, а остальные 25 игнорируются; квота для 198.51.100.0/24 не применяется к этим хостам, но они разделяют квоту для 192.0.2.0/24.
  6. Проходит одна секунда
  7. Хосты с 192.0.2.26 по 192.0.2.50 повторяют свой запрос IN NS example.net.. 5 из них получают ответы, а остальные 20 игнорируются, поскольку квота пополняется только на 5 запросов в секунду.

4
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 может работать так же хорошо. Полностью удерживает трафик вне службы, если обнаружена атака.


классно! Я даже не думал о iptables. Но что это значит на английском. Я могу догадаться ... если какой-то IP-адрес отправляет 11 или более DNS-запросов блокировать их на 60 секунд, верно?
Красный Крикет

Нет, перевод таков: примите не более 11 пакетов в течение 60 секунд, отбросьте все остальные пакеты.
drcelus

1
У меня возникла проблема, после попытки применить ваше хорошее решение у меня была ошибка вроде: «iptables: применение правил брандмауэра: iptables-restore v1.4.7: -c счетчик пакетов не числовой Ошибка в строке: 17» Строка 17 - первая один из твоих. Я должен загрузить какой-то конкретный модуль?

первая строка должна быть следующей: iptables -A INPUT -p udp -m udp --dport 53 -m последние --set --name dnslimit --rsource

2
Я бы не сказал, что это «работает так же хорошо». Эта скорость ограничена без какой-либо идеи, если это на самом деле тот же самый запрос, который является спамом, или другие запросы, последний будет, скорее всего, законным трафиком.
Хокан Линдквист

0

Я не думаю, что это хорошая идея, чтобы ограничить оценку, спросите себя: вы также ограничиваете ответы веб-сервера? Как вы думаете, почему ответы DNS менее важны, чем ответы веб-серверов?
И даже если вы ограничите скорость, эти 5 запросов в секунду звучат очень низко.


2
Ограничение скорости ответов веб-сервера в некоторых случаях может быть плохой идеей. Но DNS - это в основном UDP, который легко подделывается (в отличие от http), поэтому ограничение скорости необходимо для предотвращения использования серверов имен при атаках с усилением или отражением.
arjarj

Если он не является открытым распознавателем, то я не думаю, что это хорошая цель для атак отражения / усиления, но вы правы. 5 рек / сек. Я все еще думаю, что это слишком мало.
Шандор Мартон

1
Он не указывает, является ли это рекурсивным или авторитетным сервером. Для авторитетного сервера ограничение скорости все еще важно. Кроме того, это не просто 5 запросов в секунду, это 5 одинаковых ответов в секунду и даже исправлено, если вы генерируете разные ответы. Обычно параметр 5 запросов в секунду подходит для привязки (поскольку законный сервер также задает другие промежуточные вопросы).
arjarj

Хорошо, я проверил документы и, как я вижу, ограничение скорости зависит от настроек клиента, а не от сервера. У меня сложилось впечатление, что привязка будет ограничена до 5req / s. На клиента 5req / sec это нормально.
Сандор Мартон,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.