Wiki Keyword

Domain Name Server (DNS) คืออะไร

IT & Internet, ความรู้, ความรู้ทั่วไป, เทคโนโลยี

Domain Name Server (DNS) คืออะไร

Domain Name Server (DNS) คือสิ่งที่นำมาอ้างถึงหมายเลขเครื่อง หรือ หมายเลข IP Address เพื่อให้ง่ายต่อการจดจำ DNS จะทำหน้าที่คล้ายกับสมุดโทรศัพท์ คือ เมื่อมีคนต้องการจะโทรศัพท์หาใคร คน ๆ นั้นก็จะต้องเปิดสมุดโทรศัพท์เพื่อค้นหาเบอร์โทรศัพท์ของคนที่ต้องการจะ ติดต่อคอมพิวเตอร์ก็เช่นกัน เมื่อต้องการจะสื่อสารกับคอมพิวเตอร์เครื่องอื่น เครื่องนั้นก็จะทำการสอบถามหมายเลข IP ของเครื่องที่ต้องการจะสื่อสาร กับ DNS server ซึ่งจะทำการค้นหาหมายเลขดังกล่าว ในฐานข้อมูลแล้วแจ้งให้ Host ดังกล่าวทราบ ระบบ DNS แบ่งออกได้เป็น 3 ส่วน คือ

Name Resolvers โดยเครื่อง Client ที่ต้องการสอบถามหมายเลขไอพีเรียกว่า Resolver ซึ่งซอฟต์แวร์ที่ทำหน้าที่เป็น Resolvers นั้นจะถูกสร้างมากับแอพพลิเคชันหรือเป็น Library ที่มีอยู่ใน Client

Domain Name Space เป็นฐานข้อมูลของ DNS ซึ่งมีโครงสร้างเป็น Tree หรือเป็นลำดับชั้น แต่ละโหนดคือ โดเมนโดยสามารถมีโดเมนย่อย (Sub Domain) ซึ่งจะใช้จุดในการแบ่งแยก

Name Servers เป็นคอมพิวเตอร์ที่รันโปรแกรมจัดการฐานข้อมูลบางส่วนของ DNS โดย Name Server จะตอบการร้องขอทันที โดยการหาข้อมูลตัวเอง หรือส่งต่อการร้องขอไปยัง Name Server อื่น ซึ่งถ้า Name Server มีข้อมูลของส่วนโดเมนแสดงว่า Server นั้นเป็นเจ้าของโดเมนเรียกว่า Authoritative แต่ถ้าไม่มีเรียกว่า Non-Authoritative

DNS(Domain Name Server)
ระบบการตั้งชื่อโดเมน

ระบบการตั้งชื่อโดเมน (Domain Name System: DNS) เป็นระบบที่ใช้เก็บข้อมูลของชื่อโดเมน (โดเมนเนม) ซึ่งใช้ในเครือข่ายขนาดใหญ่อย่างอินเทอร์เน็ต โดยข้อมูลที่เก็บมีหลายอย่าง แต่สิ่งสำคัญคือความสัมพันธ์ระหว่างชื่อโดเมนนั้นๆ กับหมายเลขไอพีที่ใช้งานอยู่ ประโยชน์ที่สำคัญของ DNS คือช่วยแปลงหมายเลขไอพีซึ่งเป็นชุดตัวเลขที่จดจำได้ยาก (เช่น 207.142.131.206) มาเป็นชื่อที่สามารถจดจำได้ง่ายแทน (เช่น wikipedia.org)

ทฤษฏีพื้นฐานที่เกี่ยวข้อง

* การทำงานของ DNS ถูกออกแบบมาให้ทำงานในลักษณะของ Client – Server ซึ่ง DNS Server จะเก็บข้อมูลในลักษณะจับคู่ระหว่างชื่อคอมพิวเตอร์ (Domain Name) กับ IP Address และให้ DNS Client สามารถสอบถาม หาชื่อคอมพิวเตอร์ (Domain Name) ที่ต้องการได้ สิ่งที่ DNS ทำคือการจับคู่ระหว่างชื่อของคอมพิวเตอร์ (Domain Name หรือ Web Address) กับ IP Address ของคอมพิวเตอร์เครื่องนั้น ซึ่งเราเรียกการจับคู่นี้ว่า Name Resolution โดยเก็บเป็นแบบโครงสร้างต้นไม้ ซึ่ง DNS Server จะทำงานสัมพันธ์กับ DNS Client ขั้นตอนต่อไปนี้ Resolver (หรือเครื่องที่เป็น Client) จะส่ง IP Address เพื่อสอบถามชื่อคอมพิวเตอร์ (หรือส่ง Domain Name เพื่อสอบถาม IP Address) ไปยัง DNS Server ในเครือข่ายของตน ถ้า DNS Server ในเครือข่ายหาชื่อที่คู่กับ IP Address ที่ส่งมาไม่เจอ ก็จะส่งผ่าน IP Address นั้นไปถามหาชื่อยัง DNS Server ตัวอื่นๆ ต่อไปให้

