В этом 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
На этом настройка завершена, я надеюсь у вас все получилось.
Источник: sudouser.com
17 комментов оставлено (Add 1 more)