歡迎您光臨本站 註冊首頁

dns配置高級篇(我這裡拋磚引玉了)

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

dns配置高級篇(我這裡拋磚引玉了)

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

  歡迎轉載,但必須註明出處和作者名稱。



Dns配置高級篇



這裡假設你已經獨立或參考我的《架設dns攻略》將dns伺服器成功架設起來,並且dns已經能夠正常運行了。



現在我們dns開始工作了,是不是我們的工作已經OK了呢?不,不,不,named.conf文件還有很多東西需要我們配置呢。

DNS的配置文件named.conf是有非常多的可選項的,這裡只是介紹一點常用的配置。如果你覺得還想繼續研究下去,那也不需要在網上到處找資料的,直接用「man named.conf」就可以得到一個非常非常詳細的說明。

這裡首先感謝我的同事yiming先生對伺服器安全性的不懈研究,否則我們也不會經常安裝、配置最新版本的DNS伺服器了。而且,這個named.conf是他配置的。好了,言歸正傳,Follow me,我們繼續。





1.Options 我們通過options可以定製一個性能更優、安全性更高的dns伺服器。

Version 「I am cpss」;         

別人想探測我們dns版本,然後根據該版本的漏洞來攻擊我們。休想!配置了這條命令后,別人再探測的版本后就是「I am cpss」了,呵呵。

Allow-transfer {192.168.1.1;192.168.1.4;};

如果沒有配置這一條命令,任何人都可以通過nslookup工具來得到你域裡面的zone文件,也就是說他得到了你的主機列表,然後再分析,再……。當然,slave dns需要你允許它能夠傳送,否則它就得不到master dns上的zone文件,也就沒辦法工作了。這裡假設192.168.1.1和192.168.1.4是該dns伺服器的slave伺服器,在master伺服器上配置了如上命令。

Listen-on{192.168.1.2;};

增加上這條命令,啟動dns時就不會監聽所有網路介面的53埠了,只監聽指定網路介面的53埠。

Blackhole {hatenets;};

我們不想讓某些網段使用我們的dns伺服器,就用這條命令吧。不過還需要配置一個acl來定義匹配的網段,如下所示:

acl hatenets {

1.0.0.0/8;

2.0.0.0/8;

};
這兩個網段的地址是無法使用我們的dns了。





2.logging 通過該選項,我們可以生成我們想要的日誌。通過日誌,我們可以更好地維護dns伺服器。

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;

                                    };

        };
上例中我們建立了一個安全級別為notice的日誌,dns的報錯信息都會存放在「/var/log/bindall.log」日誌文件了,分析該文件,我們就能輕鬆找出dns工作不正常的原因了。

Logging裡面的安全級別很多,大家可以根據自己需要來制定一個或多個logging。下面是logging的語法:

     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; ... ]

            }; ]

            ...

          };




3. 這裡是我們named.conf樣本,希望能對你有所幫助。

4.最新版本(2002年11月5日)的named.ca文件。
《解決方案》

dns配置高級篇(我這裡拋磚引玉了)

我們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";

};
《解決方案》

dns配置高級篇(我這裡拋磚引玉了)

又學到不少東西! 謝謝 cpss 兄!
《解決方案》

dns配置高級篇(我這裡拋磚引玉了)

真不錯
《解決方案》

dns配置高級篇(我這裡拋磚引玉了)

收益非淺,對了老兄對智能dns有沒有好的建議,比如做負載平衡。
《解決方案》

dns配置高級篇(我這裡拋磚引玉了)

好東西,真不錯。
《解決方案》

dns配置高級篇(我這裡拋磚引玉了)

good!
《解決方案》

dns配置高級篇(我這裡拋磚引玉了)

《解決方案》

dns配置高級篇(我這裡拋磚引玉了)

兄弟,寫得真不錯,我也配過DNS,不過不是最安全的呀!!!看了你的,廁所的門一下子就打開了
《解決方案》

dns配置高級篇(我這裡拋磚引玉了)

我覺的version 設置不妥.
如果別人看到.I am cpss的響應,一下就可以知道bind版本在8.2之上了.因為舊版本的bind沒有
version語句.我覺的把他設置為一個舊的版本號更好.

[火星人 ] dns配置高級篇(我這裡拋磚引玉了)已經有553次圍觀

http://coctec.com/docs/service/show-post-23678.html