Bug 29572 - [DNS Amplification Attacks] настройки по-умолчанию
: [DNS Amplification Attacks] настройки по-умолчанию
Status: ASSIGNED
: Sisyphus
(All bugs in Sisyphus/bind)
: unstable
: all Linux
: P3 enhancement
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2013-11-12 11:47 by
Modified: 2016-10-21 16:39 (History)


Attachments
Предлагаемый вариант bind.options.conf (2.40 KB, application/octet-stream)
2014-11-19 20:08, Sergey Y. Afonin
no flags Details


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2013-11-12 11:47:42
Мне кажется, что стоит расскомментировать в конфиге по-умолчанию 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. Устал лазить и
добавлять/раскомментировать...
------- Comment #1 From 2014-10-14 11:40:20 -------
Так что по поводу allow-query/allow-recursion ? Хотя, есть и другой путь для
ограничения данного безобразия: Bug 30398
------- Comment #2 From 2014-11-19 16:55:45 -------
(В ответ на комментарий №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 написать.
------- Comment #3 From 2014-11-19 20:02:39 -------
Настройку по-умолчанию менять необходимо, так как сейчас 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
------- Comment #4 From 2014-11-19 20:08:09 -------
Created an attachment (id=6177) [details]
Предлагаемый вариант bind.options.conf

Вот конфиг. Если "localnets" кажется излишне ограниченным всё равно, можно
раскомментировать и добавить acl "privatenets_v4" и добавить везде к
"localnets".

allow-query { localnets; privatenets_v4; };

По поводу "100.64.0.0/10" - это новый приватный диапазон, но рекомендован для
операторов. Может быть, его стоит и убрать. Если надо кому - добавят...
------- Comment #5 From 2014-11-19 20:18:21 -------
imho лучше вообще сделать всё по умолчанию localhost-only, либо
allow-query { localhost; }; allow-recursion { localhost; };
либо вообще
listen-on { 127.0.0.1; };

А сисадмин все равно сам настроит, что куда раздавать.
------- Comment #6 From 2014-11-19 22:05:16 -------
(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 с кратким пояснением.
------- Comment #7 From 2016-10-21 16:39:27 -------
(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 именно этого пакета). В какой-то момент умолчание поменяли ? Тогда
комментарий уже не соответствует действительности, получается.