การทำงาน/วิธีติดตั้งและตัวอย่างการใช้งาน

* DNS ถือได้ว่าเป็นองค์ประกอบหลักอย่างหนึ่งของการติดต่อสื่อสารของอินเทอร์เน็ต ในปัจจุบัน หน้าที่หลักของ DNS คือการแปลงหมายเลขไอพีให้เป็นชื่อโดเมน หรือแปลงชื่อโดเมนให้เป็นหมายเลขไอพี โปรแกรม Bind เป็นโปรแกรมที่นิยมใช้สำหรับการติดตั้ง DNS กันมากที่สุด

*การติดตั้ง DNS

การติดตั้ง DNS ด้วยวิธีง่ายๆ คือการติดตั้งโดยใช้ bind9 แบบ 2-in-1

ติดตั้ง dns

1. apt-get install bind9

ไปที่ไดเรคทอรี่ของการปรับตั้ง

1. cd /etc/bind

สมมุติว่าเน็ตเวิร์คเราเป็น 192.168.1.0/24 มีโดเมนเป็น example.com และเครื่องที่ทำหน้าที่ name server มีชื่อว่า ns1.example.com ไอพีเป็น 192.168.1.1

มีเครื่องในวงเครื่องอื่น ๆ ดังนี้ server1 = 192.168.1.1 ns1 = 192.168.1.1 (สมมุติว่าเป็นเครื่องเดียวกันกับ server1) ns2 = 192.168.1.2 client1 = 192.168.1.101 client2 = 192.168.1.102 client3 = 192.168.1.103

เริ่มสร้างโซนไฟล์ ให้ชื่อว่า example.com.zone

zone “example.com” { type master; file “/etc/bind/db.example.com”; };

มีเนื้อไฟล์ดังนี้ Code:

