13.9. Использование подписей транзакций. Механизм TSIG

We use cookies. Read the Privacy and Cookie Policy

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.

Данный текст является ознакомительным фрагментом.