企业级Linux之DNS服务器的高级配置
高速缓存dns
1>实验环境的配置
1.虚拟机上网配置,真机上开启火墙的伪装功能,虚拟机上配置网卡信息。
1>firewall-cmd --add-masqunetwork ###开启火墙的伪装功能,(将域内路由伪装成)可以充当路由器
2>vim /etc/sysconfig/network-scripts/ifcfg-eth0 ###编辑网卡eth0的配置信息DEVICE=eth0
NAME=eth0
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.25.254.106
NETMASK=255.255.255.0
GATEWAY=172.25.254.6 ###将网关设置成172.25.254.6(开启伪装功能火墙的主机的一张网卡的ip地址)测试: ping 114.114.114.114
2.yum源配置 此过程,在基础篇的部分有介绍,在此不赘述。有问题的可以查看之前的软件安装篇。
yum repolist
2>netstat -an( 表示不做解析)tlup(programm)e(扩展信息)
2>设置高速缓存dns
1)在一台虚拟机上面下载bind软件
yum search dns ###查找dns软件,此软件名称是bind.x86_64
yum install bind.x86_64 -y ###安装bind软件
systemctl stop firewalld ###关闭此机器的火墙
systemctl start named ###
vim /etc/named.conf ###编辑文件分别修改下面的四个地方13 listen-on port 53 { any; }; ###将网卡上的ip的53接口打开,这个接口用于dns的传送
19 allow-query { any; }; ###此部分如果是locahost,就是只允许本机查询,any——>允许所有人查询
20 forwarders {114.114.114.114; }; ###设置首先查的dns服务器是114.114.114.114,此操作会节省响应时间,不做此设置,系统甚至会去美国的dns服务器查询(源服务器)
35 dnssec-validation no; ###不检测dns的安全性,此服务需要网警介入,需要资金
2)在测试端,
vim /etc/resolve.conf
nameserver 172.25.254.106 ###高速缓存服务器systemctl stop firewalld ###将firewalld服务关掉,火墙会影响服务
测试:
1.在dns服务器端先dig 一个网址,
dig www.4399.com
2.在测试端也dig同一个网址,如果在测试端dig的响应时间远远小于dns服务器端的响应时间,说明实验成功。
dig www.4399.com
邮件传输
邮件传输协议:smtp 25端口 postfix软件
(http 80)apache软件
3> dns的正向解析
vim /etc/named.rfc1912.zone ###此文件是文件/etc/named.conf文件的扩展文件,里面写的是什么域在什么文件中查询
文件中写入:
25 zone "westos.com" IN { ###域wetsos.com在westos.com.zone文件中查询
26 type master;
27 file "westos.com.zone";
28 allow-update { none; };
29 };
cd /var/named
cp -p named.localhost westos.com.zone ###注:前边是正向解析的模板文件
vim westos.com.zone ###编辑查询文件
1 $TTL 1D
2 @ IN SOA dns.westos.com. sun.westos.com. ( ###注:前面一个域名是域名起始,后面一个域名是记录维护该域名服务器的人
3 0 ; serial ###文件修改标记,后面会介绍其用法
4 1D ; refresh ###刷新客户的缓存时间
5 1H ; retry ###查询不到的话,用户可以在一个小时之后再次查询
6 1W ; expire ###死亡期限,1W天
7 3H ) ; minimum ###最短时间,在此时间内可以用缓存来回应查询
8 NS dns.westos.com.
9 dns A 172.25.254.106
10 www A 172.25.254.107
注:此文件中在系统读取的时候会默认加上westos.com,所以在书写完整域名的时候要在最后加上点(.),表示完整的域名,否则会报错
#测试
在测试主机中
vim /etc/resolv.conf
nameserver 172.25.254.106
dig www.westos.com
dig dns.westos.com
反向解析ptr
用ip地址反向解析到域名
步骤:
1> vim /etc/named.rfc1912.zones
在文件中写入;
49 zone "254.25.172.in-addr.arpa" IN { ###反向书写
50 type master;
51 file "172.25.254.ptr"; ###在172.25.254.ptr文件中查询
52 allow-update { none; };
53 };
2> cd /var/named/
3> cp -p named.loopback 172.25.254.ptr ###named.loopback是反向解析的模板文件,注意要加上-p,将文件所有的权限复制过来
4> vim 172.25.254.ptr
#测试
[[email protected] named]# dig -x 172.25.254.107
dns双向解析
在实际的情况中会遇到,本公司网域的用户要查到的ip地址,
实验步骤
1> vim /etc/named.conf ###修改配置文件
view localnet{
52 match-clients{localhost; }; ###匹配用户:本机(localhost)注:这里的loacl可以换成172.25.254/24,一个网域,需要突出实验结果就设置成本机
53 zone "." IN {
54 type hint;
55 file "named.ca";
56 };
57 include "/etc/named.rfc1912.zones"; ###本机用户的附加文件是/etc/named.rfc1912.zones里面会链接到wesstos.com.zone
58 }; ###文件中写的是172.25.254.106
59
61 view any{
62 match-clients{any; };
63 zone "." IN {
64 type hint;
65 file "named.ca";
66 };
67 include "/etc/named.rfc1912.zones.inter";
###除了本机之外的用户的附加文件是/etc/named.rfc1912.zones里面会链接到wesstos.com.zone.inter,文件中是192.25.254.106...
68 };
69
70 /*zone "." IN {
71 type hint;
72 file "named.ca";
73 };
74 */
75 #include "/etc/named.rfc1912.zones";
76 include "/etc/named.root.key";
2> [[email protected] named]# cp -p westos.com.zone westos.com.zone.inter
3> [[email protected] named]# vim westos.com.zone.inter
外网查询网址得到192.168网段的ip地址。
注:named服务的配置文件是/etc/named.conf此文件会链接扩展文件————
/etc/named.rfc1912.zones此文件中又会链接到————
/var/westos.com.zone此文件是dns服务器的数据文件。
4> systemctl restart named ###将named服务重启
测试:在本机
dig www.westos.com
在测试端
dig www.westos.com
辅助dns的设置
在实际的工作中会遇到dns服务器访问量太大而导致dns服务器的负载太大,这时候就需要设置辅助dns来缓解主dns服务器的压力
准备工作:将刚刚设置的双向dns进行还原,只需要将named的主配置文件进行修改。
将双向dns的配置语句注释掉就行了
重启named服务
1>主dns的设定
vim /etc/named.rfc1912.zones.inter ###将inter的dns的负载分享出去
zone "westos.com" IN {
26 type master;
27 file "westos.com.inter";
28 allow-update { none; };
29 also-notify{172.25.254.206; }; ###总是通知172.25.254.206这台主机
30 };
systemctl restart named
注意:每次更改主dns记录文件必须更改serial的数值,这个数值最大十位
辅助dns上
1> yum install bind -y
2> systemctl restart named
3> systemctl stop fiewalld
4> vim /etc/name.conf ###文件中更改三个地方
分别是:
vim /etc/name/rfc1912.zones
测试:将另外一台机器的nameserver设置成192.25.254.206(第二台dns服务器的ip地址)
dig www.westos.com
更新副dns服务器的dns数据:
修改主dns的文件
vim /var/named/westos.com.zone.inter
注:副dns的dns源的更新机制是由上面截图的serial值来控制的,只要副文件中的serial值和主dns服务器上的serial值不一样,辅dns服务器就会更新自己的文件
在另外一台主机上
dig hello.westos.com
成功!
dns的远程更新
基于ip的
vim /etc/name.rfc1912.zone.inter
24
25 zone "westos.com" IN {
26 type master;
27 file "westos.com.zone";
28 allow-update {172.25.254.206; };
29 also-notify {172.25.254.206; };
systemctl restart named
chmod 770 /var/named
将selinux设置成disable或者peimissive
不然会上传不了dns的更新信息
#测试
#在200这台主机上
#[[email protected] ~]#nsupdate
#> server 172.25.254.106 ##添加
#> update add bbs.westos.com 86400 A 1.1.1.3
#> send
在测试的主机上dig bbs.westos.com
#> server 172.25.254.106 ##删除
#> update delete bbs.westos.com
#> send
#

dns的加密远程更新
基于key
在上面一个部分是基于ip的dns更新,黑客可以通过修改ip来更新dns文件,所以这种更新的方式是非常不安全的。这就引出了基于key的dns文件的更新模式
1> [[email protected] named]# dnssec-****** -a HMAC-MD5 -b 128 -n HOST westos
Kwestos.+157+08888
2>cp /etc/rndc.key /etc/westos.key -p ###注:前面一个文件是密码文件的模板
3> 将生成的密码文件中的加密字符写到下面的文件中:/etc/westos.key
[[email protected] mnt]# cat Kwestos.+157+56012.key
westos. IN KEY 512 3 157 21GfmUPfRjRB4sM4VKp2aw==
1 key "westos" {
2 algorithm hmac-md5;
3 secret "21GfmUPfRjRB4sM4VKp2aw=="; ###加密字符
4 };
vim /etc/named.rfc1912.zones.inter
25 zone "westos.com" IN {
26 type master;
27 file "westos.com.zone";
28 allow-update { key westos; };
29 also-notify {172.25.254.206; };
###注:将允许更新dns的方式修改为key westos
systemctl restart named
#测试
scp Kwestos.+157+08888.* [email protected]:/mnt/
cd /mnt
nsupdate -k K[tab].key
>server 172.25.254.106
>update add hello.westos.com 86400 A 172.25.254.222
>send
>quit
成功!
dhcp配置更新dns ————>(花生壳)
vim /etc/dhcp/dhcpd.conf
14 ddns-update-style interim;
####开启dhcp的更新dns功能
37 key westos {
38 algorithm hmac-md5;
39 secret SGzNYp7nP9joaqccCHeQjQ==; ###这里的密码就是/etc/westos.key里面的密码
40 };
41
42 zone westos.com. {
43 primary 127.0.0.1; ###本机是dhcp服务器用loopback来更新
44 key westos;
45 }
测试
设定一台主机网络的工作方式为dhcp
设定这台主机名为news.westos.com,这个名称在原有的dns服务(文件位置是/var/named/westos.com.zones)中是没有解析的,否则在查询网址的时候系统会直接回答这个网址
重启网络看ip和主机名称的解析
查询到news.westos.com
实验完成!
排错:在最后的一个实验中出现了测试端的ip地址可以通过dhcp得到,但是网址更新不到dns服务器中,遂查看dns服务器端日志发现下面的语句:
****key westos****dnied news***** 说明密码或者验证方式可能出现了问题导致服务被拒绝
在检查了密码是否对应,和验证方式。发现了验证方式是none,将其更改为 key westos。重启服务,发现服务正常运行了。
在以后的博客中我会编辑自己在学习,实验中遇到的问题,和解决问题的过程。读者可以从其中得到解决问题的思路和方法。