设为首页 收藏本站
查看: 642|回复: 0

[经验分享] Linux DNS acl、view、日志系统使用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-4-23 08:51:53 | 显示全部楼层 |阅读模式
本节以前面主、从DNS为实验环境,讲解DNS acl、view、日志系统相关使用   一、配置DNS acl访问控制列表
    acl定义格式: acl string { address_match_element; ... };
     常用几钟类型格式:

      allow-transfer {}; 允许做区域传送主机
      allow-query {};   允许做查询限定
       allow-recursion {}; 允许做递归查询列表,通常只给本地客户端做递归
      allow-update {}; 允许DNS动态更新,但只能由DHCP指定DNS更新
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[iyunv@master named]# vim /etc/named.conf       #编辑named主配置文件
acl  query      { 192.168.8.7; }; #定义acl限定主机,可限定网段 IP/Netmask
acl  transfer   { 192.168.8.9; };              #定义acl限定查询
options {                                 注: acl后面名称可自行定义
//      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     { localhost; };
        recursion yes;
        allow-query     { query; };     #限定查询,只允许前面query内定义主机查询
        allow-transfer  { transfer; };  #限定区域传送,只允许前面transfer内定义主机传送

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";



   dig测试前面所定义列表
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
  #在从DNS上测试查询请求
[iyunv@Slave named]# dig -t A www.dove.com @192.168.8.7  #查询请求失败

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> -t A www.dove.com @192.168.8.7
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 25085
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
                            #提示警告:不提供递归请求
;; QUESTION SECTION:
;www.dove.com.          IN  A

;; Query time: 1 msec
;; SERVER: 192.168.8.7#53(192.168.8.7)
;; WHEN: Wed Apr 22 10:30:15 2015
;; MSG SIZE  rcvd: 30


  #在主DNS上测试区域传送请求
[iyunv@master named]# dig -t axfr dove.com @192.168.8.7  #区域传送请求失败      

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> -t axfr dove.com
;; global options: +cmd
; Transfer failed.         #提示区域传送失败



  二、配置DNS转发

   如何实现将请求转发出去:
      转发类型:
       转发所有针对非本机负责解析的区域的请求;
        options {};
    仅转发对特定区域的请求;
        zone {
       type forward;
      };
     格式: forward ( first | only );
         forwarders [ port integer ] {
              ( ipv4_address | ipv6_address ) [ port integer ]; ...};
        forward only|first; only表示仅转发 first表示先转发后查询
         forwarders { IP; }; 表示转发
       注: 转发的前提:接收转发请求的服务器必须能够为请求者做递归查询;
如: 将不能上网解析DNS转发请求至可上网DNS解析
   1、编辑主配置文件、注释相关选项
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
[iyunv@Slave named]# vim /etc/named.conf        #编辑主配置文件
//      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     { localhost; };
        recursion yes;
        forward only;                     #定义仅转发
        forwarders { 172.16.1.16; };      #定义转发目标DNS IP,前面必须写为forwarders

//      dnssec-enable yes;                #注释dnssec安全选项
//      dnssec-validation yes;
//      dnssec-lookaside auto;

        /* 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";
};

include "/etc/named.rfc1912.zones";
//include "/etc/named.root.key";           #注释key文件



   2、编辑区域配置文件
1
2
3
4
5
6
[iyunv@Slave named]# vim /etc/named.rfc1912.zones        #编辑区域配置文件
zone "google.com" IN {                 #添加区域
    type forward;                      #type指定类型为forward(转发)
    forward only;                      #转发选项为仅转发
    forwarders { 172.16.1.16; };       #指定转发目标DNS IP
};



   3、修改本机DNS查询文件
1
2
3
4
5
6
[iyunv@Slave ~]# vim /etc/resolv.conf   #编辑DNS查询文件
; generated by /sbin/dhclient-script
nameserver 172.16.2.245                #修改为本机IP

[iyunv@Slave ~]# rndc reload            #重读named配置文件
server reload successful



   4、dig工具测试解析
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
[iyunv@Slave ~]# dig -t A  www.google.com      #测试解析,转发成功

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> -t A www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21943
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;www.google.com.            IN  A

;; ANSWER SECTION:
www.google.com.     300 IN  A   216.58.221.68

;; AUTHORITY SECTION:
google.com.     164414  IN  NS  NS2.google.com.
google.com.     164414  IN  NS  ns4.google.com.
google.com.     164414  IN  NS  ns3.google.com.
google.com.     164414  IN  NS  ns1.google.com.

;; ADDITIONAL SECTION:
NS2.google.com.     164414  IN  A   216.239.34.10
ns3.google.com.     164414  IN  A   216.239.36.10
ns1.google.com.     164414  IN  A   216.239.32.10
ns4.google.com.     164414  IN  A   216.239.38.10

;; Query time: 49 msec
;; SERVER: 172.16.2.245#53(172.16.2.245)
;; WHEN: Wed Apr 22 13:46:30 2015
;; MSG SIZE  rcvd: 184



三、配置view智能解析
     实验环境: 虚拟机CentOS6.4配置两块网卡192.168.8.7/25  192.168.1.4/25
            虚拟机CentOS6.4配置两块网卡192.168.8.9/25  192.168.1.3/25
     用法:
       view string optional_class {
          match-clients { address_match_element; ... };                    
          zone string optional_class {...    };
         }

   注:view需注意
      通常只为内网客户端提供递归功能,提供根区域等;
      通常只为外网客户端提供本机所负责的区域的解析;
   1、编辑区域配置文件
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
[iyunv@master named]# vim /etc/named.rfc1912.zones      #编辑区域配置文件
view internal {                              #指定view名称为internal
        match-clients { 192.168.8.0/24; };   #指定IP匹配范围

zone "." IN {                  #必须将/etc/named.conf中根区域包含在view中,否则报错
        type hint;
        file "named.ca";
};

zone "localhost.localdomain" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

zone "localhost" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};

zone "1.0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};

zone "0.in-addr.arpa" IN {
        type master;
        file "named.empty";
        allow-update { none; };
};

zone "dove.com" IN {
        type master;
        file "dove.com.zone";
};

zone "8.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.8.zone";        
};

};                #view结尾段



   2、配置192.168.1.0网段view
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[iyunv@master named]# vim /etc/named.rfc1912.zones        #编辑区域配置文件
view external {                               #指定view名称为external
        match-clients { 192.168.1.0/24; };    #指定IP匹配范围
        zone "dove.com" IN {                  #指定使用view的区域
          type master;
          file "external.dove.com.zone";
        };

        zone "1.168.192.in-addr.arpa" IN {
          type master;
          file "external.192.168.1.zone";
        };
};

[iyunv@master named]# cp -p dove.com.zone external.dove.com.zone     #复制原区域修改
[iyunv@master named]# cp -p 192.168.8.zone external.192.168.8.zone



   3、修改view中使用区域
1
2
3
4
5
6
7
8
9
10
11
12
[iyunv@master named]# vim external.dove.com.zone       #编辑区域文件
$TTL    600
@       IN      SOA     dove.com.       admin.dove.com. (
                        2015041802
                        2H
                        5M
                        3D
                        1D )
        IN      NS      dns
dns     IN      A       192.168.8.7       #区域NS对应A记录保持不变
mail    IN      A       192.168.1.8
www     IN      A       192.168.1.8



   4、dig测试解析
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
[iyunv@master named]# dig -t A www.dove.com @192.168.8.7    #解析结果为8.0网段

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> -t A www.dove.com @192.168.8.7
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39566
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.dove.com.          IN  A

;; ANSWER SECTION:
www.dove.com.       600 IN  A   192.168.8.8

;; AUTHORITY SECTION:
dove.com.       600 IN  NS  Slave.dove.com.
dove.com.       600 IN  NS  dns.dove.com.

;; ADDITIONAL SECTION:
dns.dove.com.       600 IN  A   192.168.8.7
Slave.dove.com.     600 IN  A   192.168.8.9

;; Query time: 0 msec
;; SERVER: 192.168.8.7#53(192.168.8.7)
;; WHEN: Wed Apr 22 16:33:20 2015
;; MSG SIZE  rcvd: 116

[iyunv@Slave ~]# dig -t A www.dove.com @192.168.1.4       #解析结果为1.0网段

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> -t A www.dove.com @192.168.1.4
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41704
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.dove.com.          IN  A

;; ANSWER SECTION:
www.dove.com.       600 IN  A   192.168.1.8

;; AUTHORITY SECTION:
dove.com.       600 IN  NS  dns.dove.com.

;; ADDITIONAL SECTION:
dns.dove.com.       600 IN  A   192.168.8.7

;; Query time: 0 msec
;; SERVER: 192.168.1.4#53(192.168.1.4)
;; WHEN: Wed Apr 22 16:33:45 2015
;; MSG SIZE  rcvd: 80



四、DNS日志系统

     DNS收集日志两种方式 :
       一、file: /var/log/query.log  指定日志文件
       二、rsyslog  日志服务器     
     格式:
1
2
3
4
5
6
7
8
9
10
11
12
13
logging {
     channel string {
          file log_file;
          syslog optional_facility;
          null;
          stderr;
          severity log_severity;
          print-time boolean;
          print-severity boolean;
          print-category boolean;
     };
     category string { string; ... };
};



1
2
3
4
channel categroy
    categroy : 记录哪个功能产生的日志信息,一共内置有15种category;
    channel : 日志信息记录到何处,一般有两种形式,一种为file,另一种为syslog;同时,还需要指定日志级别;
一个category产生的日志可以发往多个channel;而一个channel只能为一个category记录日志;




  如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[iyunv@master named]# vim /etc/named.conf      #编辑主配置文件
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
        channel querylog {                    #定义channel名称为querylog
                file "/var/log/dns.log";      #定义日志文件
                severity dynamic;             #severity定义日志级别,类型为dynamic
                print-severity yes;           #print定义显示日志级别
                print-category yes;           #print定义显示category类别
                print-time yes;               #print定义显示日志记录时间
        };
        category queries { querylog; };       #category定义日志种类,对应上面channel
};

[iyunv@master named]# named-checkconf                        #检查配置文件
[iyunv@master named]# touch /var/log/dns.log                 #创建日志文件
      由于named服务进程是以named用户运行,所以请确保此文件事先存在,且属主、组为named
[iyunv@master named]# chown named:named /var/log/dns.log     #修改文件属主、组
[iyunv@master ~]# service named restart               #重启服务,为确保测试成功
[iyunv@master named]# dig -t A  www.dove.com          #dig测试解析     
[iyunv@master ~]# cat /var/log/dns.log                #查看日志文件
22-Apr-2015 20:58:05.785 queries: info: client 192.168.8.7#51360: query: www.dove.com IN A + (192.168.8.7)  #日志信息:记录日期、日志级别、客户端、随机端口、请求记录类型



  The End! 相关配置完成.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-59840-1-1.html 上篇帖子: CentOS 6.3下配置LVM(逻辑卷管理) 下篇帖子: 加密解密基础及openssl构建私有CA初步 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表