LINUX 第十五天 学习笔记

一、学习内容提炼

13.2 安装Bind服务程序

BIND(Berkeley Internet Name Domain,伯克利因特网名称域)服务是全球范围内使用最广泛、最安全可靠且高效的域名解析服务程序。DNS域名解析服务作为互联网基础设施服务,其责任之重可想而知,因此建议大家在生产环境中安装部署bind服务程序时加上chroot(俗称牢笼机制)扩展包,以便有效地限制bind服务程序仅能对自身的配置文件进行操作,以确保整个服务器的安全。
在这里插入图片描述
bind服务程序的配置并不简单,因为要想为用户提供健全的DNS查询服务,要在本地保存相关的域名数据库,而如果把所有域名和IP地址的对应关系都写入到某个配置文件中,估计要有上千万条的参数,这样既不利于程序的执行效率,也不方便日后的修改和维护。因此在bind服务程序中有下面这三个比较关键的文件。
主配置文件(/etc/named.conf) :只有58行,而且在去除注释信息和空行之后,实际有效的参数仅有30行左右,这些参数用来定义bind服务程序的运行。
区域配置文件(/etc/named.rfc1912.zones):用来保存域名和IP地址对应关系的所在位置。类似于图书的目录,对应着每个域和相应IP地址所在的具体位置,当需要查看或修改时,可根据这个位置找到相关文件。
数据配置文件目录(/var/named):该目录用来保存域名和IP地址真实对应关系的数据配置文件。

在Linux系统中,bind服务程序的名称为named。首先需要在/etc目录中找到该服务程序的主配置文件,然后把第11行和第17行的地址均修改为any,分别表示服务器上的所有IP地址均可提供DNS域名解析服务,以及允许所有人对本服务器发送DNS查询请求。这两个地方一定要修改准确。
在这里插入图片描述
bind服务程序的区域配置文件(/etc/named.rfc1912.zones)用来保存域名和IP地址对应关系的所在位置。在这个文件中,定义了域名与IP地址解析规则保存的文件位置以及服务类型等内容,而没有包含具体的域名、IP地址对应关系等信息。服务类型有三种,分别为hint(根区域)、master(主区域)、slave(辅助区域),其中常用的master和slave指的就是主服务器和从服务器。

PS:如果在实验中遇到了bind服务程序启动失败的情况,而您认为这是由于参数写错而导致的,则可以执行named-checkconf命令和named-checkzone命令,分别检查主配置文件与数据配置文件中语法或参数的错误。
在这里插入图片描述

正向解析文件:
在这里插入图片描述

反向解析文件
在这里插入图片描述
下图实验中会分别修改bind服务程序的主配置文件、区域配置文件与数据配置文件。在这里插入图片描述
检验解析结果。为了检验解析结果,一定要先把Linux系统网卡中的DNS地址参数修改成本机IP地址,这样就可以使用由本机提供的DNS查询服务了。nslookup命令用于检测能否从DNS服务器中查询到域名与IP地址的解析记录,进而更准确地检验DNS服务器是否已经能够为用户提供服务。

13.3 部署从服务器

配置从服务器(IP:172.16.10.3)
第一步:主服务器上编辑bind服务程序的区域配置文件,允许从服务器(172.16.10.3)同步数据
在这里插入图片描述

第二步:从服务器上,编辑bind服务程序的主配置文件
在这里插入图片描述

第三步:从服务器上,编辑区域配置文件
在这里插入图片描述

第四步:编辑从服务器网卡,测试同步结果
在这里插入图片描述

13.4 安全的加密传输

