Установка и настройка DNS сервера bind9

В этом HOWTO я расскажу вам как настроить DNS сервер и создать в нем зоны для своего домена. Установка описана для дистрибутивов Ubuntu и Debian. Все пакеты из штатных репозиториев.

Установим сам DNS сервер bind9.

Код:
apt-get install bind9

Из соображений безопасности лучше запускать Bind в chroot среде, для этого проделайте несколько простых операций.

Остановим bind

Код:
/etc/init.d/bind9 stop

Отредактируйте файл /etc/default/bind9 , туда надо добавить строку о среде chroot которая будет находится у нас в /var/lib/named.
Измените строку OPTIONS=” -u bind” на OPTIONS=”-u bind -t /var/lib/named”

Код:
vim /etc/default/bind9

Файл после радактирования должен выглядеть так:

Код:
OPTIONS="-u bind -t /var/lib/named"
# Set RESOLVCONF=no to not run resolvconf
RESOLVCONF=yes

Теперь создадим все необходимые для работы bind9 директории.

Код:
mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run

Переместите директорию с конфигурацией bind9 из /etc в /var/lib/named/etc:
Код:
mv /etc/bind /var/lib/named/etc

Создадим символическую ссылку на новую директорию с конфигами bind на случай если в дальнейшем вы соберетесь обновить пакет, это поможет избежать проблем.
Код:
ln -s /var/lib/named/etc/bind /etc/bind

Создадим null и random девайсы и выставим правильные права на директории:
Код:
mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
chown -R bind:bind /var/lib/named/var/*
chown -R bind:bind /var/lib/named/etc/bind


Далее надо немного изменить стартовый скрипт демона sysklogd для того что бы сообщения bind попадали в syslog.
Отредактировать надо файл /etc/init.d/sysklogd , измените там строку SYSLOGD=”-u syslog” на SYSLOGD=”-u syslog -a /var/lib/named/dev/log”
Код:
vim /etc/init.d/sysklogd

Строка должна выглядеть так:
Код:
[...]
SYSLOGD="-u syslog -a /var/lib/named/dev/log"
[...]

Перезапустите демона sysklogd
Код:
/etc/init.d/sysklogd restart

Запустите bind9 и проверьте /var/log/syslog на наличие ошибок
Код:
/etc/init.d/bind9 start

Если вы все сделали правильно то ошибок быть не должно.

Теперь можно приступать к настройке зоны для нашего домена, например example.com

Создадим файл конфигурации для наших будущих зон и отредактируем файл конфигурации bind
Код:
touch /var/lib/named/etc/bind/myzones.conf
chown bind:bind /var/lib/named/etc/bind/myzones.conf
vim /var/lib/named/etc/bind/named.conf

В конец файла впишите строку include “myzones.conf”;
Выглядеть это должно так
Код:
[...]
include "/etc/bind/named.conf.local";
include "/etc/bind/myzones.conf";


Теперь отредактируем файл конфигурации наших зон и добавим туда зону для домена example.com.
Код:
vim /var/lib/named/etc/bind/myzones.conf

Впишите в файл следующее содержимое
Код:
zone "example.com" {
type master;
file "example.com";
};

Теперь надо создать файл нашей зоны example.com, выставить на него права и отредактировать его.
Код:
touch /var/lib/named/etc/bind/example.com
chown bind:bind /var/lib/named/etc/bind/example.com
vim /var/lib/named/etc/bind/example.com


Отредактируйте файл до состояния приведенного ниже, адреса замените на нужные вам, так же смените дату перед параметром ; serial на текущую. последние цифры в строке с датой (01) обозначают сколько раз раз зона редактировалась за текущие сутки.
Код:
$ORIGIN example.com.
$TTL 86400 ; 1 day
@ IN SOA localhost. root.localhost. (
2008041501 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
@ IN NS localhost.
@ IN A 192.168.0.1
www IN CNAME example.com.

После этого обновите конфигурацию bind командой
Код:
rndc reload

После чего можно проверить работоспособность сервера dns командой
Код:
nslookup example.com 127.0.0.1

Вы должны увидеть примерно следующее
Код:
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: example.com
Address: 192.168.0.1

На этом настройка завершена, я надеюсь у вас все получилось.
Это не полное руководство по настройке сервера доменных имен bind9, вы можете ознакомится с документацией к нему по адресу http://www.isc.org

Источник

free-templates.ru