实验:DNS服务器 Master与Slave及子域控制

椰子ya 网络安全Linux 2020-10-16

DNS使最重要的网络服务之一,所有主机名需求都需要通过DNS来提供。所以需要多台服务器进行冗余。为了减轻运维负担,则使用Master与Slave。
一、DNS环境规划
屏幕截图 2020-10-16 163131.png


二、配置服务器
Master服务器
1、安装bind

yum -y install bind bind-chroot bind-utils

2、修改主配置文件

vim/etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
        listen-on port 53 { any; };          //监听端口,可设置为any,代表全部接受
        listen-on-v6 port 53 { ::1; };       //同上ipv6
        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";
        secroots-file   "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";
        allow-query     { any; };           //指明允许那台主机提出询问;可不设置,any代表全部接受
        forward only;                    //配置转发器,解析公网地址
        forwarders {
        119.29.29.29;      //腾讯DNS  设置为上层DNS
        8.8.8.8;          //谷歌DNS
        };
        /* 
         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
         - If you are building a RECURSIVE (caching) DNS server, you need to enable 
           recursion. 
         - If your recursive DNS server has a public IP address, you MUST enable access 
           control to limit queries to your legitimate users. Failing to do so will
           cause your server to become part of large scale DNS amplification 
           attacks. Implementing BCP38 within your network would greatly
           reduce such attack surface 
        */
        recursion yes;
        allow-transfer { none; };   //不允许任何人进行域转移
        dnssec-enable yes;
        dnssec-validation yes;

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

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";

        /* https://fedoraproject.org/wiki/Changes/CryptoPolicy */
        include "/etc/crypto-policies/back-ends/bind.config";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};


zone "liukai.com" IN {           //域名
        type master;             //类型 master主、slave从
        file "named.liukai.com"; //正向解析文件存放位置
        allow-transfer { 192.168.1.116; };   //允许从DNS进行域转移
};

zone "1.168.192.in-addr.arpa" IN {       
        type master;
        file "named.192.168.1";
        allow-transfer { 192.168.1.116; };
};



include "/etc/named.rfc1912.zones";
#include "/etc/named.root.key";    //注释掉这一行,不然没办法通过上层dns解析外网
 

2、编辑正向解析文件

[root@named liukai]# cd /var/named/              
[root@named named]# ls
chroot      data     named.empty       named.localhost  slaves
chroot_sdb  dynamic  named.ca          named.loopback
[root@named named]#cp named.localhost named.liukai.com      //复制一份案例文件直接修改
[root@named named]# vim named.liukai.com 
$TTL 1D
@       IN SOA named.liukai.com. www.liukai.com.  (    //DNS 主机服务名
                                        20      ; //serial序号,建议以年年月月日日来命名,判断数据库新旧
                                        1D      ; //refresh更新频率  slave向master更新频率
                                        1H      ; //retry重试时间    更新失败重试时间
                                        1W      ; //expire到期时间   一直尝试失败1w,则不在尝试等待管理员
                                        3H )    ; //minimum缓存时间   
@                       IN      NS      named.liukai.com.
@                       IN      NS      salve.liukai.com.       //一定要加.
named.liukai.com.       IN      A       192.168.1.122
sy.liukai.com.          IN      A       192.168.1.115
salve.liukai.com.       IN      A       192.168.1.116
syy      //可简写               IN      A       192.168.1.100    

2、编辑反向解析文件

[root@named liukai]# cd /var/named/
[root@named named]# ls
chroot      data     named.empty       named.localhost  slaves
chroot_sdb  dynamic  named.ca          named.loopback
[root@named named]#cp named.localhost named.liukai.com
[root@named named]# vim named.liukai.com 
$TTL 1D
@       IN SOA named.liukai.com. www.liukai.com.  (
                                        20      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@                        IN      NS     named.liukai.com.
@                        IN      NS     salve.liukai.com.
122                      IN      PTR    named.liukai.com.
115                      IN      PTR    sy.liukai.com.
116                      IN      PTR    salve.liukai.com.

A记录: 将域名指向一个IPv4地址(例如:100.100.100.100),需要增加A记录

CNAME记录: 如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录。这个域名一般是主机服务商提供的一个域名

MX记录: 建立电子邮箱服务,将指向邮件服务器地址,需要设置MX记录。建立邮箱时,一般会根据邮箱服务商提供的MX记录填写此记录

NS记录: 域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置NS记录

TXT记录: 可任意填写,可为空。一般做一些验证记录时会使用此项,如:做SPF(反垃圾邮件)记录

AAAA记录: 将主机名(或域名)指向一个IPv6地址(例如:ff03:0:0:0:0:0:0:c1),需要添加AAAA记录

SRV记录: 添加服务记录服务器服务记录时会添加此项,SRV记录了哪台计算机提供了哪个服务。格式为:服务的名字.协议的类型(例如:_example-server._tcp)。

SOA记录: SOA叫做起始授权机构记录,NS用于标识多台域名解析服务器,SOA记录用于在众多NS记录中那一台是主服务器

PTR记录: PTR记录是A记录的逆向记录,又称做IP反查记录或指针记录,负责将IP反向解析为域名


3、启动服务,关闭防火墙,或允许通过防火墙访问tcp和udp53端口

service named resatrt
service firwalld stop   //测试环境,直接关闭

4、测试能否正常解析
修改客户端DNS为服务器地址
Linux:通过dig命令可查看
正向解析dig sy.liukai.com
反向解析fig -x sy.liukai.com
Windows 则通过ping


Slave服务器
1、安装bind

yum -y install bind bind-chroot bind-utils

2、修改配置文件
仅修改以下,其上与Master相同。

vim/etc/named.conf
zone "liukai.com" IN {
        type slave;
        file "slaves/named.liukai.com";
        masters {192.168.1.122; };
};

zone "1.168.192.in-addr.arpa" IN {
        type slave;
        file "slaves/named.192.168.1";
        masters {192.168.1.122; };
};

3、测试能否正常解析
同上

PREV
实验:DNS服务器——单纯的cache-only DNS与forwarfding功能
NEXT
实验:LAMP