Установка Bind DNS Server на CentOS 8 / RHEL 8
Введение
Это руководство проведет вас через шаги, которые вам потребуются для настройки DNS-сервера BIND в CentOS 8 / RHEL 8 Linux — Настройка привязки главного / подчиненного DNS-сервера в CentOS 8 / RHEL 8. Система доменных имен — это иерархическая и децентрализованная система именования для компьютеры, службы или другие ресурсы, подключенные к Интернету или частной сети. (Википедия). Он действует как телефонная книга в Интернете, поскольку дает адрес каждому компьютеру с связанным с ним полным доменным именем.
Как часть прикладного уровня эталонной модели TCP / IP, DNS очень важен в повседневной работе компьютеров по всему миру. Мы собираемся установить авторитетный BIND DNS Master и Slave на CentOS8 и выполнить такие настройки, как добавление записей PTR, A / AAAA среди других.
Установите Bind DNS Server на CentOS 8 / RHEL 8
Выполните следующие команды, чтобы установить пакеты Bind DNS-сервера на сервере CentOS 8 / RHEL 8 Linux.
$ dnf -y install bind bind-utils vim CentOS-8 - AppStream 1.3 kB/s | 4.3 kB 00:03 CentOS-8 - Base 1.2 kB/s | 3.9 kB 00:03 CentOS-8 - Extras 467 B/s | 1.5 kB 00:03 Dependencies resolved
В этой настройке мы будем держать SELinux в принудительном режиме.
$ getenforce Enforcing THE REASON FOR THIS IS THAT (Source: RedHat) SELinux helps mitigate the damage made by configuration mistakes. Domain Name System (DNS) servers often replicate information between each other in what is known as a zone transfer. Attackers can use zone transfers to update DNS servers with false information. When running the Berkeley Internet Name Domain (BIND) as a DNS server in Red Hat Enterprise Linux, even if an administrator forgets to limit which servers can perform a zone transfer, the default SELinux policy prevents zone files from being updated using zone transfers, by the BIND named daemon itself, and by other processes (Source: RedHat).
Настройка авторитетного сервера BIND DNS на CentOS 8 / RHEL 8
Давайте настроим наш авторитетный DNS-сервер BIND. Откройте файл конфигурации /etc/ named.conf.
Наш DNS-сервер имеет следующие настройки.
- infoit.com.ua Зона (Доменное имя)
- 192.168.154. 0 — управляемая подсеть
- 192.168.154.94 IP подчиненного сервера
- 192.168.154.88 — IP главного сервера
Вот конфигурационный файл named.conf.
$ sudo vim /etc/named.conf // // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { listen-on port 53 { any; }; ## Listen on any since it is an authoritative DNS Publicly available. listen-on-v6 port 53 { any; }; ## You can also set the same for IPv6 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";## Since this will be an authoritative Nameserver, allow query from any host
allow-query { any; };
allow-transfer {192.168.154.94; };
/*
- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion. - If you are building a RECURSIVE (caching) DNS server, you need to enable recursion. - If your recursive DNS server has a public IP address, you MUST enable access control to limit queries to your legitimate users. Failing to do so will cause your server to become part of large scale DNS amplification attacks. Implementing BCP38 within your network would greatly reduce such attack surface.
*/
recursion no; ## Following Advice from above.
dnssec-enable yes;
dnssec-validation yes;
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
/* https://fedoraproject.org/wiki/Changes/CryptoPolicy */ include "/etc/crypto-policies/back-ends/bind.config";
}; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; ## Set your ZONE details as shown below for different domains. Set the forward and reverse details. You can set the names of files as you like zone "infoit.com.ua" IN { type master; file "infoit.forward"; allow-update { none; }; }; ## Make sure you follow the rule for reverse zone (154.168.192.in-addr.arpa). [If your IP is 192.168.10.10, It will be 10.168.192.in-addr.arpa] zone "154.168.192.in-addr.arpa" IN { type master; file "infoit.reverse"; allow-update { none; }; };
Главный сервер 192.168.154.88 . Обратите внимание, что ваш IP-адрес должен быть общедоступным, потому что это авторитетный DNS-сервер.
Создать файлы зоны
После того, как вы установили файлы в named.conf, мы должны создать файлы зоны и разместить все записи, которые вы хотите добавить, такие как A/AAAA, MX, PTR и другие. Создайте файлы в каталоге /var/named/
$ sudo vim /var/named/infoit.forward $TTL 86400 @ IN SOA dns1.infoit.com.ua. root.infoit.com.ua. ( # You can use any numerical values for serial number but it is recommended to use [YYYYMMDDnn] 2019112201 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) # Set your Name Servers here IN NS dns1.infoit.com.ua. IN NS dns2.infoit.com.ua. # define Name Server's IP address IN A 192.168.154.88 # Set your Mail Exchanger (MX) Server here IN MX 10 dns1.infoit.com.ua. # Set each IP address of a hostname. Sample A records. dns1 IN A 192.168.154.88 dns2 IN A 192.168.154.94 mail1 IN A 192.168.154.97
Создайте соответствующие обратные записи для того же домена, который мы определили в конфигурационном файле named.conf.
$ sudo vim /var/named/infoit.reverse $TTL 86400 @ IN SOA dns1.infoit.com.ua. root.infoit.com.ua. ( 2019112201 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) # Set Name Server IN NS dns1.infoit.com.ua. ## Set each IP address of a hostname. Sample PTR records. 88 IN PTR dns1.infoit.com.ua. 94 IN PTR dns2.infoit.com.ua. 97 IN PTR mail1.infoit.com.ua.
Изменить настройки DNS на главном сервере
Сделайте наш новый DNS-сервер сервером имен по умолчанию. Откройте файл /etc/resolv.conf и добавьте строки ниже. Обязательно замените IP-адрес в соответствии с вашей средой.
$ sudo vim /etc/resolv.conf nameserver 192.168.154.88
Разрешить службу DNS на брандмауэре
Настройте брандмауэр, чтобы разрешить службу DNS.
sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd --reload
Убедитесь, что ваши конфигурации в порядке, запустите и включите привязку:
sudo named-checkconf
sudo systemctl start named
sudo systemctl enable named
Мы закончили с DNS-сервером Master BIND. Приступим к настройке нашего Slave-сервера.
Настроить подчиненный DNS-сервер — 192.168.154.94
Настройте подчиненный сервер. Откройте /etc/ named.conf и отредактируйте соответствующим образом
$ sudo vim /etc/named.conf // // named.conf // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // See /usr/share/doc/bind*/sample/ for example named configuration files. // See the BIND Administrator's Reference Manual (ARM) for details about the // configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html options { listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; 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"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; allow-query { any; }; ## Allows hosts to query Slave DNS allow-transfer { none; }; ## Disable zone transfer /* - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion. - If you are building a RECURSIVE (caching) DNS server, you need to enable recursion. - If your recursive DNS server has a public IP address, you MUST enable access control to limit queries to your legitimate users. Failing to do so will cause your server to become part of large scale DNS amplification attacks. Implementing BCP38 within your network would greatly reduce such attack surface */ ## Since this is a slave, lets allow recursion.recursion yes;
dnssec-enable yes;
dnssec-validation yes;
/* Path to ISC DLV key */ bindkeys-file "/etc/named.root.key";managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
}; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; ## Let us create zone definitions for both forward and reverse dns lookups. # The files will be created automatically on the slave. zone "infoit.com.ua" IN { type slave; file "slaves/infoit.forward"; masters { 192.168.154.88; }; ## Master server it is receiving DNS Records from }; zone "154.168.192.in-addr.arpa" IN { type slave; file "slaves/infoit.reverse"; masters { 192.168.154.88; }; ## Master server it is receiving DNS Records from };
Изменить настройки DNS на подчиненном сервере
Сделайте наши новые DNS-серверы (как главный, так и подчиненный) в качестве серверов имен по умолчанию. Откройте файл /etc/resolv.conf и добавьте строки ниже. Обязательно замените IP-адреса в соответствии с вашей средой
$ sudo vim /etc/resolv.conf nameserver 192.168.154.88 nameserver 192.168.154.94
Убедитесь, что ваши конфигурации в порядке, запустите и включите привязку:
sudo named-checkconf
sudo systemctl start named
sudo systemctl enable named
Проверьте каталог /var/named/slaves, не были ли файлы зоны переданы с главного устройства.
$ ll /var/named/slaves/ total 12 -rw-r--r-- 1 named named 480 Nov 23 14:16 infoit.forward -rw-r--r-- 1 named named 492 Nov 23 14:45 infoit.reverse
Доказательство того, что наш DNS работает
Проверка, разрешает ли наш DNS-сервер. Мы собираемся использовать машину Windows для тестирования нашего DNS-сервера BIND.
Измените сетевые параметры ваших окон, как показано ниже. Пусть DNS отражает ваши новые DNS-серверы.
Откройте PowerShell или командную строку, введите nslookup и протестируйте наши службы DNS.
И наш BIND DNS работает !!. Если вы работаете на клиентском компьютере Linux, отредактируйте файл / etc / hosts, чтобы изменить параметры конфигурации DNS.
Вывод
Теперь у нас есть BIND DNS Master и Slave, которые работают нормально. Мы надеемся, что это руководство является исчерпывающим и принесло вам пользу. Спасибо, что посетили, и переходите к другим увлекательным гидам ниже.