域名解析服务是互联网基础设施中重要的一环,几乎所有的网络应用都依赖于DNS才能正常运行。如果DNS服务发生故障,那么即便Web网站或电子邮件系统服务等都正常运行,用户也无法找到并使用它们了。
互联网中的绝大多数DNS服务器(超过95%)都是基于BIND域名解析服务搭建的,而bind服务程序为了提供安全的解析服务,已经对TSIG(RFC 2845)加密机制提供了支持。TSIG主要是利用了密码编码的方式来保护区域信息的传输(Zone Transfer),即TSIG加密机制保证了DNS服务器之间传输域名区域信息的安全性。
接13.3实验,前面在从服务器上配妥bind服务程序并重启后,即可看到从主服务器中获取到的数据配置文件。

继续实验:
第一步:在主服务器中生成密钥。dnssec-keygen命令用于生成安全的DNS服务密钥,其格式为“dnssec-keygen [参数]”,常用的参数以及作用如下表所示。
在这里插入图片描述
在这里插入图片描述
我们需要把私钥文件中Key参数后面的值记录下来,一会儿要将其写入传输配置文件中
【YuZAfsqFQj9Nx64JEZdSvw==】

第二步:在主服务器中创建密钥验证文件。进入bind服务程序用于保存配置文件的目录(/var/named/chroot/etc/),把刚刚生成的密钥名称、加密算法和私钥加密字符串按照下面格式写入到tansfer.key传输配置文件中。为了安全起见,我们需要将文件的所属组修改成named,并将文件权限设置得要小一点,然后把该文件做一个硬链接到/etc目录中。
在这里插入图片描述

第三步:开启并加载Bind服务的密钥验证功能。首先需要在主服务器的主配置文件中加载密钥验证文件,然后进行设置,使得只允许带有master-slave密钥认证的DNS服务器同步数据配置文件
在这里插入图片描述
第四步:验证。至此,DNS主服务器的TSIG密钥加密传输功能就已经配置完成。此时清空DNS从服务器同步目录中所有的数据配置文件,然后再次重启bind服务程序,这时就已经不能像刚才那样自动获取到数据配置文件了。(因为从服务器没有配置使其支持密钥验证)
在这里插入图片描述
第五步:配置从服务器,使其支持密钥验证。配置DNS从服务器和主服务器的方法大致相同,都需要在bind服务程序的配置文件目录中创建密钥认证文件,并设置相应的权限,然后把该文件做一个硬链接到/etc目录中。
在这里插入图片描述
第六步:开启并加载从服务器的密钥验证功能。这一步的操作步骤也同样是在主配置文件中加载密钥认证文件,然后按照指定格式写上主服务器的IP地址和密钥名称。注意,密钥名称等参数位置不要太靠前,大约在第43行比较合适,否则bind服务程序会因为没有加载完预设参数而报错:
在这里插入图片描述
第七步:再次验证。DNS从服务器同步域名区域数据。现在,两台服务器的bind服务程序都已经配置妥当,并匹配到了相同的密钥认证文件。接下来在从服务器上重启bind服务程序,可以发现又能顺利地同步到数据配置文件了。
在这里插入图片描述

13.5 部署缓存服务器

DNS缓存服务器(Caching DNS Server)是一种不负责域名数据维护的DNS服务器。简单来说,缓存服务器就是把用户经常使用到的域名与IP地址的解析记录保存在主机本地,从而提升下次解析的效率。DNS缓存服务器一般用于经常访问某些固定站点而且对这些网站的访问速度有较高要求的企业内网中,但实际的应用并不广泛。而且,缓存服务器是否可以成功解析还与指定的上级DNS服务器的允许策略有关,因此当前仅需了解即可。

