Может ли кто-нибудь предоставить пошаговую процедуру настройки DNSSEC под BIND 9.7? Я считаю, что версия актуальна, потому что она должна облегчить жизнь. Фактически, есть документ, опубликованный ISC, который называется DNSSEC для людей, который я использовал в качестве отправной точки, хотя это не совсем учебник.
Основная причина, по которой я использую 9.7 (скажем, вместо новой 9.9), заключается в том, что это стабильная версия под Debian 6. Я должен упомянуть, что у меня есть базовая конфигурация BIND.
Что пробовал:
Включены в соответствующие фигурные скобки в /etc/bind/named.conf.options
линия
dnssec-enable yes;
и перезапустил BIND.
Ран dnssec-keygen example.com
Ран dnssec-keygen -fk example.com
Пытался dnssec-signzone –S example.com
Однако последний шаг дает мне ошибку
dnssec-signzone: fatal: No signing keys specified or found.
Я вижу, что это вероятная ошибка, поскольку, похоже, отсутствуют параметры, указывающие, где находятся мои ключи, но на руке упомянутое руководство ISC цитирует именно этот последний пример. Действительно, флаг -S фактически означает «умную подпись», поэтому я надеялся, что ключи будут в том же каталоге, откуда я выполняю последнюю команду (/etc/bind
) может хватить.
Поскольку это игрушечный непроизводственный проект, я не против повторять эти шаги, скажем, каждые 30 дней, но я бы хотел, чтобы они были как можно более простыми и ... делали их правильно!
Есть идеи / указатели? Заранее спасибо.
Самый простой способ включить DNSSEC с BIND - это автоматическая подпись, ниже приводится пошаговое руководство:
Предпосылки: Я предполагаю, что ваш файл зоны /var/lib/bind/example.net/db
. Файл зоны и папка должны быть записываемый для процесса связывания! Возможно, вам потребуется настроить разрешения и / или изменить свой /etc/apparmor.d/usr.sbin.named
.
Шаг 1. Создайте ключи DNSSEC:
dnssec-keygen -K /var/lib/bind/example.net example.net
-K указывает папку вывода для вновь сгенерированных ключей, второй параметр - это имя зоны. Выполнение этой команды может занять очень много времени, потому что она будет ждать, пока в вашей системе будет достаточно энтропии. Если все, что вам нужно - это попробовать конфигурацию, и вы не генерируете ключи для производственной системы, вы можете добавить -r /dev/urandom
- быстро сгенерирует небезопасные ключи. Также обратите внимание, что если вы запускаете эту команду несколько раз, каждый раз будет генерироваться новый набор ключей, и все наборы будут использоваться для подписи вашей зоны.
Шаг 2. Настройте BIND, чтобы включить автоматическое подписание для вашей зоны:
zone example.net {
type master;
file "/var/lib/bind/example.net/db";
auto-dnssec maintain;
//Enable The Magic
key-directory "/var/lib/bind/example.net";
//Look for DNSSEC keys in "/etc/bind/example.net" folder
update-policy local;
//Enable dynamic updates (required for auto-dnssec)
};
auto-dnssec maintain
сообщает bind периодически искать папку, указанную в key-directory
для новых ключей DNSSEC добавьте эти ключи в зону и подпишите зону. Все автоматически, без вашего участия. Сама поддержка Core DNSSEC уже включена по умолчанию. Ваш named.conf вполне может состоять только из этого раздела зоны.
Шаг 3. Перезагрузите привязку
rndc reload
Загрузит новую конфигурацию, а bind загрузит ваши ключи DNSSEC и подпишет зону.
Готово. Подтвердите, что он работает с dig +dnssec @localhost example.net DNSKEY
. Вы должны получить записи DNSKEY и RRSIG.
Безопасное делегирование
Если вы добавляете DNNSEC к реальному домену, чтобы полностью включить проверку DNNSEC, вам необходимо добавить записи DS в родительскую зону - это делается так же, как записи NS - через регистратора домена.
Чтобы убедиться, что все работает, вы можете использовать онлайн-инструменты, такие как dnsviz.net и dnssec-debugger.verisignlabs.com
ДОПОЛНЕНИЕ:
Некоторые могут спросить: а как насчет ZSK и KSK? - Этот процесс подпишет всю зону одним ZSK, здесь нет KSK. Что я пытался сделать, так это предоставить простейшее из возможных «руководство», которое привело бы к хорошо работающему DNSSEC. Я не стал раскрывать все возможные детали. И нет необходимость для все позаботиться обо всех возможных деталях. ПО МОЕМУ МНЕНИЮ.