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"
Leave a Reply