Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
Linux Server Admin
BIND9 (DNS Server) #2
Chatchai J2013-11-22,27
(updated from 2012-11-28, 2012-12-03)
DNS Server Experiment
● ทดสอบ domain จรริง– resolve จาก 8.8.8.8, 8.8.4.4 Google Public DNS
– ทดสอบจาก http://www.kloth.net/services/nslookup.php
http://bwachter.lart.info/tools/dig
http://dig.menandmice.com/http://www.cman.jp/network/support/nslookup.html
http://www.geektools.com/digtool.php
● การ update ขข้อมมูลแบบ dynamic
Zone config ใน named.conf.local
● สรข้าง zone ใน /etc/bind/named.conf.local
zone "lsa56.org" { type master; file "master/lsa56.org";};
Zone file data
● ไฟลล์ /var/cache/bind/master/$MYDOMAIN
/var/cache/bind/master/lsa56.org
$ORIGIN .$TTL 40
lsa56.org IN SOA ns.lsa56.org. root.lsa56.org. ( 2012112705 ; serial 40 ; refresh (4 hours) 10 ; retry (1 hour) 120 ; expire (4 weeks) 40 ; minimum (4 hours) )
NS lsasvr.coe.psu.ac.th. ;; For forwarding MX 10 mx.lsa56.org.
$ORIGIN lsa56.org.@ A 192.100.77.175ns A 192.100.77.175mx A 192.100.77.175www A 192.100.77.175
Example zone file
● download file จาก http://fivedots.coe.psu.ac.th/~cj/LSA/cheshirecat2012.net
● หรรือ ใชข้คคาสสสั่งนนน$ wget q O http://fivedots.coe.psu.ac.th/~cj/LSA/cheshirecat2012.net |\
sed e 's/cheshirecat2012.net/$MYDOMAIN/g' > $MYDOMAIN
● เปลนสั่ยน $MYDOMAIN เปป็นชรืสั่อ domain ของคคุณเองสมมตริวว่าเปป็น lsa56.org
$ wget q O http://fivedots.coe.psu.ac.th/~cj/LSA/cheshirecat2012.net |\ sed e 's/cheshirecat2012.net/lsa56.org/g' > lsa56.org
start bind9 / reload data
$ sudo service bind9 start
– ถข้าเดริมมสน stop อยว่มู, การสสสั่ง start กป็จะ load data ใหมว่เขข้าไป$ sudo rndc reload
– ถข้า bind9 ทคางานอยว่มูแลข้วใหข้ใชข้คคาสสสั่ง rndc reload
– ซซสั่งควรจะไดข้ขข้อความวว่า “server reload successful”
$ grep named /var/log/syslog
– ตรวจสอบ error อนกครสนง$ dig @localhost $MYDOMAIN | egrep v '^;|^$'
– ควรจะไดข้ ip address เปป็น 192.100.77.175
ตรวจสอบการ query
● DNS Server มนปสญหาในเรรืสั่องการถมูกโจมตนอยว่มูมาก – ควรจะมนการตรวจสอบการ query
● ทคาไดข้ดข้วยการ 'เพริสั่ม' option logging ใน named.conf.options
query logging option
● สรข้าง directory ใน /var/log ชรืสั่อ named และกคาหนดใหข้ bind เปป็น owner ของ directory นสนน
$ sudo mkdir /var/log/named
$ sudo chown bind:bind /var/log/named
● เพริสั่ม logging option ในไฟลล์ /etc/bind/named.conf.options
query logging option (cont)
logging {channel query_logging {
file "/var/log/named/query.log";printtime yes;
};category queries { query_logging; };
};
● เพริสั่ม /etc/bind/named.conf.options
● จะตข้องใชข้คคาสสสั่ง $ sudo service bind9 restart
● ใชข้ rndc reload จะสรข้าง logfile แตว่ไมว่มน query log ไปเกป็บไวข้ในไฟลล์ (bug?)
ทดสอบ query logging
● ใชข้ tmux เพรืสั่อ monitor ผลลสพธล์$ tail f /var/log/named/query.log
● จากอนก terminal หนซสั่ง (CTRL+B, C)
$ dig @localhost $MYDOMAIN | egrep v '^;|^$'
$ host www.$MYDOMAIN localhost
● ดมู log ทนสั่เกริดขซนนใน query.log
ทดสอบจาก ภายนอก● กรอกขข้อมมูล domain ของ Linux VM ทนสั่ http://bit.ly/1gQIfx8
● ทดสอบ query ขข้อมมูลจาก lsasvr.coe.psu.ac.th
● ทดสอบ query โดยใชข้ services จากภายนอก (โดยเลรือกใชข้ google public DNS)
ทดสอบ (ตว่อ)
$ dig @lsasvr.coe.psu.ac.th $MYDOMAIN
$ dig @lsasvr.coe.psu.ac.th www.$MYDOMAIN
● ดมูขข้อมมูลใน query.log ควรทนสั่จะมน query record ทนสั่มาจาก ip 172.30.0.85
● ถข้าไมว่มนแสดงวว่า ip ทนสั่กรอกไวข้อาจจะไมว่ถมูกตข้อง หรรือ config บน lsa-svr.coe.psu.ac.th ยสงไมว่ update หรรือ ยสงไมว่ถมูกตข้อง – Please ask!
ทดสอบ (ตว่อ)
● จะตข้องกคาหนดทนสั่ ผข้มูใหข้บรริการ ทนสั่เราไปจดโดเมน วว่า name server ครือ 192.100.77.175
● โดยทสสั่วไปแลข้วจะมน 2 Server กคาหนดทสนงสอง Server
● lsa-svr.coe.psu.ac.th จะ forward request ไปใหข้ VM
ทนสั่ setup เอาไวข้โดยอสตโนมสตริถข้า zone file ของ domain นสนนกคาหนดใหข้ NS เปป็น lsa-svr.coe.psu.ac.th
(ใชข้ไดข้เฉพาะ ภายในเครรือขว่ายของ CoE' Net)
ทดสอบ (ตว่อ)
● ทดสอบจาก http://www.kloth.net/services/nslookup.php(หรรือ URL อรืสั่นๆ ดมู list จาก slide page 2)
nslookupDomain: $MYDOMAINServer: 8.8.8.8Query: A(IPv4 Address)
● ดมูขข้อมมูลใน query.log ควรทนสั่จะมน query record ทนสั่มาจาก ip 172.30.0.85
● ถข้าไมว่มนแสดงวว่า ip ทนสั่กรอกไวข้อาจจะไมว่ถมูกตข้อง หรรือ config บน lsa-svr.coe.psu.ac.th ยสงไมว่ update
● ทดลองเปลนสั่ยน 8.8.8.8 เปป็น lsa-svr.coe.psu.ac.th ถข้ายสงมนปสญหา
Dynamic Update RR
● ปกตริ server จะใชข้ static address ไมว่ไดข้รสบ ip จาก dhcp server
● แตว่ในบางกรณน เชว่น Home Network ใชข้ ADSL
● IP จะ dynamic allocate ทคุกครสนงทนสั่เชรืสั่อมตว่อ● เราสามารถ แกข้ไข IP แบบอสตโนมสตริไดข้ดข้วย
nsupdate (คคาสสสั่งใน package dnsutils)
ขข้อควรคคานซง● Manual Modified Zone กสบ Dynamic Update
Zone อยว่มูรว่วมกสน ไมว่คว่อยดนเทว่าไหรว่● ควรแยก Zone ตว่างหาก● ในทนสั่นนนใหข้ใชข้ sub domain
Sub domain
● ใชข้ “dyn.$MYDOMAIN” (dynamic address sub
domain)– Sub domain: dyn.lsa56.org
– เพริสั่ม Zone file for sub domain
– เพริสั่ม “allow-update” config
Sub domain (cont)
● เพริสั่ม “dyn” sub domain
● เพริสั่ม zone file
/var/cache/bind/master/dyn.$MYDOMAIN
zone "dyn.lsa56.org" { type master; file "master/dyn.lsa56.org";
allowupdate { 127.0.0.1; };};
Sub domain (cont)
$ORIGIN dyn.lsa56.org.$TTL 40
@ IN SOA ns.lsa56.org. root.lsa56.org. ( 1 ; serial 40 ; refresh (4 hours) 10 ; retry (1 hour) 120 ; expire (4 weeks) 40 ; minimum (4 hours) )
@ NS lsasvr.coe.psu.ac.th. ;; For forwardingwww 30 IN A 192.100.77.175
● Zone file for dyn subdomain
Sub domain (cont)
● Zone file ของ domain หลสก (lsa56.org) จะตข้องระบคุ NS ของ subdomain (dyn.lsa56.org)
ซซสั่งในทนสั่นนนครือ server ตสวเดนยวกสน
$ORIGIN lsa56.org.@ A 192.100.77.175ns A 192.100.77.175mx A 192.100.77.175www A 192.100.77.175dyn IN NS lsasvr.coe.psu.ac.th.dyn IN NS ns.lsa56.org.
การใชข้ nsupdate
● nsupdate ใน dnsutils สคาหรสบ update dns แบบ dynamic
● เครรืสั่องหมาย “>” ครือ prompt ของ nsupdate
$ nsupdate> zone dyn.lsa56.org.> server 127.0.0.1> update add test.dyn.lsa56.org. 30 A 1.2.3.4> show > send> answer> quit$ host test.dyn.lsa56.org localhost
การใชข้ nsupdate (cont)
● คคาสสสั่งของ nsupdate สคาหรสบการเปลนสั่ยนแปลง IP
address
update delete
update add
● ถข้ามน address อยว่มูใน zone แลข้วจะตข้อง delete กว่อน แลข้วคว่อย add เพรืสั่อเพริสั่มเขข้าไปใหมว่
● การระบคุ delete ไมว่จคาเปป็นจะตข้องรข้มู ip address เดริม
การใชข้ nsupdate (cont)
$ nsupdate> server 127.0.0.1> zone dyn.lsa56.org.> update delete test.dyn.lsa56.org. IN A> send> quit
การใชข้ nsupdate (cont)
● ใน zone directory จะมนไฟลล์ .jnl เพริสั่มขซนนมา● ขข้อมมูลทนสั่เพริสั่ง update จะอยว่มูใน .jnl (journal) ไฟลล์● ถข้าตข้องการแกข้ไขไฟลล์แบบ manual
จะตข้อง freeze การ update แบบ dynamic กว่อน$ sudo rndc freeze $MYDOMAIN
● แลข้วแกข้ไข zone file หลสงจากนสนน ใหข้ใชข้ thaw
สคาหรสบการใชข้งานตว่อตามปกตริ$ sudo rndc thaw $MYDOMAIKN
การใชข้ nsupdate (cont)
● การ update สามารถ update จาก server อรืสั่นๆไดข้● แตว่ถข้าจะทคา ควรทนสั่จะกคาหนดใหข้ใชข้ public key ในการอนคุญาต ใหข้เขข้าถซงและแกข้ไขขข้อมมูลใน zone ไดข้
● เนรืสั่องจาก คว่อนขข้างซสบซข้อน จะไมว่พมูดถซงในทนสั่นนน
เรรืสั่องอรืสั่นๆ (not cover here)
● Secondary DNS
– กคาหนด zone ทนสั่มน type เปป็น slave
– ระบคุตคาแหนว่งไฟลล์ ทนสั่จะเกป็บ zone data
– ระบคุ master ip address (Primary DNS Server)
– บน Primary DNS ระบคุ Allow transfer
DNS Server
จบเพนยงเทว่านนน สคาหรสบตอนนนนจะกลว่าวถซงอนกทน
ตอน setup Mail SMTP Server