交通大學計算機與網路中心 陳 昌 盛 cschen@cc.nctu.edu.tw 網域名稱伺服系統 (DNS) 規劃與建置 交通大學計算機與網路中心 陳 昌 盛 cschen@cc.nctu.edu.tw TANet DNS Tutorial Course, 88.12.15
1999 TANet DNS Tutorial Course DNS 入門簡介 (p.3) DNS 建置與規劃 (p.20) DNS 設定範例與解說 (p.28) DNS 系統本身的安全問題 (p.54) DNS 系統個案研究 (p.63) 附錄 (p.69)
0. 從何處取得DNS 系統的相關資訊 ? DNS Resource Directory http://www.dns.net/dnsrd http://dnsrd.nctu.edu.tw ( 中文) the O’Reilly DNS bible ‘DNS and BIND’ 第 3 版已出書, 有介紹 BIND 8.x DNS related RFC ( Request For Comments ) RFC 1033, 1034, 1035, ..., 1912, ... Newsgroups: ‘comp.protocols.tcp-ip.domains’ ( 行政管理) comp.protocols.dns.* ( 技術)
1. DNS 入門 (1.0) 什麼時候會用到 DNS 系統 ? (1.1) DNS 系統的做用 (1.2) DNS 實務操作及應用 往外連線時 (out-going 連線) 存取檢查, 系統記錄 (incoming 連線) (1.1) DNS 系統的做用 定義網域名稱 提供網域名稱查詢 (1.2) DNS 實務操作及應用
Fig 1 一般 DNS 查詢 Q: www.edu.tw R: 163.28.1.20 Dl: local DNS server Dr: remote DNS server 1(Q) 140.113.7.123 D1 4(R) Dr 3(R) 2(Q) 140.113.1.1 140.111.1.20
1.1.1 定義網域名稱 網域授權 (domain zone -> NS RR) 1.1.1 定義網域名稱 網域授權 (domain zone -> NS RR) 網域名稱 ( domain name -> A RR) telnet bbs.cis.nctu.edu.tw 電子郵件交換 ( mail exchange -> MX RR) mail cschen@cc.nctu.edu.tw 網址對應 (pointer -> PTR RR) 140.113.1.1 -> ns1.nctu.edu.tw 常用別名 (alias naming -> CNAME RR) proxy.nctu.edu.tw -> wproxy1.nctu.edu.tw 其他功能
網域名稱系統(Domain Name System) 網域名稱系統, 按英文常簡稱 DNS 系統. DNS 系統, 概分成三個部份 網域空間 (Domain Name Space ) 網域名稱伺服系統 (Domain Name Server) BIND/named, ... 網域名稱解譯程式 (Domain Name Resolver) DNS 相關程式 client(用戶端), agent(代理查詢), server(伺服器)
網域空間(Domain Name Space) 分散式 與 階層式 的組織架構 tree-structure vs. DAG-structure 地理區域 與 功能組織 的分類組合方式 正解網域 (forward domain zones): ‘tw’, ‘edu.tw’, ... 反解網域 (reverse domain zones): ‘113.140.in-addr.arpa’, ‘1.113.140.in-addr.arpa.’, ...
. Fig.2 DNS 運作基本架構圖 root servers gov, mil . . . INT tw Arpa com, org,net cn,hk,.. NSAP IP6 gov,mil in-addr net edu org 203 192 . .. com 140 www ncku nctu 113 hc hgsh 127 ee 114 cc nehs cis ... ns1 6 hchs 250 bbs ... mail www .. ccserv2 2 ccserv2.cc.nctu.edu.tw <=> 140.113.6.2 Fig.2 DNS 運作基本架構圖
1.1.2 DNS - 提供查詢 DNS 查詢 (query) DNS server (伺服系統) DNS caching iterative mode (往復式 ; referral) recursive mode (遞迴式 ) DNS server (伺服系統) primary/master (原始資料 server) vs secondary/slave caching, forwarder (查詢轉送) DNS caching Time-To-Live (TTL; 資料有效期限) positive caching(正確資料) vs negative caching
DNS - 提供網路查詢(續) 資料項 round-robin mode (輪流) load sharing/balancing round-trip-time ( RTT; 來回傳送時間) reverse pointer query (IP addr. 反解查詢) inverse query ( 廣義反向查詢)
1.2 DNS 實務操作及應用 Domain Zone 的註冊與授權 DNS 上容易有錯誤觀念與設定的地方 forward / reverse domain zones Primary/master; Secondary/slave DNS server DNS 上容易有錯誤觀念與設定的地方 電子郵件轉接轉送(Mail Relay)服務 Anti-SPAM checking ( access control) 正反解 DNS 資料項, 必須匹配 DNS 查詢轉送 (forwarders; 參見 3.2.2 )
1.2.1 正解 Domain Zone 註冊問題 nctu.edu.tw ( 到 MOECC 登記) csie.nctu.edu.tw ( 到 NCTU-CC 登記) ck.tp.edu.tw (臺北建國高中) 直接由 MOECC 負責 (edu.tw) thps.hc.edu.tw ( 新竹市載熙國小) hc.edu.tw 目前由新竹市教育網路中心負責
1.2.2 反解 Domain Zone 註冊問題 140.113 ( Class B; 透過 MOECC 向 InterNIC 註冊) 192.83.166 ( 個別 class C ) 透過 MOECC 到 InterNIC 註冊) 203.68.12 ( class C; 到 MOECC 註冊) 203.68 ( 整批 class C 到 APNIC 註冊)
1.2.3 DNS server 的網址選定 $Origin NCTU.edu.tw. @ IN NS ns.nctu.edu.tw. IN NS ns3.nctu.edu.tw. ; TANet 骨幹 ; ns IN A 140.113.250.135 ns1 IN A 140.113.1.1 ; 指定 x.y.z.1 ns2 IN A 140.113.6.2 ns3 IN A 163.28.64.246 ; 高速專用道
1.2.4 容易有錯誤觀念與設定的地方 $Origin NCTU.edu.tw. nctu.edu.tw. IN NS ns.nctu.edu.tw. ; domain zone ==> dig @ns.nctu.edu.tw www.edu.tw nctu.edu.tw. 7200 IN A 140.113.1.1 ; domain name ==> telnet nctu.edu.tw nctu.edu.tw. IN MX 0 ns1.nctu.edu.tw. ; mail exchange ==> E-mail: cschen@nctu.edu.tw ;------------------------------------------------------------------------- nctu.edu.tw. IN NS nctu.edu.tw.
1.2.5 Mail Relay 的相關設定 DNS side : Mail relay server side: cc.nctu.edu.tw. IN MX 10 ccserv6.cc.nctu.edu.tw. ; mail relay ==> 宜善加利用, 可作為“備援與轉接”之用 cc.nctu.edu.tw. IN MX 20 m-relay.nctu.edu.tw. ; 高速專用道 (MOECC) ;cc.nctu.edu.tw. IN MX 30 relay.edu.tw. Mail relay server side: 轉接系統 (relay access permission) 借道權限, 必須打開 (sendmail.cf) ==> m-relay.nctu.edu.tw + relay.edu.tw
1.2.6 Anti-SPAM checking (DNS entry 正反解必須匹配) domain name 驗證流程. reverse forward IP addr. A ---------> domain name B ---------> IP addr. C Fig. 3 anti-SPAM checking 圖示 其中, IP addr. C (可能是一個 group), 必須包含或等於 A 才算通過 DNS 查驗.
DNS 系統新設計的功能 (部份已完成實作) New DNS RR (rfc 1183) RP, AFSDB, ISDN, X25, RT resolver implicit search problem (rfc 1535) LOC (rfc 1876) IPv6 ( rfc 1886) AAAA (new record type), IP6.INT (new domain top ) incremental zone transfer IXFR ( rfc 1995 ) DNS notify (rfc 1996) -> BIND_NOTIFY SRV (rfc 2052) Secure Zone Dynamic update ( IP/host )
2. DNS Server Hosts 配置與規劃 主機系統選擇 ( platform/OS ) Unix , Windows NT, OS/2, ... ( 現階段, 仍以 Unix 為佳 ) 硬體設備需求 主要 memory size, 原則是 named 將 90% 以上的 dns query 放在 RAM 中 caching 起來, 不需用到 swap. 系統軟體 ( BIND/named, ... ) 網路位址 (多重 servers) primary/secondary server host 分離, 放在不同的網路區段, 當然如果能放在不同單位, 通常更好.
2.1 關於 BIND 的許多資訊 有沒有 Windows 下的版本 ? 目前最新版本 8.2.2-P5 (1999.11.12) 4.9.7 ( 舊式 ); BIND 8.x ( 新式) 如何得知系統上的 named 版本 ? 不同版本 BIND 之間功能差別 ? 有沒有 Windows 下的版本 ? DNS/BIND Security 問題
BIND ( Berkeley Internet Name Domain ) Standalone Daemon ( named ) UDP/TCP port 53 UDP query/response ( < 512 bytes ) TCP response(>512 bytes) + zone transfer DNS message format Question/Answer section Authority section Additional section example --> dig output
2.1.1 如何得知系統上的 named 版本 ? 通常可以這麼作. 1) 確定 named program 的 pathname. e.g. /etc/named, /usr/sbin/in.named, ... 作法: 使用 which, find, ... -- 2) 用 what 配合 grep 找出相關字串 % what /usr/sbin/named | grep named named: named 8.1.1 Thu Jun 26 15:03:59 EAT 1997 root@ns:/home/DNS/bind-8.1.1-REL/src/bin/named
2.1.2 不同版本 BIND 之間功能的差別 ? V8.x 整套程式 , 重新改寫 /etc/named.boot (v4) -> /etc/named.conf ( v8) zone transfer ( named vs named-xfer ) no more fork for each AFXR jobs ( for v 8.1.X and later ) BIND 4.9.7/8.1.2 與先前版本的重大差異 新的功能 negative caching bind_notify, IPv6 support, RFC 1535 compliant, ...
2.2 從何處取得 BIND 原始程式? BIND home at the ISC NCTUCCCA FTP sites http://www.isc.org/bind.html ftp://ftp.isc.org/isc/bind/* NCTUCCCA FTP sites ftp://ftp.nctu.edu.tw/packages/networking/bind/*
2.3 DNS/BIND Security 問題 BIND 最新的正式版本 8.2.2-P5 1999.11.12 (released) BIND/named Security issues Buffer overflow 與 CNAME bug 等嚴重問題 參考 CERT 相關網頁報告 ( CERT Advisory ) http://www.cert.org http://dnsrd.nctu.edu.tw/Tech/cert.html Upgrade 到最新版本
2.4 DNS/BIND 與 y2k DNS server host 系統軟體部分 進行系統 y2k 實機測試 分散系統 e.g., Solaris 7, FreeBSD 3.2-stable 系統軟體部分 BIND 8.2 is y2k-compliance http://www.isc.org/ISC/y2k.html DNS server y2k conformance testing
3. DNS 設定範例與說明 BIND server options /etc/named.boot 設定範例 /etc/named.conf (V8.x) 自動轉換程式 named-bootconf.pl zone data files 設定範例 /etc/resolv.conf ( resolver) 設定範例 參見 http://dnsrd.nctu.edu.tw 上的範例
3.1 DNS Server Options primary/master vs. secondary/slave caching only server forwarders ( slave server) recursive vs. non-recursive
3.1.2 DNS server list of “NCTU.edu.tw “ master/slave server 的差別 ? 如何分工 ? 目前 domain zone “NCTU.edu.tw” 登記有 4 個 DNS servers (*) ns.nctu.edu.tw / 140.113.250.135 (primary/master) ns1.nctu.edu.tw / 140.113.1.1 (secondary/slave) ns2.nctu.edu.tw / 140.113.6.2 (secondary/slave) ns3.nctu.edu.tw /163.28.64.246 (臨時增加) master/slave servers 最好分佈在不同的 sub-nets
3.2 DNS Server Options -- /etc/named.conf (新版; v8.x) check-names master fail; check-names slave fail; // default warn directory "/var/named"; fake-iquery yes; // default warn forwarders { 163.28.1.103; 139.175.55.244; }; }; zone "." { type hint; file "named.root"; }; // cache root.cache zone "localhost" { type master; file "Localhost” }; zone "0.0.127.IN-ADDR.ARPA" { type master; file "Rev-127.0"}; zone "HC.edu.tw" { type slave; file "sec/zone-HC.edu.tw"; masters {140.113.250.135; }; }; zone "237.126.140.IN-ADDR.ARPA" { type slave; file "sec/R-140.126.237"; masters {140.113.250.135;}; };
-- /etc/named.boot (v4.x) DNS Server options 3.2 DNS Server Options -- /etc/named.boot (v4.x) ; type domain source file or host ;------------------------------------------------------------------------------------- directory /var/named ; cache . named.root primary localhost Localhost primary 0.0.127.IN-ADDR.ARPA Rev-127.0 ; [ 省略 ] primary NCTU.edu.tw Zone.NCTU secondary ADM.nctu.edu.tw 140.113.2.1 Zone.ADM primary CC.nctu.edu.tw Zone.CC ; [ 省略 ] . . . primary 113.140.IN-ADDR.ARPA R-140.113 primary 1.113.140.in-addr.arpa. R-140.113.1 secondary 2.113.140.in-addr.arpa. 140.113.2.1 R-140.126.2
DNS Server options 3.2.1 Caching Only Server -- /etc/named.boot directory /var/named ; cache . named.root ; BIND 4.9.x & later check-names primary fail ; default fail check-names secondary fail ; default warn ;check-names response fail ; default ignore ; [ 省略 ] primary localhost Localhost primary 0.0.127.IN-ADDR.ARPA Rev-127.0 primary 0.IN-ADDR.ARPA Rev-0 primary 255.IN-ADDR.ARPA Rev-255 ; [ 省略] options fake-iquery
3.3 Domain Zone files 設定 Basic DNS Resource Record Types SOA, NS, A, PTR, CNAME, MX TXT, WKS, HINFO RP, AFSDB, AAAA ( IPv6) , LOC, SRV, ...
3.3.1 Special Symbols on DNS database Special Symbols for defining the DNS database “@”, current origin “*,” wildcard ( only for some of the types ) “ . ” , root domain & domain separator “ ; ” , for comment lines “( )”, grouping data which crossing a line --> only work for SOA RR (now) “\X”, --> escape character ; “\@” “\DDD”, octal number ; -> “\345”
3.3.2 SOA ( Start Of Authority ) RR ;; for forward/reverse Domain Zones. ;;----------------------------------------------------------------------------------- @ IN SOA ns.NCTU.edu.tw. hostmaster.nctu.edu.tw. ( 1997090200 ; Serial number 86400 ; Refresh - 1 days 1800 ; Retry 1728000 ; Expire - 20 days 259200 ) ; Minimum TTL - 3 days ;;------------------------------------------------------------------------------------ IN NS NCTU.edu.tw. IN NS ns.NCTU.edu.tw. ; primary / master IN NS ns2.nctu.edu.tw. ; localhosts. IN A 127.0.0.1 ; forward case ;; 1 IN PTR localhost. ; reverse case
3.3.3 Domain Zone delegation (授權) -- NS (Name Server) RR ; forward domain zones (正解) ;------------------------------------------------------------------ ; 上下兩層 “NCTU.edu.tw” & “CSIE.NCTU.edu.tw” 的設定檔, ; 都應該有對應的 Name Server 記錄項目 ( NS RR ) ;----------------------------------------------------------------- $ORIGIN CSIE.NCTU.edu.tw. @ IN NS csie.nctu.edu.tw. ; FQDN IN NS operator IN NS ccsun7 ; hostname ;; Glued Records csie.nctu.edu.tw. IN A 140.113.17.171 IN A 140.113.209.171 operator IN A 140.113.209.1 ccsun7 IN A 140.113.17.6
NS RR (2) -- reverse domain (反解) ;上下兩層 “113.140.in-addr.arpa.” & “23.113.140.in-addr.arpa” 的 ; 設定檔, 都應該有對應的 Name Server 記錄項目 ( NS RR ) ; domain zone “23.113.140.in-addr.arpa” [ A] $ORIGIN 113.140.in-addr.arpa. 23 IN NS cisserv.CIS..nctu.edu.tw. IN NS cissol1.CIS.nctu.edu.tw . ; No Gluded Records ; domain zone “23.113.140.in-addr.arpa” [ B] $ORIGIN 23.113.140.in-addr.arpa. @ IN NS cisserv.cis.nctu.edu.tw. IN NS cissol1.cis.nctu.edu.tw.
NS RR (3) - 錯誤示範 * RFC 1034,1035,1912 ; case 1 -> 任意指定 2nd NS RR ( 常犯錯誤) ;-------------------------------------------------------- $Origin NCTU.edu.tw. err1 IN NS ns-OK.NCTU.edu.tw. IN NS No-named-Host.NCTU.edu.tw. ; Lame IN NS moevax.edu.tw. ; 誤設 ; case 2 -> NS 指到一個 alias ( CNAME ), intermittent error ;----------------------------------------------------- $Origin 200.113.140.in-addr.arpa. err2 IN NS alias-ns.NCTU.edu.tw. ; 間些性 error IN NS ns-OK.NCTU.edu.tw.
NS RR (4) -- 錯誤示範 * RFC 1034,1035,1912 ; case 3 -> NS 指到一個 IP address ;------------------------------------------- $Origin NCTU.edu.tw. err3 IN NS 140.113.1.1 ; 應為 fqdn/hostname ; case 4 -> NS 指到一個不存在的機器 ; $Origin 200.113.140.in-addr.arpa. err4 IN NS Non-existent.NCTU.edu.tw. IN NS ns-OK.nctu.edu.tw.
NS RR (5) --> Lame Servers * RFC 1034,1035,1912 ; case 5 -> 上一層有額外指定 2nd NS RR ( 常犯錯誤) ; 但對應的 entry, 卻不在下一層中. ;------------------------------------------------------------------ $Origin NCTU.edu.tw. err5 IN NS ns-OK.NCTU.edu.tw. IN NS No-Good-ns.NCTU.edu.tw. ; 上一個 NS entry ,下一層domain 中, 未定義 ; $Origin err5.NCTU.edu.tw. @ IN NS ns-OK.nctu.edu.tw. IN NS ns2-OK.nctu.edu.tw. ; It’s Ok ! 雖然, 上一層沒有對應的 NS RR ; 用途, inside firewall, ...
3.3.4 A (Address) RR ; 一個 IP addr. , 但同時有多個 FQDN $Origin NCTU.edu.tw. @ IN A 140.113.1.1 ; nctu.edu.tw. ns1 IN A 140.113.1.1 ; ns1.nctu.edu.tw. ; www IN A 140.113.250.5 ; 一個 FQDN, 但有好幾個對應的 IP addr. $Origin CSIE.nctu.edu.tw. @ IN A 140.113.17.171 ; multi-homed IN A 140.113.209.171
A RR -- 錯誤示範 (1) ; zone file “NCTU.edu.tw” ;---------------------------------- $Origin NCTU.edu.tw. ( 往下授權 ) ; CIS IN NS CisServ.CIS.nctu.edu.tw. IN NS CisSol1.CIS.nctu.edu.tw. CisServ.CIS IN A 140.113.23.1 ; glued record CisSol1.CIS IN A 140.113.23.101 err-A.CIS IN A 140.113.23.254 ; 無效的設定 ; zone file “CIS.nctu.edu.tw” $Origin CIS.nctu.edu.tw. CIS-gw IN A 140.113.23.254 ; OK
A RR -- 錯誤示範 (2) $Origin NCTU.edu.tw. @ IN NS nctu.edu.tw ; IN A 140.113.1.1 ; OK ; IN NS ns2.nctu.edu.tw. IN A 140.113.6.2 ; invalid ; 這行有 語意問題, nctu.edu.tw -> 140.113.6.2 ; It might induce some mail routing problem(s). IN NS ns.NCTU.edu.tw. ns IN A 140.113.250.135
3.3.5 PTR (Pointer) RR ; zone file “113.140.in-addr.arpa” $Origin 113.140.in-addr.arpa. 1 IN NS ns.nctu.edu.tw. IN NS ns2.nctu.edu.tw. .[ 省略] ; 140.113.254.9 9.254 IN PTR CSIE-gw.nctu.edu.tw. ;-------------> 上下兩 file 分開 <----------------------- ; zone file “1.113.140.in-addr.arpa” $Origin 1.113.140.in-addr.arpa. @ IN NS ns.nctu.edu.tw. .[省略] 1 IN PTR NCTU.edu.tw. 110 IN PTR moesun.NCTU.edu.tw.
3.3.6 MX ( Mail eXchange) RR IN MX 0 ccserv6 ; hostname ;;------------------------------------------------------------------ ;; for both normal mail exchange & mail relay ;; --> DNS & Sendmail ;;----------------------------------------------------------------- $ORIGIN CC.NCTU.edu.tw. ; mail exchange @ IN MX 0 CC.nctu.edu.tw. ; FQDN IN MX 0 ccserv6 ; hostname ; mail relay IN MX 20 mx.NCTU.edu.tw. ; mx wildcarding; must be used very carefully * IN MX 0 cc.nctu.edu.tw. ; Dis-couraged
MX RR (2) ; Zone file for domain <NCTU.edu.tw > $Origin NCTU.edu.tw. news IN MX 0 news.cc.nctu.edu.tw. ; FQDN . . . ; news IN A ??? ; No such records ;; < another zone data file > $Origin cc.NCTU.edu.tw. @ IN MX 0 CC.nctu.edu.tw. . . . cc.nctu.edu.tw. IN A 140.113.6.2
3.3.7 CNAME (Canonical NAME) RR ; zone file 1 $Origin NCTU.edu.tw. ; netnews IN CNAME news2.nctu.edu.tw. ; fqdn ; zone file 2 $Origin EDU.tw. ftp IN CNAME nctuccca ; hostname ; zone file 3 $Origin TWNIC.net. archie IN CNAME nctuccca.edu.tw
CNAME RR-- 常見錯誤實例 (1) $Origin NCTU.edu.tw. ; case 1 -> cname looping cname-chain IN CNAME cname-chain.nctu.edu.tw. ; case 2 -> ns-cname chaining ( 不能用 alias ) err-ns IN CNAME ns-OK.NCTU.edu.tw. ; FQDN err6 IN NS err-ns.NCTU.edu.tw. ; alias
CNAME RR-- 常見錯誤實例 (2) $Origin NCTU.edu.tw. ; case 3 -> mx-cname chaining 連鎖 (不能用 alias ) err-mail IN CNAME mx-host.nctu.edu.tw. err-mx-zone IN MX 10 err-mail.NCTU.edu.tw. ; case 4 -> cname-cname chaining ( 不宜; 雖然現在可以用) alias1 IN CNAME host1.NCTU.edu.tw. ; FQDN alias2 IN CNAME alias1.NCTU.edu.tw. ; alias
3.4 Resolver related Configuration - /etc/resolv.conf ; comment lines # another comment <- Not supported by ALL domain local-domain search search-list nameserver server-address sortlist sort-list options option-list
3.4.1 Resolver related Configuration (2) - - /etc/resolv.conf ; domain & Search Directives are mutual exclusive ; search CC.nctu.edu.tw NCTU.edu.tw CSIE.nctu.edu.tw ; domain nctu.edu.tw ; 最多 3 個 nameserver nameserver 140.113.1.1 nameserver 140.113.250.135 nameserver 140.113.17.171
3.4.2 Implict search problem (RFC 1535) - mbox@xyz.edu.cn non RFC 1535 compliant (before V 4.9.3) mbox@xyz.edu.cn.CC.NCTU.EDU.TW. mbox@xyz.edu.cn.NCTU.EDU.TW mbox@xyz.edu.cn.EDU.tw mbox@xyz.edu.cn.TW mbox@xyz.edu.cn RFC 1535 compliant mbox@xyz.edu.cn.CC.NCTU.EDU.TW another example - mbox@mit.edu.tw vs mbox@mit.edu
4. Network/System Security & DNS 了解問題 問題回報及追蹤 解決問題
4.1 常見的網路攻擊型態 Denial-of-Service Intrusion (電腦與網路入侵) Information Theft ping ( system bug ) SPAM E-mail/NetNews, ... Intrusion (電腦與網路入侵) Trojan Horse ( BO, NetBus, ...) computer virus Information Theft Trojan Horse ( BO, NetBus, … 遙控程式)
4.2 DNS 設定與入侵嘗試 特定對象的入侵 尋找不特定的入侵對象 DNS zone transfer 設限 buffer overflow 等系統問題 尋找不特定的入侵對象 forward & reverse domain zone scanning DNS zone transfer 設限 阻擋不特定的目標搜索
4.3 DoS Network Attack via DNS DNS 放大攻擊 ( DNS ACL) 假造 IP 封包 ( Router ACL) http://dnsrd.nctu.edu.tw/Tech/cert.html 紓緩之道 個別 DNS 設限 http://dnsrd.nctu.edu.tw/Named-Conf/named.conf-c
Fig 4 經由 DNS 的網路流量放大攻擊 Q: zone transfer Dn: n 是一個很大數目 A: 攻擊者 ( Attacker) Q(1) Q(n) D1 D2 Dn R(1) R(2) R(n) V: 被攻擊者 ( Victum)
4.3.1 DNS server 設限 BIND 8.x /etc/named.conf 的相關片段 // 省略 options { directory /var/named; allow-transfer { none; // 原則上, 阻擋所有 不相干的 zone transfer }; allow-query { Trusted-IP}; // 僅允許鄰近地區的使用者 // 省略 zone “nctu.edu.tw” { type master ; file “Zone-NCTU” ; allow-query { any; }; allow-transfer { 140.113.1.1; 140.113.6.2; // 允許 slave/secondary server zone “113.140.in-addr.arpa” { ….
4.4 Mail SPAM & DNS SPAM Mail <=> UCE/UBE (不請自來) UCE/UBE 散佈途徑 UCE = Unsolicited Commercial E-mail UBE = Unsolicited Bulk E-Mail UCE/UBE 散佈途徑 名單收錄 www homepage, USENET news articles account password files on individual servers 其他不當途徑 ( program bug, 招募會員活動, …) 找尋管理較鬆散的 mail relay Domain Zone scanning ( DNS) URL scanning (web pages )
4.4.1 Anti SPAM Mail & DNS ACL SMTP server upgrade/patch DNS 設ACL 限定 mail relaying 對象 DNS 設ACL 可相當程度阻擋不特定的 relay 嘗試 系統管理人員介入 聯絡相關系統的管理人員 rbl 建立 (Real-time Block List )
4.5 問題處理與追蹤 Security 問題回報及反應 各單位聯絡 e-mail address (Internet 慣例) 向相關單位報備及追蹤問題 向相關 CERT 報備及追蹤問題 各單位聯絡 e-mail address (Internet 慣例) postmaster@your-domain-zone abuse@your-organization,security@your-organization 例如, postmaster@nctu.edu.tw, abuse@seed.net.tw
5. DNS 設定個案研究 mbox@xyz.com.tw 轉到 德國某公司 WINS 與 DNS 搭配問題 前幾年有 BBS/Mail, 戲稱要暗殺美國總統柯林頓 未即時處理, 引起軒然大波. mbox@xyz.com.tw 轉到 德國某公司 本地公司設定錯誤 回報到該公司, 該國的 CERT, 以及TWNIC WINS 與 DNS 搭配問題 網路攻擊的中途站(1999.08) TANet 竹苗區網某校的 DNS server 被入侵
5.1 DNS & Mail - 烏龍事件 成因 舊版 BIND/named 有 bug 系統管理人員觀念不夠清楚 前幾年,有德國X公司反應, 持續不斷接收到, 許多應該是寄往台灣Y公司的 e-mail, 卻一直被轉往該公司. 因為收信的帳號不存在, 系統於是一直產生, user 不在的退信, 持續往系統管理信箱塞, 信件越累積越多, 導致server performance 大受影響. 由於該公司並無台灣分公司, 也找不出合理的解釋, 於是開始擔心有台灣的競爭對手, 想癱瘓他們網路的正常運作, 接下來只好採取正式的防衛行動, 透過正式的 CERT 向相關單位反應, ... 成因 舊版 BIND/named 有 bug 系統管理人員觀念不夠清楚 系統管理人員輸入資料時, IP address 打錯
5.1 DNS & Mail - 烏龍事件(續) 示意範例 $origin xyz.com.tw. 底下 IP address 與 domain name 都是隨意假定 這個 server 上的 BIND/named 有 bug $origin xyz.com.tw. Xyz.com.tw. IN MX 10 mail.xyz.com.tw. Xyz.com.tw. IN MX 10 mail.ABC.net.tw. ; 錯誤 Mail.xyz.com.tw. In A 192.168.123.45 mail.ABC.net.tw. IN A 139.75.6.78 ; 設定錯誤 ;mail.ABC.net.tw. IN A 139.175.6.78 ;台灣 ;mserver.ZYX.de IN A 139.75.6.78 ;德國
5.2 WINS 與 DNS WINS 設定不當, 導致大量消耗可用頻寬 啟動 Negative Caching 功能 實例,過去 TANet 竹苗區網某一學校, 曾經發生 http://www.edu.tw (MOECC newsletter, 參考 8801-8806 期 ) 儘量避免使用 啟動 Negative Caching 功能 自我保護 避免拖累網路大環境 請Upgrade 到最新版本 ( BIND 8.x 以後) 內建 Negative Caching
5.3 竹苗區網 DNS server 入侵事件 某校在區網的網域, 登錄有兩個 DNS server 該 server-A 有 security hole, 被外來者闖入 入侵者, 持續透過該 server-A, 嘗試入侵國外網站 網域上層, 持續收到國外不同地方轉來的抱怨與求助 e-mail 電話通知該校管理者處理. 後來轉維護廠家工程師. 將近一週, 仍無改善. 區網接手, 協助處理. 設 tcp_wrapper, 擋掉不明來源的連線.
5.4 DNS 與相關系統管理 結論 各網域必須落實設立兩個以上 DNS server 重要 server 勤作 security patch DNS 設 ACL, 限制 zone transfer 委外廠商維護能力, 意願與合約
6. 附錄 Debugging 偵錯工具使用與 Chinese Big5 DNS Resource Directory
6.1 DNS Debugging Tools nslookup ( default built-in on most systems ) dig host ( zone transfer ) dnswalk, doc ( PERL scripts ) Misc utility programs $BIND-src/contrib/* http://dnsrd.dns.net/dnsrd
6.1.1 DIG output ns1% dig cis.nctu.edu.tw ns ;; res options: init recurs defnam dnsrch ;; got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6 ;; flags: qr rd ra; Ques: 1, Ans: 2, Auth: 0, Addit: 2 ;; QUESTIONS: ;; cis.nctu.edu.tw, type = NS, class = IN ;; ANSWERS: cis.nctu.edu.tw. 86400 NS cisserv.cis.nctu.edu.tw. cis.nctu.edu.tw. 86400 NS cissol1.cis.nctu.edu.tw. ;; ADDITIONAL RECORDS: cisserv.cis.nctu.edu.tw. 86400 A 140.113.23.1 cissol1.cis.nctu.edu.tw. 86400 A 140.113.23.101 ;; Total query time: 8 msec ;; FROM: ns1 to SERVER: default -- 140.113.1.1 ;; WHEN: Wed Sep 17 11:44:04 1997 ;; MSG SIZE sent: 33 rcvd: 109
6.1.2 nslookup 工具程式使用與介紹 (1) 1. nslookup 程式功能列表 ( 參見附錄) 2. 奇怪的 nslookup output 3. 某 domain name, A RR 查詢 (正常; FQDN -> IP addr. ) 4. 某 domain name, PTR RR 查詢 (正常; IP addr. -> FQDN ) 5.某 domain name, CNAME RR 查詢 (正常; CNAME -> FQDN/IP addr. )
6.1.2 nslookup 工具程式使用與介紹 (2) 6. 某 domain name, MX RR 查詢 (正常; MX -> FQDN/IP addr. ) 7. 某 domain zone 的 SOA RR 的查詢 (正常) 8. 某 domain zone 的 NS RR 的查詢 (正常) 9. 對某 domain zone 進行 zone transfer (正常;debug)
<2>. 奇怪的 nslookup output } 本校的dns 主機是 sun os 4.1.3 ip 203.68.38.1 } 而我的主機是 solaris 2.5.1 ip 203.68.38.2 } /etc/resolv.conf 設定如下 } domain tlhc.ylc.edu.tw } nameserver 203.68.38.1 } nameserver 140.111.1.2 } 而本人在sun sparc solaris 輸入nslookup, 均會顯示如下訊息 # nslookup > *** Can't find server name for address 203.68.38.1 : Non...... > Default Server : moevax.edu.tw > Address: 140.111.1.2
<3>. domain name的 A RR 查詢 (1) # nslookup Default Server: ns.NCTU.edu.tw Address: 140.113.250.135 > netnews.nctu.edu.tw. ; 內定 query type, FQDN --> IP addr. Server: ns.NCTU.edu.tw Name: news2.nctu.edu.tw <-- 這筆資料, 完全由本 DNS server 負責提供 Address: 140.113.4.120 ( or 經由網路查詢而來 ) Aliases: netnews.nctu.edu.tw > # exit
<3>. domain name, A RR 查詢 (2) # nslookup Default Server: ns.NCTU.edu.tw Address: 140.113.250.135 > news.edu.tw. Server: ns.NCTU.edu.tw Non-authoritative answer: <-- 如果出現這行, 則表示, 取自 named cache Name: news.edu.tw || 原始答案, 由其他負責 DNS server 處得來 Address: 192.83.166.5 > # exit
<4>. domain name, PTR RR 查詢 (1) % nslookup Default Server: ns.NCTU.edu.tw Address: 140.113.250.135 > set type=ptr ; 設定 query type, PTR --> FQDN > 5.250.113.140.in-addr.arpa. ; 反解(倒著寫) reverse domain entry Server: ns.NCTU.edu.tw 5.250.113.140.in-addr.arpa name = www.nctu.edu.tw 250.113.140.IN-ADDR.ARPA nameserver = nctu.edu.tw 250.113.140.IN-ADDR.ARPA nameserver = ns.nctu.edu.tw 250.113.140.IN-ADDR.ARPA nameserver = ns2.nctu.edu.tw nctu.edu.tw internet address = 140.113.1.1 ns.nctu.edu.tw internet address = 140.113.250.135 ns2.nctu.edu.tw internet address = 140.113.6.2 > % exit
<4.> domain name, PTR RR 查詢 (2) -- ( 幾乎除了 SunOS 4.x 以外) % nslookup Default Server: ns.NCTU.edu.tw Address: 140.113.250.135 > 140.113.250.5 ; 自動 轉成 5.250.113.140.in-addr.arpa. Server: ns.NCTU.edu.tw 5.250.113.140.in-addr.arpa name = www.nctu.edu.tw 250.113.140.IN-ADDR.ARPA nameserver = nctu.edu.tw 250.113.140.IN-ADDR.ARPA nameserver = ns.nctu.edu.tw 250.113.140.IN-ADDR.ARPA nameserver = ns2.nctu.edu.tw nctu.edu.tw internet address = 140.113.1.1 ns.nctu.edu.tw internet address = 140.113.250.135 ns2.nctu.edu.tw internet address = 140.113.6.2 > % exit
<5>. domain name, CNAME RR 查詢 (1) # nslookup Default Server: ns.NCTU.edu.tw Address: 140.113.250.135 > proxy.nctu.edu.tw ; 使用內定的 query type Server: ns.NCTU.edu.tw Name: w3-proxy.nctu.edu.tw ; w3-proyx 為 Canonical name. Address: 140.113.250.130 ; alias --> FQDN/IP addr. Aliases: proxy.nctu.edu.tw ; 發現本 domain entry 為 alias name. > # exit
<5>. domain name, CNAME RR 查詢 (2) # nslookup Default Server: ns.NCTU.edu.tw Address: 140.113.250.135 > set type=any ; 第 2 種方法, query type 設成 ANY > proxy.nctu.edu.tw. ; 列出, 所有相關記錄 ( RR ) Server: ns.NCTU.edu.tw proxy.nctu.edu.tw canonical name = w3-proxy.nctu.edu.tw nctu.edu.tw nameserver = nctu.edu.tw nctu.edu.tw nameserver = ns.nctu.edu.tw nctu.edu.tw nameserver = ns2.nctu.edu.tw nctu.edu.tw internet address = 140.113.1.1 ns.nctu.edu.tw internet address = 140.113.250.135 ns2.nctu.edu.tw internet address = 140.113.6.2 > # exit
<6>. domain name, MX RR 查詢 % nslookup [省略] > set type=mx ; 設定 query type > cc.nctu.edu.tw. ; MX RR -> FQDN/IP addr. Server: ns.NCTU.edu.tw Address: 140.113.250.135 cc.nctu.edu.tw preference = 0, mail exchanger = cc.nctu.edu.tw cc.nctu.edu.tw preference = 0, mail exchanger = ccserv6.cc.nctu.edu.tw cc.nctu.edu.tw preference = 5, mail exchanger = ns.NCTU.edu.tw cc.nctu.edu.tw nameserver = ns.NCTU.edu.tw cc.nctu.edu.tw nameserver = ns1.NCTU.edu.tw cc.nctu.edu.tw nameserver = ns2.NCTU.edu.tw cc.nctu.edu.tw internet address = 140.113.6.2 ccserv6.cc.nctu.edu.tw internet address = 140.113.6.6 ns.NCTU.edu.tw internet address = 140.113.250.135 ns1.NCTU.edu.tw internet address = 140.113.1.1 ns2.NCTU.edu.tw internet address = 140.113.6.2 > % exit
<7>. forward domain name的 SOA RR 查詢 % nslookup [ 省略 ] > set type=soa ; 設定 query type > nthu.edu.tw. ; 正解 forward domain zone [ 省略] Non-authoritative answer: ; 由 named cache 處取得的答案 nthu.edu.tw origin = nthu.edu.tw mail addr = net-service\@nthu.edu.tw serial = 9708081 refresh = 28800 (8H) retry = 7200 (2H) expire = 1209600 (2W) minimum ttl = 604800 (1W) Authoritative answers can be found from: ; 原始資料, 可自底下幾個取得 nthu.edu.tw nameserver = sphinx.cc.nthu.edu.tw nthu.edu.tw nameserver = cs.nthu.edu.tw nthu.edu.tw nameserver = nthu.edu.tw sphinx.cc.nthu.edu.tw internet address = 140.114.65.27 cs.nthu.edu.tw internet address = 140.114.77.1 cs.nthu.edu.tw internet address = 140.114.87.1 nthu.edu.tw internet address = 140.114.64.10
<7>. reverse domain name的 SOA RR 查詢 % nslookup [ 省略 ] > set type=soa ; 設定 query type > 110.140.in-addr.arpa. ; 反解 reverse domain zone Server: ns.NCTU.edu.tw Address: 140.113.250.135 110.140.in-addr.arpa origin = dns.nchc.gov.tw mail addr = a00zjw00.nchc.gov.tw serial = 970803 refresh = 10800 (3H) retry = 3600 (1H) expire = 3600000 (5w6d16h) minimum ttl = 86400 (1D) > % exit
<8>. reverse domain name的 NS RR 查詢 % nslookup > set type=ns <-- 設定 query type > 112.140.in-addr.arpa. <-- 反解 reverse domain zone Server: ns.NCTU.edu.tw Address: 140.113.250.135 Non-authoritative answer: 112.140.in-addr.arpa nameserver = ntu3.ntu.edu.tw 112.140.in-addr.arpa nameserver = netnews.ntu.edu.tw 112.140.in-addr.arpa nameserver = dns.ntu.edu.tw Authoritative answers can be found from: ntu3.ntu.edu.tw internet address = 140.112.2.2 netnews.ntu.edu.tw internet address = 140.112.2.197 dns.ntu.edu.tw internet address = 140.112.254.4 > % exit
6. 2 Chinese Big5 code DNS Resource Directory. - http://dnsrd. nctu DNS/BIND 的 最 新 發 展 與 相 關 的 工 具 程 式 簡 介 Case Study - 部份系統設定錯誤實例分析 其 他和 DNS 系 統 相 關 的 網 路 系 統 應 用與 管 理 課 題 >>> End of the Notes <<<