DNS相关配置

DNS基础概念:

  • DNS全称为Domain Name System。它作为将域名和IP地址相互映射的得一个分布式数据库,能够使人更方便的访问互联网
  • DNS使用TCP和UDP得53号端口
  • BIND是DNS得实现方式之一

    • named是bind程序得运行的进程名
    • named进程的主要运行者是named用户,为了安全起见,它的程序也应该以named用户运行

配置正向解析:

yum -y install bind bind-utils -y   #安装bind
vim /var/named/lijing.io            #在/var/named/下创建文件
    $TTL 600
    lijing.io.      IN      SOA     lijing.io.      nsadmin.liing.io. (
                    2017052901
                    1H
                    5M
                    1W
                    6H  )
                    IN      NS      dns1.lijing.io
    dns1.lijing.io. IN      A       172.16.253.223
    www.lijing.io   IN      CNAME   www
vim /etc/named.conf                 #编辑主配置文件
    /dnssec-enable                  #查找dnssec-enable
    //dnssec-enable                 #注释之
    dnssec-validation no                #改为no,禁用
    /allow-query                        #查找allow-query
    allow-query { any; };           #允许所有人查询
    /listen-on                      #查找这一行
    //listen-on                     #注释之
    #注意,每一个指令都已分号结尾
vim /etc/named.rfc1912.zones        #更改区域配置文件
    G                               #跳转到行末
    zone "lijing.io" {
        type master;                #定义为主服务器
        file "lijing.io.zone";
    }
named-checkconf                     #检查配置文件语法
named-checkzone                     #检查zone区域语法
chmod o= /var/named/lijing.io.zone  
chown :named /var/named/lijing.io.zone
systemctl start named.service
ss -unl                             #查看53号端口工作与否
host -t A lijing.io
host -t SOA lijing.io               #测试

配置反向解析

vim /etc/named.rfc1912.zones
    zone "16.172.in-addr.arpa" IN {
        type master;
        file "172.16.zone";         #在172.16.zone文件中 @ 符号表示 16.172.in-addr.arpa
    };
named-checkconf
vim 172.16.zone
    $TTL 1200
    $ORIGIN 16.172.in-addr.arpa.        #定义了之后,dns后面补得是这个定义的字符
    @       IN      SOA     lijng.io.       naadmin.lijing.io. (    #@符号意义表示区域名
            2017052901
            3H
            20M
            1W
            1D )
    @       IN      NS      dns1.lijing.io.                         #dns1.后面补得是16.172.in-addr.arpa
    223.253 IN      PTR     dns1.lijing.io.                         #前面的应该要与lijing.io.zone中得地址反写
    #223.253.16.172.in-addr.arpa. 最左侧完整形式
    1.0     IN      PTR     www.lijing.io.
named-checkconf
named-checkzone
rndc reload
dig -x 172.16.0.1 @172.16.253.223
dig -t axfr 16.172.in-addr.arpa @172.12.253.223 
chmod o= /var/named/16.172.zone
chown :named /var/named/16.172.zone

主从配置

在另外一台主机(IP为172.16.254.20)
ll /var/named/      #查看namd目录,named用户对这个目录是否拥有写权限(从服务器的区域文件是自动更新的,所以named对这个目录应该拥有写权限
vim /etc/named.rfc1912.zones
    G
    zone "lijing.io" IN {
        type slave;
        file "slaves/lijing.io.zone";
        masters { 172.16.253.223; };
    };
named-checkconf
rndc reload
tail /var/log/messages          #查看日志当中得说明(all zones loaded..)
cd /var/named/ 
dig -t A www.ilinux.io @172.16.254.20

子域授权,区域转发

#在lijing.io下授权两个资源,一个叫做ops,一个叫做dev
vim /var/named/lijing.io.zone
    ops,lijing.io.  IN  NS  dns1.ops.lijing.io. #说明ops子域由子域内的dns1.ops服务器来负责
    dev.lijing.io.  IN  NS  dns1.dev.lijing.io.
    dns1.pos        IN  A   172.16.254.21
    dns1.dev        IN  A   172.16.254.22   #两台主机能通信,就可以解析出子域
    #在父域中先指明切割成什么子域,再指明每个负责人是谁,每个负责人对应信息是什么
#切换到172.16.254.21主机
vim /etc/named.conf
    listen-on-v6 port 53 { 127.0.0.1; 172.16.254.21; };
    //dnssec-enable yes;
    //dnssec-validation yes;
vim /etc/named.rfc1912.zones
    zone "ops.lijing.io" IN {
        type master;
        file "ops.lijing.io.zone";
    };                                  #配置正向解析
cd /var/named/
vim ops.lijing.io.zone
    $TTL 1h
    @       IN      SOA     ops.lijing.io. nsadmin.ops.ilinux.io. (
            2017052901
            1H
            5M
            3D
            2H )
    @       IN      NS      dns1        #与上一级dns保持一致,后缀可不写
    dns1    IN      A       172.16.254.21
    www     IN      A       172.16.0.100
