Part 3 Domain Name System ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
DNS DNS มาจาก Domain Name System มีลักษณะเป็นฐานข้อมูลแบบกระจาย (Distributed Database) เป็นโปรโตคอลในชุดของ TCP/IP ทำหน้าที่ แปลงชื่อเครื่องเป็นหมายเลขไอพี แปลงหมายเลขไอพีเป็นชื่อเครื่อง ให้ข้อมูลในการนำส่ง E-mail ในแต่ละโดเมน ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Naming Scheme หลักการตั้งชื่อเครื่องในระบบเน็ตเวิร์ก cc.cpe.ku.ac.th มีลักษณะโครงสร้างเป็นต้นไม้แสดงลำดับชั้น ประกอบด้วยชื่อคั่นด้วยจุด ( . ) Case Sensitive th ac ku cc.cpe.ku.ac.th ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ cpe โครงสร้างใหญ่ไปหาย่อย cc
Domain Name Concept label domain name absolute domain name ชื่อที่ประกอบด้วยอักขระ ASCII domain name ลำดับของ label คั่นด้วยจุด ไปจนถึง top level เช่น ku.ac.th , cpe.ku.ac.th absolute domain name เป็น domain name ที่ลงท้ายด้วยจุด เช่น hpcnc.cpe.ku.ac.th. Relative domain name เป็น domain name ที่ยังไม่สมบูรณ์ เช่น hpcnc ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Domain Name Space ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Top Level Domain (TLD) Domain Name ระดับบนสุด มีสามประเภท Generic Top Level Domain Name (gTLD) .com , .org , .net , .aero , .biz , .coop , .info , .museum , .pro Country Code TLD (ccTLD) .th, .jp, .kr , .de , ..etc ARPA TLD .arpa เป็นโดเมนยุกแรกที่เริ่มใช้ DNS ปัจจุบันใช้สำหรับการทำ reverse DNS lookup ที่ in-addr.arpa ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
DNS Management Top Level Domain จะถูกควบคุมดูแลโดย InterNIC http://www.internic.net/ .th จะถูกควบคุมดูแลโดย ThNIC http://www.thnic.net/ ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Domains& Zones มอบอำนาจให้ cpe และ eng รวมอำนาจการบริหาร DNS Domain หมายถึง subtree หนึ่งๆ นับจาก top level ลงมา Zone หมายถึง Domain ที่ได้รับมอบอำนาจให้จัดการดูแลระบบ DNS ด้วยตนเอง ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ มอบอำนาจให้ cpe และ eng รวมอำนาจการบริหาร DNS
Name Server Name server เป็น server ที่เก็บข้อมูลเกี่ยวกับ zone ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Type of Name Server Name Server มีสองชนิด ได้แก่ Primary name server : เป็น server ที่เก็บฐานข้อมูลของรายชื่อเครื่องในแต่ละ zone โดยตรง Secondary name server : เป็น server ที่นำฐานข้อมูลของ zone มาจาก Primary name server เพื่อสำรองข้อมูลและช่วยรับภาระจาก Primary name server ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Zone transfer Zone transfer คือกระบวนการที่ secondary name server ดึงฐานข้อมูลมาจาก primary name server ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Root name server Name server หนึ่ง ๆ จะมีฐานข้อมูลของเครื่องที่อยู่ใน zone ของตนเท่านั้น หา name server ได้รับการร้องขอให้แปลง domain name ที่ไม่ได้อยู่ใน zone ของตน name server นั้นจะส่งต่อคำร้องขอไปยัง root name server root name server จะให้บริการ DNS สำหรับ top -level domain name และให้รายชื่อ name server ที่จะอ้างถึงต่อไปในระดับย่อยลงมา ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Name Resolution Process ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Reverse resolution ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
DNS lookup command host dig เครื่องมือช่วยสำหรับการค้นหาชื่อโดเมนอย่างง่าย dig ยากกว่า host ยืดหยุ่นมากกว่า ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
ปฏิบัติการ 1: การใช้งานคำสั่งเบื้องต้น host host server1.training.com host –t SOA training.com host –t PTR 192.168.0.1 host –a stationXXX.training.com dig dig server1.training.com dig server1.training.com www.ku.ac.th dig IN PTR 1.0.168.192.in-addr.arpa dig –x 192.168.0.1 ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
/etc/resolv.conf เก็บชื่อ DNS server ที่เครื่องติดต่อเมื่อต้องการใช้บริการ ค้นหาตามลำดับรายชื่อ ; generated by /sbin/dhclient-script search training.com nameserver 192.168.0.1 nameserver 158.108.32.3 nameserver 158.108.2.67 ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
DNS server ให้บริการ DNS ภายในองค์กร เก็บรายชื่อเครื่องในโดเมนขององค์กร ส่งต่อคำร้องขอบริการ DNS ไปยัง DNS server อื่น ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
ขั้นตอนการติดตั้ง DNS server ต้องมี domain name ขององค์กรก่อน จดทะเบียน domain name จากผู้ให้บริการจด domain name ติดตั้ง name server ในระบบปฏิบัติการ linux ใช้โปรแกรม BIND ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
เครือข่ายสำหรับการทดลอง com training.com domain1.training.com ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ domainXX.training.com domain2.training.com domain3.training.com
BIND BIND : Berkeley Internet Name Domain เป็นโปรแกรมที่ทำหน้าที่ DNS server ที่นิยมใช้ใน linux ปัจจุบันอยู่ที่ version 9 ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
ปฏิบัติการ 2: Bind installation ตรวจสอบ rpm ของ bind rpm –qi bind หากไม่พบให้ติดตั้งจากแผ่น CD-Rom chkconfig named on service named start ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
/etc/named.conf เป็น config file ส่วนกลางของ BIND ระบุ zone ทั้งหมดที่ดูแลอยู่ options { directory "/var/named/"; }; zone "." { type hint; file "named.ca"; ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
การเพิ่ม Zone เพิ่มคีย์เวิร์ด zone ใน /etc/named.conf zone “domainXX.training.com” IN { type master; file “domainXX.training.com.zone”; } เพิ่มไฟล์ /var/name/chroot/var/named/domainXX.training.com.zone ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
การเพิ่ม zone (ต่อ) แก้ไฟล์ /var/named/domainXX.training.com.zone @ IN SOA domainXX.training.com. root.station.domainXX.training.com. ( 2003081801 ; serial 21600 ; refresh after 6 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 86400 ) ; minimum TTL of 1 day @ IN NS ns.domainXX.training.com. ;name server IN MX 10 station.domainXX.training.com. ;mail exchange station IN A 192.168.0.XX ; domain name to IP address ns IN CNAME station ; canonical name (alias) server IN A 192.168.0.XX www IN CNAME server virtual IN A 192.168.0.XX ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
ปฏิบัติการ 3: การคอนฟิก Zone เบื้องต้น เพิ่ม domain ชื่อ domainXX ลงใน DNS server แก้ไขไฟล์ /etc/named.conf เพิ่มไฟล์ /var/named/chroot/var/named/domainXX.station.com.zone เปลี่ยน owner ของไฟล์ให้เป็น named group named ให้หมด chown named:named /var/named/chroot/var/named/* ตรวจสอบความถูกต้องของ ไฟล์ที่แก้ named-checkconf /etc/named.conf named-checkzone domainXX.station.com /var/named/chroot/var/named/domainXX.station.com.zone service named restart ทดสอบ dig domainXX.training.com dig station.domainXX.training.com dig domainXX.training.com IN ANY ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Reverse lookup เป็นการกำหนดให้ DNS server ให้บริการการแปลงชื่อกลับ จาก ip เป็นชื่อโดเมน แก้ไขในไฟล์ /etc/named.conf เพิ่ม zone reverse.addr.in-addr.arpa เข้าไป เช่น 0.168.192.in-addr.arpa เพิ่มไฟล์ zone ใน /var/named/chroot/var/named เนื้อหาคล้ายกับการทำ zone แบบปกติ แท็ก PTR ใช้สำหรับแปลง ip เป็นชื่อ โดเมน ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
ตัวอย่าง reverse config zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; }; zone "0.168.192.in-addr.arpa" IN { file "training.com.rr.zone"; ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
ตัวอย่าง reverse zone file ;$ORIGIN 0.168.192.in-addr.arpa $TTL 86400 @ IN SOA training.com. root.training.com. ( 2003081801 ; serial 21600 ; refresh after 6 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 86400 ) ; minimum TTL of 1 day @ IN NS 192.168.0.1 1 IN PTR server1.training.com. 2 IN PTR station2.training.com. 3 IN PTR station3.training.com. 4 IN PTR station4.training.com. 5 IN PTR station5.training.com. 6 IN PTR station6.training.com. 7 IN PTR station7.training.com. 8 IN PTR station8.training.com. ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
ปฏิบัติการ 4: Reverse look-up สร้าง reverse look-up zone ตามตัวอย่าง ทดสอบโดยการใช้คำสั่ง host และ dig โดยใช้ IP host 192.168.0.1 dig 192.168.0.1
การบันทึก log ใน BIND BIND มีความสามารถในการบันทึก log การทำงานได้ แก้ไขในไฟล์ /etc/named.conf เพิ่มคีย์เวิร์ด logging ที่ต้นไฟล์ named.conf ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
ปฏิบัติการ 4: การจัดการระบบ log logging { channel log_file { file "logs/named.log" ; print-category yes ; print-severity yes ; print-time yes ; }; channel queries_file { file "logs/queries.log" ; category default { log_file; default_syslog; default_debug; }; category queries { queries_file; ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
ปฏิบัติการ 4 (ต่อ) แก้ไฟล์ /etc/named.conf สร้าง directory ที่ใช้เก็บ log mkdir /var/named/chroot/var/named/logs chown named:named /var/named/chroot/var/named/logs restart BIND ใหม่ service named restart ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
การใช้ acl จำกัดสิทธิ์การให้บริการ BIND สามารถป้องกันไม่ให้ผู้ใช้หรือบุคคลภายนอกเข้ามาใช้บริการ DNS ของตนได้ ป้องกันการลักลอบใช้ทรัพยากรระบบ ป้องกันการจู่โจมระบบจากภายนอก ใช้วิธีการ access control list ควบคุม ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
ปฏิบัติการ 5 : ACL แก้ไขไฟล์ /etc/named.conf เพิ่มเติม เพิ่ม allow-query และ allow-transfer zone "domainXX.training.com" IN { type master; file "domainXX.training.com.zone"; allow-query { !192.168.0.YY; 192.168.0/24; }; allow-transfer { any; }; allow-update { none; }; }; ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
ปฏิบัติการ 5 (ต่อ) แก้ /etc/named.conf service named reload ทดสอบ เครื่อง 192.168.0.YY ใช้คำสั่ง dig @192.168.0.XX station.domainXX.training.com. dig @192.168.0.XX –t AXFR domainXX.training.com ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
สรุป DNS เป็นระบบฐานข้อมูลแบบกระจาย ที่ช่วยแปลโดเมนเนมของเครื่องคอมพิวเตอร์ ให้กลายเป็นหมายเลข IP การติดตั้ง DNS server ในองค์กร จำเป็นต้องจดทะเบียนขอโดเมนของตนเอง BIND เป็น DNS server สำหรับระบบปฏิบัติการลีนุกซ์ ให้บริการ DNS บันทึก log จำกัดสิทธิ์ผู้ใช้ DNS ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________