Как настроить DNS (Bind) сервер на CentOS/RHEL 7/6/5

DNS (Система доменных имен) представляет собой распределенную структуру, предназначенную для преобразования доменных имен в IP-адреса и обратно. Например, когда вы вводите доменное имя в адресной строке браузера, как «https://tecadmin.net», ваш компьютер отправляет запрос к DNS и получает IP-адрес для этого домена.

В данной статье вы узнаете, как пошагово настроить DNS-сервер на системах CentOS и RedHat.

Сетевой сценарий:

  • IP-адрес DNS-сервера: 192.168.1.254
  • Имена DNS-серверов: ns1.tecadmin.net, ns2.tecadmin.net
  • Доменное имя: demotecadmin.net
  • IP-адрес домена: 192.168.1.100

Для начала убедитесь, что у вас установлен пакет BIND. Вы можете установить его с помощью команды:

yum install bind bind-utils

После установки необходимо настроить конфигурационный файл BIND, который обычно находится по пути /etc/named.conf. Добавьте следующие строки в файл:


options {
listen-on port 53 { any; };
listen-on-v6 { none; };
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;
};

Далее создайте зону для вашего домена. В том же файле /etc/named.conf добавьте следующие строки:


zone "demotecadmin.net" IN {
type master;
file "demotecadmin.net.db";
};

Теперь создайте файл зоны demotecadmin.net.db в каталоге /var/named/. Пример содержимого файла:


