CentOS 5 設置 DNS 服務 (CentOS 5 DNS Settings)
設置 dns 服務,並將 windows 2003 轉移至此 centos 5.8 上面的 bind9 服務:
http://song909neo.pixnet.net/blog/post/2880347-cent-os-5-dns%E8%A8%AD%E5%AE%9A%E7%B4%80%E9%8C%84
yum -y install bind bind-chroot bind-utils caching-nameserver system-config-bind //安裝
service named start //啟動服務
chkconfig --level 35 named on //開機自動啟用
dig @localhost www.google.com //測試本機 dns 是否有正常查詢動作
vi /etc/named.caching-nameserver.conf //修改成提供外部機器查詢改以下幾行:
listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
allow-query { localhost; };
allow-query-cache { localhost; };
match-clients { localhost; };
match-destinations { localhost; };
改為:
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
allow-query { any; };
allow-query-cache { any; };
match-clients { any; };
match-destinations { any; };
加上安全設定:
version "NONE";
service named restart //有修改過 conf 檔都要重新啟動服務
named-checkconf /var/named/chroot/etc/named.caching-nameserver.conf //用來檢查設定檔有沒有錯,此版本的 /etc/named.conf 被更名並移至此: /var/named/chroot/etc/named.caching-nameserver.conf,若沒有錯誤則不會秀出任何訊息。
dig @localhost -t txt -c chaos VERSION.BIND DNS_Server //若看到版本資訊為上面設的 NONE 字樣為成功。
dig @your.ip www.google.com //如果出現結果,沒錯誤訊息,那就是可以為其他機器提供 dns 服務了。
開普通電腦設定 dns 的 ip 指向此 centos 5,並測試是否能正常上網。
vi /etc/named.rfc1912.zones //設置網域之正反解,加上以下字樣,兩個正反解檔名自行修改:
// xxxx.tn.edu.tw 正向對應區域
zone "xxxx.tn.edu.tw." IN {
type master;
file "xxxx.tn.edu.tw";
allow-update { none; };
};
// 120.115.10.x 反向對應區域
zone "10.115.120.in-addr.arpa." IN {
type master;
file "10.115.120.in-addr.arpa.dns"
allow-update { none; };
};
若是搬 windows 2003 的設定檔到 centos 的 bind9 上,可作以下動作:
將 windows 2003 的 xxxx.tn.edu.tw 正解檔 copy 成 /var/named/chroot/var/named/xxxx.tn.edu.tw
dos2unix xxxx.tn.edu.tw xxxx.tn.edu.tw //將 windows 換行格式轉為 unix 格式
chown root:named /var/named/chroot/var/named/xxxx.tn.edu.tw //更改權限,讓 named 可執行
vi /var/named/chroot/var/named/xxxx.tn.edu.tw //更改序號
vi /var/named/chroot/var/named/xxxx.tn.edu.tw //加上 $TTL 3600 一行。並修改 windows 2003 的 default ttl 這些字為 minimum
重覆以上動作。將 windows 2003 的反解檔轉至 centos 的 bind 上。
service named restart //有修改過 conf 檔都要重新啟動服務
named-checkzone xxxx.tn.edu.tw xxxx.tn.edu.tw //named-checkzone 網域名 正解檔名 ,若無錯誤則會出現 ok。
注意設置 firewall 的檔案: /etc/sysconfig/iptables 及 /etc/sysconfig/ip6ables 有沒有 accept tcp 及 udp 的 53 port 放行。
開普通電腦設定 dns 的 ip 指向此 centos 5,並測試是否能正常上網。
使用nslookup指令檢測
# nslookup
輸入 【server 2001:288:7287::1】指定v6 DNS server IP
> server 2001:288:7287::1
輸入【set type=a】指定查詢A記錄
> set type=a
輸入【www.anjh.tn.edu.tw】查詢www.anjh.tn.edu.tw的A記錄
> www.anjh.tn.edu.tw
DNS回應www.anjh.tn.edu.tw的A記錄為120.115.10.2
Server: 2001:288:7287::1
Address: 2001:288:7287::1#53
Name: www.anjh.tn.edu.tw
Address: 120.115.10.2
輸入【set type=aaaa】指定查詢AAAAA記錄
> set type=aaaa
輸入【www.anjh.tn.edu.tw】查詢www.anjh.tn.edu.tw的AAAA記錄
> www.anjh.tn.edu.tw
DNS回應www.anjh.tn.edu.tw的AAAA記錄為2001:288:7287::2
Server: 2001:288:7287::1
Address: 2001:288:7287::1#53
www.anjh.tn.edu.tw has AAAA address 2001:288:7287::2
※ 過程中若出現 ** server can't find表示輸入的查詢資料有誤或重新檢查DNS設定。
參考:
Bind9在9.3.2之前的版本,皆有安全之虞,至少有幾個已知的攻擊方式,建議利用暑假期間,
配合中心的研習將系統升級,避免不必要的資安事件。
建議在bind的named.conf的options中加入遞迴查詢限制及隱藏Bind版本,降低遭受攻擊的機會
參考設定如下 (163.26.100.0/24 為學校網段,請依照實際狀況做修改)
------------------------------------------------------------------------------------------------------------------------------------------------
acl "members" { 127.0.0.1; 163.26.100.0/24; };
options {
recursion yes; //啟用遞迴查詢服務
allow-recursion { members; }; //限制遞迴查詢服務範圍為members內的IP
version " "; //隱藏Bind版本,Bind9在9.3.2之前的版本,皆有安全之虞,至少有幾個已知的攻擊方式。
}
------------------------------------------------------------------------------------------------------------------------------------------------
若你使用miniserver或OB2D,那麼預設是有加入的(使用 acl allow_clients { …. }; view
“recursive” { …. };來限制),可以放心
若你的系統是Centos或舊版B2D:
B2D:請檢查你的/etc/bind/named.conf
CentOS:請檢查你的/var/named/chroot/etc/named.conf
於 options{ …. };中,加入
allow-recursion { 127.0.0.1/32; 120.116.126.0/24(學校網段); 2001:288:759d::/48; };
以上是範例,請勿照抄m(_ _)m,請將學校網段改成學校的IPv4與IPv6
清除查詢快取:
rndc flush
重新啟動dns
B2D:
service bind9 restart
CentOS:
service named restart
http://www.lijyyh.com/2012/07/dns-dns-server-security-management.html
防止dns的偽造來源UDP的攻擊 DNS FLOODING ATTACK
攻擊目標為各校DNS,利用DNS本身的特性,造成疊加的攻擊效果+ 利用udp偽造來源封包,借力使力攻擊別人。
防範:無有效的防範方法,無特效藥,一般防火牆和idp/ips無法阻擋。因此採用限制外部IP遞迴查詢(recursive queries),只允許內部使用遞迴查詢來防止。
[BIND]
在named.conf內options段加入這行,並寫入你們學校的ip。
allow-recursion { 163.17.x.0/24; 2001:288:54xx::/48; };
這樣只允許163.17.x.0/24及2001:288:54xx::/48可以進行遞迴查詢。但我在CentOS 4.x版(bind-9.2.4-38)發現外部來源的DNS查詢仍可以查到在DNS Cache中的的紀錄。
[Windows DNS Server]
學校有兩台以上dns,一台供外部查詢,另一台供內部使用,外部的dns限制僅供查詢校內的zone:
dnscmd <ServerName> /Config /NoRecursion {1|0}
外部(把所有的遞迴查詢全部停止):
dnscmd <ServerName> /Config /NoRecursion 1
windows 2003 DNS 設定:
dns > 主機上按右鍵 > 介面 > 接聽位址 > 只有下列 ip > 選擇適當的介面1個。
firewall 上設定只有自己網域可以連接介面ip 1。介面二 (ip 2)封掉連接權利。
以上方法無效,且造成網段連線不正常。不使用。
教育局資訊中心來信,ubuntu12及miniserver可作以下補強:
這是因應所謂DNS的放大攻擊的弱點檢測,大量查詢對伺服器即構成 DoS 攻擊,因此限制用戶查詢使用量(rate
limit)有其必要性,作法上可用 IPS 設備或 DNS 應用軟體的功能,限制單一 IP 位址在單位時間內最
大的查詢次數,藉此保護伺服器免於因某用戶不當使用或中毒等而進行大量查詢 。
這個攻擊目前尚未發現,不過,先做好預防是上策
目前可以使用 DNS response rate limiting的軟體對 DNS 伺服器進行保護,但需為9.9.2的版本以上方支援,ubuntu 12.04 官方只到9.8.1,所以無此參數,不過,ubuntu有ppa套件,所以可以解決的
如果學校使用ubuntu12.04或miniserver,都可以依照以下方式進行升級bind與參數設定
vi /etc/apt/sources.list
加入這兩行
-------------------------------------------
deb http://ppa.launchpad.net/malcscott/bind9.9/ubuntu precise main
deb-src http://ppa.launchpad.net/malcscott/bind9.9/ubuntu precise main
-------------------------------------------
安裝:
sudo add-apt-repository ppa:malcscott/bind9.9
apt-get update
apt-get install bind9
檢查:(升級為9.9.4)
dpkg -l | grep bind9
ii bind9 1:9.9.4-retrosnub1 Internet Domain Name Server
設定bind9
vi /etc/bind/namd.conf
--------------------------------------------------
options {
directory "/etc/bind";
rate-limit {
responses-per-second 5;
};
listen-on-v6 { any; };
version "Unknown";
};
--------------------------------------------------------------
重啟服務:
sudo service bind9 restart
測試:
while true; do dig @[你的dnsip] +noignore +short +tries=1 +time=1 www.tn.edu.tw A; done
163.26.1.2
163.26.1.2
163.26.1.2
163.26.1.2
163.26.1.2
;; connection timed out; no servers could be reached
163.26.1.2
163.26.1.2
163.26.1.2
;; connection timed out; no servers could be reached
有看到;; connection timed out; no servers could be reached就表示伺服器已建置限制使用量保護