Linux 學習筆記 002 – DNS 安全初步

參考網頁

筆記

1. chroot

  • 安裝bind-chroot套件
  • 編輯/etc/sysconfig/named檔案
  • 確認 ROOTDIR=/var/named/chroot 存在,而且沒有被註解掉。

2. 確認自己的 DNS 對象、功能、權限

  • 不需要開放遞迴,recursion no;
  • 只限定部分遞迴,allow-recursion { 192.168.1.0/100; 127.0.0.1; };
  • 關於遞迴查詢以及DNS查詢原理可參考 TWNIC 文件
  • 如果 DNS 只負責解析自己的領域,而且不打算幫 Client 解析別的位址,那就不必開遞迴

3. 注意 allow-transfer

  • allow-transfer,只能給 slave ,或其他特定用途,務必謹慎開放!

4. named.conf 的 acl

  • 可用來定義一個變數,代表一堆來源
  • 比如 acl campus { 192.168.1.0/24;  192.168.5.0/24; };
  • 這樣,後面你就可以用 campus 來代表 這兩組來源

5. named.conf 的 view

view campus {
各種 zone 定義
};
  • 這個意思就是說,當看到符合上述 4. 所訂定的 campus 來源時,就套用這裡的 zone 檔案來進行反應。

6. named.conf 的 logging

  • 對特定的日誌進行處理,例如、忽略任何關於lame-servers的錯誤訊息,不要記錄到日誌內。 依據鳥哥範例是
logging { 
category lame-servers { null; }; 
};
  • lame-servers 是自身向別的 DNS 查詢,但別的 DNS出錯時的記錄的一種,一旦多了就很容易混淆真正該注意的訊息,因此可以視情況關閉這類記錄

7. named.conf 的 blackhole

  • 忽略特定來源
  • 例如、先用 acl 宣告 trash為所有 private IP 的集合,然後以 blackhole 宣告不理會他們
acl trash {0.0.0.0/8; 10.0.0.0/8; 172.16.0.0/12; 192.168.0.0/16; 224.0.0.0/3;};
options {
...
blackhole {trash;};
};

 

8. 來源port 隨機

可以用 dig 指令測試,看看結果,如果都只有來自 1 port ,就是沒有啟用隨機。

[host ~]# dig +short @localhost porttest.dns-oarc.net txt
porttest.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
"101.3.46.100 is GREAT: 26 queries in 5.6 seconds from 26 ports with std dev 17465"

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料