И так. Это моя вторая инструкция по администрированию CentOS. Первую Вы можете прочитать на нашем WIKI в разделе Администрирование
Развиваемся дорогие товарищи.
Сразу говорю, писатель из меня не очень, так что не ругайте слишком сильно. Главное же результат wink
Задача:
Установить сервер DNS в chroot окружении. Так же он должен автоматически добавлять A и TXT записи от новых компьютеров
Установить DHCP сервер для динамической раздачи IP адреса всем компьютерам в нашей сети с привязкой к DNS
Настроить не просто кеширующий DNS, а как primary DNS
В качестве DNS сервера был выбран bind9, как наиболее распространенный. Вся установка будет происходить в консоле, т.к. это сервер и всякие DE и GUI нам не понадобятся.
Начнем с настройки сетевого интерфейса нашей карточки. Открываем конфигурационный файл с помощью вашего любимого редактора.
Правим все значения как вам нужно.
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, если он еще не установлен.
bind-9.7.2-1.P3.el5
bind-chroot-9.7.2-1.P3.el5
Ну и собственно переходим к правке главного конфигурационного файла 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
-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
итого 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; };
};
Продолжение следует......
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"
