Привет, сетевой друг! Сегодня разберём DNS zone transfer - когда AXFR открыт всем и как это закрыть.# Проверяем открыт ли AXFR
dig axfr example.com @ns1.example.com
# Если в ответе идут все записи зоны - проблема есть
# Нормальный ответ: Transfer failed или REFUSED
# Проверяем конфиг
named-checkconf /etc/bind/named.conf
# Смотрим логи запросов на transfer
grep "transfer" /var/log/named/named.log
grep "AXFR" /var/log/named/queries.log
# /etc/bind/named.conf.options
options {
allow-transfer { none; }; # глобально запрещаем
};
# /etc/bind/named.conf.local
zone "example.com" {
type primary;
file "/etc/bind/zones/example.com.db";
allow-transfer {
192.168.1.2; # только наш secondary
key "transfer-key"; # или через TSIG-ключ
};
notify yes;
};
# Генерируем ключ
tsig-keygen -a hmac-sha256 transfer-key > /etc/bind/transfer.key
# Подключаем в конфиг
include "/etc/bind/transfer.key";
zone "example.com" {
allow-transfer { key "transfer-key"; };
};
На secondary прописываем тот же ключ и используем его при запросе зоны.
# С посторонней машины
dig axfr example.com @ns1.example.com
# Должно вернуть: Transfer failed
# С авторизованного secondary
dig axfr example.com @ns1.example.com -k transfer.key
# Должно вернуть полную зону
zone "example.com" {
also-notify { 192.168.1.2; };
allow-notify { 192.168.1.1; }; # кто может уведомлять нас
};Без этого атакующий может отправить поддельный NOTIFY и спровоцировать unnecessary transfer-запросы.
Серверная Админа | Бункер Хакера | #DNS #networking
