1 (18.02.2011 19:22:15 отредактировано XliN)

И так. Это моя вторая инструкция по администрированию CentOS. Первую Вы можете прочитать на нашем WIKI в разделе Администрирование

Развиваемся дорогие товарищи. ag Сразу говорю, писатель из меня не очень, так что не ругайте слишком сильно. Главное же результат wink

Задача:

  • Установить сервер DNS в chroot окружении. Так же он должен автоматически добавлять A и TXT записи от новых компьютеров

  • Установить DHCP сервер для динамической раздачи IP адреса всем компьютерам в нашей сети с привязкой к DNS

  • Настроить не просто кеширующий DNS, а как primary DNS

В качестве DNS сервера был выбран bind9, как наиболее распространенный. Вся установка будет происходить в консоле, т.к. это сервер и всякие DE и GUI нам не понадобятся.

Начнем с настройки сетевого интерфейса нашей карточки. Открываем конфигурационный файл с помощью вашего любимого редактора.

 Консоль:
vim /etc/sysconfig/network-settings/ifcfg-eth0

Правим все значения как вам нужно.

DEVICE=eth0
IPADDR=192.168.1.150
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
GATEWAY=192.168.1.1
ONBOOT=yes
DHCP_HOSTNAME=master

В данном примере видно что сеть у нас 192.168.1.0/24. Сервер у нас со статическим IP адресом 192.168.1.150 и именем хоста MASTER. Так же видно что GATEWAY(шлюз) 192.168.1.1 - это тот компьютер с которого идет раздача интернета.

Прошу заметить, без параметра DHCP_HOSTNAME могут быть проблемы, так что прошу его не пропускать.

Устанавливаем сам bind, если он еще не установлен.

 Консоль:
yum -y install bind bind-chroot caching-nameserver

 Консоль:
[root@master ~]# rpm -q bind bind-chroot
bind-9.7.2-1.P3.el5
bind-chroot-9.7.2-1.P3.el5

Ну и собственно переходим к правке главного конфигурационного файла named.conf.

 Консоль:
vim /var/named/chroot/etc/named.conf

+ открыть спойлер

options {
        listen-on {localhost; 192.168.1.150; };
        directory       "/var/named/";
        dump-file       "data/cache_dump.db";
        statistics-file "data/named_stats.txt";
        memstatistics-file "data/named_mem_stats.txt";
        allow-transfer {192.168.1.150; };
        allow-query     {trusted-networks; };
        allow-recursion {trusted-networks; };
        forwarders {192.168.1.1; };
};
logging {
        channel default_ch {
                file "data/named-base.log";
                severity info;
                print-time yes;
                print-category yes;
        };

        channel security_ch {
                file "data/named-security.log";
                severity info;
                print-time yes;
                print-category yes;
        };
category default { default_ch; };
category security { security_ch; };

};

acl "trusted-networks" {localhost; 192.168.1.0/24; };

zone "saikov.ru" IN {
        type master;
        file "saikov.ru";
        allow-update { key rndckey; };
};

zone "168.192.in-addr.arpa" {
        type master;
        file "168.192.rev";
        allow-update { key rndckey; };
};

include "/etc/named.rfc1912.zones";
include "/etc/rndc.key";

Давайте разберем его более подробно.
Во первых, первая проблема возникла из-за прав на этот файл. Когда Вы его создадите, проследите что бы владельцем был пользователь named

 Консоль:
[root@master etc]# ls -l named.conf
-rw-r----- 1 named named 1053 Фев  7 19:06 named.conf

options - секция, где описываются глобальные настройки. Состоит она из нескольких параметров. Давайте их разберем.

listen-on - указываем IP и порты на котором named будет работать
directory - путь к каталогу, где размещены все необходимые файлы для работы named
dump-file - здесь указываем путь к кешу
statistics-file - опция указывающая расположение файла статистики
memstatistics-file - опция указывающая расположение файла статистик использования памяти
allow-transfer - указываем IP, которым разрешено передавать зону
allow-query - указываем IP с которыми DNS будет работать
allow-recursion - указываем IP, рекурсивные запросы которых будем обслуживать
forwarders - если наш сервер не сможет ответить на запрос, то он перенаправит их на указанные DNS в этом параметре.

Опять же. Не забывайте проверять права на файлы. Как указано выше, они лежат у нас в /var/named/chroot/var/named/data

 Консоль:
