МагПро DNS. Установка и настройка DNS-сервера bind
Исходный код BIND 9.7.0-P2 доступен по ссылке: ftp://ftp.isc.org/isc/bind9/9.7.0-P2/bind-9.7.0-P2.tar.gz
Патч, обеспечивающий поддержку GOST, можно скачать отсюда:
bind97_gost.diff.gz
Установка
Следует устанавливать BIND версии 9.7.0-P2, так как патч разработан и применим именно к ней.
Прежде всего убедитесь, что в Вашей системе установлен и правильно
настроен OpenSSL 1.0.0. Для этого следуйте инструкциям на странице:
Установка и настройка OpenSSL 1.0.0
Для сборки BIND Вам понадобится набор модулей perl.
В Debian GNU\Linux lenny он доступен в виде пакета perl-modules, который можно установить следующим образом:
$ sudo apt-get install perl-modules
Чтобы установить BIND с поддержкой криптоалгоритмов ГОСТ, следуйте следующим инструкциям (подразумевается что OpenSSL 1.0.0 уже установлен в директорию /usr/local):
$ wget ftp://ftp.isc.org/isc/bind9/9.7.0-P2/bind-9.7.0-P2.tar.gz
$ tar xzf bind-9.7.0-P2.tar.gz
$ cd bind-9.7.0-P2
$ wget http://cryptocom.ru/opensource/bind97_gost.diff.gz
$ gunzip bind97_gost.diff.gz
$ patch -p0 < bind97_gost.diff
$ ./configure --with-openssl=/usr/local --prefix=/usr/local LDFLAGS=-Wl,-rpath,/usr/local/lib
$ make
$ sudo make install
Пожалуйста, имейте в виду, что при установке из исходных кодов не
устанавливается init-скрипт. Также не создается новый пользователь, от имени которого предполагается запускать BIND.
Использование в «chroot»
Предполагается, что BIND и OpenSSL 1.0.0 установлены в директорию
/usr/local, а в качестве директории для chroot будет
использоваться /var/chroot.
В chroot серверу BIND потребуется файл конфигурации OpenSSL и разделяемые библиотеки.
Их следует скопировать в стандартные места внутри chroot:
$ mkdir -p /var/chroot/usr/local/openssl
$ mkdir -p /var/chroot/usr/local/lib/engines
$ mkdir -p /var/chroot/var/log/bind
$ cp /usr/local/openssl/openssl.cnf /var/chroot/usr/local/openssl/
$ cp /usr/local/lib/engines/libgost.so /var/chroot/usr/local/lib/engines/
$ cp -r /usr/local/etc /var/chroot/usr/local/
Возможно, потребуется копирование других файлов, необходимых для работы BIND.
Пример конфигурационного файла DNS-сервера (без функционала резолвера)
Данный пример показывает, как включить DNSSEC и использовать
подписанные зоны в файле конфигурации BIND.
Ключевые опции:
dnssec-enable yes;
logging { […] };
options {
directory "/usr/local/etc";
listen-on{
127.0.0.1;
10.51.24.198;
};
allow-query { 10.51.0.0/16; };
allow-transfer { any; };
dnssec-enable yes;
recursion no;
};
acl "trusted-dns"{
127.0.0.1;
10.51.0.0/16;
};
logging {
channel dnssec_ch {
file "/var/log/bind/dnssec.log" versions 3 size 8000k;
severity debug 3;
print-time yes;
print-category yes;
};
category dnssec { dnssec_ch; };
};
zone "example.com" {
type master;
file "/usr/local/etc/example.com";
allow-query { any; };
allow-transfer { any; };
};
key "rndc-key" {
algorithm hmac-md5;
secret "qquxnvB2qzY915EkE52vVg==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
Пример конфигурационного файла резолвера на базе BIND
Ключевые опции:
dnssec-enable yes;
dnssec-validation yes;
recursion yes;
trusted-keys { […] };
logging { […] };
trusted-keys {
"com." 257 3 12 "ZottC9UQiYanvu7rC6R/MNhTgZEdMOk7MUXBrIZt/9d+XX/CV315X3sP GWVJ3/i2ynYxnsnTqkKNVYQsqRrvSw==";
};
options {
directory "/usr/local/etc";
listen-on{
127.0.0.1;
10.51.24.184;
};
allow-query { any; };
allow-transfer { any; };
dnssec-enable yes;
dnssec-validation yes;
recursion yes;
};
acl "trusted-dns"{
127.0.0.1;
10.51.0.0/16;
};
logging {
channel dnssec_ch {
file "/var/log/bind/dnssec.log" versions 3 size 8000k;
severity debug 3;
print-time yes;
print-category yes;
};
category dnssec { dnssec_ch; };
};
zone "." {
type hint;
file "/usr/local/etc/root.servers";
};
key "rndc-key" {
algorithm hmac-md5;
secret "qquxnvB2qzY915EkE52vVg==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
Активация изменений
После конфигурирования перезапустите BIND, чтобы изменения вступили в силу.
|