阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7 DNS服务器架设

220次阅读
没有评论

共计 11090 个字符,预计需要花费 28 分钟才能阅读完成。

CentOS 7 DNS 服务器部署

项目背景和要求

要保证即能够解析内网域名 linuxidc.local 的解析,又能解析互联网的域名。

主 DNS 服务器:ZZYH1.LINUXIDC.LOCAL

辅助 DNS 服务器:ZZYH2.LINUXIDC.LOCAL

包含以下域的信息:

1、linuxidc.local 域的信息:

FQDNIP 地址 备注
zzyh1.linuxidc.local192.168.188.15DNS1 服务器
zzyh2.linuxidc.local192.168.188.16DNS2 服务器
ftp.linuxidc.local192.168.188.15 
mailyh1.linuxidc.local192.168.188.22 
smtp.linuxidc.local192.168.188.22 
pop3.linuxidc.local192.168.188.22 
www.linuxidc.local192.168.188.15 
crm.linuxidc.local192.168.188.15

2、192.168.188.0/24、192.168.189.0/24 反向解析域

要求实现 chroot 功能,以提高安全性

实现到 202.102.224.68、202.102.227.68 的 DNS 转发。

防止非授权用户的 DNS 记录的枚举 (防止出现类似上海烟草公司的安全隐患)。仅允许管理员在 192.168.188.10 上进行操作。

DNS 网络配置

除了传统的修改 /etc/resolv.conf 之外,还有通过在 ifcfg 文件中添加配置的方式。

Tip: 与 Windows 在某个网卡中设置 DNS 服务器的 IP 地址类似

 

# vi/etc/sysconfig/network-scripts/ifcfg-eno16777728

# Generated by parse-kickstart
IPV6INIT=no

BOOTPROTO=static

DEVICE=eno16777728

ONBOOT=yes

TYPE=Ethernet

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

NAME=”System eno16777728″

IPADDR=192.168.188.15

NETMASK=255.255.255.0

GATEWAY=192.168.188.2

DNS1=192.168.188.15
DNS2=192.168.188.16

这样,当重新启动 network 服务时,会生成 /etc/resolv.conf 中的配置

# servicenetwork restart

Restarting network (via systemctl):                        [OK]

# cat/etc/resolv.conf

# Generated by NetworkManager

search linuxidc.local

nameserver 192.168.188.15
nameserver192.168.188.16

配置 Yum 库

[root@zzyh2 ~]# cd /etc/yum.repos.d/

[root@zzyh2 yum.repos.d]# ls

CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Sources.repo  CentOS-Vault.repo

[root@zzyh2 yum.repos.d]#

[root@zzyh1 yum.repos.d]# cpCentOS-Base.repo CentOS-Base.repo.origin

[root@zzyh1 yum.repos.d]# viCentOS-Base.repo

配置内容

[base]

name=CentOS-$releasever – Base

baseurl=file:///media

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

安装 DNS 支持包

#yum -y installbind bind-util bind-chroot    //

[root@zzyh1 ~]# cd /media/Packages/

[root@zzyh1 Packages]# yum -y install bindbind-util bind-chroot

Warning: RPMDB altered outside of yum.

 Installing : 32:bind-libs-9.9.4-14.el7.x86_64                            1/3

 Installing : 32:bind-9.9.4-14.el7.x86_64                                  2/3

 Installing : 32:bind-chroot-9.9.4-14.el7.x86_64                          3/3

 Verifying  :32:bind-9.9.4-14.el7.x86_64                                  1/3

 Verifying  : 32:bind-libs-9.9.4-14.el7.x86_64                            2/3

 Verifying  :32:bind-chroot-9.9.4-14.el7.x86_64                          3/3

 

Installed:

 bind.x86_64 32:9.9.4-14.el7        bind-chroot.x86_64 32:9.9.4-14.el7

 

Dependency Installed:

  bind-libs.x86_6432:9.9.4-14.el7

 Complete!

查看 bind 的生成包

[root@zzyh2 ~]# rpm -qc bind

/etc/logrotate.d/named

/etc/named.conf

/etc/named.iscdlv.key

/etc/named.rfc1912.zones

/etc/named.root.key

/etc/rndc.conf

/etc/rndc.key

/etc/sysconfig/named

/var/named/named.ca

