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

news/2024/11/15 2:22:57/

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.zonevim linuxprobe.com.zone
$TTL 1D
@       IN SOA  linuxprobe.com.  root.linuxprobe.com. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      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#53Name:	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       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      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#53Name:	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#53Name:	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.
> 


http://www.ppmy.cn/news/637587.html

相关文章

Debian 11 “bullseye” 安装笔记

Debian 11 “bullseye” 安装笔记 请访问原文链接:https://sysin.org/blog/debian-11-install/,查看最新版。原创作品,转载请保留出处。 作者:gc(at)sysin.org,主页:www.sysin.org ISO 下载:…

Linux就该这么学(三)

管道符、重定向与环境变量 一、输出重定向 若不区分标准输出和错误输出,只要命令有输出信息则全部追加写入到文件中。这就要用到&>>操作符了 如下:将ww.txt中的文件内容追加写入到redme.txt文件中(若redme.txt不存在,则…

【钓鱼】与【反钓鱼】的技术剖析

本文来自作者 肖志华 在 GitChat 上分享「钓鱼网站与反钓鱼技术剖析(圆桌会议)」,「阅读原文」查看交流实录 「文末高能」 编辑 | 仓井 钓鱼网站的简介阐述 钓鱼网站通常指伪装成银行及电子商务,窃取用户提交的银行帐号、密码等私…

开虚拟机服务器cpu百分之百应该管,为何我在虚拟机里开游戏CPU使用率90--100

这个病毒早成的原因也是有可能的。给你些资料参考下把。 经常出现CPU占用100%的情况,主要问题可能发生在下面的某些方面: CPU占用率高的九种可能 1、防杀毒软件造成故障 由于新版的KV、金山、瑞星都加入了对网页、插件、邮件的随机监控,无疑增大了系统负担。处理方式:基本上没…

译: Linux 操作系统知多少

译: Linux 操作系统知多少 1.1 介绍1.2 选择发行指南1.2.1 Linux Mint1.2.2 Ubuntu1.2.3 MX Linux1.2.4 Arch Linux1.2.5 Gentoo1.2.6 Slackware Linux1.2.7 Debian GNU / Linux1.2.8 Fedora1.2.9 openSUSE1.2.10 CentOS1.2.11 FreeBSD 1.3 使用建议1.4 参考资料 直到今天为止,…

主要Linux发行版和FreeBSD概述

介绍 令人困惑的选择和数量不断增加的Linux发行版可能会使那些刚接触Linux的人感到困惑。这就是创建此页面的原因。它列出了10个Linux发行版(加上对FreeBSD的荣誉称号,到目前为止,它是所有BSD中最受欢迎的发行版),这些…

Fabric学习--环境搭建

前言:这是本人学习fabric的一个安装笔记,本来觉得应该很简单,一切从头开始安装,因为很久没有干活了,所以,前后安装了好几天,因为碰到的各种问题很多,有自己小白的错误,也…

02【前端工程化初探】GitLab本地部署

概述 这篇文章先来预热一下,我们在自己的虚拟机里搭建一套GitLab环境,然后自己就可以使劲折腾。具体搭建步骤如下。 系统环境 系统:CentOS 8.1 内存:4G起步 硬盘:50G(仅供测试环境) IP:192.168.0.104 …