time

Настройка bind-сервера под centos

BIND представляет собой DNS-сервер для перевода доменных имен в IP адреса и наоборот.

Установим BIND с использованием смены корневого каталога (chroot) для увеличения безопасности системы. Все манипуляции производятся на чистом сервере, с только-что установленной Centos 5.6.

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

rpm -qa "bind*"

Если нет, то установим

yum install bind bind-chroot

Настроем утилиту rndc, которая умеет управлять BIND с локальной или удаленной машины.

cd /var/named/chroot/etc
rndc-confgen > rndc.key

Создадим файл с настройками named.conf (в этой же директории) с таким содержимым

options {
    directory "/var/named";
    dump-file "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    listen-on { 192.168.1.4; };
    version "pydns 0.1";
    allow-recursion { none; };
    allow-query { any; };
    forwarders { 8.8.8.8; };    
};

Также добавим в named.conf строки из rndc.key, которые следуют за комментарием Use with the following in named.conf, это позволит узнать короткую информацию о сервере и количестве зон с помощью rndc status.

Добавим в конец файл с настройками (named.conf) описание зон.

Описание корневых серверов

zone "." IN {
    type hint;
    file "named.ca";
};

Описание тестовой зоны proft.com.ua

// forward zone
zone "proft.com.ua" IN {
    type master;
    file "data/proft.com.ua.zone";
    allow-update { none; };
    //allow-transfer { 192.168.1.4; };
};
// reverse zone
zone "1.168.192.in-addr.arpa" IN {
    type master;
    file "data/192.168.1.zone";
    allow-update { none; };
    //allow-transfer { 192.168.1.4; };
};

Настройки зоны proft.com.ua сохраним в файле /var/named/chroot/var/named/data/proft.com.ua.zone

$TTL 38400
@ IN SOA ns1.proft.com.ua. admin.proft.com.ua.(
        2011062201 ; Serial
        2H ; Refresh after 2 hours
        30M ; Retry after 30 minutes
        1W ; Expire after 1 week
        1D ); Minimum TTL of 1 day

@ IN NS ns1.proft.com.ua.
@ IN NS ns2.proft.com.ua.
@ IN A  192.168.1.4
www IN CNAME @
@ IN MX 10 mail.proft.com.ua.
mail IN A 192.168.1.4

Настройки обратной зоны сохраним в файле /var/named/chroot/var/named/data/192.168.1.zone

$TTL 86400
1.168.192.in-addr.arpa. IN  SOA ns.proft.com.ua. admin.proft.com.ua. (
            2011062201
            2H
            30M
            1W
            1D )

1.168.192.in-addr.arpa. IN  NS ns.proft.com.ua.
4.1.168.192.in-addr.arpa. IN PTR mail.proft.com.ua.
4.1.168.192.in-addr.arpa. IN PTR www.proft.com.ua.

Проверим файл с настройками на ошибки

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

Проверим файл с зоной на ошибки

named-checkzone proft.com.ua /var/named/chroot/var/named/data/proft.com.ua.zone

Добавим IP настраиваемой машины в /etc/resolv.conf

nameserver 192.168.1.4

Добавим демон named в автозагрузку

chkconfig --levels 235 named on

и запустим

service named start

Статус сервера можно узнать по команде

rndc status

Перезагрузить все зоны

rndc reload

Перезагрузить только зону proft.com.ua

rndc reload proft.com.ua

Разрешим запросы на 53 порт извне. Внесем в файл /etc/sysconfig/iptables такие строчки

# BIND DNS
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 53 -j ACCEPT

# RNDC (FOR DNS)
-A RH-Firewall-1-INPUT -p tcp -s 127.0.0.1 -d 127.0.0.1 --dport 953 -j ACCEPT

Выполним

service iptables restart

Проверим работу

dig @192.168.1.4 proft.com.ua

Все ошибки пишутся в лог /var/log/messages.

Если часто приходиться править файл с зоной и пользуетесь vim'ом, то есть плагин UpdateDNSSerial, который умеет автоматически увеличивать серийный номер SOA.

Для внешней проверки настроек DNS-сервера есть сайт intodns.com.

Для удобного мониторинга запросов к DNS-серверу в реальном времени есть утилита dnstop. Пример установки и использования под Ubuntu:

# установка
sudo apt-get install dnstop

# пример использования
sudo dnstop -4 eth0

Теоретическая часть

Дополнительное чтиво

Сервис для проверки DNS

blog comments powered by Disqus