iT邦幫忙

0

DNS Server流量連線數很多centos 6.2

大家好
請問一下我的centos 6.2上有架設dns server但我發現為何它的連數特別多
出去查特別多,中dns的ddos嗎?它大約十來分鐘就降下來,我有用yum更新bind
來防陋洞,server在內網透過防火牆nat轉53至server所以沒對外,請問這樣行為正常嗎??

1.如果你是hinet的用戶,建議可以把該bind所接受的query都轉到上一層的DNS server來query。可加快query的結果。也減少你出去的IP對全世界去做query的流量。
在bind的named.conf裡加這行:
forwarders { 168.95.1.1; 168.95.192.1; };
或其他反應快的DNS IP。
2.在內部的DHCP設client用的DNS為內部的192.168.1.253。
3.防火牆擋住所有內部往外udp的port53,只允許對上述hinet的DNS之IP,或其他反應速度較快的DNS IP。這樣內部client就只能用自己內部的DNS或外部指定的DNS來query,而不會對全世界去做port 53的query。
4.也可在bind的named.conf暫時加上query的log觀察看看:
logging {
  channel query.log{
    file "/data/logs/query.log" versions 55 size 900m;
    print-time yes;
    severity debug 3;
  };
  category queries { query.log; };
};
log的量會蠻大,可知道到底哪些IP在query哪些domain。
jeremy168 iT邦新手 3 級 ‧ 2014-06-26 00:56:21 檢舉
謝謝你的解說,,目前是用硬體防火牆zyxel usg 50h
外面服務都是虛擬伺服器nat轉進到centos

我目前named.conf檔內容如下:
options {
	listen-on port 53 { 192.168.1.253; };
//	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     { any; };
	allow-transfer { none; };	
	recursion yes;

	dnssec-enable yes;
	dnssec-validation yes;
	dnssec-lookaside auto;
//        forward only;
        forwarders {
     		168.95.1.1;
   		168.95.192.1; 
		8.8.8.8; };

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

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


請你再指教~謝謝你~不然dns udp包多也滿吃防火牆效能

1 個回答

6
yesongow
iT邦大師 1 級 ‧ 2014-06-17 04:47:13
最佳解答

關於你的centos 6.2系統
它的IP是192.168.1.253嗎?


你有沒有實體防火牆,具有透通型的WAN/DMZ呢?
請將主機192.168.1.253接在DMZ,並以WAN連接到原本192.168.1.253所使用的網路孔
--
在這個案例中,防火牆的規則,你可以定義以下規則
1.WAN_ANY to DMZ_ANY PROTOCOL UDP_DNS PERMIT And Log
2.WAN_ANY to DMZ_ANY PROTOCOL TCP_DNS PERMIT And Log
3.WAN_ANY to DMZ_ANY PROTOCOL UDP_ANY PERMIT And No_Log
4.WAN_ANY to DMZ_ANY PROTOCOL TCP_ANY PERMIT And No_Log

5.DMZ_ANY to WAN_ANY PROTOCOL UDP_DNS PERMIT And Log
6.DMZ_ANY to WAN_ANY PROTOCOL TCP_DNS PERMIT And Log
7.DMZ_ANY to WAN_ANY PROTOCOL UDP_ANY PERMIT And No_Log
8.DMZ_ANY to WAN_ANY PROTOCOL TCP_ANY PERMIT And No_Log
--
如果防火牆的Log可以透過電子郵件方式寄送到你的信箱備份的話,請啟用!

透過以上的規則及設備,這樣就可以分析出
辦公室的網路環境,是哪個電腦向192.168.1.253發出DNS查詢的行為
及可以紀錄到192.168.1.253收到DNS查詢的要求時,並向外的DNS Server(168.95.xx.xx,8.8.8.8)查詢DNS資料

--
前提,你要有透通性DMZ的防火牆!
否則,僅能透過Switch的Mirror Port,來做出側錄網路封包的行為囉!

--
另外,如果192.168.1.253是CentOS系統
你可以做以下的調整
啟動DNS服務(named)
修改 /etc/resolv.conf檔案內的DNS Server清單
將168.95.1.1,168.95.192.1,8.8.8.8等等的DNS Server IP刪除
僅留下192.168.1.253
一切新的查詢,向root_DNS Server查詢,查詢後,CentOS的Named服務會記憶,以便下次相同查詢可以快速回應,節省網路sessions!

jeremy168 iT邦新手 3 級 ‧ 2014-06-26 00:49:35 檢舉

謝謝你詳細的回答,我目前是用zyxel usg 50h比較早的硬體防火牆
外面服務透過虛擬伺服器nat轉進後端centos

有可能是我把dns權限開太大囉,所以一直有好幾百幾千的dns udp包
我的named.conf如下:

<pre class="c" name="code">options {
	listen-on port 53 { 192.168.1.253; };
//	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     { any; };
	allow-transfer { none; };	
	recursion yes;

	dnssec-enable yes;
	dnssec-validation yes;
	dnssec-lookaside auto;
//        forward only;
        forwarders {
     		168.95.1.1;
   		168.95.192.1; 
		8.8.8.8; };

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

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

請你在指教~謝謝你!!

我要發表回答

立即登入回答