/var/named/named.empty

/var/named/named.localhost

/var/named/named.loopback

配置文件

[root@zzyh1 ~]# cd /etc

[root@zzyh1 etc]# cp named.confnamed.conf.origin

[root@zzyh1 etc]# vi /etc/named.conf

[root@zzyh1 etc]# cat /etc/named.conf、

 //listen-on port 53 {127.0.0.1;};

      listen-on port 53 {any;};

 //dnssec-enable yes;

      //dnssec-validation yes;

      dnssec-enable no;

      dnssec-validation no;

配置转发地址:

 forwarders {202.102.224.68; 202.102.227.68;};

      allow-transfer {192.168.188.15; 192.168.188.12;};

查看状态

[root@zzyh1 etc]# rndc status

version: 9.9.4-RedHat-9.9.4-14.el7<id:8f9657aa>

CPUs found: 1

worker threads: 1

UDP listeners per interface: 1

number of zones: 101

debug level: 0

xfers running: 0

xfers deferred: 0

soa queries in progress: 0

query logging is OFF

recursive clients: 0/0/1000

tcp clients: 0/100

server is up and running

测试一下解析

补充一下

#find / -name nslookup

/usr/bin/nslookup

#rpm -qf/usr/bin/nslookup  // 查询这个命令依附于那个包
bind-utils-9.9.4-14.el7.x86_64.rpm

 

执行

#nslookup              // 如果找不到 nslookup 那是因为没有安装 bind-utils-9.9.4-14.el7.x86_64.rpm

> server 192.168.188.15

Default server: 192.168.188.15

Address: 192.168.188.15#53

> g.cn                                // 尝试解析 g.cn

Server:        192.168.188.15

Address:        192.168.188.15#53

 

Non-authoritative answer:

Name:  g.cn

Address: 203.208.36.17

Name:  g.cn

Address: 203.208.36.18

Name:  g.cn

Address: 203.208.36.16

Name:  g.cn

Address: 203.208.36.20

Name:  g.cn

Address: 203.208.36.19

// 解析成功

添加自定义 zone

自定义,修改配置文件

[root@zzyh1~]# vi /etc/named.conf

在最后添加

zone “linuxidc.local” IN {

    type mester;

    file “linuxidc.local.zone”;

}

zone “188.168.192.in-addr.arpa”IN {

    type master;

    file “192.168.188.zone”;

}

zone “189.168.192.in-addr.arpa”IN {

    type master;

    file “192.168.189.zone”;

}

 

include”/etc/named.rfc1912.zones”;

include “/etc/named.root.key”;

 

 

[root@zzyh1named]# cp named.empty linuxidc.local.zone  // 修改前备份一下

[root@zzyh1 named]# ls

linuxidc.local.zone  data    named.ca    named.localhost  slaves

chroot              dynamic  named.empty named.loopback

配置文件

[root@zzyh1named]# vi  linuxidc.local.zone

$TTL 3H

@      IN SOA  zzyh1.linuxidc.local.  chenzhou312.blog.51cto.com (

                                        0      ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H)    ; minimum

                      IN      NS          zzyh1.linuxidc.local.

                      IN      NS          zzyh2.linuxidc.local.

zzyh1                IN      A            192.168.188.15

zzyh2                IN      A            192.168.188.16

ftp                  IN      A            192.168.188.15

mailyh1              IN      A            192.168.188.22

smtp                  IN      CNAME        mailyh1.linuxidc.local.

pop3                  IN      CNAME        mailyh1.linuxidc.local.

www                  IN      A            192.168.188.15

crm                  IN      A            192.168.188.15

 

#vi192.168.188.zone

$TTL 3H

@      IN SOA  zzyh1.linuxidc.local.  chenzhou312.blog.51cto.com (

                                        0      ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expiredgG

                                        3H)    ; minimum

        IN        NS          zzyh1.linuxidc.local.

        IN        NS          zzyh2.linuxidc.local.

15      IN        PTR          zzyh1.linuxidc.local.

15      IN        PTR          ftp.linuxidc.local.

16      IN        PTR          zzyh2.linuxidc.local.

16      IN        PTR          mailyh1.linuxidc.local.

 

#vi192.168.189.zone

 

$TTL 3H

