ch07 bind9-part2
TRANSCRIPT
Linux Server Admin
BIND9 (DNS Server) #2
Chatchai J2012-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 "cheshirecat2012.net" { type master; file "master/cheshirecat2012.net";};
Zone file data
● ไฟล /var/cache/bind/master/$YOURDOMAIN
/var/cache/bind/master/cheshirecat2012.net
$ORIGIN .$TTL 40
cheshirecat2012.net IN SOA ns.cheshirecat2012.net. root.cheshirecat2012.net. ( 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.cheshirecat2012.net.
$ORIGIN cheshirecat2012.net.@ 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/$YOURDOMAIN/g' > $YOURDOMAIN
● เปลยน $YOURDOMAIN เปนชอ domain ของคณเองสมมตวาเปน wilar.org
$ wget q O http://fivedots.coe.psu.ac.th/~cj/LSA/cheshirecat2012.net |\ sed e 's/cheshirecat2012.net/wilar.org/g' > wilar.org
start bind9 / reload data
$ sudo service bind9 start
– ถามน stop อย$ sudo rndc reload
– ถามนทำางานอยแลว– ควรจะไดขอความวา “server reload successful”
$ grep named /var/log/syslog
– ตรวจสอบ error อกครง$ dig @localhost $YOURDOMAIN | 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 rndc reload
● ควรจะได “server reload successful”
ทดสอบ 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 และ IP address ของ Linux VM ท http://bit.ly/Ubki56
(20121203 – IP Address ไมจำาเปน/auto detect)● รอใหผม ใชขอมล setup forward DNS query ใหเสรจ (ระบบอตโนมต ยงไมเสรจ) (20121203 – เสรจแลว)
● ทดสอบ 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 คอ lsa-svr.coe.psu.ac.th
● โดยทวไปแลวจะม 2 Server กำาหนดแคอนเดยวกพอ● ไมสามารถกำาหนดเปน IP Address ได จะตองระบเปนชอ● lsa-svr.coe.psu.ac.th จะ forward request ไปให VM
ท setup เอาไวโดยอตโนมตถา zone file ของ domain นนกำาหนดให NS เปน lsa-svr.coe.psu.ac.th
(ใชไดเฉพาะ ภายในเครอขายของ CoE' Net)
hostinglotus
http://www.hostinglotus.com/hosting/clientarea.php?action=domaindetails&id=XXXX%27
dotsiam
http://cp.dotsiam.net/servlet/ViewDomainServlet?orderid=xxxxxxxx#domorder
ทดสอบ (ตอ)
● ทดสอบจาก http://www.kloth.net/services/nslookup.php(หรอ URL อนๆ ด list จาก slide page 2)
nslookupDomain: $YOURDOMAINServer: 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.cheshirecat2012.net
– เพม Zone file for sub domain
– เพม “allow-update” config
Sub domain (cont)
● เพม “dyn” sub domain
● เพม zone file
/var/cache/bind/master/dyn.$YOURDOMAIN
zone "dyn.cheshirecat2012.net" { type master; file "master/dyn.cheshirecat2012.net";
allowupdate { 127.0.0.1; };};
Sub domain (cont)
$ORIGIN dyn.cheshirecat2012.net.$TTL 40
@ IN SOA ns.cheshirecat2012.net. root.cheshirecat2012.net. ( 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 หลก (cheshirecat2012.net) จะตองระบ NS ของ subdomain (dyn.cheshirecat2012.net)
ซงในทนคอ server ตวเดยวกน$ORIGIN cheshirecat2012.net.@ 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 172.30.XX.XXX
การใช nsupdate
● nsupdate ใน dnsutils สำาหรบ update dns แบบ dynamic
● เครองหมาย “>” คอ prompt ของ nsupdate
$ nsupdate> zone dyn.cheshirecat2012.net.> server 127.0.0.1> update add test.dyn.cheshirecat2012.net. 30 A 1.2.3.4> show > send> answer> quit$ host test.dyn.cheshirecat2012.net 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.cheshirecat2012.net.> update delete test.dyn.cheshirecat2012.net. IN A> send> quit
การใช nsupdate (cont)
● ใน zone directory จะมไฟล .jnl เพมขนมา● ขอมลทเพง update จะอยใน .jnl (journal) ไฟล● ถาตองการแกไขไฟลแบบ manual
จะตอง freeze การ update แบบ dynamic กอน$ sudo rndc freeze $YOURDOMAIN
● แลวแกไข zone file หลงจากนน ใหใช thaw
สำาหรบการใชงานตอตามปกต$ sudo rndc thaw $YOURDOMAIKN
การใช 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, Allow
DNS Server
จบเพยงเทาน สำาหรบตอนนจะกลาวถงอกท
ตอน setup Mail SMTP Server