ChinaUnix首页 > 精华文章 > DNS服务器 > 正文

[原创] dns配置高级篇(我这里抛砖引玉了)


http://www.chinaunix.net 作者:cpss  发表于:2009-03-25 20:42:56
发表评论】 【查看原文】 【DNS服务器讨论区】【关闭

作者cpss  http://cpss.zz.ha.cn

  欢迎转载,但必须注明出处和作者名称。

 

Dns配置高级篇


 

这里假设你已经独立或参考我的[url=http://cpss.zz.ha.cn/bind/bind.htm]《架设dns攻略》将dns服务器成功架设起来,并且dns已经能够正常运行了。

 

现在我们dns开始工作了,是不是我们的工作已经OK了呢?不,不,不,named.conf文件还有很多东西需要我们配置呢。

DNS的配置文件named.conf是有非常多的可选项的,这里只是介绍一点常用的配置。如果你觉得还想继续研究下去,那也不需要在网上到处找资料的,直接用“man named.conf”就可以得到一个非常非常详细的说明。

这里首先感谢我的同事yiming先生对服务器安全性的不懈研究,否则我们也不会经常安装、配置最新版本的DNS服务器了。而且,这个named.conf是他配置的。好了,言归正传,Follow me,我们继续。

 

 

1.Options 我们通过options可以定制一个性能更优、安全性更高的dns服务器。

[color=red]Version “I am cpss”;    [/color]     

别人想探测我们dns版本,然后根据该版本的漏洞来攻击我们。休想!配置了这条命令后,别人再探测的版本后就是“I am cpss”了,呵呵。

[color=red]Allow-transfer {192.168.1.1;192.168.1.4;};[/color]

如果没有配置这一条命令,任何人都可以通过nslookup工具来得到你域里面的zone文件,也就是说他得到了你的主机列表,然后再分析,再……。当然,slave dns需要你允许它能够传送,否则它就得不到master dns上的zone文件,也就没办法工作了。这里假设192.168.1.1和192.168.1.4是该dns服务器的slave服务器,在master服务器上配置了如上命令。

[color=red]Listen-on{192.168.1.2;};[/color]

增加上这条命令,启动dns时就不会监听所有网络接口的53端口了,只监听指定网络接口的53端口。

[color=red]Blackhole {hatenets;};[/color]

我们不想让某些网段使用我们的dns服务器,就用这条命令吧。不过还需要配置一个acl来定义匹配的网段,如下所示:

[color=red]acl hatenets {

1.0.0.0/8;

2.0.0.0/8;

};[/color]
这两个网段的地址是无法使用我们的dns了。

 

 

2.logging 通过该选项,我们可以生成我们想要的日志。通过日志,我们可以更好地维护dns服务器。

[color=red]Logging {

        Channel syslog_info {

        File  “/var/log/bindall.log” versions 20 size 2m;

        Print-category yes;

        Print-time yes;

        Severity notice;

                      };

        category         default {

               syslog_info;

                                    };

        };[/color]
上例中我们建立了一个安全级别为notice的日志,dns的报错信息都会存放在“/var/log/bindall.log”日志文件了,分析该文件,我们就能轻松找出dns工作不正常的原因了。

Logging里面的安全级别很多,大家可以根据自己需要来制定一个或多个logging。下面是logging的语法:
[color=red]
     logging {

            [ channel channel_name {

              ( file path_name

                 [ versions ( number | unlimited ) ]

                 [ size size_spec ]

               | syslog ( kern | user | mail | daemon | auth | syslog | lpr |

                          news | uucp | cron | authpriv | ftp |

                          local0 | local1 | local2 | local3 |

                          local4 | local5 | local6 | local7 )

               | null );

 

              [ severity ( critical | error | warning | notice |

                           info  | debug [ level ] | dynamic ); ]

              [ print-category yes_or_no; ]

              [ print-severity yes_or_no; ]

              [ print-time yes_or_no; ]

            }; ]

 

            [ category category_name {

              channel_name; [ channel_name; ... ]

            }; ]

            ...

          };[/color]
 

 

3. 这里是我们named.conf样本,希望能对你有所帮助。

4.最新版本(2002年11月5日)的named.ca文件。



 cpss 回复于:2003-02-16 19:45:07

我们named.conf的样本

acl hatenets { 

    1.0.0.0/8;

    2.0.0.0/8;

};

 

options {

        files  10000;

# boot file for name server

#

        directory "/var/named";

        version "I am cpss";

        notify no;

        datasize 300m;

        allow-transfer {192.168.1.1; 

                        192.168.1.4;

                                        };

                        

        blackhole { hatenets; };

        interface-interval 0;

        cleaning-interval 120;

        listen-on {192.168.1.2;

                };

        statistics-interval 60;

 

 

logging {

        channel syslog_query {

        file "/var/log/bindquery.log" ;

        severity notice;

                        };

 

        channel syslog_info {

        file "/var/log/bindall.log" versions 20 size 2m;

        print-category yes;

        print-time yes;

        print-severity yes;

        severity notice;

                        };

        

        channel syslog_manitenance {

        file "/var/log/bindmaint.log" versions 10 size 2m;

        severity notice;        

                                };

 

        channel syslog_secu {

                syslog local6;

                severity info;

                        };

 

        channel syslog_xfer {

        file "/var/log/bindxfer.log" versions 20 size 2m;

         print-category yes;

        print-time yes;

        print-severity yes;

        severity notice;

                        };

        

        

 

        channel syslog_os {

        syslog local3;

        severity info;

                };

 

        channel syslog_panic {

        syslog local4;

        severity info;

                        };

 

        channel syslog_stat {

        syslog local5;

        severity info;

                        };

 

        channel syslog_config {

        file "/var/log/bind_config.log" versions 20 size 2m;

        print-category yes;

        print-time yes;

        print-severity yes;

        severity info;

                        };

category        "xfer-in" {

        syslog_xfer;

                };

 

 

category        default {

        syslog_info;

                        };

 

category        security {

        syslog_secu;

                        };

 

 

category        os      {

        syslog_os;

 

                        };

 

category        panic   {

        syslog_panic;

                        };

 

category        statistics {

        syslog_stat;

                        };

 

category        config {

        syslog_config;

                        };

 

category        maintenance { 

        syslog_manitenance;

                        };

 

 

category lame-servers {null; };

 

category cname {null; };

 

};

 

#

# type domain source host/file

#

zone "." {

        type hint;

        file "/var/named/named.ca";

};

 

zone "0.0.127.IN-ADDR.ARPA" {

        type master;

        file "local.rev";

};


 阿骁 回复于:2003-02-16 21:20:51

又学到不少东西! 谢谢 cpss 兄!


 Fun-FreeBSD 回复于:2003-02-17 08:26:33

真不错


 herofengj 回复于:2003-02-17 09:32:04

收益非浅,对了老兄对智能dns有没有好的建议,比如做负载平衡。


 answer 回复于:2003-02-17 11:34:42

好东西,真不错。


 lookthis 回复于:2003-02-17 15:05:15

good!


 孤狼彦 回复于:2003-02-18 13:52:40




 骡子先生 回复于:2003-02-18 15:38:13

兄弟,写得真不错,我也配过DNS,不过不是最安全的呀!!!看了你的,厕所的门一下子就打开了


 beggar 回复于:2003-03-16 13:19:09

我觉的version 设置不妥.
如果别人看到.I am cpss的响应,一下就可以知道bind版本在8.2之上了.因为旧版本的bind没有
version语句.我觉的把他设置为一个旧的版本号更好.


 阿骁 回复于:2003-03-16 17:46:26

哈哈 。。  你这招够狠!  干脆写个 4.x 的版本。


 jackyy 回复于:2003-03-18 16:36:38

ding!!


 ghr470 回复于:2003-03-18 17:02:21

我的dns没设置好,这个更看不懂


 孤狼彦 回复于:2003-03-19 22:30:31

老大 我的dns的日志按照这样设置了
可是在日志文件里是空的什么记录也没有
我把named重启了几次也没有一条记录

上什么原因
named的日志因该放在什么地方


 B2Sun 回复于:2003-05-08 08:23:02

表主题: 如何在Openbsd中邦定MAC地址防止IP占用上网    

--------------------------------------------------------------------------------
 
大家好,我想用OPENBSD3.2建立一个防火墙 PF 
我想在防火墙中加入地址邦定功能,: MAC和IP地址邦定一起! 
这样就可以搞定限制了别个不会去冒充上网, 
如: IP:192.168.4.1-192.168.4.100 /24这个段可以上网 
而 IP: 192.168.4.101-254 /24这个段不可以上网 
如果没有MAC地址和IP邦定的话,那就很难办了! 如果不能上网的机器在能上网的机器开机之前启动的话,它就可以上网了,这也是我们不想的事情! 
如果 192.168.4.101的机器把自己的IP改为192.168.4.1就可以上网了 
如果 我们做了MAC地址邦定的话,就 是改了IP地址也没有用,不能上网。 
(但还是可以冒充IP!如果可以限制不能改IP地址就好了!)


 B2Sun 回复于:2003-05-08 08:23:37

??


 giant 回复于:2003-09-24 10:19:47

真不错,再顶一次


 realfox 回复于:2004-04-13 01:06:45

引用:Listen-on{192.168.1.2;}; 

增加上这条命令,启动dns时就不会监听所有网络接口的53端口了,只监听指定网络接口的53端口。 




谁能帮忙解释一下这句话么?是不是指当一台机器有两个以上的ip地址时才用的到?


 bitterness 回复于:2006-12-13 13:55:48

高手呀,


 cssweb 回复于:2007-03-23 17:10:26

好帖


 shiqsw 回复于:2007-03-30 16:39:34

多谢谢!


 1238801 回复于:2007-04-03 08:06:24

顶~~~~~~~~


 atyu30 回复于:2007-04-07 11:56:57

UP


 HawaiiLeo 回复于:2007-04-09 13:40:03

不错,希望能多看到些这样的好文章。


 jzcqx 回复于:2008-01-04 10:20:47

都2008年了,看完了,还是要帮你顶


 asong_cn 回复于:2008-01-16 16:09:39

顶~! 收藏了


 rhlei 回复于:2009-03-25 20:42:56

精华贴真的让我受益匪浅。

只是最近2年这个板块没落了,希望高手们多发点文章。谢谢了。




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=17788
转载请注明作者名及原文出处