$TTL 86400
@ IN SOA server1.example.com. root.server1.example.com. (
51 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
@ IN NS ns1.example.com. ; primary NS
@ IN NS ns2.example.com. ; secondary NS
ns1 IN CNAME server1 ; append or edit host ip here
server1 IN A 192.168.1.1
ns2 IN A 192.168.1.2
client1 IN A 192.168.1.101
client2 IN A 192.168.1.102
client3 IN A 192.168.1.103

สร้างรีเวิร์สไฟล์ ให้ชื่อว่า example.com.reverse มีเนื้อไฟล์ดังนี้ Code:

$TTL 86400

@ IN SOA server1.example.com. root.server1.example.com. (51 ; serial (d. adams)

3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
@ IN NS ns1.example.com. ; primary NS
@ IN NS ns2.example.com. ; secondary NS
; append or edit host ip here 1 IN PTR server
1.example.com.
2 IN PTR ns2.example.com.
101 IN PTR client1.example.com.
102 IN PTR client2.example.com.
103 IN PTR client3.example.com.

สร้างคอนฟิกไฟล์สำหรับโซน example.com ให้ชื่อว่า example.com.conf มีเนื้อไฟล์ดังนี้ Code:
zone “example.com” IN {
type master;
file “/etc/bind/example.com.zone”;
allow-update { none; };
};
zone “1.168.192.in-addr.arpa” IN {
type master;
file “/etc/bind/example.com.reverse”;
allow-update { none; };
};

เปลี่ยนเจ้าของไฟล์

1. chown bind:bind example.com.*

บอกให้ bind9 เอาไฟล์ของเราไปใช้งาน โดยการเพิ่มลงในไฟล์ named.conf.local ดังนี้ Code:
include “/etc/bind/example.com.conf”;

เสร็จแล้วก็สั่งเริ่ม bind9 ใหม่

1. /etc/init.d/bind9 restart

ถ้ามีข้อผิดพลาด ให้ดูที่ /etc/log/syslog

ทดสอบโดย
# nslookup server1.example.com

จะแสดงผลเป็น 192.168.1.1
#nslookup 192.168.1.1

จะแสดงผลเป็น server1.example.com

* เลขซีเรียลตามตัวอย่างเป็น 51 แต่ส่วนใหญ่นิยมใช้วันที่ เช่น 2006030401 เป็นต้น
* ในเนื้อไฟล์ของโซนไฟล์และริเวิร์สไฟล์ เวลาพิมพ์ระวังอยาลืมเครื่องหมายจุด ท้ายชื่อโฮสต์

สรุป

การศึกษาการทำงานของระบบ DNS สามารถที่จะทำให้เราเข้าใจในการทำงานของระบบเน็ตเวิร์คและสามารถที่จะจัดการ ระบบเน็ตเวิร์คได้ สำหรับการติดตั้ง DNS ด้วย bind9 เป็นวิธีที่ง่ายและนิยมแพร่หลายกันมากที่สุด แต่ก็มีข้อเสีย ก็คือโปรแกรม bind9 นี้ยังมีจุดอ่อนหรือช่องโหว่อยู่ สำหรับวิธีการแก้ไขจุดอ่อนหรือช่องโหว่นี้ ทางผู้จัดทำได้นำมานำเสนอไว้แล้ว

* ช่องโหว่ของระบบ Domain Name System (DNS) ที่ใช้โปรแกรม BIND

วิเคราะห์ปัญหาช่องโหว่

BIND ย่อมาจาก “Berkeley Internet Name Domain” เป็นโปรแกรม DNS Server ที่มีผู้ใช้มากที่สุดในโลก แต่ก็มีช่องโหว่อยู่จำนวนมากเช่นกัน ตัวอย่างเช่น ช่องโหว่ที่ทำให้ BIND Service ไม่ทำงาน เรียกว่าเกิดอาการ Denial of Service (DoS) Attacks เป็นต้น

ถ้าระบบ DNS ล่ม การ Resolve URL Request จาก URL เป็น IP Address ก็จะเกิดปัญหาตามมาทำให้ทุกระบบที่ต่อเชื่อมกับอินเทอร์เน็ตนั้นไม่สามารถ เข้าถึงได้ นับว่าเป็นปัญหาใหญ่ที่ไม่ควรมองข้าม นอกจากนี้ยังมีช่องโหว่ Buffer Overflow และ Cache Poisoning ที่ถูกแฮกเกอร์ยิง Exploit เข้ามายัง DNS Server อยู่บ่อยๆ DNS Server จำนวนมากในอินเทอร์เน็ตยังคงมีช่องโหว่ดังที่กล่าวมาแล้ว ทำให้แฮกเกอร์ฉวยโอกาสเจาะระบบได้อย่างไม่ยากเย็นนัก

ช่องโหว่นี้เกิดขึ้นทั้งระบบปฎิบัติการ UNIX และ Linux ที่ใช้โปรแกรม BIND ทำงานเป็น DNS Server

* วิธีการแก้ปัญหา

ทางแก้ปัญหาที่ง่ายที่สุดเลยก็คือ การเลิกใช้โปรแกรม BIND แล้วหันไปใช้โปรแกรม DNS Server ตัวอื่นแทน เพราะโปรแกรม BIND มักเกิดช่องโหว่อยู่เป็นประจำ การปิด Service BIND Daemon หรือ named ก็เป็นทางออกที่ดี ในกรณีที่ไม่ได้ใช้งาน DNS Server การติดตั้ง Patch ให้กับ BIND กลายเป็นเรื่องจำเป็นในทุกครั้งที่มีคนค้นพบช่องโหว่ของ โปรแกรม BIND การป้องกันการทำ “Zone Transfer” สามารถตั้งค่าได้ในไฟล์ “named.conf” การติดตั้งให้ BIND Service ทำงานอยู่เฉพาะในพื้นที่ที่จำกัดเฉพาะ BIND เท่านั้น เราเรียกวิธีนี้ว่า “Jail” ถ้าหาก BIND Service ถูกยึดโดยแฮกเกอร์ แฮกเกอร์ก็ยังไม่สามารถเจาะเข้าสู่แกนกลางหรือ Kernel ของระบบได้ เพราะถูกขังอยู่ในคุก (Jail) ที่เราออกแบบไว้นั่นเอง การปฏิบัติตามขั้นตอน Hardening BIND Checklist ก็เป็นสิ่งที่ควรทำก่อนที่จะ Online ระบบ DNS Server

* ข้อมูลอ้างอิงจาก : ACIS

:,

By WiKi Keyword.

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!