Фильтровать переадресованные ответы DNS с Bind


3

Какие варианты у меня есть для блокировки ответов DNS-запросов, содержащих определенный IP-адрес или диапазон?

Я читаю атаки DNS Rebinding , и мне интересно, как я могу их блокировать.

Когда злоумышленник пытается выполнить повторную атаку, он пытается обмануть браузер, заставив его поверить, что вредоносный контент был 127.0.0.1получен по адресу или адресу в моей локальной сети. Они делают это путем настройки своего DNS-сервера для обслуживания мошеннического адреса (при запросе из вредоносного скрипта). Я хотел бы предотвратить это, блокируя все ответы на перенаправленные запросы DNS, которые приводят к локальному адресу или адресу локальной сети.

Я использую зону Bind9 для своей локальной сети и использую пересылки для разрешения внешних адресов.

Окно Bind - это сервер Debian за моим маршрутизатором NAT. Он запускает UFW для брандмауэра и позволяет использовать TCP / UDP через порт 53.


Читали ли вы о зонах политики реагирования (RPZ), они могут делать то, что вы хотите, и включены в BIND9. dnsrpz.info
милли

Я не думаю, что RPZ может быть использован для этого. Я считаю, что RPZ способен только фильтровать запросы. Вопрос касается ответов от неизвестных доменов запросов, но с локальными адресами в ответе. У Bind есть возможность сделать это, как описано в моем ответе ниже.
davefiddes

Ответы:


1

Есть возможность получить Bind для фильтрации адресов, возвращаемых с помощью этой deny-answer-addressesфункции. Чтобы использовать это, добавьте следующее в optionsраздел вашего /etc/bind/named.conf.optionsфайла конфигурации:

deny-answer-addresses { 192.0.2.0/24; } except-from { "example.net"; };

Это предотвратит возвращение любого адреса 192.0.2.x в ответ на любой запрос DNS, кроме как из локально размещенного example.netдомена.

Руководство Bind также рекомендует фильтровать псевдонимы с помощью:

deny-answer-aliases { "example.net"; };

Предлагаемый набор фильтров, который я нашел по адресу http://www.sput.nl/internet/dns-morons.html, по- видимому, охватывает наиболее распространенные атаки повторного связывания DNS, основанные на моем собственном тестировании:

deny-answer-addresses {
    // Unconfigured
    0.0.0.0;
    // RFC 1918
    10.0.0.0/8;
    172.16.0.0/12;
    192.168.0.0/16;
    // RFC 3927
    169.254.0.0/16;
    // IPv6
    // :: to ::ffff:ffff:ffff.
    // Includes ::, ::1, IPv4-Compatible IPv6 Addresses ::/96,
    // and IPv4-mapped IPv6 addresses ::ffff:0:0/96
    ::/80;
    // IPv6 Link local
    fe80::/10;
    // RFC 6052
    64:ff9b::/96;
} except-from { "Your.Domain"; };
deny-answer-aliases { "Your.Domain"; };

Вероятно, это не очень хорошая идея для исключения, 127.0.0.0/8поскольку она часто используется такими службами, как списки спама.


Спасибо! Я оцениваю ваш ответ на предстоящие выходные, когда у меня будет немного времени поиграть с ним. выглядит многообещающе
Фрэнк Томас

Извините за значительную задержку в принятии. Я посмотрел в этот конфиг, и похоже, что я искал. Хотелось бы мне найти хороший способ проверить это. Еще раз спасибо!
Фрэнк Томас

Нет проблем. Я использовал тестовый сайт rebind.network Браннона Дорси (код github.com/brannondorsey/dns-rebind-toolkit ) и wireshark для тестирования. Не полный, но достаточно простой для тестирования до и после включения изменений.
davefiddes
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.