在 Rocky Linux 8 上安装和设置 BIND DNS 服务器

[ad_1]

继续学习如何在 Rocky Linux 8 上安装和设置 BIND DNS 服务器。

包如 绑定, 域名, 和 未绑定 可以配置为用作 DNS 名称服务器。 在本教程中,我们将使用 BIND 包来配置我们的本地 DNS 服务器。 绑定, 伯克利互联网域名, 是一种开源软件,用于实现 DNS 协议,该协议定义了联网设备如何根据主机名相互定位。

在 Rocky Linux 8 上安装和设置 BIND DNS 服务器

在本教程中,我们将使用配置如下的三台 Rocky Linux 8 服务器:

  • 服务器 1
    • 主机名: ns1.kifarunix-demo.com
    • IP地址: 192.168.60.19
    • 角色: Master DNS server
  • 服务器2
    • 主机名: client.kifarunix-demo.com
    • IP地址: 192.168.60.18
    • 角色: client server

在 Rocky Linux 8 上安装 BIND 和 BIND 实用程序

运行下面的命令来安装 BIND 和所需的实用程序;

dnf install -y bind bind-utils

在 Rocky Linux 8 上设置 BIND DNS 服务器

BIND的主要配置文件是 /etc/named.conf.

您需要打开此文件并进行一些配置调整以设置您的 DNS 服务器。

vim /etc/named.conf

定义 BIND 访问控制列表

BIND ACL 使您可以更好地控制谁可以访问名称服务器,从而有助于防止对服务器的欺骗和拒绝服务 (DoS) 攻击。

因此,创建一个名为的访问控制列表 允许 包含主机的 IP 地址之前允许的 选项 配置文件中的配置部分。

在下面的示例配置中,我们只允许网络中的主机, 192.168.60.0/24 使用我们的 DNS 服务器。

# Create an access control list called allowed 
acl "allowed" {
        192.168.60.0/24;
};
...

定义全局 BIND 选项

options 语句设置 BIND 使用的全局选项。

我们只会对默认选项语句进行一些更改;

  • 指定 BIND DNS 服务器非环回 IP 在 listen-on 线。
  • 指定允许查询 DNS 服务器的主机,由上的 ACL 语句定义 allow-query 线。
options {
        listen-on port 53 { 127.0.0.1; 192.168.60.19; };
        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; allowed; };
...

定义 BIND DNS 区域语句

创建 Forward zone 语句,可用于将域名解析为 IP 地址(正向查找区域)。

# Zone statement for forward DNS lookup
zone "kifarunix-demo.com" IN {
        type master;                           # type of zone
        file "/var/named/forward.kifarunix-demo.com"; # location of forward zone file
        allow-update { none; };
};
...

创建 BIND 反向 DNS 区域语句,该语句定义如何将 IP 地址解析为其主机名(反向查找区域)。

# Zone statement for reverse DNS lookup
zone    "60.168.192.in-addr.arpa" IN {
        type master;                    
        file "/var/named/reverse.kifarunix-demo.com"; # location of reverse zone file
        allow-update { none; };
};

之后,保存配置文件并退出。

这就是我们的配置文件的样子,删除了注释行和空白行/空格!

acl "allowed" {
        192.168.60.0/24;
};

