在实现只缓存的dns基础
以及正向dns主服务器及优化 juejin.cn/post/684490…
的基础上实现dns主从服务架构以及dns的安全
dig工具 yum install bind-utils -y
1.配置从服务器
1.安装
[root@localhost ~]# yum install bind.x86_64 -y
2.修改配置文件
[root@localhost ~]# vim /etc/named.conf
options {
//listen-on port 53 { 127.0.0.1; };
//allow-query { localhost; };
[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "wyjn.icu" IN {
type slave;
# 标记为从服务器
masters {10.0.0.8;};
# 从哪个主服务器同步
file "slaves/wyjn.icu.slave.zone";
# 保存到/var/named/下的哪里叫什么,这是个相对路径
# /var/named/slaves是专门放从服务器同步的域库文件
};
# 启动并设为开机启动
[root@localhost ~]# systemctl enable --now named.service
# 查看端口是不是都是正常开的
[root@localhost ~]# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 127.0.0.1:953 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 5 127.0.0.1:25151 *:*
LISTEN 0 128 *:111 *:*
LISTEN 0 10 10.0.0.3:53 *:*
LISTEN 0 10 127.0.0.1:53 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 [::1]:953 [::]:*
LISTEN 0 100 [::1]:25 [::]:*
LISTEN 0 128 [::]:443 [::]:*
LISTEN 0 128 [::]:111 [::]:*
LISTEN 0 128 [::]:80 [::]:*
LISTEN 0 10 [::1]:53 [::]:*
LISTEN 0 128 [::]:22 [::]:*
# 查看从服务器同步
[root@localhost ~]# ll /var/named/slaves/
total 4
-rw-r--r-- 1 named named 379 Mar 18 04:15 wyjn.icu.slave.zone
# 显示已经同步了,但是不能打开,centos6是明文的,以后的都是data文件,不能查看
[root@localhost ~]# cat /var/named/slaves/wyjn.icu.slave.zone
^q/▒XQ▒
wyjnicu8masterwyjnicu
3555409634qqcom4;}Q▒X▒ 1Q▒
dbwyjnicusterwyjnicu(Q▒appwyjnicu/\ȣ'Q▒ +Q▒masterwyjnicu +Q▒websrvwyjnicu
[root@localhost ~]# file /var/named/slaves/wyjn.icu.slave.zone
/var/named/slaves/wyjn.icu.slave.zone: data
# 测试从dns功能
[root@localhost named]# dig www.wyjn.icu @10.0.0.3
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> www.wyjn.icu @10.0.0.3
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4075
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 89a1084b73d586169602d60a5e7132721eec6234feada6c6 (good)
;; QUESTION SECTION:
;www.wyjn.icu. IN A
;; ANSWER SECTION:
www.wyjn.icu. 86400 IN CNAME websrv.wyjn.icu.
websrv.wyjn.icu. 86400 IN A 10.0.0.3
;; AUTHORITY SECTION:
wyjn.icu. 86400 IN NS master.wyjn.icu.
;; ADDITIONAL SECTION:
master.wyjn.icu. 86400 IN A 10.0.0.8
;; Query time: 1 msec
;; SERVER: 10.0.0.3#53(10.0.0.3)
;; WHEN: Wed Mar 18 04:26:26 CST 2020
;; MSG SIZE rcvd: 143
# 测试主dns功能
[root@localhost named]# dig www.wyjn.icu @10.0.0.8
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> www.wyjn.icu @10.0.0.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51257
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: b01bed82278deb718b1808785e7132b470f623916d07fc19 (good)
;; QUESTION SECTION:
;www.wyjn.icu. IN A
;; ANSWER SECTION:
www.wyjn.icu. 86400 IN CNAME websrv.wyjn.icu.
websrv.wyjn.icu. 86400 IN A 10.0.0.3
;; AUTHORITY SECTION:
wyjn.icu. 86400 IN NS master.wyjn.icu.
;; ADDITIONAL SECTION:
master.wyjn.icu. 86400 IN A 10.0.0.8
;; Query time: 0 msec
;; SERVER: 10.0.0.8#53(10.0.0.8)
;; WHEN: Wed Mar 18 04:27:32 CST 2020
;; MSG SIZE rcvd: 143
PS:同步有两种机制,一种是拉(从拉主),一种是推(主推从) 如果只有从拉主,如果在拉取间隔内修改主配置文件会导致响应不及时,所以也要配主推从 或者主推从的时候,这时候网断了,就需要从按一定时间间隔拉主了
2.配置主服务器主动同步
主服务器要知道推给谁
所以要加NS记录和A记录
[root@localhost named]# vim /var/named/wyjn.icu.zone
$TTL 1D
@ IN SOA master 3555409634.qq.com. ( 20200318 1D 10M 3D 2H )
# 如果要完成推同步,一定要把序列号往大里的调20200318
NS master
NS slave
# 这个从服务器叫什么不重要只要能解析
就告诉主服务器,网络中一个是自己,另一个就是从多加几个也可以,都算从
master A 10.0.0.8
slave A 10.0.0.3
websrv A 10.0.0.3
www CNAME websrv
app A 47.92.200.163
db A 10.0.0.8
# 之后重启服务即可
[root@localhost named]# systemctl restart named.service
# 查看从服务器,发现文件已经被修改updata变了04:44
[root@localhost ~]# ll /var/named/slaves/
total 4
-rw-r--r-- 1 named named 400 Mar 18 04:44 wyjn.icu.slave.zone
3.实现主从dns安全
# 不安全
[root@localhost named]# dig xs.wyjn.icu
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> xs.wyjn.icu
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11918
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 448ffbe153ae9d6909952a395e7138d572b2f004e7bd58ab (good)
;; QUESTION SECTION:
;xs.wyjn.icu. IN A
;; ANSWER SECTION:
xs.wyjn.icu. 86400 IN CNAME www.wyjn.icu.
www.wyjn.icu. 86400 IN CNAME websrv.wyjn.icu.
websrv.wyjn.icu. 86400 IN A 10.0.0.3
;; AUTHORITY SECTION:
wyjn.icu. 86400 IN NS master.wyjn.icu.
wyjn.icu. 86400 IN NS slave.wyjn.icu.
;; ADDITIONAL SECTION:
master.wyjn.icu. 86400 IN A 10.0.0.8
slave.wyjn.icu. 86400 IN A 10.0.0.3
;; Query time: 0 msec
;; SERVER: 10.0.0.8#53(10.0.0.8)
;; WHEN: Wed Mar 18 04:53:41 CST 2020
;; MSG SIZE rcvd: 196
[root@localhost ~]# dig -t axfr wyjn.icu @10.0.0.8/10.0.0.3
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> -t axfr wyjn.icu @10.0.0.8
;; global options: +cmd
wyjn.icu. 86400 IN SOA master.wyjn.icu. 3555409634.qq.com. 20200318 86400 600 259200 7200
wyjn.icu. 86400 IN NS master.wyjn.icu.
wyjn.icu. 86400 IN NS slave.wyjn.icu.
app.wyjn.icu. 86400 IN A 47.92.200.163
master.wyjn.icu. 86400 IN A 10.0.0.8
slave.wyjn.icu. 86400 IN A 10.0.0.3
websrv.wyjn.icu. 86400 IN A 10.0.0.3
www.wyjn.icu. 86400 IN CNAME websrv.wyjn.icu.
wyjn.icu. 86400 IN SOA master.wyjn.icu. 3555409634.qq.com. 20200318 86400 600 259200 7200
;; Query time: 4 msec
;; SERVER: 10.0.0.8#53(10.0.0.8)
;; WHEN: Wed Mar 18 04:50:25 CST 2020
;; XFR size: 9 records (messages 1, bytes 260)
[root@localhost named]# dig -t axfr wyjn.icu @wyjn.icu
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> -t axfr wyjn.icu @wyjn.icu
;; global options: +cmd
wyjn.icu. 86400 IN SOA master.wyjn.icu. 3555409634.qq.com. 20200318 86400 600 259200 7200
wyjn.icu. 86400 IN A 10.0.0.8
wyjn.icu. 86400 IN NS master.wyjn.icu.
wyjn.icu. 86400 IN NS slave.wyjn.icu.
*.wyjn.icu. 86400 IN CNAME www.wyjn.icu.
app.wyjn.icu. 86400 IN A 47.92.200.163
master.wyjn.icu. 86400 IN A 10.0.0.8
slave.wyjn.icu. 86400 IN A 10.0.0.3
websrv.wyjn.icu. 86400 IN A 10.0.0.3
www.wyjn.icu. 86400 IN CNAME websrv.wyjn.icu.
wyjn.icu. 86400 IN SOA master.wyjn.icu. 3555409634.qq.com. 20200318 86400 600 259200 7200
;; Query time: 2 msec
;; SERVER: 10.0.0.8#53(10.0.0.8)
;; WHEN: Wed Mar 18 04:55:42 CST 2020
;; XFR size: 11 records (messages 1, bytes 320)
# 用dig分析后再dig扒库,这样可以被其他人直接扒下dns域库
# 解决
1.对主dns来说
[root@localhost named]# vim /etc/named.conf
allow-transfer {10.0.0.3;};
# 只允许10.0.0.3扒库
[root@localhost named]#rndc reload
测试
[root@localhost ~]# dig -t axfr wyjn.icu @10.0.0.8
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> -t axfr wyjn.icu @10.0.0.8
;; global options: +cmd
; Transfer failed.
2.对从dns来说
[root@localhost named]# vim /etc/named.conf
allow-transfer {none;};
# 不允许任何人
[root@localhost named]#rndc reload