О web-разработке
и даже немного больше...

Установка BIND сервера на CentOS

В данной статье мы рассмотрим простой пример установки BIND на CentOS 6-версии. BIND – одна из популярных реализаций DNS-сервера, с открытым исходным кодом. DNS – сервера выполняют преобразование DNS-имени в IP-адрес и наоборот.
Перед началом установки хотелось бы отметить, что рекомендуется иметь хотя бы два сервера в облаке, чтобы обеспечить лучшую работоспособность в случае отказа работы одного из серверов. В нашем примере мы предполагаем настройку как первичного, так и вторичного сервера DNS.

Обратите внимание, что если вы решили использовать большое количество доменных имен, то конфигурирование настроек подобным образом может оказаться не очень удобным.
Использование своего сервера DNS позволяет иметь более прямой контроль над инфраструктурой вашего хостинга, а так же DNS записями. Пожалуй, можно приступать к установке.

Первое что следует сделать, проверить актуальность системы, и обновить в случае необходимости. Проверить наличие обновлений вы можете посредством команды yum.

# yum update –y

После этого можно приступить в первичной установке BIND на сервер.

Первичная установка BIND на сервер

# yum install bind bind-utils –y

После установки сервера необходимо открыть конфигурационный файл для настройки конфигурации.

# vi -w /etc/named.conf

В конфигурации «options» вместо IP адреса 2.2.2.2 следует прописать адрес вашего второго сервера.

options {
	#listen-on port 53 { 127.0.0.1; };
	listen-on-v6 port 53 { ::1; };
	directory	"/var/named";
	dump-file	"/var/named/data/cache_dump.db";
	statistics-file "/var/named/data/named_stats.txt";
	memstatistics-file "/var/named/data/named_mem_stats.txt";
	allow-query { any; };
	allow-transfer     { localhost; 2.2.2.2; };
	recursion no;

	dnssec-enable yes;
	dnssec-validation yes;
	dnssec-lookaside auto;

	/* Path to ISC DLV key */
	bindkeys-file "/etc/named.iscdlv.key";

	managed-keys-directory "/var/named/dynamic";
};

Из соображений безопасности мы закомментировали значение директивы «listen-on». Параметр обозначает, что сервер будет принимать обращения со всех доступных интерфейсов. Так же выставляем директиву в «recursion» в «no», так как это может послужить уязвимостью для DDOS-атак на сервер. В директиве «allow-transfer» указываем сервера, которым мы «доверяем», это наш второй сервер. Выставляем для директивы «allow-query» значение «any», это позволит получать надлежащий доступ к размещаемым доменным зонам.

Следующим шагом мы добавим запись для первого домена, в файле конфигурации named.conf

zone "mydomain.com" IN {
		type master;
		file "mydomain.com.zone";
		allow-update { none; };
};

После сохранения файла, мы можем приступить к созданию первого файла доменной зоны. Создаем файл, используя доменное имя использованное выше, т.е. mydomain.com.zone:

# vi /var/named/mydomain.com.zone

Файл мы создаем, поэтому нам в нем следует указать кое-какие параметры. Подобно примеру, показанному ниже, вы должны заменить адреса 1.1.1.1 – это адрес вашего первого сервера (NS1), 2.2.2.2 – это адрес вашего второго сервера (NS2), и 3.3.3.3 – адрес, на котором находится веб-сервер. Дополнительные записи доменных имен вы можете добавлять в том же формате.

$TTL 86400
@   IN  SOA     ns1.mydomain.com. root.mydomain.com. (
        2013042201  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
; указываем пару NS серверов
		IN	NS		ns1.mydomain.com.
		IN	NS		ns2.mydomain.com.
; замените адреса серверов на свои
ns1		IN	A		1.1.1.1
ns2		IN	A		2.2.2.2

; указываем имя хостов и IP серверов, которые будут отвечать
@		IN	A		3.3.3.3
www		IN	A		3.3.3.3

Теперь мы первично запускаем сервер named. Это может занять некоторое время, пока named сгенерирует файл rndc.key, создаваемый только при первом запуске.

# service named restart

Выключать DNS сервер при работе не рекомендуется, но бывает случаи, когда без этого не обойтись. Поэтому добавляем сервер в автозагрузку.

# chkconfig named on

После предыдущих шагов настроек на данный момент мы уже должны иметь полностью работоспособный первичный DNS сервер. Чтобы проверить, что это дело работает, следует выполнить команду указанную ниже, а так же заменить адрес 1.1.1.1 на адрес вашего первичного сервера.

# dig @1.1.1.1 mydomain.com

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

Конфигурация вторичного DNS сервера
После того как первичный сервер был настроен, приступим к настройке вторичного сервера. Как уже мы делали ранее, обновляем систему, до актуальной версии.

# yum update –y

После этого устанавливаем BIND сервер, а так же его компоненты на вторичный сервер, аналогичным образом, как это делали ранее.

yum install bind bind-utils –y

Далее, так же как и на первом сервере имен, создаем файл named.conf и прописываем в нем всё то же, за исключением директивы «allow transfer». Эта директива не нужна, т.к. это вторичный сервер.

# vi /etc/named.conf
options {
		#listen-on port 53 { 127.0.0.1; };
        listen-on-v6 port 53 { ::1; };
        directory	"/var/named";
        dump-file	"/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
		allow-query { any; };
        recursion no;

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;

        /* путь до ISC DLV ключа */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};

Добавляем запись зоны, аналогично первичному серверу, за исключением того, что в директиве type нужно указать slave, а так же поменять 1.1.1.1 на адрес первичного сервера.

zone "mydomain.com" IN {
	type slave;
	masters { 1.1.1.1; };
	file "mydomain.com.zone";
};

После конфигурирования вторичной зоны, следует перезапустить сервер named. Как и говорилось ранее, на этом сервере так же будет создан файл rndc.key, это займет немного времени.

Добавляем файл сервер в автозагрузку:

# chkconfig named on

Проверяем, что всё работает, заменяем 2.2.2.2 на адрес вашего вторичного сервера.

# dig @2.2.2.2 mydomain.com

После внесения изменений, внесенных в файл основной доменной зоны, вам следует поручать BIND серверу перезагружать конфигурацию. Есть директива serial, значение которой должно увеличиваться вручную, главным образом служит для синхронизации между ведущим и ведомым серверами.
Для перезагрузки файла зон с новой конфигурацией, следует выполнить следующую команду на первичном сервере, затем на вторичном.

# rndc reload
Опубликован: 15.12.2016 г.

См. также:

Установка и использование FFmpeg в CentOS 7
Сжатие PDF-файлов в Linux
Установка Node.js на Linux CentOS 7
Обновление пакетов в CentOS
Bash: mail: command not found
Выставляем временную зону в CentOS 7
Настройка SELinux, включение, отключение
Меняем пароль root в MySQL 5.7

Комментарии

  1. Serega пишет:

    Можно ли как-то обработать запросы на неверные/несуществующие домены?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Комментарии
  • Загрузка...
Друзья сайта