首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第十一章:使用vsftpd服务传输文件
文件传输协议
vsftpd服务程序
简单文件传输协议
第十二章:使用Samba或NFS实现文件共享
Samba文件共享服务
NFS(网络文件系统)
autofs自动挂载服务
第十三章:使用BIND提供域名解析服务
DNS域名解析服务
安装bind服务程序
部署从服务器
安全的加密传输
部署缓存服务器
第十四章:使用DHCP动态管理主机地址
动态主机配置协议
部署dhcpd服务程序
自动管理IP地址
分配固定IP地址
当前位置:
首页>>
技术小册>>
Linux应该怎么学(下)
小册名称:Linux应该怎么学(下)
BIND(Berkeley Internet Name Domain,伯克利因特网名称域)服务是全球范围内使用最广泛、最安全可靠且高效的域名解析服务程序。DNS域名解析服务作为互联网基础设施服务,其责任之重可想而知,因此建议大家在生产环境中安装部署bind服务程序时加上chroot(俗称牢笼机制)扩展包,以便有效地限制bind服务程序仅能对自身的配置文件进行操作,以确保整个服务器的安全。 [root@linuxprobe ~]# yum install bind-chroot Loaded plugins: langpacks, product-id, subscription-manager ………………省略部分输出信息……………… Installing: bind-chroot x86_64 32:9.9.4-14.el7 rhel 81 k Installing for dependencies: bind x86_64 32:9.9.4-14.el7 rhel 1.8 M Transaction Summary =============================================================================== Install 1 Package (+1 Dependent package) Total download size: 1.8 M Installed size: 4.3 M Is this ok [y/d/N]: y Downloading packages: ------------------------------------------------------------------------------- Total 28 MB/s | 1.8 MB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : 32:bind-9.9.4-14.el7.x86_64 1/2 Installing : 32:bind-chroot-9.9.4-14.el7.x86_64 2/2 Verifying : 32:bind-9.9.4-14.el7.x86_64 1/2 Verifying : 32:bind-chroot-9.9.4-14.el7.x86_64 2/2 Installed: bind-chroot.x86_64 32:9.9.4-14.el7 Dependency Installed: bind.x86_64 32:9.9.4-14.el7 Complete! 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查询请求。这两个地方一定要修改准确。 [root@linuxprobe ~]# vim /etc/named.conf 1 // 2 // named.conf 3 // 4 // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS 5 // server as a caching only nameserver (as a localhost DNS resolver only). 6 // 7 // See /usr/share/doc/bind*/sample/ for example named configuration files. 8 // 9 10 options { 11 listen-on port 53 { any; }; 12 listen-on-v6 port 53 { ::1; }; 13 directory "/var/named"; 14 dump-file "/var/named/data/cache_dump.db"; 15 statistics-file "/var/named/data/named_stats.txt"; 16 memstatistics-file "/var/named/data/named_mem_stats.txt"; 17 allow-query { any; }; 18 19 /* 20- If you are building an AUTHORITATIVE DNS server, do NOT enable re cursion. 1,1 Top 21- If you are building a RECURSIVE (caching) DNS server, you need to enable 22 recursion. 23- If your recursive DNS server has a public IP address, you MUST en able access 24 control to limit queries to your legitimate users. Failing to do so will 25 cause your server to become part of large scale DNS amplification 26 attacks. Implementing BCP38 within your network would greatly 27 reduce such attack surface 28 */ 29 recursion yes; 30 31 dnssec-enable yes; 32 dnssec-validation yes; 33 dnssec-lookaside auto; 34 35 /* Path to ISC DLV key */ 36 bindkeys-file "/etc/named.iscdlv.key"; 37 38 managed-keys-directory "/var/named/dynamic"; 39 40 pid-file "/run/named/named.pid"; 41 session-keyfile "/run/named/session.key"; 42 }; 43 44 logging { 45 channel default_debug { 46 file "data/named.run"; 47 severity dynamic; 如前所述,bind服务程序的区域配置文件(/etc/named.rfc1912.zones)用来保存域名和IP地址对应关系的所在位置。在这个文件中,定义了域名与IP地址解析规则保存的文件位置以及服务类型等内容,而没有包含具体的域名、IP地址对应关系等信息。服务类型有三种,分别为hint(根区域)、master(主区域)、slave(辅助区域),其中常用的master和slave指的就是主服务器和从服务器。旨在让用户有一个参考。我们可以将下面的参数添加到区域配置文件的最下面,当然,也可以将该文件中的原有信息全部清空,而只保留自己的域名解析信息: [root@linuxprobe ~]# vim /etc/named.rfc1912.zones zone "linuxprobe.com" IN { type master; file "linuxprobe.com.zone"; allow-update {none; }; }; 第2步:编辑数据配置文件。我们可以从/var/named目录中复制一份正向解析的模板文件(named.localhost),然后把域名和IP地址的对应数据填写数据配置文件中并保存。在复制时记得加上-a参数,这可以保留原始文件的所有者、所属组、权限属性等信息,以便让bind服务程序顺利读取文件内容: [root@linuxprobe ~]# cd /var/named/ [root@linuxprobe named]# ls -al named.localhost -rw-r-----. 1 root named 152 Jun 212007 named.localhost [root@linuxprobe named]# cp -a named.localhost linuxprobe.com.zone 编辑数据配置文件。在保存并退出后文件后记得重启named服务程序,让新的解析数据生效。考虑到正向解析文件中的参数较多,而且相对都比较重要,刘遄老师在每个参数后面都作了简要的说明。 [root@linuxprobe named]# vim linuxprobe.com.zone [root@linuxprobe named]# systemctl restart named 13.2.2 反向解析实验 在DNS域名解析服务中,反向解析的作用是将用户提交的IP地址解析为对应的域名信息,它一般用于对某个IP地址上绑定的所有域名进行整体屏蔽,屏蔽由某些域名发送的垃圾邮件。它也可以针对某个IP地址进行反向解析,大致判断出有多少个网站运行在上面。当购买虚拟主机时,可以使用这一功能验证虚拟主机提供商是否有严重的超售问题。 第1步:编辑区域配置文件。在编辑该文件时,除了不要写错格式之外,还需要记住此处定义的数据配置文件名称,因为一会儿还需要在/var/named目录中建立与其对应的同名文件。反向解析是把IP地址解析成域名格式,因此在定义zone(区域)时应该要把IP地址反写,比如原来是192.168.10.0,反写后应该就是10.168.192,而且只需写出IP地址的网络位即可。把下列参数添加至正向解析参数的后面。 [root@linuxprobe ~]# vim /etc/named.rfc1912.zones zone "linuxprobe.com" IN { type master; file "linuxprobe.com.zone"; allow-update {none; }; }; zone "10.168.192.in-addr.arpa" IN { type master; file "192.168.10.arpa"; }; 第2步:编辑数据配置文件。首先从/var/named目录中复制一份反向解析的模板文件(named.loopback),然后把下面的参数填写到文件中。 图13-5 反向解析文件中IP地址参数规范 [root@linuxprobe named]# cp -a named.loopback 192.168.10.arpa [root@linuxprobe named]# vim 192.168.10.arpa [root@linuxprobe named]# systemctl restart named 第3步:检验解析结果。为了检验解析结果,一定要先把Linux系统网卡中的DNS地址参数修改成本机IP地址,这样就可以使用由本机提供的DNS查询服务了。nslookup命令用于检测能否从DNS服务器中查询到域名与IP地址的解析记录,进而更准确地检验DNS服务器是否已经能够为用户提供服务。 [root@linuxprobe ~]# systemctl restart network [root@linuxprobe ~]# nslookup > www.linuxprobe.com Server: 127.0.0.1 Address: 127.0.0.1#53
上一篇:
DNS域名解析服务
下一篇:
部署从服务器
该分类下的相关小册推荐:
Shell编程入门与实战
Vim实用技巧必知必会
LInux运维零基础入门到实战
Linux应该怎么学(上)
Vim编辑器入门到实战
Linux应该怎么学(中)
CentOS入门指南
bash脚本编程实战