Установка и настройка

Поскольку в большинстве дата-центров имеется свой DNS сервер, мы настроим bind только для обслуживания собственных доменов, без возможности использования в режиме кеширующего DNS.

Замечание: в данной статье принимаются следующие обозначения: "NS сервер" — хранит записи только о доменах владельца; "DNS сервер" — обслуживает любые запросы пользователя.

Установка

Проверьте, установлены ли в системе пакеты bind и bind-chroot:

$ rpm -q bind
bind-9.2.4-24.EL4
$ rpm -q bind-chroot
bind-chroot-9.2.4-24.EL4

Благодаря второму пакету, мы повышаем защищенность сервера от взлома, изолируя bind от остальной системы. Обратите внимание, после установки этого пакета все файлы, которые использует bind, перемещаются в каталог /var/named/chroot/. При этом в файлах конфигурации пути менять не нужно.

Настройка

bind использует данные о текущем времени. Поскольку мы настраиваем его в режиме chroot, необходимо заменить файл /var/named/chroot/etc/localtime файлом с данными о вашем часовом поясе. Подробнее об этом: Выбор часового пояса. Обратите внимание, нужно именно заменить файл, т.к. в режиме chroot символическая ссылка на другой файл вне каталога /var/named/chroot/ работать не будет.

Файл /var/named/chroot/etc/rndc.key содержит ключ авторизации для программы rndc. Эта программа осуществляет управление сервером bind, показывает статистику обращений.

Сначала создайте строку-ключ:

# dnssec-keygen -a HMAC-MD5 -b 128 -n USER rndckey

Эта команда создаст два файла в текущем каталоге. В файле *.private в третьей строке будет находится ключ вида:

PBpLBGUy6QRdCnUMwv9dxw==

Создайте файл rndc.key с этим ключем:

key "rndckey" {
  algorithm hmac-md5;
  secret "PBpLBGUy6QRdCnUMwv9dxw==";
};

И, наконец, создайте файл named.conf:

options {
  directory "/var/named";
  dump-file "/var/named/data/cache_dump.db";
  statistics-file "/var/named/data/named_stats.txt";
  listen-on { 127.0.0.1; };
  version "unknown";
  allow-recursion { none; };
  allow-query { any; };
};

Замените 127.0.0.1 на желаемый IP, по которому должен откликаться bind.

Кстати, установив параметр version в значение unknown, мы спрятали версию сервера в стандартном приветствии и таким образом немного защитили свой сервер от злоумышленников.

Проверить файл конфигурации на ошибки можно командой:

# named-checkconf /var/named/chroot/etc/named.conf

Готово! Можно добавлять домены.