BIND的安装配置


BIND的安装配置web


  bind是干啥的?数据库

   你们知道dns是FQDN解析成ip地址的协议,而bind这个软件就是dns协议的功能的实现。而named是bind程序的运行的进程名缓存




咱们来看看bind这个程序有那些包组成吧,且都给咱们提供哪些功能。 安全

   程序包:服务器

        bind-libs:被bind和bind-utils包中的程序共同用到的库文件;网络

        bind-utils:bind客户端程序集,例如dig, host, nslookup等;dom

        bind:提供的dns server程序、以及几个经常使用的测试程序;ide

        bind-chroot:选装,让named运行于jail模式下;工具




怎样利用bind搭建一个dns服务器呢?oop

 前期安装软件后的组成部分功能介绍:  

    bind程序:

        主配置文件:/etc/named.conf 

                    注:options定义了bind的特性。如:是否只容许本地客户端查询

                    /etc/named.iscdlv.key

                    /etc/named.rfc1912.zones   注:定义区域的的地方

                    /etc/named.root.key


       解析库文件:

                /var/named/目录下;

                     通常名字为:ZONE_NAME.zone

         注意:(1) 一台DNS服务器可同时为多个区域提供解析;

                (2) 必需要有根区域解析库文件: named.ca;

                (3) 还应该有两个区域解析库文件:localhost和127.0.0.1的正反向解析库;

                      正向:named.localhost

                      反向:named.loopback



rndc:remote name domain contoller


bind程序安装完成以后,默认便可作缓存名称服务器使用;若是没有专门负责解析的区域,直接便可启动服务;

    CentOS 6: service  named  start

    CentOS 7: systemctl  start  named.service





主配置文件详细剖析


主配置文件格式:

全局配置段:

    options { ... }

日志配置段:

    logging { ... }

区域配置段:

    zone { ... }



    那些由本机负责解析的区域,或转发的区域;

    注意:每一个配置语句必须以分号结尾;

    缓存名称服务器的配置:

    

listen-on port 53;

listen-on port 53 { 172.16.100.67; }; 注:监听能与外部主机通讯的地址;



学习时,建议关闭dnssec 注:这个是安全的一个选项

        dnssec-enable no;

        dnssec-validation no;

        dnssec-lookaside no;


//allow-query  { localhost; }; 注:关闭仅容许本地查询:







测试工具

dig, host, nslookup等

测试工具--dig命令:

         dig  [-t RR_TYPE]  name  [@SERVER]  [query options]

dig作什么的:用于测试dns系统,所以其不会查询hosts文件;

查询选项:

        +[no]trace:跟踪解析过程;

        +[no]recurse:进行递归解析;


    dig  -x  IP 注意:反向解析测试

    dig  -t  axfr  DOMAIN  [@server]   模拟彻底区域传送:



测试工具--host命令

            host  [-t  RR_TYPE]  name  SERVER_IP


测试工具--nslookup命令:

            nslookup  [-options]  [name]  [server]

交互式模式:

        nslookup>

        server  IP:以指定的IP为DNS服务器进行查询;

        set  q=RR_TYPE:要查询的资源记录类型;

        name:要查询的名称;





rndc命令:named服务控制命令

    rndc  status  查看bind的运行状态

    rndc  flush

    rndc reload  从新加载配置文件



如何配置解析一个正向区域?

以magedu.com域为例:

(1) 定义区域 注:在主配置文件中或主配置文件辅助配置文件中实现;

         例如: /etc/named.rfc1912.zones这个辅助文件里定义zone


    zone  "ZONE_NAME"  IN  {

        type  {master|slave|hint|forward};

        file  "ZONE_NAME.zone"; 

    };

    注意:区域名字即为域名


(2) 创建区域数据文件(主要记录为A或AAAA记录)

建立位置:在/var/named目录下创建区域数据文件;

         文件为:/var/named/magedu.com.zone


$TTL 3600

$ORIGIN magedu.com.

@       IN      SOA     ns1.magedu.com.   dnsadmin.magedu.com. (

           2017010801

            1H

            10M

            3D

            1D )

        IN      NS      ns1

        IN      MX   10 mx1

        IN      MX   20 mx2

        ns1     IN      A       172.16.100.67

        mx1     IN      A       172.16.100.68

        mx2     IN      A       172.16.100.69

        www     IN      A       172.16.100.67

        web     IN      CNAME   www

        bbs     IN      A       172.16.100.70

        bbs     IN      A       172.16.100.71



权限及属组修改:

# chgrp  named  /var/named/magedu.com.zone

# chmod  o=  /var/named/magedu.com.zone

检查语法错误:

# named-checkzone  ZONE_NAME   ZONE_FILE

# named-checkconf 


(3) 让服务器重载配置文件和区域数据文件

# rndc  reload 或# systemctl  reload  named.service







配置解析一个反向区域


(1) 定义区域

在主配置文件中或主配置文件辅助配置文件中实现;即/etc/named.rfc1912.zones


zone  "ZONE_NAME"  IN  {

    type  {master|slave|hint|forward};

    file  "ZONE_NAME.zone"; 

};

    

反向区域的名字:反写的网段地址.in-addr.arpa   举例:100.16.172.in-addr.arpa


(2) 定义区域解析库文件(主要记录为PTR)

    示例,区域名称为100.16.172.in-addr.arpa;

$TTL 3600

$ORIGIN 100.16.172.in-addr.arpa.

@       IN      SOA     ns1.magedu.com.  nsadmin.magedu.com. (

2017010801

1H

10M

3D

12H )

IN      NS      ns1.magedu.com.

67      IN      PTR     ns1.magedu.com.

68      IN      PTR     mx1.magedu.com.

69      IN      PTR     mx2.magedu.com.

70      IN      PTR     bbs.magedu.com.

71      IN      PTR     bbs.magedu.com.

67      IN      PTR     www.magedu.com.


权限及属组修改:

# chgrp  named  /var/named/172.16.100.zone

# chmod  o=  /var/named/172.16.100.zone

检查语法错误:

# named-checkzone  ZONE_NAME   ZONE_FILE

# named-checkconf 



(3) 让服务器重载配置文件和区域数据文件

# rndc  reload 或# systemctl  reload  named.service






怎样为一个主服务器配置一个从服务器实现冗余呢?

注意:从服务器是区域级别的概念;

首先选一台主机安装bind程序


配置一个从区域:On Slave 以下


(1) 定义区域

    定义一个从区域; 

    zone "ZONE_NAME"  IN {

        type  slave;

        file  "slaves/ZONE_NAME.zone";

        masters  { MASTER_IP; };

        };

配置文件语法检查:named-checkconf


(2) 重载配置

    rndc  reload 或者 systemctl  reload  named.service


在主dns上须要作以下操做

(1) 确保区域数据文件中为每一个从服务配置NS记录,而且在正向区域文件须要每一个从服务器的NS记录的主机名配置一个A记录,且此A后面的地址为真正的从服务器的IP地址;

注意:时间要同步;  ntpdate命令实现时间同步;






场景描述:假如公司某部门比较庞大须要独立的dns,怎样实现配置一个子域并受权?

子域受权:

正向解析区域受权子域的方法:

ops.magedu.com. IN NS  ns1.ops.magedu.com.

ops.magedu.com. IN NS  ns2.ops.magedu.com.

ns1.ops.magedu.com. IN A IP.AD.DR.ESS

ns2.ops.magedu.com. IN A IP.AD.DR.ESS




场景:当某dns不能上网,它能够把请求转发给其余dns实现域名解析

定义转发:

注意:被转发的服务器必须容许为当前服务作递归;

(1) 区域转发:仅转发对某特定区域的解析请求;

zone  "ZONE_NAME"  IN {

type  forward;

forward  {first|only};

forwarders  { SERVER_IP; };

};

first:首先转发;转发器不响应时,自行去迭代查询;

only:只转发;

(2) 全局转发:针对凡本地没有经过zone定义的区域查询请求,统统转给某转发器;

options {

... ...

forward  {only|first};

forwarders  { SERVER_IP; };

.. ...

};



bind中的安全相关的配置:

acl:访问控制列表;把一个或多个地址归并一个命名的集合,随后经过此名称便可对此集全内的全部主机实现统一调用;

acl  acl_name  {

ip;

net/prelen;

};

示例:

acl  mynet {

172.16.0.0/16;

127.0.0.0/8;

};

bind有四个内置的acl

none:没有一个主机;

any:任意主机;

local:本机;

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



访问控制指令:

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

allow-transfer {};  容许向哪些主机作区域传送;默认为向全部主机;应该配置仅容许从服务器;

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

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

bind view:

视图:

view  VIEW_NAME {

zone

zone

zone

}

view internal  {

match-clients { 172.16.0.0/8; };

zone "magedu.com"  IN {

type master;

file  "magedu.com/internal";

};

};

view external {

match-clients { any; };

zone "magecdu.com" IN {

type master;

file magedu.com/external";

};

};



课外做业:whois命令; 注册一个域名;

博客做业:正向解析区域、反向解析区域;主/从;子域;基本安全控制; 

检查配置文件语法错误:

named-checkconf   [/etc/named.conf]

相关文章
相关标签/搜索