2021-10-05 linux学习-部署(十二) 之Bind服务程序

Bind服务程序

BIND(Berkeley Internet Name Domain,伯克利因特网名称域)服务是全球范围内使用最广泛、最安全可靠且高效的域名解析服务程序。

1 安装Bind

dnf install -y bind-chroot

在bind服务程序中有下面这3个比较关键的文件

主配置文件(/etc/named.conf):只有59行,而且在去除注释信息和空行之后,实际有效的参数仅有30行左右,这些参数用来定义bind服务程序的运行。

区域配置文件(/etc/named.rfc1912.zones):用来保存域名和IP地址对应关系的所在位置。类似于图书的目录,对应着每个域和相应IP地址所在的具体位置,当需要查看或修改时,可根据这个位置找到相关文件。

数据配置文件目录(/var/named):该目录用来保存域名和IP地址真实对应关系的数据配置文件。

实验一 部署主服务器-正向解析

1 配置主配置文件

把第11行和第19行的地址均修改为any

vim /etc/named.conf
 11         listen-on port 53 { any; };
 19         allow-query     { any; };

2 编辑区域配置文件

vim /etc/named.rfc1912.zones
zone "linuxprobe.com" IN {
        type master;
        file "linuxprobe.com.zone";
        allow-update {none;};
};

3 编辑数据配置文件

cd /var/named/

cp -a named.localhost linuxprobe.com.zone

vim linuxprobe.com.zone
$TTL 1D
@       IN SOA  linuxprobe.com.  root.linuxprobe.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns.linuxprobe.com.
www      IN A    192.168.0.10
ns       IN A    192.168.0.10

重启服务

systemctl restart named
systemctl enable named
​

域名解析记录类型

记录类型    	作用
A	    将域名指向一个IPV4地址
CNAME	将域名指向另外一个域名
AAAA	将域名指向一个IPV6地址
NS	    将子域名指定其他DNS服务器解析
MX	    将域名指向邮件服务器地址
SRV	    记录提供特定的服务的服务器
TXT	    文本内容一般为512字节,常作为反垃圾邮件的SPF记录
CAA	    CA证书办法机构授权校验
显性URL	将域名重定向到另外一个地址
隐性URL	与显性URL类型,但是会隐藏真实目标地址

4 把Linux系统网卡中的DNS地址参数修改成本机IP地址

vim /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME=ens160
UUID=3dd9f146-20f3-4cb6-bb4e-288b23dfd7c0
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.0.10
PREFIX=24
DNS1=192.168.0.10

重启网卡

nmcli connection up ens160

5 检验解析结果

nslookup
> www.linuxprobe.com
Server:		192.168.0.10
Address:	192.168.0.10#53

Name:	www.linuxprobe.com
Address: 192.168.0.10

实验二 部署主服务器-反向解析

编辑区域配置文件

vim /etc/named.rfc1912.zones
zone "linuxprobe.com" IN {
        type master;
        file "linuxprobe.com.zone";
        allow-update {none;};
};
zone "0.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.0.arpa";
        allow-update {none;};
};

2 编辑数据配置文件

cd /var/named
cp -a named.loopback 192.168.0.arpa
vim 192.168.0.arpa
$TTL 1D
@       IN SOA  linuxprobe.com. root.linuxprobe.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns.linuxprobe.com.
ns      A       192.168.0.10
10      PTR     ns.linuxprobe.com.
10      PTR     www.linuxprobe.com.
20      PTR     bbs.linuxprobe.com.

重启服务

systemctl restart named
systemctl enable named

3 检验解析结果

nslookup
> 192.168.0.10
10.0.168.192.in-addr.arpa	name = www.linuxprobe.com.
10.0.168.192.in-addr.arpa	name = ns.linuxprobe.com.
> 192.168.0.20 
20.0.168.192.in-addr.arpa	name = bbs.linuxprobe.com.

实验三 部署从服务器

1 在主服务器的区域配置文件中允许该从服务器的更新请求

vim /etc/named.rfc1912.zones
zone "linuxprobe.com" IN {
        type master;
        file "linuxprobe.com.zone";
        allow-update { 192.168.0.20;};
};
zone "0.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.10.arpa";
        allow-update { 192.168.0.20;};
};

2 在主服务器上配置防火墙放行规则

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

