Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Установка и настройка DNS сервера BIND (named) в CentOS (RedHat) кратко

Практика



Задача: установить и выполнить начальную настройку DNS-сервера bind (так-же известного как named) на ОС Linux CentOS (ОС из семейства RedHat).

Мы будем использовать режим chroot для bind для повышения его безопасности.


Устанавливаем

# yum install bind-chroot


За собой он потянет и родительский пакет - bind.


Настраиваем

После установки пакета нас резко начинает интересовать папка:

/var/named/chroot/etc

Именно в ней хранит конфиги named в нашем chroot-режиме. Так что давайте, для удобства ползания туда - создадим симлинк в /etc:

# cd /var/named/chroot/etc
# ln -s /var/named/chroot/etc /etc/named


Все, теперь, зайдя на сервер, мы можем ползать в настройки named по удобному маршруту

/etc/named


Давайте создадим каталог, в котором будут находится описания зон:

# mkdir master


Теперь нужно создать файл /var/named/chroot/named.conf, который в RHEL-системах сам не создается даже с минимальным конфигом. Что-ж, делаем ручками. Вот пример такого конфига с разъяснениями - что и зачем:

options {
directory "/var/named";

# Здесь указываются сервера DNS, к которым будет обращаться этот сервер в случае,
# если он сам не является хозяином домена, который резолвит. Обычно указываются
# DNS-сервера Вашего провайдера и/или DNS-сервера контроллеров домена.
# ..Например, если этот сервер спросить - какой IP у yandex.ru - то он сам не
# будет знать, зато сможет спросить у выше-стоящего сервера DNS провайдера.
forwarders {
11.77.55.33;
11.77.55.34;
192.168.0.1;
};

# Откуда принимать DNS запросы. "any" означает - со всех интерфейсов от любого
# компьютера
allow-query { any; };

# Здесь указываются slave-сервера DNS, которым дозволено передавать информацию
# при обновлении DNS-зон на текущем сервере.
allow-transfer {
11.22.33.45;
192.168.0.2;
};

# Здесь указываются адреса или подсети, с которых допускаются рекурсивные запросы.
allow-recursion {
127.0.0.1;
192.168.0.0/24;
};

# При включении этой опции и изменении какой-либо DNS-зоны на этом сервере - он
# самостоятельно известит все slave-сервера о том, что зона поменялась и ее
# необходимо перезагрузить.
notify yes;

# По-умолчанию извещается только тот сервер (сервера), которые указаны как slave-
# сервера внутри описания самой зоны. Если у Вас slave-сервер(а) один и тот же -
# то логично прописать его(их) как сервера, которые всегда стоит уведомлять об
# изменении зон. При этом, даже если эти сервера не являются носителями этих зон -
# ничего страшного не произойдет - они просто "пропустят мимо ушей" информацию об
# изменении.
# Данная опция и предоставляет такую возможность - указать slave-DNS-сервера,
# которые всегда извещяются об изменениях зон.
also-notify {
11.22.33.45;
192.168.0.2;
};

auth-nxdomain no;

# Ожидать ли запросы по IPv6 протоколу и откуда? "none" означает - не ожидать и
# игнорировать; "any" означает ожидать от всех компьютеров.
listen-on-v6 { none; };

};

include "/etc/zones.conf";


Теперь создаем файл /var/named/chroot/etc/zones.conf

Да-да, я не ошибся - именно его. Под chroot он будет по пути /etc/zones.conf, т.ч. все нормально.

В этом файле будут находится объявления наших зон.

Для того, чтобы проверить наш сервер внутренности файла предложим такими:

zone "test.int" {
type master;
file "/etc/master/test.int";
};


Теперь топаем в каталог

/var/named/chroot/etc/master/

где у нас будут располагаться конфигурации DNS-зон и создаем файл "test.int"

# cd /var/named/chroot/etc/master
# touch test.int


вот такого содержания:

$ORIGIN .
$TTL 3600
test.int. IN SOA ns1.mydomain.ru. webadmin.mydomain.ru. (
2011080901 ; serial
28800 ; refresh (8 hours)
7200 ; retry (2 hours)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS ns1.mydomain.ru.
NS ns2.mydomain.ru.
A 192.168.0.50
MX 10 mail.mydomain.ru.

$ORIGIN test.int.
ftp A 192.168.0.51
mail A 192.168.0.3
www CNAME test.int.


Запишем файл и закроем.


Запуск и проверка

Давайте запустим нашего демона и проверим - работает ли он.

# /etc/init.d/named start


и проверка:

# nslookup test.int 127.0.0.1


Если в ответе мы получим что-то вроде такого:

Server: 127.0.0.1
Address: 127.0.0.1#53

Name: test.int
Address: 192.168.0.50


То наш сервер работает.


Дальнейшая жизнь DNS-сервера

Аналогичным образом создаются все остальные зоны, уже с реальными реквизитами (например, из зон .ru, .com и т.д.) Файл named.conf.zones выглядит примерно так:

zone "mydomain.ru" {
type master;
file "/etc/bind/master/mydomain.ru";
};

zone "anothersite.com" {
type master;
file "/etc/bind/master/anothersite.com";
};


И для каждой зоны создаем файлик с ее конфигурацией в /var/named/chroot/etc/master подобно пробной конфигурации test.int.


PS. Совет. НЕ забывайте ставить ";" в конфиге named везде, где это нужно! Отсутствие одной такой точки-с-запятой обломит запуск всего bind.

PPS. НЕ забывайте ставить конечную точку "." в конце зон, которые являются абсолютными (рекомендуется вообще везде). Т.е., например, если вместо "test.int." в конфиге зоны написать "test.int" - получите Вы совсем не то, что ожидали! Ну и, соответственно, работать нифига не будет.

PPPS. При изменении (любом) зоны - не забывайте увеличивать ее сервийный номер (serial). Причем не просто менять - а именно увеличивать. В данном случае запись виде YYYYMMDDNN, где YYYY - год 4 цифры, MM - месяц 2 цифры, DD - 2 цифры дня и NN - это "какой раз я за этот день меняю зону" - вполне удобна, т.к. по течению времени ее числовое значение будет только увеличиваться.



Ведомые сервера

На случай, если Вам необходимо сразу же настроить и ведомый сервер (второй) DNS - то читайте в соотв. статье.

Актуально для: CentOS 5.6+
создано: 2017-05-09
обновлено: 2021-03-13
1356



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)

Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)