27
Linux Server Admin BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27 (updated from 2012-11-28, 2012-12-03)

BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

Linux Server Admin

BIND9 (DNS Server) #2

Chatchai J2013-11-22,27

(updated from 2012-11-28, 2012-12-03)

Page 2: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

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

Page 3: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

Zone config ใน named.conf.local

● สรข้าง zone ใน /etc/bind/named.conf.local

zone "lsa56.org" {        type master;        file "master/lsa56.org";};

Page 4: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

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      lsa­svr.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

Page 5: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

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

Page 6: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

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

Page 7: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

ตรวจสอบการ query

● DNS Server มนปสญหาในเรรืสั่องการถมูกโจมตนอยว่มูมาก – ควรจะมนการตรวจสอบการ query

● ทคาไดข้ดข้วยการ 'เพริสั่ม' option logging ใน named.conf.options

Page 8: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

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

Page 9: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

query logging option (cont)

logging {channel query_logging {

file "/var/log/named/query.log";print­time yes;

};category queries { query_logging; };

};

● เพริสั่ม /etc/bind/named.conf.options

● จะตข้องใชข้คคาสสสั่ง $ sudo service bind9 restart

● ใชข้ rndc reload จะสรข้าง logfile แตว่ไมว่มน query log ไปเกป็บไวข้ในไฟลล์ (bug?)

Page 10: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

ทดสอบ 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

Page 11: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

ทดสอบจาก ภายนอก● กรอกขข้อมมูล domain ของ Linux VM ทนสั่ http://bit.ly/1gQIfx8

● ทดสอบ query ขข้อมมูลจาก lsa­svr.coe.psu.ac.th

● ทดสอบ query โดยใชข้ services จากภายนอก (โดยเลรือกใชข้ google public DNS)

Page 12: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

ทดสอบ (ตว่อ)

$ dig @lsa­svr.coe.psu.ac.th $MYDOMAIN

$ dig @lsa­svr.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!

Page 13: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

ทดสอบ (ตว่อ)

● จะตข้องกคาหนดทนสั่ ผข้มูใหข้บรริการ ทนสั่เราไปจดโดเมน วว่า 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)

Page 14: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

ทดสอบ (ตว่อ)

● ทดสอบจาก 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 ถข้ายสงมนปสญหา

Page 15: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

Dynamic Update RR

● ปกตริ server จะใชข้ static address ไมว่ไดข้รสบ ip จาก dhcp server

● แตว่ในบางกรณน เชว่น Home Network ใชข้ ADSL

● IP จะ dynamic allocate ทคุกครสนงทนสั่เชรืสั่อมตว่อ● เราสามารถ แกข้ไข IP แบบอสตโนมสตริไดข้ดข้วย

nsupdate (คคาสสสั่งใน package dnsutils)

Page 16: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

ขข้อควรคคานซง● Manual Modified Zone กสบ Dynamic Update

Zone อยว่มูรว่วมกสน ไมว่คว่อยดนเทว่าไหรว่● ควรแยก Zone ตว่างหาก● ในทนสั่นนนใหข้ใชข้ sub domain

Page 17: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

Sub domain

● ใชข้ “dyn.$MYDOMAIN” (dynamic address sub

domain)– Sub domain: dyn.lsa56.org

– เพริสั่ม Zone file for sub domain

– เพริสั่ม “allow-update” config

Page 18: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

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";

allow­update { 127.0.0.1; };};

Page 19: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

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      lsa­svr.coe.psu.ac.th. ;; For forwardingwww   30  IN       A       192.100.77.175

● Zone file for dyn subdomain

Page 20: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

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 lsa­svr.coe.psu.ac.th.dyn    IN NS ns.lsa56.org.

Page 21: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

การใชข้ 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

Page 22: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

การใชข้ nsupdate (cont)

● คคาสสสั่งของ nsupdate สคาหรสบการเปลนสั่ยนแปลง IP

address

update delete

update add

● ถข้ามน address อยว่มูใน zone แลข้วจะตข้อง delete กว่อน แลข้วคว่อย add เพรืสั่อเพริสั่มเขข้าไปใหมว่

● การระบคุ delete ไมว่จคาเปป็นจะตข้องรข้มู ip address เดริม

Page 23: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

การใชข้ nsupdate (cont)

$ nsupdate> server 127.0.0.1> zone dyn.lsa56.org.> update delete test.dyn.lsa56.org. IN A> send> quit

Page 24: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

การใชข้ nsupdate (cont)

● ใน zone directory จะมนไฟลล์ .jnl เพริสั่มขซนนมา● ขข้อมมูลทนสั่เพริสั่ง update จะอยว่มูใน .jnl (journal) ไฟลล์● ถข้าตข้องการแกข้ไขไฟลล์แบบ manual

จะตข้อง freeze การ update แบบ dynamic กว่อน$ sudo rndc freeze $MYDOMAIN

● แลข้วแกข้ไข zone file หลสงจากนสนน ใหข้ใชข้ thaw

สคาหรสบการใชข้งานตว่อตามปกตริ$ sudo rndc thaw $MYDOMAIKN

Page 25: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

การใชข้ nsupdate (cont)

● การ update สามารถ update จาก server อรืสั่นๆไดข้● แตว่ถข้าจะทคา ควรทนสั่จะกคาหนดใหข้ใชข้ public key ในการอนคุญาต ใหข้เขข้าถซงและแกข้ไขขข้อมมูลใน zone ไดข้

● เนรืสั่องจาก คว่อนขข้างซสบซข้อน จะไมว่พมูดถซงในทนสั่นนน

Page 26: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

เรรืสั่องอรืสั่นๆ (not cover here)

● Secondary DNS

– กคาหนด zone ทนสั่มน type เปป็น slave

– ระบคุตคาแหนว่งไฟลล์ ทนสั่จะเกป็บ zone data

– ระบคุ master ip address (Primary DNS Server)

– บน Primary DNS ระบคุ Allow transfer

Page 27: BIND9 (DNS Server) #2 Chatchai J 2013-11-22,27fivedots.coe.psu.ac.th/Software.coe/241-478/Ch07-BIND9... · 2013-11-27 · $ sudo service bind9 start – ถข้าเดริมมสน

DNS Server

จบเพนยงเทว่านนน สคาหรสบตอนนนนจะกลว่าวถซงอนกทน

ตอน setup Mail SMTP Server