Поиск по сайту:

Настройка Bind в качестве частного DNS-сервера на RHEL 8


Система доменных имен (DNS) – это метод, используемый для преобразования удобочитаемых доменных имен (или полных доменных имен (FQDN) )) на машиночитаемые IP-адреса, чтобы найти компьютер в сети, например Интернет.

В компьютерных и сетевых системах это необходимо, поскольку, хотя полные доменные имена людям легко запомнить и использовать, компьютеры (клиенты) получают доступ к ресурсам или службам на других компьютерах (серверах) на основе IP-адресов.

В этом отношении сервер DNS (также известный как сервер имен) поддерживает каталог полных доменных имен и преобразует их в IP-адреса; он также может возвращать IP-адрес, если указано имя хоста/полное доменное имя. Существуют различные типы DNS-серверов, включая авторитетный сервер имен, кэширующий сервер имен и многие другие.

В этой статье мы покажем вам, как установить и настроить частный/внутренний авторитетный DNS-сервер на RHEL 8 с использованием программного обеспечения BIND с открытым исходным кодом.

Требования:

  1. RHEL 8 с минимальной установкой
  2. RHEL 8 с включенной подпиской RedHat
  3. RHEL 8 со статическим IP-адресом

Моя среда тестирования:

Domain: tecmint.lan
DNS Server IP and hostname: 192.168.56.100, dns-primary.tecmint.lan
DNS Client IP and hostname: 192.168.56.104, tecmint.tecmint.lan

Шаг 1. Установка Bind DNS на RHEL 8

1. Чтобы установить bind и его утилиты на свой сервер, выполните следующую команду cdnf.

dnf install bind bind-utils

2. Затем запустите службу DNS, затем включите ее автоматический запуск при загрузке системы и проверьте, работает ли она, с помощью команд systemctl.

systemctl start named
systemctl enable named
systemctl status named

Шаг 2. Настройка BIND DNS на RHEL 8

3. Чтобы настроить сервер Bind DNS, сначала необходимо сделать резервную копию исходного файла конфигурации /etc/named.conf, используя следующий cp команда.

cp /etc/named.conf /etc/named.conf.orig

4. Теперь откройте файл конфигурации /etc/named.conf для редактирования с помощью вашего любимого текстового редактора командной строки следующим образом.

vi /etc/named.conf 

В разделе конфигурации options закомментируйте следующие строки.