$TTL 86400
@ IN SOA ns1.tecadim.net. admin.demotecadmin.net. (
2023110101 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS ns1.tecadim.net.
@ IN NS ns2.tecadim.net.
@ IN A 192.168.1.100
ns1 IN A 192.168.1.254
ns2 IN A 192.168.1.255

После этого проверьте синтаксис конфигур

Установка пакетов Bind

Пакеты Bind доступны в стандартных репозиториях yum. Для их установки выполните следующую команду.

# yum install bind bind-chroot

После установки необходимо настроить конфигурационные файлы. Основной файл конфигурации находится по адресу /etc/named.conf. Рекомендуется создать резервную копию перед внесением изменений.

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

# systemctl status named

Чтобы запустить сервис, выполните:

# systemctl start named

Также стоит добавить его в автозагрузку:

# systemctl enable named

Читайте также:  Установка и настройки VNC в Ubuntu или Debian

Обратите внимание, что для корректной работы DNS-сервера необходимо настроить файрвол и разрешить доступ к необходимым портам (обычно 53). Для этого можно использовать команды:

# firewall-cmd --add-service=dns --permanent
# firewall-cmd --reload

Не забудьте перезапустить службу Bind после внесения изменений в конфигурацию:

# systemctl restart named

Редактирование основного файла конфигурации

Основной файл конфигурации Bind обычно располагается в директории /etc. Однако в окружении chroot он находится в /var/named/chroot/etc. Отредактируйте основной файл конфигурации, обновив его содержимое, как указано ниже.

# vim /var/named/chroot/etc/named.conf

Содержимое для файла named.conf


// /var/named/chroot/etc/named.conf
options {
listen-on port 53 { 127.0.0.1; 192.168.1.0/24; 0.0.0.0/0; };
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 { localhost; 192.168.1.0/24; 0.0.0.0/0; };
recursion yes;
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";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "demotecadmin.net" IN {
type master;
file "/var/named/demotecadmin.net.db";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

Не забудьте проверить синтаксис файла конфигурации после редактирования. Это можно сделать с помощью команды:

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

Также рекомендуется создать резервную копию оригинального файла конфигурации перед внесением изменений. Это можно сделать с помощью команды:

# cp /var/named/chroot/etc/named.conf /var/named/chroot/etc/named.conf.bak

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

# systemctl restart named

Для повышения безопасности сервера DNS рекомендуется ограничить доступ к нему только необходимым IP-адресам и использовать механизмы аутентификации, такие как TSIG (Transaction Signature). Также можно настроить уведомления о возможных проблемах через систему логирования. Убедитесь, что используете актуальные версии программного обеспечения и регулярно проверяйте обновления для устранения уязвимостей.

Кроме того, рассмотрите возможность внедрения мониторинга производительности и доступности вашего DNS-сервера, чтобы своевременно выявлять проблемы и реагировать на них.

Создание файла зоны для вашего домена

После настройки основного файла конфигурации создайте файл зоны для вашего домена, например, demotecadmin.net.db, как указано в этой статье.

Читайте также:  Как установить и настроить файловый менеджер mc в CentOS 8 шаг за шагом

# vim /var/named/chroot/var/named/demotecadmin.net.db

Содержимое для файла зоны

; Zone file for demotecadmin.net
$TTL 14400
@ 86400 IN SOA ns1.tecadmin.net. webmaster.tecadmin.net. (
3013040200 ; serial, todays date
86400 ; refresh, seconds
7200 ; retry, seconds
3600000 ; expire, seconds
86400 ; minimum, seconds
)
demotecadmin.net. 86400 IN NS ns1.tecadmin.net.
demotecadmin.net. 86400 IN NS ns2.tecadmin.net.
demotecadmin.net. IN A 192.168.1.100
demotecadmin.net. IN MX 0 mail.demotecadmin.net.
mail IN CNAME demotecadmin.net.
www IN CNAME demotecadmin.net.

Если у вас несколько доменов, вам нужно создать отдельные файлы зон для каждого из них.

Не забудьте перезагрузить DNS-сервер после внесения изменений в файл зоны. Это можно сделать с помощью команды:

# rndc reload

Также рекомендуется проверять синтаксис вашего файла зоны с помощью утилиты named-checkzone перед перезагрузкой. Например:

# named-checkzone demotecadmin.net /var/named/chroot/var/named/demotecadmin.net.db

Это поможет избежать возможных ошибок, которые могут привести к сбоям в работе DNS.

Кроме того, убедитесь, что у вас правильно настроены записи для других сервисов, таких как SPF и DKIM, если вы используете почтовые серверы. Это поможет повысить безопасность и доставляемость вашей почты.

Добавление дополнительных доменов

Чтобы добавить новые домены в DNS, создайте индивидуальные файлы зон для каждого домена, как описано выше. Затем добавьте соответствующие записи для всех зон в named.conf, заменив demotecadmin.net на ваше доменное имя.

zone "demotecadmin.net" IN { type master; file "/var/named/demotecadmin.net.db"; };

Не забудьте правильно настроить записи DNS для новых доменов, включая A-записи для указания IP-адресов серверов, MX-записи для почтовых серверов и любые другие необходимые записи, такие как CNAME и TXT. Проверьте синтаксис конфигурационного файла с помощью команды named-checkconf перед перезагрузкой сервиса, чтобы избежать ошибок. После внесения изменений перезагрузите DNS-сервер с помощью команды systemctl restart named.

Также рекомендуется использовать инструменты для проверки DNS, такие как dig или nslookup, чтобы убедиться, что ваши записи корректны и обновления вступили в силу.

Дополнительно, чтобы упростить управление доменами, вы можете использовать автоматизированные скрипты для создания файлов зон и добавления записей в конфигурационный файл. Это особенно полезно, если вы планируете добавлять большое количество доменов. Также стоит рассмотреть использование управления через интерфейсы API, если ваша DNS-платформа это поддерживает.

Читайте также:  Какую операционную систему выбрать для сервера: Windows Server или Linux?

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

Запуск службы Bind

Для запуска именованной (привязанной) службы воспользуйтесь следующей командой.

# service named restart

Активируйте автоматический запуск службы при загрузке системы.

# chkconfig named on

Отправьте запрос непосредственно на ваш DNS-сервер, используя следующую команду. Синтаксис: nslookup

# nslookup demotecadmin.net 192.168.1.254

В результате выполнения команды вы увидите информацию о сервере:

Server: 192.168.1.254 Address: 192.168.1.254#53

После этого вы получите результат разрешения доменного имени:

Name: demotecadmin.net Address: 192.168.1.100

Результат выше указывает на то, что DNS-сервер успешно разрешил доменное имя demotecadmin.net.

Если вы столкнулись с проблемами при разрешении имен, проверьте конфигурацию вашего DNS-сервера в файле /etc/named.conf и убедитесь, что он правильно настроен.

Также вы можете использовать команду # dig demotecadmin.net @192.168.1.254 для получения более подробной информации о процессе разрешения доменного имени.

Мониторинг и диагностика работы DNS сервера

Логи представляют собой основное средство для анализа активности. Они содержат информацию о запросах, ответах и любых ошибках, которые могут возникнуть в процессе работы. Регулярный просмотр этих файлов помогает выявить аномалии и определить причины сбоев.

Для тестирования системы можно использовать утилиты, такие как dig и nslookup, которые позволяют выполнять запросы к механизмам и получать данные о разрешении имен. Эти инструменты помогают не только проверить доступность ресурсов, но и диагностировать возможные проблемы с конфигурацией.

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

Наконец, стоит обратить внимание на производительность. Анализ времени отклика и нагрузок на систему помогает оптимизировать её работу, что в свою очередь улучшает качество обслуживания запросов. Использование всех этих методов в комплексе обеспечивает надежность и высокую доступность системы разрешения имен.

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

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