@      IN SOA zzyh1.linuxidc.local. chenzhou312.blog.51cto.com (

                                        0      ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H)    ; minimum

        IN    NS                  zzyh1.linuxidc.local.

        IN    NS                  zzyh2.linuxidc.local.

www    IN    NS                  192.168.188.15

重启服务

[root@zzyh1 named]# systemctl restartnamed.service

[root@zzyh1 named]# service named restart

Redirecting to /bin/systemctl restart  named.service

 

[root@zzyh1 named]# rndc status

version: 9.9.4-RedHat-9.9.4-14.el7<id:8f9657aa>

CPUs found: 1

worker threads: 1

UDP listeners per interface: 1

number of zones: 104

debug level: 0

xfers running: 0

xfers deferred: 0

soa queries in progress: 0

query logging is OFF

recursive clients: 0/0/1000

tcp clients: 0/100

server is up and running

设置为自动启动

# systemctl enable named

[root@zzyh1 named]# systemctl status named

named.service – Berkeley Internet NameDomain (DNS)

  Loaded: loaded (/usr/lib/systemd/system/named.service; enabled)

  Active: active (running) since Mon 2014-08-25 00:36:59 CST; 3min 47s ago

 MainPID: 2807 (named)

  CGroup: /system.slice/named.service

          a””a”2807 /usr/sbin/named -u named

 

Aug 25 00:36:59 zzyh1.linuxidc.localnamed[2807]: zone 189.168.192.in-addr.ar…

Aug 25 00:36:59 zzyh1.linuxidc.localnamed[2807]: zone 189.168.192.in-addr.ar…

Aug 25 00:36:59 zzyh1.linuxidc.localnamed[2807]: zone 1.0.0.127.in-addr.arpa…

Aug 25 00:36:59 zzyh1.linuxidc.localnamed[2807]: zone 1.0.0.0.0.0.0.0.0.0.0….

Aug 25 00:36:59 zzyh1.linuxidc.localnamed[2807]: all zones loaded

Aug 25 00:36:59 zzyh1.linuxidc.localnamed[2807]: running

Aug 25 00:36:59 zzyh1.linuxidc.localnamed[2807]: zone 188.168.192.in-addr.ar…

Aug 25 00:36:59 zzyh1.linuxidc.localnamed[2807]: zone 189.168.192.in-addr.ar…

Aug 25 00:36:59 zzyh1.linuxidc.localsystemd[1]: Started Berkeley Internet N….

Aug 25 00:37:00 zzyh1.linuxidc.localnamed[2807]: managed-keys-zone: No DNSKE…

Hint: Some lines were ellipsized, use -l toshow in full.
 

 

测试

# nslookup

> server192.168.188.15

Default server: 192.168.188.15

Address: 192.168.188.15#53

>www.linuxidc.local.

Server:        192.168.188.15

Address:      192.168.188.15#53

 

Name:  www.linuxidc.local

Address: 192.168.188.15

>smtp.linuxidc.local.

Server:        192.168.188.15

Address:      192.168.188.15#53

 

smtp.linuxidc.local    canonical name = mailyh1.linuxidc.local.

Name:  mailyh1.linuxidc.local

Address: 192.168.188.22

>192.168.188.15

Server:        192.168.188.15

Address:      192.168.188.15#53

 

15.188.168.192.in-addr.arpa    name = ftp.linuxidc.local.

15.188.168.192.in-addr.arpa    name = zzsrv1.linuxidc.local.

> exit

 

zzyh2 上的 DNS 配置

      安装 BIND

与 zzyh1 上的主 DNS 配安装一样。

操作略。

      配置

Cache Only Server

与 zzyh1 上的主 DNS 配安装一样。

操作略。

 

添加辅助 Zone

# vi /etc/named.conf

添加如下 zone 信息

 

zone “linuxidc.local” IN {

      type slave;

      masters {192.168.188.15;};

      file “linuxidc.local.zone”;

};

 

zone “188.168.192.in-addr.arpa”IN {

      type slave;

      masters {192.168.188.15;};

      file “192.168.188.zone”;

};

 

zone “189.168.192.in-addr.arpa”IN {

      type slave;

      masters {192.168.188.15;};

      file “192.168.189.zone”;

};

 

 

修改目录权限

[root@zzyh2 named]# ll /var/named/ -d

