Summary: | [DNS Amplification Attacks] настройки по-умолчанию | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Sergey Y. Afonin <asy> | ||||
Component: | bind | Assignee: | placeholder <placeholder> | ||||
Status: | ASSIGNED --- | QA Contact: | qa-sisyphus | ||||
Severity: | enhancement | ||||||
Priority: | P3 | CC: | evg, george, glebfm, ldv, placeholder, sem, slev | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
Attachments: |
|
Description
Sergey Y. Afonin
2013-11-12 11:47:42 MSK
Так что по поводу allow-query/allow-recursion ? Хотя, есть и другой путь для ограничения данного безобразия: Bug 30398 (В ответ на комментарий №0)
> Мне кажется, что стоит расскомментировать в конфиге по-умолчанию allow-query {
> localnets; } и allow-recursion { localnets; }. И, возможно, добавить
> allow-query-cache { localnets; } (это в 9.4 появилось). Может быть, ещё описать
> acl со списком "10.0.0.0/8; 100.64.0.0/10; 172.16.0.0/12; 192.168.0.0/16;" и,
> тоже, добавить в allow-query/allow-recursion/allow-query-cache. Устал лазить и
> добавлять/раскомментировать...
М-м-м. Добавил allow-query-cache в комментарий :). Опишите, пожалуйста, когда ваше решение применимо, и покажите работающий вариант конфигурационного файла с acl. Менять настройку по умолчанию не хочется, но можно же и control написать.
Настройку по-умолчанию менять необходимо, так как сейчас Bind - сразу готовый усилитель. Слово "localnets" означает адреса, входящие во все сети, поднятые на интерфейcах, так что, в подавляющем большинстве, этого достаточно. То есть, если у DNS-сервра eth0: 10.1.1.1/8 eth1: 192.168.1.200/24 "localnets" будет соответствовать "10.0.0.0/8; 192.168.1.0/24". Если в локалке внутреннего маршрутизатора нет, то все локальные клиенты получат доступ. allow-query { any; }; нужно только в случае, если DNS поддерживает публичные зоны. Это, тоже, не очень частый случай. Для корпоративного или локального кэша "localnets" более, чем достаточно, и тут. allow-query-cache, как выяснилось при более подробном чтении, не очень нужен: если не сказано иное, этот параметр соответствует allow-recursion (и наоборот): http://kb.isc.org/article/AA-00503/0/Whats-the-difference-between-allow-query-cache-and-allow-recursion.html Created attachment 6177 [details]
Предлагаемый вариант bind.options.conf
Вот конфиг. Если "localnets" кажется излишне ограниченным всё равно, можно раскомментировать и добавить acl "privatenets_v4" и добавить везде к "localnets".
allow-query { localnets; privatenets_v4; };
По поводу "100.64.0.0/10" - это новый приватный диапазон, но рекомендован для операторов. Может быть, его стоит и убрать. Если надо кому - добавят...
imho лучше вообще сделать всё по умолчанию localhost-only, либо allow-query { localhost; }; allow-recursion { localhost; }; либо вообще listen-on { 127.0.0.1; }; А сисадмин все равно сам настроит, что куда раздавать. (In reply to comment #5) > либо вообще > listen-on { 127.0.0.1; }; Без "allow-query { localhost; }; allow-recursion { localhost; };" велика вероятность, что listen-on закомментируют, и будет то же самое. Разве что, рядом ссылку разместить на http://www.us-cert.gov/ncas/alerts/TA13-088A с кратким пояснением. (In reply to comment #0) > allow-recursion { localnets; } Интересно... Напоминаю: в конфиге содержится вот такое: /* * Specifies which hosts are allowed to make recursive queries * through this server. If not specified, the default is to allow * recursive queries from all hosts. Note that disallowing recursive * queries for a host does not prevent the host from retrieving data * that is already in the server's cache. */ //allow-recursion { localnets; }; Сегодня поставил bind-9.9.8-alt4, и он не пускает по-умолчанию (скопировано из options.conf именно этого пакета). В какой-то момент умолчание поменяли ? Тогда комментарий уже не соответствует действительности, получается. |