CentOS6服务管理之DNS-RNDC管理DNS的实现

RNDC管理DNS的实现

rndc:(Remote NameDomain Controller)基于套接字与named服务通信,控制named服务完成特定操作。是指通过bind 软件引进的远程控制通道,代替unix 信号来控制 named 进程,可以用来对配置进行重新载入,是一款安全软件。

rndc 通过一个 TCP 连接与域名服务器通信,发送经过数字签名认证的命令。在当前版本的rndc 和 named 中,唯一支持的认证算法是 HMAC-MD5,在连接的两端使用共享密钥。它为命令请求和名字服务器的响应提供 TSIG类型的认证。所有经由通道发送的命令都必须被一个服务器所知道的 key_id 签名。

rndc 读一个配置文件来决定如何联系域名服务器并决定使用哪一个算法和密钥。

rndc可以对本地及远程DNS服务器进行管理、控制而不用重启BIND,我们接下来介绍一下rndc实现管理本地DNS服务器或者远程DNS服务器。

实验环境:

CentOS release 6.6(Final)  两台

IP地址:

172.16.31.3      DNS1        主DNS服务器端

172.16.31.4      DNS2        从DNS服务器端

实验中我使用主DNS做rndc验证,通过允许从DNS服务器和本机管理DNS服务。

一.rndc配置文件建立

我们先来看看控制named服务的密钥:


1

2

3

4

5


[[email protected] named]# cat /etc/rndc.key

key "rndc-key" {

       algorithm hmac-md5;

       secret "+lDBBFBGg6U3SYDzY/4YYQ==";

};

其实我们使用上面的密钥就可以了,但是我们可以通过rndc的命令来实现新建密钥配置文件,达到增强安全性的目的。

#rndc-confgen        #rndc配置文件生成器

单独执行不加参数会卡住

因为rndc-confgen命令默认会去/dev/random和/dev/urandom读取随机数生成密钥,第一顺序是/dev/random。

#/dev/random:从熵池中取随机数,如果熵池中的随机数被用尽,则阻塞相关进程

#/dev/urandom:从熵池中取随机数,如果熵池中的随机数被用尽,则用软件生成伪随机数

我们尽量使用/dev/urandom来生成随机数密钥,我们将其结果输入一个rndc配置文件保存:


1

[[email protected] named]# rndc-confgen -r/dev/urandom >/etc/rndc.conf

我不使用/etc/rndc.key文件,所以需要将其删除,不然会报错哦:


1

2

3


[[email protected] named]# rndc stats

WARNING: key file (/etc/rndc.key) exists,but using default configuration file (/etc/rndc.conf)

#rm –f /etc/rndc.key

二.配置DNS服务器的主配置文件,加入rndc管理密钥文件

将图中标明的那段复制到DNS服务器的主配置文件/etc/named.conf中

然后按下图所示将#号去除,然后配置好限定管理的IP:

下面附上我的配置好的文件,每台机器的密钥都不同,所以不要复制:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57


[[email protected] named]# cat /etc/named.conf

//

// named.conf

//

// Provided by Red Hat bind package toconfigure the ISC BIND named(8) DNS

// server as a caching only nameserver (asa localhost DNS resolver only).

//

// See /usr/share/doc/bind*/sample/ forexample named configuration files.

//

 

options {

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

       //listen-on-v6 port 53 { ::1; };

       directory      "/var/named";

       dump-file      "/var/named/data/cache_dump.db";

       statistics-file "/var/named/data/named_stats.txt";

       memstatistics-file "/var/named/data/named_mem_stats.txt";

       allow-query     { any; };

       recursion yes;

 

       dnssec-enable no;

       dnssec-validation no;

       dnssec-lookaside no;

 

       /* Path to ISC DLV key */

       /*bindkeys-file "/etc/named.iscdlv.key";

 

       managed-keys-directory "/var/named/dynamic";

       */

};

 

logging {

       channel default_debug {

                file"data/named.run";

               severity dynamic;

       };

};

 

zone "." IN {

       type hint;

       file "named.ca";

};

 

# Use with the following in named.conf,adjusting the allow list as needed:

key "rndc-key" {

     algorithm hmac-md5;

     secret "5xhClxlukK5HSJxmZ4ZV8w==";

};

#

controls {

      inet 0.0.0.0 port 953

               allow { 172.16.31.4; 127.0.0.1;} keys { "rndc-key"; };

};

# End of named.conf

 

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

include "/etc/named.root.key";