named-checkconf
named-checkzone "ops.lijing.io" /var/named/ops.lijing.io.zone
systemctl start named.service   
dig -t A dns1.ops.lijing.io @172.16.254.21      #
dig -t NS ops.lijing.io @172.16.25254.21            #
dig -t A dns1.lijing.io @172.16.254.21          #解析父域,是不会成功的,因为它会先去找根服务器,而我们是测试环境
vim /etc/named.rfc1912.zones
    zone "lijing.io" IN {
        type forward;                       #表示当我们解析一个域名的时候,不要去找根
        forward only;                       #即使解析不了,也要给出答案,无论解析成功与否
        #forward first                      #表示解析的时候先通过下面的NDS解析,解析不了再去寻找根服务器
        forwarders { 172.16.254.21; 172.16.254.22; };   #通过这两台服务器去解析
    };  
named-checkconf
rndc reload
dig -t dns1.ilinux.io @172.16.254.21            #解析父域

全局转发:

#无法访问互联网
vim /etc/named.conf
    options
        forward only;
        forwarders { 172.16.0.1; };
named-checkconf
rndc reload
dig -A www.baidu.com @172.16.253.223 +trace

安全配置

vim /etc/named.conf
    #在options智商放置acl
    acl test {
        172.16.253.223;
        172.16.0.100;
    };
    option  
    #本机的查询操作放置在options当中,表示本机的所有的所负责域的查询则只允许这个地址查询
vim /etc/named.rfc1912.zones        #针对某个区域进行定义
    zone "lijing.io" {
        type...
        file...
        allow-query { test; };                  #表示这个区域只允许哪些查询
    };
named-checkconf
rndc reload
dig -t A www.lijing.io @172.16.253.223          #测试这个能否被223解析
dig -t A www.lijing.io @172.15.0.200                
2、允许从服务器做区域传送
vim /etc/named.conf
    acl slavesrvs {
        172.16.254.20;
    };
vim /var/named.rfc1912....
    zone "lijing.io" {
        type...
        file...
        //{ test; };                
        alow-transfer { slaversrvs; };  #仅仅允许从服务器做区域传送
    };
named-checkconf
rndc reload
#传送:在 254.20上使用
dig -t axfr lijing.io @172.16.253.223

只允许本地网络中客户端递归

vim /etc/named.conf
    acl localnet {
        172.16.0.0/16;
        172..0.0.0/8;
    };
    options 
        //recursion yes;
        allow-recursion { localnet; };      #仅允许本机所在的IP进行递归
named-checkconf
rndc reload

禁止它人动态更新站点(区域中得任何人)

vim /etc/named.rfc1912...
    zone "lijing.io" IN {
        type master;
        file "lijing.io.zone";
        allow-transfer { slaversrvs; };
        allow-update { none; };
    };

原创文章,作者:半斤八两,如若转载,请注明出处:http://www.178linux.com/77144

(0)
半斤八两半斤八两
上一篇 2017-05-30 14:21
下一篇 2017-05-30 17:28

相关推荐

  • linux中bash的基础特性和基本文件管理命令

    linux的文件管理类命令 linux系统下的涉及到目录管理命令,主要有 mkdir,rmdir linux系统下也会用到许多文件查看类命令,包括cat,tac,head,tail,more,less等 linux系统下涉及的文件管理类命令主要有cp,mv,rm 本节我们主要说明文件管理类命令的使用方法。 cp命令的使用方法 首先,cp这个命令的作用是可以复…

    Linux干货 2016-09-26
  • 文件查看及查找命令

    cat  查看一个文件   -E: 显示行结束符$   -n: 对显示出的每一行进行编号   -A:显示所有控制符   -b:非空行编号   -s:压缩连续的空行成一行   -T:显示制表符 常用:cat -An /et…

    Linux干货 2017-04-08
  • Linux进程与作业1

    Linux进程与作业 操作系统的组成部分:硬件,kernel,lib, 系统调用–>调用kernel lib调用–> 库调用,kernel调用 运行用户代码–>用户模式–>用户空间; 运行kernel–>内核模式–>内核空间; 内核的功用:进程管理,文件系统,网络功能,内存管理,驱动程序,安全功能 C…

    Linux干货 2016-08-02
  • 关于生命中的根

    关于生命中的根    擦干心中的血和泪痕    留住我们的根 关于生命中的根 鸿蒙初辟,万物生于根 寻根之旅 根就是根 我即为根 路在何方 鸿蒙初辟,万物生于根    自linux老祖Torvalds创根之始至今,根一直为linux之本,而FHS(Filesystem Hierarchy Stand…

    Linux干货 2016-10-27
  • Shell脚本的编写

    1.什么是Shell脚本 Shell脚本是利用 shell 的功能所写的一个程序 program,这个程序是使用纯文本文件,将一些 shell 的语法与指令(含外部指令)写在里面, 搭配正则表达式、管线命令与数据流重导向等功能,以达到我们所想要的处理目的。 Shell 脚本可以简单的被看成是批处理文件, 也可以被说成是一个程序语言,且这个程序语言由于都是利用…

    Linux干货 2017-04-16
  • Linux终端类型

    Linux系统的终端主要包括控制台终端、控制终端、串口终端、伪终端、虚拟终端。 1、控制台终端(/dev/console)    在Unix系统中,计算机显示器通常被称为控制台终端。Console与虚拟终端相关联,内核将信息送到控制台终端上(/dev/console), 通过与console相关联的虚拟终端将信息显示到屏幕上。不管当前正在…

    Linux干货 2016-10-19

评论列表(1条)

  • renjin
    renjin 2017-06-02 16:09

    主要介绍了bind的正向解析,反向解析,主从配置,区域转发,子域授权和安全配置等等,内容总结的井然有序,并且非常详细,排版也很好。