码迷,mamicode.com
首页 > 其他好文 > 详细

BIND:DNS主从服务器架构和安全控制详解

时间:2016-01-11 06:55:39      阅读:357      评论:0      收藏:0      [点我收藏+]

标签:主从dns

前提:

本篇文章以虚拟机中创建的CentOS 7系统主机配置为例进行叙述

DNS服务器地址

172.16.49.2    CentOS 7

DNS服务器地址

172.16.49.3    CentOS

使用二级域名

xuding.win

  

一、主-DNS服务器配置

主DNS服务器:维护所负责解析的域数据库的服务器;读写操作均可进行;

从DNS服务器:从主DNS服务器那里或其它的从DNS服务器那里“复制”一份解析库;但只能进行读操作;

注意:从服务器是区域级别的概念,相对于某个区域配置的

例如一台主服务器提供十个正向解析区域,而从其可能仅包含其中一个多个或全部区域

 

   1.主从数据解析库同步操作的实施方式

       (1)从服务器拉取数据

                serial序列号数据库的版本号;主服务器数据库内容发生变化时,其版本号递增;

                refresh刷新时间间隔从服务器每多久到主服务器检查序列号更新状况;

                retry重试时间间隔 从服务器从主服务器请求同步解析库失败时,再次发起尝试请求的时间间隔;

                expire过期时长从服务器始终联系不到主服务器时,多久之后放弃从主服务器同步数据;停止提供服务;

                否定答案的缓存时长:协定产生

       (2)主服务器”通知“从服务器随时更新数据区域传送

     全量传送:axfr,传送整个数据库;

     增量传送:ixfr,仅传送变量的数据;

 

   2.配置每个DNS的主配置文件/etc/named.confoptions

      ==========================================================================

options{

listen-on port 53 { 127.0.0.1;172.16.49.*; };    /*"*"表示具体的本机地址*/

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     { localhost; };

recursionyes;

dnssec-enableno;

dnssec-validationno;

dnssec-lookasideno;

     ===========================================================================

 

  3.配置一个从区域:On Master(主服务器配置:172.16.49.2)

       (1)增加从服务器数据信息记录

            1)确保区域数据文件中为每个从服务配置NS记录,

            2)在正向区域文件需要每个从服务器的NS记录的主机名配置一个A记录

               且A后面的地址为真正的从服务器的IP地址;

  实例:

增加两条记录

IN        NS        ns2

ns2        IN        A        172.16.49.3

技术分享

       (2)检查配置文件并重新加载配置文件

[root@localhost~]# named-checkzone xuding.win /var/named/xuding.win.zone

[root@localhost~]# rndc reload

技术分享

  

   4.配置一个从区域:OnSlave(从服务器:172.16.49.3)

       (1)定义从区域:放置/salve/*

zone"ZONE_NAME"  IN {

type  slave;

file  "slaves/ZONE_NAME.zone";

masters  { MASTER_IP; };

};

              ======================/etc/named.rfc1912.zones中追加===========================

zone"xuding.win" IN {

typeslave;

file  "slaves/xuding.win.zone";

masters{ 172.16.49.2; };

};

  ==================================================================================

技术分享

  注意:该目录的权限和属主属组,所以专用于从服务器需要动态同步主服务器上的数据文件信息使用

技术分享

       (2)配置文件语法检查&&重载配置

               #  named-checkconf

                #   rndc  reload;或者systemctl  reload  named.service

                   此时会传输同步主服务器上的资源区域信息,

技术分享

 

       (3)指定本机为DNS服务器解析做测试

           [root@localhost etc]# dig -t A  www.xuding.win  @172.16.49.3

技术分享

 注意:分布式系统一定要做时间要同步

 

 

四、BIND安全设置

   1.acl:访问控制列表

                把一个或多个地址归并一个命名的集合,随后通过此名称即可对此集全内的所有主机实现统一调用;

   2.定义格式

/etc/named.conf中先定义才能使用,且放在options之前

acl  acl_name {

ip;

net/prelen;

};

 

示例:

acl  mynet {

172.16.0.0/16;

127.0.0.0/8;

};

   3.bind有四个内置的acl

  none:没有一个主机;

  any:任意主机;

  local:本机;

  localnet:本机所在的IP所属的网络;

   4.访问控制指令:zone中配置

allow-query  {}; 允许查询的主机;白名单;

allow-transfer{};  允许向哪些主机做区域传送;默认为向所有主机;应该配置仅允许从服务器;

allow-recursion{}; 允许哪此主机向当前DNS服务器发起递归查询请求;

allow-update{}; DDNS,允许动态更新区域数据库文件中内容;

 

 

 

 

 

-DNS服务器配置思路总结:

1.安装配置主配置程序/etc/named.conf,使其能够监听本地的网卡

注释访问控制选项allow-query,此处默认只能本地通信

2.建立主从服务器之间的联系:

    (1)主服务器:

1)/etc/named.rfs1912.zones中按标准格式设定本机为主

2)/var/named/*.zone定义的文件增加两条记录,NSA

    (2)从服务器:

1)/etc/named.rfs1912.zones中按标准语法格式设定本机为从服务器,此处设置思路是IP间通信连接

本机类型为slavefile文件在哪里(默认要在/var/named/slave/*.zone)master IP

2)/var/named/slave/*.zone为实际听不存放位置,动态可读写

3.运行过程需要注意的细节问题

     (1)注意var/named/*.zone文件的属主、属组、权限

     (2)named-checkconfnamed-checkzone检查语法

     (3)rndc reload;或者systemctl  reload named.service做重新加载配置

 

配置该文件关系总结:/etc/named.conf --->/etc/named.rfs1912.zones  --->/var/named/*.zone

        --->  /var/named/slave/*.zone


本文出自 “许鼎的博客” 博客,请务必保留此出处http://xuding.blog.51cto.com/4890434/1733516

BIND:DNS主从服务器架构和安全控制详解

标签:主从dns

原文地址:http://xuding.blog.51cto.com/4890434/1733516

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!