options {
        #listen-on port 53 { 127.0.0.1; };
        #listen-on-v6 port 53 { ::1; };
        directory       "/var/named";

5. Затем найдите параметр allow-query и установите его значение для вашей сети. Это означает, что только узлы в вашей локальной сети могут запросить DNS-сервер.

allow-query  {localhost; 192.168.56.0/24}

Шаг 3. Создание прямой и обратной зон DNS

Зона пересылки — это место, где хранятся отношения имя хоста (или FQDN) к IP-адресу; он возвращает IP-адрес, используя имя хоста. Обратите внимание, что обычные запросы DNS представляют собой запросы прямого поиска. С другой стороны, обратная зона возвращает FQDN хоста на основе его IP-адреса.

6. Чтобы определить зоны прямой и обратный, добавьте следующие строки в конец файла /etc/named.conf< /стронг> файл.

//forward zone 
zone "tecmint.lan" IN { 
     type master; 
     file "tecmint.lan.db"; 
     allow-update { none; }; 
    allow-query {any; }
}; 
//backward zone 
zone "56.168.192.in-addr.arpa" IN { 
     type master; 
     file "tecmint.lan.rev"; 
     allow-update { none; }; 
    allow-query { any; }
};

Давайте кратко объясним параметры в приведенных выше конфигурациях зон:

  • тип: определяет роль этого сервера для зоны. Значение «master» означает, что это авторитетный сервер, на котором хранится основная копия данных зоны.
  • файл: указывает файл базы данных зоны.
  • allow-update: указывает хосты, которым разрешено отправлять обновления динамического DNS для главных зон. В данном случае нет.

Шаг 4. Создание файла зоны пересылки DNS

7. Сначала создайте файл зоны пересылки в каталоге /var/named.

vi /var/named/tecmint.lan.db

Добавьте в него следующую конфигурацию.

$TTL 86400
@ IN SOA dns-primary.tecmint.lan. admin.tecmint.lan. (
    2019061800 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
)

;Name Server Information
@ IN NS dns-primary.tecmint.lan.

;IP for Name Server
dns-primary IN A 192.168.56.100

;A Record for IP address to Hostname 
www IN A 192.168.56.5
mail IN A 192.168.56.10
docs  IN A 192.168.56.20

Давайте кратко объясним приведенное выше определение зоны и параметры.

  • TTL: определяет время жизни директивы RR и $TTL, дает значение TTL по умолчанию для каждого RR без определенного набора TTL.
  • @: это псевдоним доменного имени (например, tecmint.lan), определенного в основном файле конфигурации.
  • IN: означает Интернет.
  • SOA: указывает Начало полномочий: кто является авторитетным сервером имен (dns-primary.tecmint.lan), контактную информацию администратора ( admin.tecmint.lan, знак @ заменяется точкой) и другую сопутствующую информацию.
  • NS: означает сервер имен.
  • Последовательный: это значение используется DNS-сервером для проверки актуальности содержимого определенного файла зоны.
  • Обновить: указывает, как часто подчиненный DNS-сервер должен выполнять передачу зоны от главного.
  • Повторить: указывает, как часто подчиненное устройство должно повторять неудачную передачу зоны.
  • Expire: определяет, как долго подчиненный сервер должен ждать, прежде чем ответить на запрос клиента, когда главный сервер недоступен.
  • Минимум: устанавливает минимальный TTL для зоны.
  • A: адрес хоста.

Шаг 5. Создание файла зоны обратного DNS

8. Аналогично создайте файл обратной зоны в каталоге /var/named.

vi /var/named/tecmint.lan.rev

Затем добавьте в него следующие строки. Здесь PTR является противоположностью записи A, используемой для сопоставления IP-адреса с именем хоста.

$TTL 86400
@ IN SOA dns-primary.tecmint.lan. admin.tecmint.lan. (
    2019061800 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
)
;Name Server Information
@ IN NS dns-primary.tecmint.lan.

;Reverse lookup for Name Server
100 IN PTR dns-primary.tecmint.lan.

;PTR Record IP address to HostName
5 IN PTR www.tecmint.lan.
10 IN PTR mail.tecmint.lan.
20 IN PTR docs.tecmint.lan.

9. Установите правильные права владения файлами зоны следующим образом.

chown :named /var/named/tecmint.lan.db
chown :named /var/named/tecmint.lan.rev

10. Наконец, после внесения вышеуказанных изменений проверьте конфигурацию DNS и правильность синтаксиса файлов зоны с помощью утилиты named-checkconf (нет выхода означает отсутствие ошибки):

named-checkconf
named-checkzone tecmint.lan /var/named/tecmint.lan.db
named-checkzone 192.168.56.100 /var/named/tecmint.lan.rev

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

systemctl restart named

12. Далее, прежде чем какие-либо клиенты смогут получить доступ к конфигурациям службы DNS на сервере, вам необходимо добавить службу DNS в конфигурацию системного брандмауэра и перезагрузить настройки брандмауэра с помощью утилиты firewall-cmd, как показано ниже. :

firewall-cmd --permanent --zone=public --add-service=dns 
firewall-cmd --reload

Шаг 6. Тестирование службы DNS с клиента

13. В этом разделе мы покажем, как протестировать службу DNS со стороны клиента. Войдите на клиентский компьютер и настройте его на использование указанного выше DNS-сервера. В системе Linux откройте файл /etc/resolve.conf с помощью вашего любимого текстового редактора.

vi /etc/resolve.conf 

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

nameserver  192.168.56.100

Сохраните файл и закройте его. Обратите внимание, что вам также необходимо указать DNS-сервер в файле конфигурации сетевого интерфейса.

14. Добавьте IP-адрес DNS-серверов 192.168.56.100 в качестве преобразователя в файл конфигурации сетевого интерфейса клиентского компьютера /etc/sysconfig/network-scripts/ifcfg-enp0s3<, как показано на следующем рисунке.

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=aba298ca-fa65-48cd-add9-6c3f1f28cee2
DEVICE=enp0s3
ONBOOT=no
DNS=192.168.56.100

15. Затем используйте утилиту nslookup для запроса IP-адреса с использованием имени хоста и наоборот для www, mail и docs<. серверы в вашей сети, как показано.

nslookup 192.168.56.5
nslookup www.tecmint.lan
nslookup 192.168.56.10
nslookup mail.tecmint.lan
nslookup 192.168.56.20
nslookup docs.tecmint.lan
nslookup 192.168.56.100
nslookup dns-primary.tecmint.lan

Краткое содержание

В этой статье мы показали, как установить и настроить частный авторитетный DNS-сервер на RHEL 8 с помощью программного обеспечения BIND. Мы надеемся, что у вас все получилось, в противном случае присылайте нам свои вопросы или любые другие комментарии через форму обратной связи ниже.