第一步:配置系统的双网卡参数。前面讲到,缓存服务器一般用于企业内网,旨在降低内网用户查询DNS的时间消耗。因此,为了更加贴近真实的网络环境,实现外网查询功能,我们需要在缓存服务器中再添加一块网卡,并按照表13-4所示的信息来配置出两台Linux虚拟机系统。而且,还需要在虚拟机软件中将新添加的网卡设置为“桥接模式”,然后设置成与物理设备相同的网络参数(此处需要大家按照物理设备真实的网络参数来配置,图13-6所示为以DHCP方式获取IP地址与网关等信息,重启网络服务后)。
在这里插入图片描述
在这里插入图片描述
第二步:在bind服务程序的主配置文件中添加缓存转发参数。在大约第17行处添加一行参数“forwarders { 上级DNS服务器地址; };”,上级DNS服务器地址指的是获取数据配置文件的服务器。考虑到查询速度、稳定性、安全性等因素,这里使用的是北京市公共DNS服务器的地址210.73.64.1。如果大家也使用该地址,请先测试是否可以ping通,以免导致DNS域名解析失败。
在这里插入图片描述
第三步:重启DNS服务,验证成果。把客户端主机的DNS服务器地址参数修改为DNS缓存服务器的IP地址172.16.10.2,如图所示。这样即可让客户端使用本地DNS缓存服务器提供的域名查询解析服务。
在这里插入图片描述

在将客户端主机的网络参数设置妥当后重启网络服务,即可使用nslookup命令来验证实验结果(如果解析失败,请留意是否是上级DNS服务器选择的问题)。其中,Server参数为域名解析记录提供的服务器地址,因此可见是由本地DNS缓存服务器提供的解析内容

13.6 分离解析技术

上网的用户越来越多,如果把网站服务器架设在国内的机房内,则海外读者的访问速度势必会很慢。可如果把服务器架设在美国那边的机房,也将增大国内读者的访问难度。

为了满足海内外读者的需求,于是可以购买多台服务器并分别部署在全球各地,然后再使用DNS服务的分离解析功能,即可让位于不同地理范围内的读者通过访问相同的网址,而从不同的服务器获取到相同的数据。例如,我们可以按照表13-5所示,分别为处于北京的DNS服务器和处于美国的DNS服务器分配不同的IP地址,然后让国内读者在访问时自动匹配到北京的服务器,而让海外读者自动匹配到美国的服务器,如图13-9所示。
在这里插入图片描述
在这里插入图片描述

第一步:修改bind服务程序的主配置文件,把第11行的监听端口与第17行的允许查询主机修改为any。由于配置的DNS分离解析功能与DNS根服务器配置参数有冲突,所以需要把第51~54行的根域信息删除。
在这里插入图片描述
第二步:编辑区域配置文件。把区域配置文件中原有的数据清空,然后按照以下格式写入参数。首先使用acl参数分别定义两个变量名称(china与american),当下面需要匹配IP地址时只需写入变量名称即可,这样不仅容易阅读识别,而且也利于修改维护。这里的难点是理解view参数的作用。它的作用是通过判断用户的IP地址是中国的还是美国的,然后去分别加载不同的数据配置文件(linuxprobe.com.china或linuxprobe.com.american)。这样,当把相应的IP地址分别写入到数据配置文件后,即可实现DNS的分离解析功能。这样一来,当中国的用户访问linuxprobe.com域名时,便会按照linuxprobe.com.china数据配置文件内的IP地址找到对应的服务器。
在这里插入图片描述

第三步:建立数据配置文件。分别通过模板文件创建出两份不同名称的区域数据文件,其名称应与上面区域配置文件中的参数相对应。
在这里插入图片描述
第四步:配置服务器网卡(需要模拟两台服务器)。nmtui配置网卡
在这里插入图片描述
第五步:重新启动named服务程序,验证结果。将客户端主机(Windows系统或Linux系统均可)的IP地址分别设置为122.71.115.1与106.185.25.1,将DNS地址分别设置为服务器主机的两个IP地址。这样,当尝试使用nslookup命令解析域名时就能清晰地看到解析结果,分别如图13-10与图13-11所示。
在这里插入图片描述
在这里插入图片描述

二、笔记截图

在这里插入图片描述

在这里插入图片描述

发布了19 篇原创文章 · 获赞 0 · 访问量 221

猜你喜欢

转载自blog.csdn.net/qq_30358029/article/details/102665520