21 апреля 2023 22 августа 2023 Linux bind dnssec
export DOMAINNAME=breys.ru
cd /var/cache/bind
dnssec-keygen -L 3600 -a RSASHA256 -b 2048 $DOMAINNAME
dnssec-keygen -L 3600 -f KSK -a RSASHA256 -b 4096 $DOMAINNAME
for key in `ls K$DOMAINNAME*.key`; do
echo "\$INCLUDE $key" /etc/bind/zones/$DOMAINNAME.conf ;
done
salt=$(head -c 1000 /dev/urandom | sha1sum | cut -b 1-16)
dnssec-signzone -A -3 $salt -N INCREMENT -o $DOMAINNAME -t /etc/bind/zones/$DOMAINNAME.conf
В результате подписанный файл зоны будет в файле /etc/bind/zones/$DOMAINNAME.conf
этот файл необходимо указать в настройках зоны и перезапустить bind9
zone "breys.ru" {
type master;
// file "/etc/bind/zones/breys.ru.conf";
file "/etc/bind/zones/breys.ru.conf.signed";
};
При этом утилита dnssec-signzone подписывает каждую запись зоны /etc/bind/zones/$DOMAINNAME.conf
в который мы добавили созданные ключи через $INCLUDE
Ключи должны находиться в /var/cache/bind
В дальнейшем с зоной необходимо работать по такой схеме
- изменения вносят в оригинальный файл зоны /etc/bind/zones/breys.ru.conf
- подписывают изменённый файл зоны ключами:
dnssec-signzone -A -3 $salt -N INCREMENT -o $DOMAINNAME -t /etc/bind/zones/$DOMAINNAME.conf
- перезапускают bind9