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.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Стили для полей и подписей
Стили для полей и подписей Первые фрагменты CSS, которые мы добавим, чтобы начать построение этой формы, будут обрабатывать элементы fieldset и label – лишь немного пространства между строками.#thing-alerts fieldset { margin: 0 0 10px 0; }#thing-alerts label { display: block; font-weight: bold; line-height: 1.4; color: #666; color: rgba(0, 0, 0,
Концепция транзакций
Концепция транзакций Что такое транзакции? В этой книге практически в каждой главе упоминаются транзакции. Понятие транзакции пронизывает всю теорию и практику работы с базами данных. Транзакции всегда, транзакции везде - вот лозунг разработчиков СУБД.Понятие
Изолированность транзакций
Изолированность транзакций Давайте углубимся в рассмотрение того, зачем нужны транзакции в базе данных. Пример с переводом денег дает верную подсказку, представляя транзакцию как некоторый черный ящик, в котором производятся действия над содержимым базы данных. В этот
Механизм транзакций в InterBase
Механизм транзакций в InterBase Надо сказать, что реализация транзакций в InterBase отличается от реализации транзакции в большинстве других СУБД. Это связано с особой архитектурой баз данных InterBase, именуемой Multi Generation Architecture (MGA) - многоверсионной архитектурой.Чтобы разобраться в
Взаимодействие транзакций
Взаимодействие транзакций Интересен процесс определения, является ли текущая версия мусором или, возможно, она еще нужна какой-то транзакции.Для описания этого процесса придется ввести несколько важных понятий. Прежде всего, надо отметить, что все определения строятся
Параметры транзакций
Параметры транзакций В первом разделе этой главы была сделана попытка рассмотреть механизм работы транзакций в СУБД InterBase в целом. Теперь необходимо рассмотреть практические аспекты применяющие транзакций в InterBase.Программисты, использующие такие современные
За пределами транзакций
За пределами транзакций Мы рассмотрели общие вопросы, связанные с транзакциями, а также особенности их практического применения в базе данных. В самом начале главы было сказано, что все действия в InterBase выполняются в контексте транзакций.Однако существуют объекты, про
Двухфазное подтверждение транзакций
Двухфазное подтверждение транзакций В завершение этой главы хочется рассказать о механизме двухфазного подтверждения транзакций. Дело в том, что InterBase предлагает уникальную возможность организовывать распределенные транзакции между разными базами данных и даже
Идентификатор транзакций
Идентификатор транзакций Другая часть стратегии тайм-аутов и повторных передач заключается в использовании идентификаторов транзакций (transaction ID или XID) для распознавания запросов клиента и ответов сервера. Когда клиент вызывает функцию RPC, библиотека присваивает этому
Статистика транзакций
Статистика транзакций В Firebird есть несколько полезных утилит для получения сведений о том, насколько хорошо ваша база данных управляет зазором между OIT и OAT. Их вы можете также использовать для просмотра значений в заголовочной странице базы данных. gstat Инструмент
Язык для транзакций
Язык для транзакций Важно обратиться к средствам реализации транзакций в Firebird. До сих пор некоторые связанные с транзакциями особенности вовсе не реализованы в динамическом SQL, а только через API. Среди небольшого количества связанных с транзакциями операторов SQL и
Завершение транзакций
Завершение транзакций Транзакция завершается, когда клиентское приложение подтверждает ее или отменяет. Если оператор COMMIT или вызов эквивалентной функции API isc_commit_ transaction не будут успешными, то транзакция не будет подтверждена. Если транзакция, которая не может быть
Использование возможностей множества транзакций
Использование возможностей множества транзакций Клиент Firebird может запустить множество параллельных транзакций. Пользовательская работа с множеством задач в одном приложении может выполнять различные действия с теми же самыми (или перекрывающимися) наборами данных.
Восстановление транзакций
Восстановление транзакций Утилита gfix предоставляет инструменты для восстановления зависших транзакций 2РС - транзакций с несколькими базами данных после потери соединения с одной из них. Двухфазное подтверждение Транзакция, которая используется в нескольких базах
Дешифровка и проверка подписей.
Дешифровка и проверка подписей. Для дешифровки зашифрованного файла или проверки целостности подписи подписанного файла используется команда:pgp ciphertextfile [-o plaintextfile]Обратите внимание, что скобки [ ] просто обозначают необязательное поле, не вводите сами скобки.По