Приручаем DNS.
Рубрика: DNS | Дата: 29 марта 2009
Настройка named демона.
Итак, понадобилось поднять сервер ДНС. Остановиться решил на стандартном named, ибо прост и неприхотлив. Устанавливать не требуется, ибо идет в стандартной поставке. Но обновить не помешает, потому как уязвимости, в т.ч. и критические, находят довольно часто.
Самый главный конфиг лежит в /etc/namedb/named.conf. Собственно, его и необходимо настроить в первую очередь.
logging{ //Настраиваем логирование через syslog.
channel syslog{ //В syslog.conf нужно будет добавить соответствующую запись
syslog daemon;
severity info;
print-category yes;
print-severity yes;
};
category config {syslog;};
category default {null;};};
options {
directory “/etc/namedb”;
pid-file “/var/run/named/pid”;
dump-file “/var/dump/named_dump.db”;
statistics-file “/var/stats/named.stats”;listen-on { 127.0.0.1; //Прослушиваемые интерфейсы
10.12.51.11; };
forwarders {
127.0.0.1;
123.145.167.189; //ДНС-серверы провайдера.
12.34.56.78;
};};
zone “.” {
type hint;
file “named.root”;
};
//Зона локалхоста
zone “localhost” {
type master;
file “master/localhost”;
allow-transfer{127.0.0.1;};
allow-query{127.0.0.1;};
};
//И обратная ей
zone “0.0.127.in-addr.arpa” {
type master;
file “master/localhost.rev”;
allow-transfer{127.0.0.1;};
allow-query{127.0.0.1;};
};
//Прямая зона одного из сайтов, хостящихся на машине
zone “unlim-hostel5.ru”{
type master;
file “master/unlim-hostel5.ru”;
allow-transfer {155.155.155.155;}; //Куда можно передавать информацию о зоне. Обычно тому у кого хостится сайт
allow-query{127.0.0.1; //Список адресов, кто может запрашивать информацию
10.12.51.0/24;};
zone “51.12.10.in-addr.arpa”{ //Обратная зона для этой машины.
type master;
file “master/unlim-hostel5.rev”;
allow-transfer{155.155.155.155;};
allow-query{127.0.0.1;
10.12.51.0/24;
};
Если в конфиге что-то будет неправильно, то демон не запустится и напишет, в какой строке у вас ошибка.
Теперь настраиваем файлы зон. Зона локалхоста стандартна для всех, а потому проблем с ней обычно не бывает. Приведенный в хэндбуке
#sh make-localhost
уже не нужен (в новых версиях), потому как в поставке уже есть localhost.db и localhost-rev.db, на основе которых и создаются файлы зон. Подробнее о структуре файла можно прочитать в том же хэндбуке, но есть некоторые моменты, которые там не указаны явно, и из-за которых я поломал голову
Имя зоны named берет из named.conf (после слова zone), и для обратной зоны нужно быть внимательным. Например, в нашем случае запись обратной зоны выглядит так: 51.12.10.in-addr.arpa.
Соответственно, в файле, отвечающем за эту зону должна быть вот такая запись
$TTL 3600
@ IN SOA ns.unlim-hostel5.ru. root.unlim-hostel5.ru. (
2005260501; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
3600 ) ; Minimum
IN NS ns.unlim-hostel5.ru.
11 IN PTR unlim-hostel5.ru.
Т.е. число 11 – это последняя цифра в ip-адресе хоста unlim-hostel5.ru. Если бы задали зону как 12.10.in-addr.arpa, то в файле обратной зоны нужно было бы написать 51.11.
Так же удобно пользоваться конструкцией
acl IP_LIST {
192.168.1.1;
192.168.1.2;
};
И вставлять уже ее:
allow-transfer {IP_LIST;};
Не забываем добавить в /etc/resolv.conf строчку
nameserver 127.0.0.1
Она должна быть выше других днс-серверов, записанных в этом файле.
Добавляем в /etc/rc.conf
named_enable=”YES”
named_flags=”-u bind”
Запускаем
#/etc/rc.d/named start
Проверить, резолвятся ли адреса:
# host 10.12.51.11
11.51.12.10.in-addr.arpa domain name pointer unlim-hostel5.ru.
# host unlim-hostel5.ru
unlim-hostel5.ru has address 10.12.51.11
Главное при настройке быть внимательным, и стараться не поставить лишнюю точку не там где надо
3 февраля 2010 в 1:25
я бы не назвал статью полезной.
нинающего (а наткнуться на нее по больому счету начинающие) эта статья только запутает.
не понятно, что вы тут настраиваете.
авторитетный сервер или кеширующий или и то и то…
/etc/resolv.conf можно оставить пустым
более подробно почему изучайте nsswitch.conf
26 мая 2010 в 23:13
Доброго времени суток, извиняюсь заранее за тупейший вопросик:
Если я хочу добавить какой либо програму (сервис) в авто загрузку то его надо прописать в /etc/rc.conf ?