[root@master ~]# ll /var/named/chroot/var/named/data/
итого 96
-rw-r--r-- 1 named named 81286 Фев 10 14:54 named-base.log
-rw-r--r-- 1 named named  5934 Фев  7 21:04 named_mem_stats.txt
-rw-r--r-- 1 named named   685 Фев  7 18:22 named-security.log

logging - секция отвечающая за логирование нашего DNS сервера. Она у меня разбита, как видно из конфигурационного файла, на две части.

Первая отвечает за стандартные (default) логи и пишет все в /var/named/chroot/var/named/data/named-base.log
Вторая отвечает за логи безопасности и пишет все в /var/named/chroot/var/named/data/named-security.log

Так же имеются еще три одинаковых параметра

severity info; - работать в информационном уровне важности
print-time yes; - указывать в логах время
print-category yes; - разрешить регистрировать категории

Делаем привязку к нашим двум каналам, указывая что default будет идти в канал default_ch, а security в канал security_сh

category default { default_ch; };
category security { security_ch; };

Создаем Access control list и водим переменную в которой пишем список наших сетей. Эта переменная используется в allow-query и allow-recursion. Это нужно для упрощения настройки. Если поменяются IP адреса, то можно будет поменять только тут, а не во всем конфигурационном файле.

acl "trusted-networks" {localhost; 192.168.1.0/24; };

Дальше все понятно. Указываем прямую и обратную зону нашего домена.

zone "saikov.ru" IN {
        type master;
        file "saikov.ru";
        allow-update { key rndckey; };
};

zone "168.192.in-addr.arpa" {
        type master;
        file "168.192.rev";
        allow-update { key rndckey; };
};

type master; - говорим что он является основным DNS (master)
file "saikov.ru"; - файл где описана прямая зона домена saikov.ru
allow-update { key rndckey; }; - работа с ключом

Точно так же и для обратной зоны. Только файл описывающий обратную зону называется 168.192.rev

Файлы зоны лежат в /var/named/chroot/var/named/, права на них named.named

Ну и последними двумя строчками подгружаем ключик и локальные зоны. Такие как 127.0.0.1, localhost и т.д. Он создается сам, после установки BIND

include "/etc/named.rfc1912.zones";
include "/etc/rndc.key";

+ открыть спойлер

zone "localhost.localdomain" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

zone "localhost" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

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" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};

zone "1.0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};

zone "0.in-addr.arpa" IN {
        type master;
        file "named.empty";
        allow-update { none; };
};

Продолжение следует......

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

2

Статья останется пока не законченная, ввиду некоторых осложнений и нюансов в настройке DNS. Сначала разберусь сам, а потом допишу инструкцию.

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

3

Непонятно, каков смысл в этой статье, когда на оффсайте Red Hat наверняка есть документация по настройке bind.
Или нет? ))
Судя по мегатоннам блогов по настройке bind на оффсайтах процветает академизм в написании док. Или как еще объяснить, что каждый первый желает написать свой, неповторимый блог по настройке того сего.

Opened problems: 5. closed: 1.

4

EsTaF пишет:

Непонятно, каков смысл в этой статье, когда на оффсайте Red Hat наверняка есть документация по настройке bind.
Или нет? ))
Судя по мегатоннам блогов по настройке bind на оффсайтах процветает академизм в написании док. Или как еще объяснить, что каждый первый желает написать свой, неповторимый блог по настройке того сего.

Тут смысл не токо в BIND но ещё и в DHCP. Я когда настраивал в одной шараге сеть так намучился с DHCP что не какой информации толком нет (даже на офф сайте).

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

5

Статья хорошая и нужная. На русском языке я не находил толковых статей только на вражеском.
А как реализуется связка powerDNS + DHCPd кто нибудь пробовал?

6

Кому не надо. Не читайте. Написал чисто для себя. Что бы не делать все опять с нуля.

З.Ы. У меня сейчас все работает. Если нужно. Могу дописать как прикрутить dhcp на основе моих рабочих конфигов и выложить примеры файлов зон.

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

7

--=XliN=-- пишет:

З.Ы. У меня сейчас все работает. Если нужно. Могу дописать как прикрутить dhcp на основе моих рабочих конфигов и выложить примеры файлов зон.

было бы не плохо

8

Токо надо зделать заметку что bind в chroot

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

9

EsTaF пишет:

Или нет? ))

дык дайте ссылку, если есть.
что касается bind'а, то как я погляжу - инструкция вполне универсальная, подойдёт не только для CentOS

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)