三.测试rndc的管理功能

重启named服务:


1

2

3


[[email protected] named]# service namedrestart  

Stopping named:                                           [  OK  ]

Starting named:                                           [  OK  ]

然后我们就可以使用rndc命令:


1

2

3

4

5

6

7

8

9

10

11

12

13

14


[[email protected] named]# rndc stats         

[[email protected] named]# rndc status

version: 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6

CPUs found: 1

worker threads: 1

number of zones: 21

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

四.设置从DNS服务器来通过rndc管理主DNS服务器

本机主DNS服务器可以使用rndc管理命令,但是rndc客户端从DNS服务器还没配置,我们来配置一下:

主DNS服务器配置:


1

2

3

4


controls {

    inet  0.0.0.0 port 953

               allow { 127.0.0.1; 172.16.31.3;172.16.31.4; } keys { "rndc-key"; };

};

在allow字段里面加入从服务器的IP地址,并且将允许管理的网络设置成0.0.0.0

从DNS服务器配置:

将主DNS服务器的/etc/rndc.conf文件的如下段复制到从服务器中的/etc/rndc.conf中;可能需要将原来的rndc-key注释掉:


1

2

3

4

5

6

7

8

9

10


key "rndc-key" {

       algorithm hmac-md5;

       secret "5xhClxlukK5HSJxmZ4ZV8w==";

};

 

options {

       default-key "rndc-key";

       default-server 127.0.0.1;

       default-port 953;

};

将从服务器中的options字段改成下面的配置:


1

2

3

4

5

6

7

8

9

10


key "rndc-key" {

       algorithm hmac-md5;

       secret "5xhClxlukK5HSJxmZ4ZV8w==";

};

 

options {

       default-key "rndc-key";

       default-server 172.16.31.3;

       default-port 953;

};

重启named服务:


1

2

3


[[email protected] named]# service named restart

Stopping named:                                           [  OK  ]

Starting named:                                           [  OK  ]

查看链接状态:


1

2

3

4

5

6


[[email protected] named]# ss -tunl |grep 53

udp   UNCONN     0      0            172.16.31.3:53                    *:*    

udp   UNCONN     0      0              127.0.0.1:53                    *:*    

tcp   LISTEN     0      3            172.16.31.3:53                    *:*    

tcp    LISTEN    0      3              127.0.0.1:53                    *:*    

tcp   LISTEN     0      128                    *:953                   *:*

可以看出953端口开放了。


1

2

3

4

5

6

7

8

9

10

11

12

13


[[email protected] named]# rndc status

version: 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6

CPUs found: 1

worker threads: 1

number of zones: 21

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

在从DNS服务器上重启:


1

2

3


[[email protected] named]# service named restart

Stopping named:                                           [  OK  ]

Starting named:                                           [  OK  ]

测试从DNS服务器可以管理主DNS服务器:


1

2

3

4

5

6

7

8

9

10

11

12

13


[[email protected] named]# rndc -s 172.16.31.3 status

version: 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6

CPUs found: 1

worker threads: 1

number of zones: 21

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

四.rndc的常用命令

语法:rndc [-b source-address] [-c config-file] [-k key-file] [-s server]

-p port] {command}


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17


#rndc -h 获取帮助

reload                         #重新装载配置文件及区域解析库文件

reload zone                    #只装载指定区域解析库文件

refresh zone                   #维护

retransfer zone                #在不检查序列号的情况下直接传送一个区域数据文件

notify zone                    #重新通知区域数据文件

reconfig                       #只重新装载配置文件及新增的区域

querylog                       #启用或关闭查询日志,默认关闭

        #rndc  querylog

        #rndc  status

        #

        #tail /var/log/messages

                  

stop                           #将更新信息发送给服务器,然后关闭DNS服务器

trace level                    #指明调试级别,不跟数字逐级增加,可以明确指定(如trace 3)

notrace                        #关闭调试

flush                          #清除服务器缓存

Bind安全配置实现

一.ACL

访问控制列表(ACL)就是一个被命名的地址匹配列表。使用访问控制列表可以使配置简单而清晰,一次定义之后可以在多处使用,不会使配置文件因为大量的 IP 地址而变得混乱。

 

二.定义 ACL

要定义访问控制列表,可以在 BIND 的主配置文件 /etc/bind/named.conf 中使用 acl 语句来实现。acl 语句的语法为:


1

2

3


acl acl_name {

  address_match_list;

};