options {
	listen-on port 53 { 127.0.0.1; 192.168.60.19; };
	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; allowed; };

	recursion yes;
	dnssec-enable yes;
	dnssec-validation yes;
	managed-keys-directory "/var/named/dynamic";
	pid-file "/run/named/named.pid";
	session-keyfile "/run/named/session.key";
	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";
};
zone "kifarunix-demo.com" IN {
        type master;                           # type of zone
        file "/var/named/forward.kifarunix-demo.com"; # location of forward zone file
        allow-update { none; };
};
zone    "60.168.192.in-addr.arpa" IN {
        type master;                    
        file "/var/named/reverse.kifarunix-demo.com"; # location of reverse zone file
        allow-update { none; };
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

创建 BIND DNS 区域文件

区域文件定义了各种类型的资源记录。

为前向和反向区域语句创建区域文件 /etc/named.conf

创建转发区域文件

如区域声明中指定的那样 /etc/named.conf 文件,转发区域文件位于 /var/named/forward.kifarunix-demo.com.

创建这个文件并配置如下;

cat > /var/named/forward.kifarunix-demo.com << 'EOL'
$ORIGIN kifarunix-demo.com.
$TTL 86400
@   IN  SOA ns1.kifarunix-demo.com. admin.kifarunix-demo.com. (
        2021062301   ; serial
        3600         ; refresh
        1800         ; retry
        604800       ; expire
        86400 )      ; minimum TTL
;
; define nameservers
    IN  NS  ns1.kifarunix-demo.com.
;
; DNS Server IP addresses and hostnames
ns1 IN  A   192.168.60.19
;
;client records
client IN  A   192.168.60.18
EOL

创建反向区域文件.

cat > /var/named/reverse.kifarunix-demo.com << 'EOL'
$ORIGIN 60.168.192.in-addr.arpa.
$TTL    86400
@   IN  SOA  ns1.kifarunix-demo.com. admin.kifarunix-demo.com. (
        2021062302  ; serial
        3600        ; refresh
        1800        ; retry
        604800      ; expire
        86400 )     ; minimum TTL
;
;nameservers
    IN  NS  ns1.kifarunix-demo.com.
;
;nameserver IP addresses
    IN  A   192.168.60.19
;
; client IP Address
    IN  A   192.168.60.18
; nameserver PTR records
19  IN  PTR ns1.kifarunix-demo.com.
;
; client PTR records
18  IN  PTR client.kifarunix-demo.com.
EOL

验证 BIND 配置语法

在开始 BIND 之前,即 命名服务, 使用以下命令检查配置文件中没有语法错误;

named-checkconf

如果配置文件没有错误,则该命令将不返回任何内容,退出状态为 0。

要验证转发区域文件的语法,请运行以下命令;

named-checkzone kifarunix-demo.com /var/named/forward.kifarunix-demo.com

样本输出;

zone kifarunix-demo.com/IN: loaded serial 2021062301
OK

要验证反向区域文件的语法,请运行该命令。

named-checkzone 60.168.192.in-addr.arpa /var/named/reverse.kifarunix-demo.com
zone 60.168.192.in-addr.arpa/IN: loaded serial 2021062302
OK

如果没有错误,请启动 BIND 并使其在引导时启动。

systemctl enable --now named

如果防火墙正在运行,请通过它启用 DNS 服务并重新加载防火墙。

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

验证 BIND DNS 服务器解析

修改DNS服务器的DNS服务器为自己的IP /etc/resolv.conf 文件并添加名称服务器 IP 地址

echo "nameserver 192.168.60.19"  >  /etc/resolv.conf 

更改网络接口上的 dns 服务器详细信息。 我的网络接口是 enp0s8。

ip add
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:3e:fe:0e brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3
       valid_lft 58976sec preferred_lft 58976sec
    inet6 fe80::689b:622:1eaf:287a/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: enp0s8:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:02:b9:8c brd ff:ff:ff:ff:ff:ff
    inet 192.168.60.19/24 brd 192.168.60.255 scope global dynamic noprefixroute enp0s8
       valid_lft 473sec preferred_lft 473sec
    inet6 fe80::301d:abeb:ad8b:6c56/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
,multicast,up,lower_up>,multicast,up,lower_up>,up,lower_up>

更新DNS;

nmcli con mod enp0s8 ipv4.dns 192.168.60.19
nmcli con down enp0s8; nmcli con up enp0s8

之后,测试以检查是否正在解析主机名或 IP 地址。

要检查名称解析:

dig ns1.kifarunix-demo.com

样本输出;

; <<>> DiG 9.11.26-RedHat-9.11.26-4.el8_4 <<>> ns1.kifarunix-demo.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25000
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 7086456c0747f91d9a6baf9160d379d78db89f52c45e867f (good)
;; QUESTION SECTION:
;ns1.kifarunix-demo.com.		IN	A

;; ANSWER SECTION:
ns1.kifarunix-demo.com.	86400	IN	A	192.168.60.19

;; AUTHORITY SECTION:
kifarunix-demo.com.	86400	IN	NS	ns1.kifarunix-demo.com.

;; Query time: 0 msec
;; SERVER: 192.168.60.19#53(192.168.60.19)
;; WHEN: Wed Jun 23 21:13:43 EAT 2021
;; MSG SIZE  rcvd: 109

检查反向 DNS 解析;

dig -x 192.168.60.19
; <<>> DiG 9.11.26-RedHat-9.11.26-4.el8_4 <<>> -x 192.168.60.19
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 6772
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: be2acb0f5766be389b24d55260d37a3f1c3c8466a7248483 (good)
;; QUESTION SECTION:
;19.60.168.192.in-addr.arpa.	IN	PTR

;; AUTHORITY SECTION:
60.168.192.in-addr.arpa. 86400	IN	SOA	ns1.kifarunix-demo.com. admin.kifarunix-demo.com. 2021062302 3600 1800 604800 86400

;; Query time: 0 msec
;; SERVER: 192.168.60.19#53(192.168.60.19)
;; WHEN: Wed Jun 23 21:15:27 EAT 2021
;; MSG SIZE  rcvd: 146

为 BIND DNS 解析配置客户端

更新 DNS 设置

登录客户端并编辑 /etc/resolv.conf 文件。

设置 DNS 服务器 IP 地址。

echo -e "search kifarunix-demo.comnnameserver 192.168.60.19" > /etc/resolv.conf

在 CentOS 上安装 BIND Utils/Tools

在基于 CentOS/RHEL 的衍生产品上安装 BIND 工具;

dnf install bind-utils

在 Ubuntu 上安装 BIND Utils

apt install dnsutils

验证 DNS 正向查找;

nslookup client
Server:		192.168.60.19
Address:	192.168.60.19#53

Name:	client.kifarunix-demo.com
Address: 192.168.60.18

验证 DNS 反向查找

nslookup 192.168.60.18

样本输出;

18.60.168.192.in-addr.arpa	name = client.kifarunix-demo.com.

太棒了,您的本地 DNS 服务器现已设置并运行。 这标志着我们在 Rocky Linux 8 上安装和设置 BIND DNS 服务器的指南结束。

其他 Rocky Linux 教程

在 Rocky Linux 8 上安装 Nagios 插件

在 Rocky Linux 8 上安装 Nagios 服务器

在 Rocky Linux 8 上安装 Google Chrome

在 Rocky Linux 8 上安装 VNC 服务器

[ad_2]

Related Posts