13.9. Использование подписей транзакций. Механизм TSIG
13.9. Использование подписей транзакций. Механизм TSIG
В девятой версии BIND появилась возможность создавать подписи транзакций (TSIG — Transaction SIGnatures). Механизм TSIG работает так: сервер получает сообщение, подписанное ключом, проверяет подпись и, если она «правильная», сервер отправляет ответ, подписанный тем же ключом.
Механизм TSIG очень эффективен при передаче информации о зоне, уведомлений об изменении зоны и рекурсивных сообщений. Согласитесь, проверка подписи надежнее, чем проверка IP-адреса. Злоумышленник может вывести из строя вторичный сервер DNS банальной атакой на отказ, и, пока администратор будет «поднимать» вторичный сервер, он заменит свой IP-адрес адресом вторичного сервера. При использовании TSIG задача злоумышленника значительно усложняется: ведь ему придется «подобрать» 128-битный MD5-ключ, а вероятность такого подбора близка к нулю.
Итак, приступим к настройке. Остановите сервис named.
Сгенерируйте общие ключи для каждой пары узлов. Общие ключи используются при «общении» первичного и вторичного серверов DNS.
[root@dns] # dnssec-keygen -a hmac-md5 -b 128 -n HOST ns1-ns2 Kns1-ns2.+157+49406
Мы используем алгоритм HMAC-MD5, 128-битное шифрование, ns1-ns2 — это имя ключа. После выполнения этой команды будет создан файл Kns1-ns2.+176+40946.private. Откройте его в любом текстовом редакторе. Вы увидите примерно следующее:
Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5)
Key: ms7dfts87Cjhj7FD91k7a3==
Ключ «ms7dfts87Cjhj7FD91k7a3==» и будет тем секретом, который будет передаваться между серверами. Запишите это значение на бумаге (которую потом нужно будет уничтожить) и удалите файлы Kns1-ns2.+157+49406.key и Kns1-ns2.+157+49406.private.
Добавьте в файлы конфигурации первичного и вторичного серверов DNS директивы, указывающие на использование ключа (листинги 13.8 и 13.9).
Листинг 13.8. Фрагмент файла named.conf первичного сервера DNS
key ns1-ns2 {
algorithm hmac-md5;
secret "ms7dfts87Cjhj7FD91k7a3==";
};
# прописываем вторичный сервер DNS — 192.168.1.2:
server 192.168.1.2 {
keys { ns1-ns2; };
};
options {
# разрешаем передачу зоны вторичному серверу DNS
allow-transfer { 192.168.1.2; };
};
Листинг 13.9. Фрагмент файла named.conf вторичного сервера DNS
key ns1-ns2 {
algorithm hmac-md5;
secret "ms7dfts87Cjhj7FD91k7a3==";
};
# прописываем первичный сервер DNS — 192.168.1.1:
server 192.168.1.1 {
keys { ns1-ns2; };
};
options {
# никому не передаем зону
allow-transfer { none };
};
Можно также настроить передачу зоны «по ключу». Для этого директива allow-transfer в файле конфигурации первичного сервера DNS должна выглядеть так:
allow-transfer { key ns1-ns2; };
Осталось только «спрятать» файлы конфигурации обоих серверов DNS от посторонних глаз — ведь они содержат ключи в открытом виде.
chmod 600 named.conf
Запустите сервис named. Теперь о его безопасности будет заботиться TSIG.
Данный текст является ознакомительным фрагментом.