BIND 里默认预定义了 4 个名称的地址匹配列表,他们可以直接使用,分别为:

any : 所有主机

localhost : 本机

localnets : 本地网络上的所有主机

none : 不匹配任何主机

acl 是 named.conf 中的顶级语句,不能将其嵌入其他的语句。

要使用用户自己定义的访问控制列表,必须在使用之前定义。

因为可以在 options 语句里使用访问控制列表,所以定义访问控制列表的 acl 语句应该位于 options 语句之前。

为了便于维护管理员定义的访问控制列表,可以将所有定义acl 的语句存放在单独的文件 /etc/bind/named.conf.acls 中,然后在主配置文件/etc/bind/named.conf 中如下语句

include"/etc/bind/named.conf.options";

之前添加如下的配置行

include"/etc/bind/named.conf.acls";

亦可以在/etc/named.conf中直接定义,我就是直接定义后调用的。

三.使用 ACL

1.定义了 ACL 之后,可以在如下的子句中使用

子句  语句  说明

allow-query options,zone  #指定哪主机或网络可以查询本服务器或区,默认的是允许所有主机进行查询。

allow-transfer  options,zone #指定哪些主机允许和本地服务器进行域传输,默认值是允许和所有主机进行域传输。

allow-recursion  options #指定哪些主机可以进行递归查询。如果没有设定,缺省是允许所有主机进行递归查询的。注意禁止一台主机的递归查询,并不能阻止这台主机查询已经存在于服务器缓存中的数据。

allow-update  zone  #指定哪些主机允许为主域名服务器提交动态 DNS 更新。默认为拒绝任何主机进行更新。

blackhole options  #指定不接收来自哪些主机的查询请求和地址解析。默认值是 none 。

上面列出的一些配置子句既可以出现在全局配置 options 语句里,又可以出现在 zone 声明语句里,当在两处同时出现时,zone 声明语句中的配置将会覆盖全局配置 options 语句中的配置。

2.ACL 使用举例

限制查询

实例:假如要限制只有172.16.31.0/24 和172.16.131.0/24 查询本地服务器的所有区信息,可以在 /etc/named.conf中options 语句里使用如下的 allow-query 子句


1

2

3

4

5


options {

......

allow-query { 172.16.31.0/24; 172.16.131.0/8;};

......

};

上面的配置没有使用 ACL,若使用 acl,需要以下的配置步骤:

a.在 /etc/named.conf 中添加如下的 acl 语句,对允许查询的主机列表命名


1

2

3

4


acl aclist {

 172.16.31.0/24;

 172.16.131.0/24;

};

b.然后调用acl列表aclist进入options


1

2

3

4

5


options {

......

allow-query { aclist; };

......

};

限制区传输

例如:假如要限制只有172.16.31.3 和172.16.31.4 可以从本地服务器传输“oracle.ocm”的区信息,可以在/etc/named.rfc1912.zones的区域语句里使用如下的allow-transfer 子句


1

2

3

4

5


zone "oracle.com" IN {

       type master;

       file "oracle.com.zone";

                   allow-transfer{ 172.16.31.3; 172.16.31.3; };

};

上面的配置没有使用 ACL,若使用 acl,需要以下的配置步骤:

a. 在 /etc/ named.conf中添加如下的 acl 语句,对允许查询的主机列表命名


1

2

3

4


acl atlist {

 172.16.31.3;

 172.16.31.3;

};

b. 在 /etc/named.conf 中使用定义的acl_name 限制允许进行域传输的主机列表


1

2

3

4

5


zone "oracle.com" {

  type master;

  file "oracle.com.zone";

  allow-transfer { atlist; };

};

限制递归

实例:假如我们只允许本地172.16.31.0/24网段来进行递归查询

编辑/etc/named.conf文件:

直接acl实现


1

2

3


acl localnet {

         172.16.31.0/24;

}

将acl加入递归查询允许网段:


1

2


//recursion yes;

allow-recursion  {localnet; };

时间: 2024-08-05 03:06:36

CentOS6服务管理之DNS-RNDC管理DNS的实现的相关文章

CentOS6服务管理之DNS-主从DNS服务器的搭建

接上一篇:CentOS6服务管理之DNS-本地DNS服务器的搭建 下面我们来搭建主从DNS服务器 实验环境: CentOS release 6.6(Final)  两台 IP地址: 172.16.31.3      DNS1        主DNS服务器端 172.16.31.4      DNS2        从DNS服务器端 我们要架设一个DNS服务器一般需要下面三个软件程序包: bind-libs.x86_64      #提供库文件 bind-utils.x86_64     #提供工