drwxr-x— 6 root named 133 Aug 15 14:06/var/named/

[root@zzyh2 named]# chmod g+w /var/named/

[root@zzyh2 named]# ll /var/named/ -d

drwxrwx— 6 root named 133 Aug 15 14:06/var/named/

 

 

 

启动服务

[root@zzyh2 ~]# systemctl startnamed.service

Redirecting to /bin/systemctl restart  named.service

设置为自动启动

[root@zzyh2 ~]# systemctl enable named

ln -s’/usr/lib/systemd/system/named.service”/etc/systemd/system/multi-user.target.wants/named.service’

 

查看日志,检查是否有报错信息。(建议在启动时,就在另外一个会话时就打开)

# tail -f /var/log/messages

测试 BIND

在 zzyh1 上生成了相应的 zone 文件

[root@zzyh2 ~]# ll /var/named/

total 28

-rw-r–r– 1 named named  451 Aug 15 14:58 192.168.188.zone

-rw-r–r– 1 named named  254 Aug 15 15:05 192.168.189.zone

-rw-r–r– 1 named named  647 Aug 15 15:16 linuxidc.local.zone

drwxr-x— 7 root  named  56 Aug 15 14:06 chroot

drwxrwx— 2 named named  22 Aug 15 14:19 data

drwxrwx— 2 named named  58 Aug 15 16:20 dynamic

-rw-r—– 1 root  named 2076 Jan 28  2013 named.ca

-rw-r—– 1 root  named 152 Dec 15  2009 named.empty

-rw-r—– 1 root  named 152 Jun 21  2007 named.localhost

-rw-r—– 1 root  named 168 Dec 15  2009 named.loopback

drwxrwx— 2 named named    6 Jun 10 16:13 slaves

 

 

[root@zzyh1 ~]# vi /var/named/linuxidc.local.zone

添加一个 A 记录

test    IN A 10.0.0.1

并且将,zone 的序列号增大

 

[root@zzyh1 ~]# rndc reload

server reload successful

 

在 zzyh1 的日志中会看到

zone linuxidc.local/IN: sending notifiesrial 15)

client 192.168.188.16#41658 (linuxidc.loc:transfer of ‘linuxidc.local/IN’: AXFR-style IXFR started

client 192.168.188.16#41658 (linuxidc.loc:transfer of ‘linuxidc.local/IN’: AXFR-style IXFR ended

 

 

在 zzyh2 的日志中会看到

client 192.168.188.15#33856: received notifyfor zone ‘linuxidc.local’

zone linuxidc.local/IN: Transfer started.

transfer of ‘linuxidc.local/IN’ from192.168.188.15#53: connected using 192.168.188.16#41658

zone linuxidc.local/IN: transferred serial15

transfer of ‘linuxidc.local/IN’ from192.168.188.15#53: Transfer completed: 1 messages, 13 records, 339 bytes, 0.005secs (67800 bytes/sec)

zone linuxidc.local/IN: sending notifies(serial 15)

测试

# nslookup

> server 192.168.188.16

Default server: 192.168.188.16

Address: 192.168.188.16#53

> test.linuxidc.local.

Server:        192.168.188.16

Address:        192.168.188.16#53

 

Name:  test.linuxidc.local

Address: 10.0.0.1

> exit

————————————– 分割线 ————————————–

CentOS 下源码安装 Bind 9.6.1 搭建 DNS 服务器 http://www.linuxidc.com/Linux/2014-06/103660.htm

使用 BIND 配置 DNS 服务器 — 初级篇 http://www.linuxidc.com/Linux/2013-05/84920.htm

BIND+DLZ+MySQL 智能 DNS 的正向解析和反向解析实现方法 http://www.linuxidc.com/Linux/2013-04/82527.htm

域名服务 BIND 构建与应用配置 http://www.linuxidc.com/Linux/2013-04/82111.htm

Ubuntu BIND9 泛域名解析配置 http://www.linuxidc.com/Linux/2013-03/81928.htm

CentOS 5.2 下安装 BIND9.6 http://www.linuxidc.com/Linux/2013-02/79889.htm

DNS 服务器配置图文详解 http://www.linuxidc.com/Linux/2012-10/72728.htm

————————————– 分割线 ————————————–

更多 CentOS 相关信息见 CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计11090字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中