3 在从服务器上安装bind-chroot软件包,修改配置文件

dnf install -y bind-chroot
vim /etc/named.conf
11         listen-on port 53 { any; };
19         allow-query     { any; };

4 在从服务器中填写主服务器的IP地址与要抓取的区域信息

vim /etc/named.rfc1912.zones
zone "linuxprobe.com" IN {
        type slave;
        masters { 192.168.0.10; };
        file "slaves/linuxprobe.com.zone";
};
zone "0.168.192.in-addr.arpa" IN {
        type slave;
        masters { 192.168.0.10; };
        file "slaves/192.168.0.arpa";
};

重启服务

systemctl restart named
systemctl enable named

5 把Linux系统网卡中的DNS地址参数修改成本机IP地址

vim /etc/sysconfig/network-scripts/ifcfg-ens160
YPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME=ens160
UUID=f09352c6-b108-4b18-9847-8edfe72f0712
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.0.20
PREFIX=24
DNS1=192.168.0.20

6 检验解析结果

nslookup
> www.linuxprobe.com
Server:		192.168.0.20
Address:	192.168.0.20#53

Name:	www.linuxprobe.com
Address: 192.168.0.10
> 192.168.0.10
10.0.168.192.in-addr.arpa	name = www.linuxprobe.com.
10.0.168.192.in-addr.arpa	name = ns.linuxprobe.com.

实验四 安全的加密传输

互联网中的绝大多数DNS服务器(超过95%)都是基于BIND域名解析服务搭建的,而bind服务程序为了提供安全的解析服务,已经对TSIG(见RFC 2845)加密机制提供了支持。TSIG主要是利用了密码编码的方式来保护区域信息的传输(Zone Transfer),即TSIG加密机制保证了DNS服务器之间传输域名区域信息的安全性。

实验开始之前的准备

rm -rf /var/named/slaves/*

1 在主服务器中生成密钥

dnssec-keygen命令用于生成安全的DNS服务密钥,其格式为 dnssec-keygen [参数]

dnssec-keygen命令的常用参数

参数	    作用
-a	    指定加密算法,包括RSAMD5(RSA)、RSASHA1、DSA、NSEC3RSASHA1、NSEC3DSA等
-b	    密钥长度(HMAC-MD5的密钥长度在1~512位之间)
-n	    密钥的类型(HOST表示与主机相关)

开始

dnssec-keygen -a HMAC-MD5 -b 128 -n HOST master-slave
cat Kmaster-slave.+157+41506.private | grep Key

记下key

Key: auVjxNxo7UzJBHl7krQu8Q==

2 在主服务器中创建密钥验证文件

cd /var/named/chroot/etc/
vim transfer.key
key "master-slave" {
        algorithm hmac-md5;
        secret "auVjxNxo7UzJBHl7krQu8Q==";
};

修改权限,设置硬链接

chown root:named transfer.key
chmod 640 transfer.key
ln transfer.key /etc/transfer.key

3 开启并加载bind服务的密钥验证功能

在主服务器的主配置文件中加载密钥验证文件

vim /etc/named.conf
9 include "/etc/transfer.key";
20         allow-transfer { key master-slave; };

重启服务

systemctl restart named
systemctl enable named

清空从服务器同步目录中所有的数据配置文件,重启服务

rm -rf /var/named/slaves/*
systemctl restart named

4 配置从服务器,使其支持密钥验证

cd /var/named/chroot/etc/
vim transfer.key
key "master-slave" {
        algorithm hmac-md5;
        secret "auVjxNxo7UzJBHl7krQu8Q==";
};

修改权限,设置硬链接

chown root:named transfer.key
chmod 640 transfer.key
ln transfer.key /etc/transfer.key

5 开启并加载从服务器的密钥验证功能

vim /etc/named.conf
9 include "/etc/transfer.key";
51 server 192.168.0.10
52 {
53         keys { master-slave; };
54 };

重启服务

systemctl restart named

6 解析验证

nslookup
> www.linuxprobe.com
Server:		192.168.0.20
Address:	192.168.0.20#53

Name:	www.linuxprobe.com
Address: 192.168.0.10
> 192.168.0.10
10.0.168.192.in-addr.arpa	name = www.linuxprobe.com.
10.0.168.192.in-addr.arpa	name = ns.linuxprobe.com.
> 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鹅一只

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值