Есть ли способ использовать ключ TSIG (или другой) в сочетании с запросом DNS для аутентификации в представлении DNS для использования с рекурсией? Примерно так:
key trusted-key {
algorithm HMAC-SHA256;
secret "blonggggg";
};
acl trusted { key trusted-key; };
view trusted {
match-clients { trusted; };
allow-recursion { any; };
};
Если да, как запрашивающий клиент будет указывать ключ для аутентификации? Что, если можно гарантировать, что запросы всегда поступают от подчиненного DNS-сервера, обеспечивающего локальное кэширование DNS для филиала? Можно ли настроить подчиненный DNS-сервер для использования определенного ключа со всеми запросами, которые он пересылает вышестоящему серверу?
Спасибо.
Для тестирования целей вы можете просто использовать dig -k ...
или dig -y ...
.
Я не думаю, что это целесообразно для клиентских машин делать это напрямую. Мне неизвестно о какой-либо ОС, имеющей преобразователь заглушек, который действительно подписывает TSIG.
Однако можно иметь пересылающий сервер имен, который использует TSIG для подписи перенаправленных запросов.
Вы можете сделать что-то вроде этого ( возможно, на обоих концах, в зависимости от сценария):
key trusted-key {
algorithm HMAC-SHA256;
secret "x";
};
server 192.0.2.1 {
keys { trusted-key.; };
};
Это заставит BIND всегда использовать указанный ключ для подписи запросов к другому серверу (идентифицированному IP).
Из раздела server
в руководстве :
Раздел keys идентифицирует key_id , определенный оператором key, который будет использоваться для безопасности транзакции (TSIG, раздел, называемый « TSIG ») при разговоре с удаленным сервером. Когда запрос отправляется на удаленный сервер, подпись запроса будет сгенерирована с использованием ключа, указанного здесь и добавленного к сообщению. Запрос, исходящий от удаленного сервера, не обязательно должен быть подписан этим ключом.
В настоящее время поддерживается только один ключ для каждого сервера.