CentOS6服务管理之WEB-httpd用户认证控制和https在httpd上的实现

通过上面两篇博客 CentOS6服务管理之WEB-http协议详解 CentOS6服务管理之WEB-Apache httpd配置文件详解 我们学习了Apache httpd的基础知识,下面我们就可以通过设置用户认证和实现https加密传输的实验来配置httpd了,下面是本次实验的要求: 实验环境: CentOS release6.6(Final)   1台 Windows XP             1台 IP地址: 172.16.31.31      www.stu31.com       

CentOS6.6搭建DNS及主从DNS服务搭建

DNS搭建及主从DNS构建 DNS工作原理 DNS解析的作用 我们访问网络时,通常采用浏览器访问web站点,一般通过http://www.baidu.com或baidu.com等域名方式访问,也可以通过http://百度IP:端口进行访问,以前者常用,那么域名方式访问时怎么实现的呢?这就需要通过DNS服务器来解析了: DNS解析方式 正向解析: 根据域名查找其对应的IP地址:目前最常用的方式: 反向解析: 根据IP地址解析其对应的域名:一般应用于安全防护等领域: DNS的分布结构 DNS分布结构

在“DNS管理器”中手工增加DNS主机(A)或者别名(CNAME)记录时,出现被拒绝的错误

问题现象: AD域控制器操作系统为Win2008R2,在"DNS管理器"中手工增加DNS主机(A)或者别名(CNAME)记录时,出现被拒绝的错误.但是将客户端加入域后,在"DNS管理器"中能看到对应的客户端的DNS主机(A)记录. 在系统日志中,能查看到ID为4015的错误日志: 事件类型:   错误 事件来源:   DNS 事件种类:   无 事件 ID:    4015 日期:       2016/4/1 事件:       1:06:53 用户:      

centos7 网络服务(二)Unbound实现dns高速缓存

2Unbound实现dns高速缓存 1: 检测Hostname 和 IP # hostnamectl# ip addr show | grep inet Step 2: 安装和配置 Unbound # yum update -y# yum install unbound -y # ip addr show | grep inet Step 3 备份复制文件 # cp /etc/unbound/unbound.conf   /etc/unbound/unbound.conf.original St

DNS系列- 2.dns服务搭建(bind编译安装)

DNS系列- 2.dns服务搭建(bind编译安装) 目录     一.安装bind         1.yum安装         2.编译安装     二.服务搭建         1.编辑DNS主配置文件         2.添加解析     三.测试         1.正向解析测试         2.反向解析测试 一.安装bind Bind(kerkeley Internet Name Deamon) 是现今互联网使用最广泛的DNS服务器软件,使用BIND作为服务器软件的DNS服务器

Linux基础服务_DNS原理以及正反向DNS配置

DNS服务的原理介绍:         dns(Domain Name Service,域名解析服务)    为c/s架构的服务 通常默认的监听的端口为:53/tcp     53/udp 将dns服务实现的应用程序为:bind        (rpm包 )          DNS的树状结构:                                  根域为:.  tld:(Top Level Domain  顶级域)                         组织域:.com,

易宝典文章——玩转Office 365中的Exchange Online服务 之三 了解Office 365管理中心

继续前面的话题,现在已经有了Office 365的环境.可以很轻松的向甲方客户或公司老板进行展示了.但是在展示之前,首先要自己先对Office 365进行深入的了解和试用,否则在Q&A环节会被问得体无完肤.所以,对于Office 365的基本管理必须熟练掌握.接下来的内容将对Office 365的管理工具进行简单的浏览,以便更好的为后续的Exchange Online的管理提供基础. 一.登录到Office 365主页 世纪互联版的Office 365可以通过以下URL进行登录: http://

DNS简介、DNS工作原理、DNS正反向解析的搭建、DNS主从备份、DNS子域创建

一.DNS简介DNS 域名系统(Domain Name System)万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记让人头疼的一大串数字.根服务器:13组服务器负责DNS解析通过域名去查找ip地址的过程叫做域名解析通过ip地址去查找域名的过程叫做反向解析DNS协议运行在UDP协议之上,端口号53通常 Internet 主机域名的一般结构为树状结构:主机名.三级域名.二级域名.顶级域名. 二.DNS工作原理1.dns查询方式可分为递归查询和迭代查询递