BIND или Berkeley Internet Name Domain — это бесплатное программное обеспечение DNS-сервера с открытым исходным кодом. Это одно из самых популярных программ DNS-сервера, используемое более чем 70% DNS в Интернете. BIND существует с 1980-х годов, хорошо известно своей гибкостью, производительностью и функциями. BIND может использоваться как авторитетный DNS и кэширующий DNS, а также поддерживает балансировку нагрузки, динамическое обновление, раздельный DNS, DNSSEC, IPv6 и многое другое.
Программное обеспечение BIND DNS является одним из самых надежных DNS-серверов для Unix-подобных операционных систем. Оно доступно в большинстве дистрибутивов Linux и предоставляет дополнительные инструменты для диагностики и тестирования DNS-сервера.
В этом руководстве вы узнаете, как настроить DNS-сервер с помощью BIND на сервере Rocky Linux 9. BIND — одно из самых популярных программных обеспечение DNS-сервера, которое предоставляет различные функции, такие как авторитарный DNS, кэш-DNS, базовая балансировка нагрузки DNS, раздельный DNS, DNSSEC, IPv6 и многое другое.
Требования
С помощью этого руководства вы настроите и реализуете DNS-сервер BIND с архитектурой Master-Slave. Итак, вам понадобятся два сервера Rocky Linux. Также вам понадобятся права root/administrator на каждом сервере.
Чтобы настроить публичный DNS-сервер, который сможет обслуживать ваш домен (авторитетный DNS-сервер), вам также необходимо зарегистрировать доменное имя и настроить "связующие записи".
Кроме того, в этом руководстве мы предполагаем, что у вас SELinux работает в "разрешающем" режиме.
Подготовка системы
Для начала работы с этим руководством вы настроите правильное FQDN (полное доменное имя) на каждом из ваших серверов Rocky Linux. Это можно сделать с помощью утилиты командной строки "hostnamectl" и файла "/etc/hosts".
Ниже приведены сведения о серверах, которые будут использоваться в качестве примера для этого руководства:
Hostname IP Address FQDN Used as
---------------------------------------------------------------
ns1 185.191.126.49 ns1.xss.pro Master
ns2 185.191.126.50 ns2.xss.pro Slave
На главном сервере запустите указанную ниже утилиту hostnamectl, чтобы поменять полное доменное имя на "ns1.xss.pro".
# устанавливаем имя хоста
sudo hostnamectl set-hostname ns1.xss.pro
Ниже вам также необходимо выполнить команду hostnamectl на подчиненном сервере, чтобы настроить полное доменное имя на "ns2.xss.pro".
# устанавливаем имя хоста
sudo hostnamectl set-hostname ns2.xss.pro
Затем откройте файл "/etc/hosts" на главном и подчиненном серверах, используя следующую команду редактора nano.
# открываем на правку
sudo nano /etc/hosts
Добавьте в файл следующую строку.
185.191.126.49 ns1.xss.pro ns1
185.191.126.50 ns2.xss.pro ns2
Сохраните файл и выйдите из редактора, когда закончите.
Наконец, выполните следующую команду "hostname", чтобы проверить fqdn на каждом сервере. Вы должны увидеть, что главный сервер имеет fqdn "ns1.xss.pro", а подчиненный сервер имеет fqdn "ns2.xss.pro".
# проверяем
sudo hostname -f
Ниже представлен вывод с главного сервера.
Ниже представлен вывод с подчиненного сервера.
После настройки полного доменного имени вы готовы установить BIND на серверы Rocky Linux.
Установка пакетов BIND
По умолчанию репозиторий Rocky Linux AppStream предоставляет последнюю стабильную версию пакета BIND. На момент написания этой статьи текущей стабильной версией BIND является v9.16.
На этом этапе вы установите пакеты BIND на обоих серверах: Master и Slave. Затем настройте BIND для работы только на IPv4 и настройте firewalld для разрешения порта DNS.
Запустите команду dnf ниже, чтобы установить пакеты BIND на обоих серверах: Master и Slave.
# ставим пакеты
sudo dnf install bind bind-utils -y
После установки пакетов BIND откройте конфигурацию "/etc/sysconfig/named" с помощью следующей команды редактора nano.
# правим файл
sudo nano /etc/sysconfig/named
Добавьте значение по умолчанию "OPTIONS=.." со следующей строкой. Эта опция команды для "bind" или "named" запустит BIND только на IPv4.
OPTIONS="-4"
Сохраните файл и выйдите из редактора, когда закончите.
Далее запустите нижеприведенную утилиту systemctl, чтобы запустить и включить службу BIND "named". Служба "named" теперь должна быть запущена и включена, что автоматически запустится при загрузке.
# стартуем сервис
sudo systemctl start named
# добавляем в загрузку
sudo systemctl enable named
Теперь проверьте службу, чтобы убедиться, что она запущена и включена, с помощью следующей команды.
# смотрим включен ли
sudo systemctl is-enabled named
# смотрим статус
sudo systemctl status named
Вы получите примерно следующий вывод: служба BIND включена и в данный момент работает.
При запущенной службе BIND "named" вам необходимо добавить порт DNS в firewalld, который включен и работает по умолчанию в Rocky Linux.
Запустите нижеприведенную утилиту firewall-cmd, чтобы добавить службу DNS в firewalld. Затем перезагрузите firewalld, чтобы применить изменения.
# добавляем 53 порт в разрешения
sudo firewall-cmd --add-service=dns --permanent
# перегружаем файерволл
sudo firewall-cmd --reload
Если вы проверите список включенных служб на firewalld, вы должны увидеть, что служба DNS включена. Выполните следующую команду firewall-cmd, чтобы проверить список служб.
# смотрим разрешенные порты
sudo firewall-cmd --list-services
На этом этапе вы закончили настройку fqdn, установили пакеты BIND, а также настроили firewalld. Имея это в виду, теперь вы можете начать настройку BIND Master на Master-сервере.
Настройка главного DNS-сервера BIND
На этом этапе вы настроите главный сервер BIND с помощью Rocky Linux "ns1.xss.pro" и IP-адрес сервера "185.191.126.49". Убедитесь, что вы запустили следующие команды на главном сервере.
Вам нужно будет настроить главный сервер BIND, выполнив следующие шаги:
- Базовая конфигурация будет включать в себя настройку ACL (списков контроля доступа), выбор IP-адреса для запуска службы BIND, настройку серверов пересылки и многое другое.
- Настройка зон - Здесь вы создаете конфигурации для своего домена. Это включает в себя основную конфигурацию домена и обратную конфигурацию DNS.
Базовая конфигурация
Конфигурация BIND по умолчанию в дистрибутиве на базе RHEL доступна в файле "/etc/named.conf".
Теперь откройте файл "/etc/named.conf" с помощью следующей команды редактора nano.
# правим конфиг
sudo nano /etc/named.conf
Измените конфигурацию по умолчанию с помощью следующих строк.
acl "trusted" {
185.191.126.49;
185.191.126.50;
0.0.0.0/0;
};
options {
listen-on port 53 { 185.191.126.49; };
// 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";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { localhost; trusted; };
recursion yes;
allow-recursion { trusted; };
allow-transfer { localhost; 185.191.126.50; };
forwarders {
8.8.8.8;
1.1.1.1;
};
Сохраните файл и выйдите из редактора, когда закончите.
С помощью этой конфигурации вы настроили BIND со следующими параметрами:
- Настроили ACL, который разрешает любые запросы из локальных сетей.
- Запустили службу BIND по адресу "185.191.126.49" с портом по умолчанию "53".
- Включили рекурсию и разрешите рекурсию из "доверенных" сетей ACL.
- Разрешили передачу зон на подчиненный сервер с IP-адресом "185.191.126.50".
- Настроили переадресацию на публичный DNS-сервером 1.1.1.1 от Cloudflare и 8.8.8.8 от Google.
Затем выполните следующую команду, чтобы проверить конфигурацию BIND "/etc/named.conf".
# проверяем конфиг
sudo named-checkconf /etc/named.conf
Наконец, запустите указанную ниже утилиту systemctl, чтобы перезапустить службу BIND с указанным именем и применить изменения.
# перегружаем службу
sudo systemctl restart named
Вы завершили базовую настройку DNS-сервера BIND.
Настройка зон
Теперь вы настроите зоны с помощью DNS-сервера BIND. Вы создадите новый DNS-сервер с адресом "ns1.xss.pro" и "ns2.xss.pro".
Для начала откройте конфигурацию BIND "/etc/named.conf" с помощью команды редактора nano, указанной ниже.
# правим конфиг
sudo nano /etc/named.conf
Добавьте следующую конфигурацию в конец строки.
include "/etc/named/zones.conf.local";
Сохраните файл и выйдите из редактора, когда закончите.
Затем создайте новую конфигурацию "/etc/named/zones.conf.local" с помощью редактора nano ниже.
# правим конфиг
sudo nano /etc/named/zones.conf.local
Добавьте в файл следующие строки.
zone "xss.pro" {
type master;
file "db.xss.pro";
allow-transfer { 185.191.126.50; };
};
zone "126.191.185.in-addr.arpa" {
type master;
file "db.185.191.126";
allow-transfer { 185.191.126.50; };
};
Сохраните и закройте файл, когда закончите.
С помощью этой конфигурации вы определили следующие конфигурации:
- Создали две зоны для домена "xss.pro" и обратного DNS "126.191.185.in-addr.arpa".
- Обе зоны имеют тип "главные".
- Разрешили передачу зоны на подчиненный DNS-сервер, который будет работать на IP-адресе сервера "185.191.126.50".
Затем создайте новую конфигурацию зоны DNS, "/var/named/db.xss.pro", используя следующую команду редактора nano.
# правим конфиг
sudo nano /var/named/db.xss.pro
Добавьте в файл следующие строки.
;
; BIND data file for the local loopback interface
;
$TTL 604800
@ IN SOA ns1.xss.pro. admin.xss.pro. (
202501103 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; NS records for name servers
IN NS ns1.xss.pro.
IN NS ns2.xss.pro.
; A records for name servers
ns1.xss.pro. IN A 185.191.126.49
ns2.xss.pro. IN A 185.191.126.50
; Mail handler or MX record for the domain xss.pro
xss.pro. IN MX 10 mail.xss.pro.
; A records for domain names
xss.pro. IN A 185.191.126.51
mail.xss.pro. IN A 185.191.126.52
Сохраните и закройте файл, когда закончите.
В этом примере вы настроили зоны со следующими конфигурациями:
- Определили записи сервера имен "ns1.xss.pro" с IP-адресом "185.191.126.49" и "ns2.xss.pro" с IP-адресом "185.191.126.50".
- Определили два дополнительных домена: "xss.pro", которые будут преобразованы в IP-адрес сервера "192.168.5.50", и домен " mail.xss.pro" в IP-адрес "192.168.5.15".
- Вы также создадите запись MX для домена "xss.pro", которую будет обрабатывать почтовый сервер "mail.xss.pro".
зоны сервера имен
Далее вы начнете настраивать обратный DNS для домена xss.pro .
Создайте новую обратную конфигурацию DNS "/var/named/db.192.168.5" с помощью приведенной ниже команды редактора nano.
sudo nano /var/named/db.192.168.5
Добавьте в файл следующие строки.
;
; BIND reverse data file for the local loopback interface
;
$TTL 604800
@ IN SOA ns1.xss.pro. admin.xss.pro. (
202501103 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; name servers - NS records
IN NS ns1.xss.pro.
IN NS ns2.xss.pro.
; PTR Records
100 IN PTR ns1.xss.pro. ; 185.191.126.49
120 IN PTR ns2.xss.pro. ; 185.191.126.50
50 IN PTR xss.pro. ; 185.191.126.51
15 IN PTR mail.xss.pro. ; 185.191.126.52
Сохраните и закройте файл, когда закончите.
С помощью этой конфигурации вы настроили обратные записи DNS или PTR, как показано ниже.
- В обратной конфигурации DNS вы также определили сервер имен ns1.xss.pro и ns2.xss.pro.
- Каждая обратная конфигурация DNS использует последнюю цифру IP-адреса, который разрешен для каждого домена. В этом примере сервер имен ns1.xss.pro с IP-адресом "185.191.126.49"' , а запись PTR должна быть "100".
- Остальные записи PTR такие же, как описано выше.
На этом этапе вы создали две конфигурации зон для домена "xss.pro" и создали сервер имен "ns1.xss.pro" и "ns2.xss.pro".
Теперь выполните следующую команду chmod, чтобы изменить владельца обеих конфигураций зоны.
# меняем владельца
sudo chown -R named: /var/named/{db.xss.pro,db.185.191.126}
Затем проверьте файлы конфигурации зоны с помощью командной утилиты named-checkconf, указанной ниже.
# проверяем конфиги
sudo named-checkconf
sudo named-checkzone xss.pro /var/named/db.xss.pro
sudo named-checkzone 126.191.185.in-addr.arpa /var/named/db.185.191.126
Если у вас правильные конфигурации BIND, вы получите вывод, подобный показанному на следующем снимке экрана.
Наконец, выполните следующую команду systemctl, чтобы перезапустить службу BIND "named" и применить изменения. Затем проверьте статус службы BIND, чтобы убедиться, что служба запущена.
# делаем рестарт службы
sudo systemctl restart named
# смотрим статус
sudo systemctl status named
Вы получите вывод, аналогичный следующему: служба BIND с указанным именем запущена, и вы завершили настройку мастера BIND.
На следующем этапе вы настроите подчиненный сервер BIND.
Настройка подчиненного DNS-сервера BIND
После настройки главного сервера DNS вы начнете настраивать подчиненный сервер BIND на сервере "ns2.xss.pro" с IP-адресом "85.191.126.50".
Базовая конфигурация для "named.conf" аналогична конфигурации BIND Master, а для файлов зоны вы можете определить имя файла, не создавая фактического файла на подчиненном сервере BIND.
Перед началом работы убедитесь, что на подчиненном сервере BIND выполнены следующие команды.
Теперь откройте конфигурацию BIND "/etc/named.conf" на подчиненном сервере с помощью команды редактора nano, приведенной ниже.
# открываем на правку
sudo nano /etc/named.conf
Измените конфигурацию по умолчанию с помощью следующих строк.
acl "trusted" {
185.191.126.49;
185.191.126.50;
0.0.0.0/0;
};
options {
listen-on port 53 { 185.191.126.50; };
//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";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { any; };
recursion yes;
allow-recursion { trusted; };
allow-transfer { none; };
forwarders {
8.8.8.8;
1.1.1.1;
};
};
Настройки аналогичны главному серверу BIND, ниже приведены некоторые отличия в конфигурациях.
Служба BIND будет запущена на IP-адресе "185.191.126.50" на подчиненном сервере.
Рекурсия включена , но allow-transfer настроено на "нет".
Теперь добавьте следующую строку в конец файла "named.conf" для определения зон.
include "/etc/named/zones.conf.local";
Сохраните файл и выйдите из редактора, когда закончите.
Затем создайте новую конфигурацию "/etc/named/zones.conf.local" с помощью следующей команды редактора nano.
# правим файл
sudo nano /etc/named/zones.conf.local
Добавьте в файл следующие строки.
zone "xss.pro" {
type slave;
file "slaves/db.xss.pro";
masters { 185.191.126.49; };
};
zone "126.191.185.in-addr.arpa" {
type slave;
file "slaves/db.185.191.126";
masters { 185.191.126.49; };
};
Сохраните и закройте файл, когда закончите.
Мы определили некоторые конфигурации на подчиненном сервере BIND:
- Определили две зоны для домена xss.pro и его обратного DNS.
- Тип обеих зон — "подчиненные".
- Файл зоны для каждого из них будет взят из каталога "/var/named/slaves", который передается с главного сервера BIND.
Далее запустите следующую утилиту команды "named-checkconf" для проверки конфигураций BIND. Затем перезапустите службу BIND "named" на подчиненном сервере с помощью команды systemctl, как показано ниже.
# проверяем конфиг
sudo named-checkconf
# делаем рестарт службы
sudo systemctl restart named
При правильной конфигурации BIND у вас не будет никаких сообщений об ошибках.
Наконец, выполните следующую команду systemctl, чтобы проверить службу BIND "named" на подчиненном сервере и убедиться, что она запущена.
# смотрим статус
sudo systemctl status named
Теперь вы получите вывод, аналогичный следующему: служба BIND "named" запущена на подчиненном сервере BIND.
На этом этапе вы завершили установку BIND DNS с архитектурой Master-Slave. Теперь вы готовы начать тестирование с клиентской машины.
Тестирование от клиента
В этом примере в качестве клиентской машины используется система Debian, поэтому перед началом установите несколько пакетов с помощью APT.
sudo apt install dnsutils bind9-utils
Затем выполните следующую команду, чтобы удалить файл ссылки по умолчанию "/etc/resolv.conf" и создать новый файл с помощью редактора nano.
# разлинкуем файл
sudo unlink /etc/resolv.conf
# правим файл
sudo nano /etc/resolv.conf
Добавьте следующую конфигурацию в файл. В следующей конфигурации мы определяем три различных резолвера: BIND DNS Master, вторичный BIND DNS-сервер и публичный Cloudflare DNS-резолвер. Когда клиентская машина запрашивает информацию о доменном имени, информация будет взята из DNS-резолвер сверху вниз.
nameserver 185.191.126.49
nameserver 185.191.126.50
nameserver 1.1.1.1
search xss.pro
Сохраните и закройте файл, когда закончите.
Теперь вы готовы проверить свой DNS-сервер с клиентского компьютера.
Запустите команду dig ниже, чтобы проверить доменное имя "xss.pro" и "mail.xss.pro". И вы должны увидеть, что "xss.pro" разрешается в IP-адрес сервера "185.191.126.49", в то время как поддомен " mail.xss.pro " обрабатывается IP-адресом сервера "185.191.126.52".
dig xss.pro +short
dig xss.pro
dig mail.xss.pro +short
dig mail.xss.pro
Проверка доменного имени xss.pro.
проверка поддомена mail.xss.pro.
Далее выполните команду dig ниже, чтобы проверить почтовик для доменного имени "xss.pro". И вы должны получить вывод, что "mail.xss.pro" обрабатывает почту для основного домена "xss.pro".
dig howtoforge.local MX +short
dig howtoforge.local MX
Вы можете проверить конфигурацию обратной зоны для вашего доменного имени с помощью команды nslookup.
Запустите команду nslookup ниже, чтобы проверить обратный DNS для некоторых IP-адресов.
Теперь вы должны увидеть, что IP-адрес "185.191.126.49" преобразован в сервер имен "ns1.xss.pro", IP-адрес "185.191.126.50" преобразован в сервер имен " ns2.xss.pro", а IP-адрес "192.168.5.50" преобразован в основное доменное имя "xss.pro", и, наконец, IP-адрес "192.168.5.15" преобразован в поддомен " mail.hwdomain.io".
nslookup 185.191.126.49
nslookup 185.191.126.50
nslookup 192.168.5.50
nslookup 192.168.5.15
На этом этапе вы завершили установку DNS-сервера BIND с архитектурой Master-Slave на Rocky Linux. Вы также узнали, как тестировать DNS-сервер с помощью различных командных утилит, таких как dig и nslookup.
Заключение
Поздравляем! В этом руководстве вы изучили установку и настройку DNS-сервера BIND на серверах Rocky Linux 9. Вы успешно настроили главный-ведомый DNS-сервер BIND с использованием двух разных серверов Rocky Linux. Кроме того, вы изучили основные команды Dig и Nslookup для проверки и верификации записей и конфигурации DNS.
Программное обеспечение BIND DNS является одним из самых надежных DNS-серверов для Unix-подобных операционных систем. Оно доступно в большинстве дистрибутивов Linux и предоставляет дополнительные инструменты для диагностики и тестирования DNS-сервера.
В этом руководстве вы узнаете, как настроить DNS-сервер с помощью BIND на сервере Rocky Linux 9. BIND — одно из самых популярных программных обеспечение DNS-сервера, которое предоставляет различные функции, такие как авторитарный DNS, кэш-DNS, базовая балансировка нагрузки DNS, раздельный DNS, DNSSEC, IPv6 и многое другое.
Требования
С помощью этого руководства вы настроите и реализуете DNS-сервер BIND с архитектурой Master-Slave. Итак, вам понадобятся два сервера Rocky Linux. Также вам понадобятся права root/administrator на каждом сервере.
Чтобы настроить публичный DNS-сервер, который сможет обслуживать ваш домен (авторитетный DNS-сервер), вам также необходимо зарегистрировать доменное имя и настроить "связующие записи".
Кроме того, в этом руководстве мы предполагаем, что у вас SELinux работает в "разрешающем" режиме.
Подготовка системы
Для начала работы с этим руководством вы настроите правильное FQDN (полное доменное имя) на каждом из ваших серверов Rocky Linux. Это можно сделать с помощью утилиты командной строки "hostnamectl" и файла "/etc/hosts".
Ниже приведены сведения о серверах, которые будут использоваться в качестве примера для этого руководства:
Hostname IP Address FQDN Used as
---------------------------------------------------------------
ns1 185.191.126.49 ns1.xss.pro Master
ns2 185.191.126.50 ns2.xss.pro Slave
На главном сервере запустите указанную ниже утилиту hostnamectl, чтобы поменять полное доменное имя на "ns1.xss.pro".
# устанавливаем имя хоста
sudo hostnamectl set-hostname ns1.xss.pro
Ниже вам также необходимо выполнить команду hostnamectl на подчиненном сервере, чтобы настроить полное доменное имя на "ns2.xss.pro".
# устанавливаем имя хоста
sudo hostnamectl set-hostname ns2.xss.pro
Затем откройте файл "/etc/hosts" на главном и подчиненном серверах, используя следующую команду редактора nano.
# открываем на правку
sudo nano /etc/hosts
Добавьте в файл следующую строку.
185.191.126.49 ns1.xss.pro ns1
185.191.126.50 ns2.xss.pro ns2
Сохраните файл и выйдите из редактора, когда закончите.
Наконец, выполните следующую команду "hostname", чтобы проверить fqdn на каждом сервере. Вы должны увидеть, что главный сервер имеет fqdn "ns1.xss.pro", а подчиненный сервер имеет fqdn "ns2.xss.pro".
# проверяем
sudo hostname -f
Ниже представлен вывод с главного сервера.
Ниже представлен вывод с подчиненного сервера.
После настройки полного доменного имени вы готовы установить BIND на серверы Rocky Linux.
Установка пакетов BIND
По умолчанию репозиторий Rocky Linux AppStream предоставляет последнюю стабильную версию пакета BIND. На момент написания этой статьи текущей стабильной версией BIND является v9.16.
На этом этапе вы установите пакеты BIND на обоих серверах: Master и Slave. Затем настройте BIND для работы только на IPv4 и настройте firewalld для разрешения порта DNS.
Запустите команду dnf ниже, чтобы установить пакеты BIND на обоих серверах: Master и Slave.
# ставим пакеты
sudo dnf install bind bind-utils -y
После установки пакетов BIND откройте конфигурацию "/etc/sysconfig/named" с помощью следующей команды редактора nano.
# правим файл
sudo nano /etc/sysconfig/named
Добавьте значение по умолчанию "OPTIONS=.." со следующей строкой. Эта опция команды для "bind" или "named" запустит BIND только на IPv4.
OPTIONS="-4"
Сохраните файл и выйдите из редактора, когда закончите.
Далее запустите нижеприведенную утилиту systemctl, чтобы запустить и включить службу BIND "named". Служба "named" теперь должна быть запущена и включена, что автоматически запустится при загрузке.
# стартуем сервис
sudo systemctl start named
# добавляем в загрузку
sudo systemctl enable named
Теперь проверьте службу, чтобы убедиться, что она запущена и включена, с помощью следующей команды.
# смотрим включен ли
sudo systemctl is-enabled named
# смотрим статус
sudo systemctl status named
Вы получите примерно следующий вывод: служба BIND включена и в данный момент работает.
При запущенной службе BIND "named" вам необходимо добавить порт DNS в firewalld, который включен и работает по умолчанию в Rocky Linux.
Запустите нижеприведенную утилиту firewall-cmd, чтобы добавить службу DNS в firewalld. Затем перезагрузите firewalld, чтобы применить изменения.
# добавляем 53 порт в разрешения
sudo firewall-cmd --add-service=dns --permanent
# перегружаем файерволл
sudo firewall-cmd --reload
Если вы проверите список включенных служб на firewalld, вы должны увидеть, что служба DNS включена. Выполните следующую команду firewall-cmd, чтобы проверить список служб.
# смотрим разрешенные порты
sudo firewall-cmd --list-services
На этом этапе вы закончили настройку fqdn, установили пакеты BIND, а также настроили firewalld. Имея это в виду, теперь вы можете начать настройку BIND Master на Master-сервере.
Настройка главного DNS-сервера BIND
На этом этапе вы настроите главный сервер BIND с помощью Rocky Linux "ns1.xss.pro" и IP-адрес сервера "185.191.126.49". Убедитесь, что вы запустили следующие команды на главном сервере.
Вам нужно будет настроить главный сервер BIND, выполнив следующие шаги:
- Базовая конфигурация будет включать в себя настройку ACL (списков контроля доступа), выбор IP-адреса для запуска службы BIND, настройку серверов пересылки и многое другое.
- Настройка зон - Здесь вы создаете конфигурации для своего домена. Это включает в себя основную конфигурацию домена и обратную конфигурацию DNS.
Базовая конфигурация
Конфигурация BIND по умолчанию в дистрибутиве на базе RHEL доступна в файле "/etc/named.conf".
Теперь откройте файл "/etc/named.conf" с помощью следующей команды редактора nano.
# правим конфиг
sudo nano /etc/named.conf
Измените конфигурацию по умолчанию с помощью следующих строк.
acl "trusted" {
185.191.126.49;
185.191.126.50;
0.0.0.0/0;
};
options {
listen-on port 53 { 185.191.126.49; };
// 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";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { localhost; trusted; };
recursion yes;
allow-recursion { trusted; };
allow-transfer { localhost; 185.191.126.50; };
forwarders {
8.8.8.8;
1.1.1.1;
};
Сохраните файл и выйдите из редактора, когда закончите.
С помощью этой конфигурации вы настроили BIND со следующими параметрами:
- Настроили ACL, который разрешает любые запросы из локальных сетей.
- Запустили службу BIND по адресу "185.191.126.49" с портом по умолчанию "53".
- Включили рекурсию и разрешите рекурсию из "доверенных" сетей ACL.
- Разрешили передачу зон на подчиненный сервер с IP-адресом "185.191.126.50".
- Настроили переадресацию на публичный DNS-сервером 1.1.1.1 от Cloudflare и 8.8.8.8 от Google.
Затем выполните следующую команду, чтобы проверить конфигурацию BIND "/etc/named.conf".
# проверяем конфиг
sudo named-checkconf /etc/named.conf
Наконец, запустите указанную ниже утилиту systemctl, чтобы перезапустить службу BIND с указанным именем и применить изменения.
# перегружаем службу
sudo systemctl restart named
Вы завершили базовую настройку DNS-сервера BIND.
Настройка зон
Теперь вы настроите зоны с помощью DNS-сервера BIND. Вы создадите новый DNS-сервер с адресом "ns1.xss.pro" и "ns2.xss.pro".
Для начала откройте конфигурацию BIND "/etc/named.conf" с помощью команды редактора nano, указанной ниже.
# правим конфиг
sudo nano /etc/named.conf
Добавьте следующую конфигурацию в конец строки.
include "/etc/named/zones.conf.local";
Сохраните файл и выйдите из редактора, когда закончите.
Затем создайте новую конфигурацию "/etc/named/zones.conf.local" с помощью редактора nano ниже.
# правим конфиг
sudo nano /etc/named/zones.conf.local
Добавьте в файл следующие строки.
zone "xss.pro" {
type master;
file "db.xss.pro";
allow-transfer { 185.191.126.50; };
};
zone "126.191.185.in-addr.arpa" {
type master;
file "db.185.191.126";
allow-transfer { 185.191.126.50; };
};
Сохраните и закройте файл, когда закончите.
С помощью этой конфигурации вы определили следующие конфигурации:
- Создали две зоны для домена "xss.pro" и обратного DNS "126.191.185.in-addr.arpa".
- Обе зоны имеют тип "главные".
- Разрешили передачу зоны на подчиненный DNS-сервер, который будет работать на IP-адресе сервера "185.191.126.50".
Затем создайте новую конфигурацию зоны DNS, "/var/named/db.xss.pro", используя следующую команду редактора nano.
# правим конфиг
sudo nano /var/named/db.xss.pro
Добавьте в файл следующие строки.
;
; BIND data file for the local loopback interface
;
$TTL 604800
@ IN SOA ns1.xss.pro. admin.xss.pro. (
202501103 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; NS records for name servers
IN NS ns1.xss.pro.
IN NS ns2.xss.pro.
; A records for name servers
ns1.xss.pro. IN A 185.191.126.49
ns2.xss.pro. IN A 185.191.126.50
; Mail handler or MX record for the domain xss.pro
xss.pro. IN MX 10 mail.xss.pro.
; A records for domain names
xss.pro. IN A 185.191.126.51
mail.xss.pro. IN A 185.191.126.52
Сохраните и закройте файл, когда закончите.
В этом примере вы настроили зоны со следующими конфигурациями:
- Определили записи сервера имен "ns1.xss.pro" с IP-адресом "185.191.126.49" и "ns2.xss.pro" с IP-адресом "185.191.126.50".
- Определили два дополнительных домена: "xss.pro", которые будут преобразованы в IP-адрес сервера "192.168.5.50", и домен " mail.xss.pro" в IP-адрес "192.168.5.15".
- Вы также создадите запись MX для домена "xss.pro", которую будет обрабатывать почтовый сервер "mail.xss.pro".
зоны сервера имен
Далее вы начнете настраивать обратный DNS для домена xss.pro .
Создайте новую обратную конфигурацию DNS "/var/named/db.192.168.5" с помощью приведенной ниже команды редактора nano.
sudo nano /var/named/db.192.168.5
Добавьте в файл следующие строки.
;
; BIND reverse data file for the local loopback interface
;
$TTL 604800
@ IN SOA ns1.xss.pro. admin.xss.pro. (
202501103 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; name servers - NS records
IN NS ns1.xss.pro.
IN NS ns2.xss.pro.
; PTR Records
100 IN PTR ns1.xss.pro. ; 185.191.126.49
120 IN PTR ns2.xss.pro. ; 185.191.126.50
50 IN PTR xss.pro. ; 185.191.126.51
15 IN PTR mail.xss.pro. ; 185.191.126.52
Сохраните и закройте файл, когда закончите.
С помощью этой конфигурации вы настроили обратные записи DNS или PTR, как показано ниже.
- В обратной конфигурации DNS вы также определили сервер имен ns1.xss.pro и ns2.xss.pro.
- Каждая обратная конфигурация DNS использует последнюю цифру IP-адреса, который разрешен для каждого домена. В этом примере сервер имен ns1.xss.pro с IP-адресом "185.191.126.49"' , а запись PTR должна быть "100".
- Остальные записи PTR такие же, как описано выше.
На этом этапе вы создали две конфигурации зон для домена "xss.pro" и создали сервер имен "ns1.xss.pro" и "ns2.xss.pro".
Теперь выполните следующую команду chmod, чтобы изменить владельца обеих конфигураций зоны.
# меняем владельца
sudo chown -R named: /var/named/{db.xss.pro,db.185.191.126}
Затем проверьте файлы конфигурации зоны с помощью командной утилиты named-checkconf, указанной ниже.
# проверяем конфиги
sudo named-checkconf
sudo named-checkzone xss.pro /var/named/db.xss.pro
sudo named-checkzone 126.191.185.in-addr.arpa /var/named/db.185.191.126
Если у вас правильные конфигурации BIND, вы получите вывод, подобный показанному на следующем снимке экрана.
Наконец, выполните следующую команду systemctl, чтобы перезапустить службу BIND "named" и применить изменения. Затем проверьте статус службы BIND, чтобы убедиться, что служба запущена.
# делаем рестарт службы
sudo systemctl restart named
# смотрим статус
sudo systemctl status named
Вы получите вывод, аналогичный следующему: служба BIND с указанным именем запущена, и вы завершили настройку мастера BIND.
На следующем этапе вы настроите подчиненный сервер BIND.
Настройка подчиненного DNS-сервера BIND
После настройки главного сервера DNS вы начнете настраивать подчиненный сервер BIND на сервере "ns2.xss.pro" с IP-адресом "85.191.126.50".
Базовая конфигурация для "named.conf" аналогична конфигурации BIND Master, а для файлов зоны вы можете определить имя файла, не создавая фактического файла на подчиненном сервере BIND.
Перед началом работы убедитесь, что на подчиненном сервере BIND выполнены следующие команды.
Теперь откройте конфигурацию BIND "/etc/named.conf" на подчиненном сервере с помощью команды редактора nano, приведенной ниже.
# открываем на правку
sudo nano /etc/named.conf
Измените конфигурацию по умолчанию с помощью следующих строк.
acl "trusted" {
185.191.126.49;
185.191.126.50;
0.0.0.0/0;
};
options {
listen-on port 53 { 185.191.126.50; };
//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";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { any; };
recursion yes;
allow-recursion { trusted; };
allow-transfer { none; };
forwarders {
8.8.8.8;
1.1.1.1;
};
};
Настройки аналогичны главному серверу BIND, ниже приведены некоторые отличия в конфигурациях.
Служба BIND будет запущена на IP-адресе "185.191.126.50" на подчиненном сервере.
Рекурсия включена , но allow-transfer настроено на "нет".
Теперь добавьте следующую строку в конец файла "named.conf" для определения зон.
include "/etc/named/zones.conf.local";
Сохраните файл и выйдите из редактора, когда закончите.
Затем создайте новую конфигурацию "/etc/named/zones.conf.local" с помощью следующей команды редактора nano.
# правим файл
sudo nano /etc/named/zones.conf.local
Добавьте в файл следующие строки.
zone "xss.pro" {
type slave;
file "slaves/db.xss.pro";
masters { 185.191.126.49; };
};
zone "126.191.185.in-addr.arpa" {
type slave;
file "slaves/db.185.191.126";
masters { 185.191.126.49; };
};
Сохраните и закройте файл, когда закончите.
Мы определили некоторые конфигурации на подчиненном сервере BIND:
- Определили две зоны для домена xss.pro и его обратного DNS.
- Тип обеих зон — "подчиненные".
- Файл зоны для каждого из них будет взят из каталога "/var/named/slaves", который передается с главного сервера BIND.
Далее запустите следующую утилиту команды "named-checkconf" для проверки конфигураций BIND. Затем перезапустите службу BIND "named" на подчиненном сервере с помощью команды systemctl, как показано ниже.
# проверяем конфиг
sudo named-checkconf
# делаем рестарт службы
sudo systemctl restart named
При правильной конфигурации BIND у вас не будет никаких сообщений об ошибках.
Наконец, выполните следующую команду systemctl, чтобы проверить службу BIND "named" на подчиненном сервере и убедиться, что она запущена.
# смотрим статус
sudo systemctl status named
Теперь вы получите вывод, аналогичный следующему: служба BIND "named" запущена на подчиненном сервере BIND.
На этом этапе вы завершили установку BIND DNS с архитектурой Master-Slave. Теперь вы готовы начать тестирование с клиентской машины.
Тестирование от клиента
В этом примере в качестве клиентской машины используется система Debian, поэтому перед началом установите несколько пакетов с помощью APT.
sudo apt install dnsutils bind9-utils
Затем выполните следующую команду, чтобы удалить файл ссылки по умолчанию "/etc/resolv.conf" и создать новый файл с помощью редактора nano.
# разлинкуем файл
sudo unlink /etc/resolv.conf
# правим файл
sudo nano /etc/resolv.conf
Добавьте следующую конфигурацию в файл. В следующей конфигурации мы определяем три различных резолвера: BIND DNS Master, вторичный BIND DNS-сервер и публичный Cloudflare DNS-резолвер. Когда клиентская машина запрашивает информацию о доменном имени, информация будет взята из DNS-резолвер сверху вниз.
nameserver 185.191.126.49
nameserver 185.191.126.50
nameserver 1.1.1.1
search xss.pro
Сохраните и закройте файл, когда закончите.
Теперь вы готовы проверить свой DNS-сервер с клиентского компьютера.
Запустите команду dig ниже, чтобы проверить доменное имя "xss.pro" и "mail.xss.pro". И вы должны увидеть, что "xss.pro" разрешается в IP-адрес сервера "185.191.126.49", в то время как поддомен " mail.xss.pro " обрабатывается IP-адресом сервера "185.191.126.52".
dig xss.pro +short
dig xss.pro
dig mail.xss.pro +short
dig mail.xss.pro
Проверка доменного имени xss.pro.
проверка поддомена mail.xss.pro.
Далее выполните команду dig ниже, чтобы проверить почтовик для доменного имени "xss.pro". И вы должны получить вывод, что "mail.xss.pro" обрабатывает почту для основного домена "xss.pro".
dig howtoforge.local MX +short
dig howtoforge.local MX
Вы можете проверить конфигурацию обратной зоны для вашего доменного имени с помощью команды nslookup.
Запустите команду nslookup ниже, чтобы проверить обратный DNS для некоторых IP-адресов.
Теперь вы должны увидеть, что IP-адрес "185.191.126.49" преобразован в сервер имен "ns1.xss.pro", IP-адрес "185.191.126.50" преобразован в сервер имен " ns2.xss.pro", а IP-адрес "192.168.5.50" преобразован в основное доменное имя "xss.pro", и, наконец, IP-адрес "192.168.5.15" преобразован в поддомен " mail.hwdomain.io".
nslookup 185.191.126.49
nslookup 185.191.126.50
nslookup 192.168.5.50
nslookup 192.168.5.15
На этом этапе вы завершили установку DNS-сервера BIND с архитектурой Master-Slave на Rocky Linux. Вы также узнали, как тестировать DNS-сервер с помощью различных командных утилит, таких как dig и nslookup.
Заключение
Поздравляем! В этом руководстве вы изучили установку и настройку DNS-сервера BIND на серверах Rocky Linux 9. Вы успешно настроили главный-ведомый DNS-сервер BIND с использованием двух разных серверов Rocky Linux. Кроме того, вы изучили основные команды Dig и Nslookup для проверки и верификации записей и конфигурации DNS.