380 likes | 525 Views
Part 3 Domain Name System. DNS. DNS มาจาก Domain Name System มีลักษณะเป็นฐานข้อมูลแบบกระจาย (Distributed Database) เป็นโปรโตคอลในชุดของ TCP/IP ทำหน้าที่ แปลงชื่อเครื่องเป็นหมายเลขไอพี แปลงหมายเลขไอพีเป็นชื่อเครื่อง ให้ข้อมูลในการนำส่ง E-mail ในแต่ละโดเมน. Naming Scheme.
E N D
DNS • DNS มาจาก Domain Name System • มีลักษณะเป็นฐานข้อมูลแบบกระจาย (Distributed Database) • เป็นโปรโตคอลในชุดของ TCP/IP • ทำหน้าที่ • แปลงชื่อเครื่องเป็นหมายเลขไอพี • แปลงหมายเลขไอพีเป็นชื่อเครื่อง • ให้ข้อมูลในการนำส่ง E-mail ในแต่ละโดเมน
Naming Scheme • หลักการตั้งชื่อเครื่องในระบบเน็ตเวิร์ก • มีลักษณะโครงสร้างเป็นต้นไม้แสดงลำดับชั้น • ประกอบด้วยชื่อคั่นด้วยจุด ( . ) • Case Sensitive th ac ku cc.cpe.ku.ac.th cpe โครงสร้างใหญ่ไปหาย่อย cc
Domain Name Concept • label • ชื่อที่ประกอบด้วยอักขระ 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
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 • 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 ที่จะอ้างถึงต่อไปในระดับย่อยลงมา
DNS lookup command • host • เครื่องมือช่วยสำหรับการค้นหาชื่อโดเมนอย่างง่าย • 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 { type master; 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" ; print-category yes ; print-severity yes ; print-time yes ; }; category default { log_file; default_syslog; default_debug; }; category queries { queries_file; default_syslog; default_debug; }; };
ปฏิบัติการ 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