15 апреля 2008 01:43 пп
Установка и настройка DNS сервера bind9 Ubuntu-Debian HOWTO
В этом 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, вы можете ознакомится с документацией к нему по адресу
21 комментарий »
21 комментарий to “Установка и настройка DNS сервера bind9 Ubuntu-Debian HOWTO”
Leave a Reply
You must be logged in to post a comment.
у меня несколько вопросов
1. при уставновке dns имя компа какое?
2. какая запись в /etc/hosts ?
все делал по статье /etc/init.d/bind9 start [fail]
посмотрел логи
трабл с правами на файл /var/lib/named/etc/bind/named.conf
помогите разобраться
если не переносить все в /var , то работает
Вот решение проблемы 🙂 как всегда при помощи Google 🙂
нужно только подредактировать файл /etc/apparmor.d/usr.sbin.named и все
Я вообще отключил apparmor.d и выбросил из автозагрузки.
/etc/init.d/apparmor stop
update-rc.d -f apparmor remove
И в /etc/default/bind9 тоже строку: OPTIONS=” -u bind -t /var/lib/named” все таки вернул к ее первобытному OPTIONS=” -u bind”.
тогда все работает.
Кстати в логах при запуске БИНДа можна увидеть , что он все таки запускаеться с флагом -t:
«starting BIND 9.5.0-P2 -u bind -t /var/lib/named»
«Впишите в файл следующее содержимое
Код:
zone «example.com» {
type master;
file «example.com»;
};»
что это за бред.
Мануал надо читать полностью, а не между строк. Это файл с описанием зон, он инклюдится в основной конфиг.
Кстати про арр аррmor и сhroot. Если вы настраиваете bind в chroot’е, то профиль бинда из апп армора можно смело отключать. По умолчанию этот профиль включен для бинда установленного в обычном порядке, без чрута. Для этого достаточно переместить файл с профилем бинда в папку disabled
sudo mv /etc/apparmor/usr.sbin.named /etc/apparmor/disabled
или удалить совсем. Иначе получается двойной презерватив )
[…] с sudouser.com Теги: bind9, Debian, DNS, […]
Всё делал по данному мануалу в итоге следующее:
@unix:~# nslookup example.com 127.0.0.1
;; Got SERVFAIL reply from 127.0.0.1, trying next server
;; Got SERVFAIL reply from 127.0.0.1, trying next server
Server: 127.0.0.1
Address: 127.0.0.1#53
** server can’t find example.com: SERVFAIL
Если так разобраться syslog что говорит:
Nov 15 02:39:57 unix named[15343]: received control channel command ‘stop -p’
Nov 15 02:39:57 unix named[15343]: shutting down: flushing changes
Nov 15 02:39:57 unix named[15343]: stopping command channel on 127.0.0.1#953
Nov 15 02:39:57 unix named[15343]: stopping command channel on ::1#953
Nov 15 02:39:57 unix named[15343]: no longer listening on ::#53
Nov 15 02:39:57 unix named[15343]: no longer listening on 127.0.0.1#53
Nov 15 02:39:57 unix named[15343]: no longer listening on 62.122.105.23#53
Nov 15 02:39:57 unix named[15343]: exiting
Nov 15 02:39:57 unix named[15428]: starting BIND 9.6.1-P1 -u bind
Nov 15 02:39:57 unix named[15428]: built with ‘—prefix=/usr’ ‘—mandir=/usr/share/man’ ‘—infodir=/usr/share/info’ ‘—sysconfdir=/etc/bind’ ‘—localstatedir=/var’ ‘—enable-threads’ ‘—enable-largefile’ ‘—with-libtool’ ‘—enable-shared’ ‘—enable-static’ ‘—with-openssl=/usr’ ‘—with-gssapi=/usr’ ‘—with-gnu-ld’ ‘—with-dlz-postgres=no’ ‘—with-dlz-mysql=no’ ‘—with-dlz-bdb=yes’ ‘—with-dlz-filesystem=yes’ ‘—with-dlz-ldap=yes’ ‘—with-dlz-stub=yes’ ‘—with-geoip=/usr’ ‘—enable-ipv6’ ‘CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2’ ‘LDFLAGS=-Wl,-Bsymbolic-functions’ ‘CPPFLAGS=’ ‘CXXFLAGS=-g -O2’ ‘FFLAGS=-g -O2’
Nov 15 02:39:57 unix named[15428]: adjusted limit on open files from 1024 to 1048576
Nov 15 02:39:57 unix named[15428]: found 1 CPU, using 1 worker thread
Nov 15 02:39:57 unix named[15428]: using up to 4096 sockets
Nov 15 02:39:57 unix named[15428]: loading configuration from ‘/etc/bind/named.conf’
Nov 15 02:39:57 unix named[15428]: using default UDP/IPv4 port range: [1024, 65535]
Nov 15 02:39:57 unix named[15428]: using default UDP/IPv6 port range: [1024, 65535]
Nov 15 02:39:57 unix named[15428]: listening on IPv6 interfaces, port 53
Nov 15 02:39:57 unix named[15428]: listening on IPv4 interface lo, 127.0.0.1#53
Nov 15 02:39:57 unix named[15428]: listening on IPv4 interface ppp0, 62.122.105.23#53
Nov 15 02:39:57 unix named[15428]: automatic empty zone: 254.169.IN-ADDR.ARPA
Nov 15 02:39:57 unix named[15428]: automatic empty zone: 2.0.192.IN-ADDR.ARPA
Nov 15 02:39:57 unix named[15428]: automatic empty zone: 255.255.255.255.IN-ADDR.ARPA
Nov 15 02:39:57 unix named[15428]: automatic empty zone:
0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
Nov 15 02:39:57 unix named[15428]: automatic empty zone: 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
Nov 15 02:39:57 unix named[15428]: automatic empty zone: D.F.IP6.ARPA
Nov 15 02:39:57 unix named[15428]: automatic empty zone: 8.E.F.IP6.ARPA
Nov 15 02:39:57 unix named[15428]: automatic empty zone: 9.E.F.IP6.ARPA
Nov 15 02:39:57 unix named[15428]: automatic empty zone: A.E.F.IP6.ARPA
Nov 15 02:39:57 unix named[15428]: automatic empty zone: B.E.F.IP6.ARPA
Nov 15 02:39:57 unix named[15428]: command channel listening on 127.0.0.1#953
Nov 15 02:39:57 unix named[15428]: command channel listening on ::1#953
Nov 15 02:39:57 unix named[15428]: zone 0.in-addr.arpa/IN: loaded serial 1
Nov 15 02:39:57 unix named[15428]: zone 127.in-addr.arpa/IN: loaded serial 1
Nov 15 02:39:57 unix named[15428]: zone 255.in-addr.arpa/IN: loaded serial 1
Nov 15 02:39:57 unix named[15428]: zone example.com/IN: loading from master file example.com failed: file not found
Nov 15 02:39:57 unix named[15428]: zone localhost/IN: loaded serial 2
Nov 15 02:39:57 unix named[15428]: running
Разбираться не надо, любой кто мало-мальски знает английский сразу увидит где ошибка.
Nov 15 02:39:57 unix named[15428]: zone example.com/IN: loading from master file example.com failed: file not found
[…] полез в мануалы и примеры. В итоге настройку произвёл по этой инструкции, изменив лишь настройку конкретной зоны для домена. […]
[…] hugomen on 30 Ноя 2008 at 23:05 # […]
[…] локальной сети на основе BIND 9 Установка Bind (named) на CentOS Установка и настройка DNS сервера bind9 Ubuntu-Debian HOWTO Категория linux и системное администрирование | Теги […]
если не находит example.com как в
Nov 15 02:39:57 unix named[15428]: zone example.com/IN: loading from master file example.com failed: file not found
то мне помогло прописывание в myzones.conf полного пути к файлу
zone «example.com» {
type master;
file «/var/lib/named/etc/bind/example.com»;
}
в убунту 10.04, если это важно
[…] 16. Ставим bindapt-get install bind9 dnsutilsНастраиваем, как описано здесь […]
спасибо stash за коммент.
мне тоже помогли только полные пути.
[…]http://sudouser.com/ustanovka-i-nastrojka-dns-servera-bind9-ubuntu-debian-howto.html […]
[…]http://sudouser.com/ustanovka-i-nastrojka-dns-servera-bind9-ubuntu-debian-howto.html […]
[…] Взято с sudouser.com […]
[…] Источник: 1.http://rtfm.co.ua/debian-ustanovka-i-nastrojka-dns-bind/ 2.http://firstwiki.ru/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0_%D0%B8%D0%BC%D0%B5%D0%BD_%28DNS-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%29_%D0%BD%D0%B0_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B5_%D0%B1%D0%B5%D0%B7_ISPmanager 3. http://sudouser.com/ustanovka-i-nastrojka-dns-servera-bind9-ubuntu-debian-howto.html […]
[…]http://sudouser.com/ustanovka-i-nastrojka-dns-servera-bind9-ubuntu-debian-howto.html — установка bind9 в ubuntu […]