BIND (Berkeley Internet Name Domain) คือ โปรแกรมฟรี (Open Source) ที่ได้รับความนิมในการนำมาติดตั้ง Domain Name System (DNS) สำหรับอินเทอร์เน็ต และอินทราเน็ต
เคสตัวอย่างนี้จะใช้ Option ในการติดตั้ง DNS ดังต่อไปนี้
1. บทความนี้จะสอนติดตั้ง nameserver (Primary DNS) เท่านั้น
2. IP Address ของ Linux CentOS ที่ทำหน้าที่ DNS คือ 192.168.56.101
3. Server คือ www.ispying.com : 192.168.56.101
4. เครื่อง Client ที่นำมาช่วยในการทดสอบรันด้วย Windows Win7
Step O : คอนฟิก IP Static
- IP ที่เราได้รับมาจาก DHCP มักจะมีการเปลี่ยนแปลงอยู่ตลอดเราต้องมีการคอนฟิก IP จาก Dynamic เป็น Static IP ดังต่อไปนี้
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
HWADDR=00:30:48:56:A6:2E /* ใส่ HWADDR ของคุณ ตรวจสอบได้โดยใช้คำสั่ง ifconfig */
IPADDR=192.168.56.101
NETMASK=255.255.255.0
ONBOOT=yes
# /etc/init.d/network restart
Step 1 : ติดตั้ง Package Bind
- ติดตั้ง bind โดยใช้ yum
# yum install bind
Step 2 : คอนฟิก DNS server เพื่อกำหนด Domain name
- เข้าไปยังไฟล์ /etc/named.conf โดยใช้ Editor ที่ถนัด เพื่อกำหนด Domian Name และ Zone
# vi /etc/named.conf
// /* แก้ไขตามข้อความสีส้มครับ */ // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { listen-on port 53 { 127.0.0.1; 192.168.56.101; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; recursion yes; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; zone "ispying.com" IN { type master; file "fwd.ispying.zone"; /* ตั้งชื่อสำหรับกำหนด forward zone */ allow-update { none; }; }; zone "56.168.192.in-addr.arpa" IN { type master; file "rvs.ispying.zone"; /* ตั้งชื่อสำหรับกำหนด reverse zone */ allow-update { none; }; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";
Step 3 : สร้างไฟล์ในการ Forward และ Reverse (สร้างใหม่เลยนะ)
- สร้างไฟล์ Forward Zone ใช้สำหรับการแปลง Domain เป็น IP Address
# vi /var/named/fwd.ispying.zone /* ชื่อไฟล์ตรงกับที่คอนฟิกไว้ก่อนหน้านี้ */
- สร้างไฟล์ Reverse Zone ใช้สำหรับการแปลง IP กลับเป็น Domain name
# vi /var/named/rvs.ispying.zone /* ชื่อไฟล์ตรงกับที่คอนฟิกไว้ก่อนหน้านี้ */
* 101 หมายเลข IP ชุดสุดท้าย หากเป็นอย่างอื่น อย่าลืมเปลี่ยนกันด้วยนะครับ
- หลังจากคอนฟิกเสร็จแล้ว ให้ทำการ start service ของ bind โดยใช้คำสั่ง /etc/init.d/named start
- สำหรับการ Start Service ครั้งแรกอาจใช้เวลาเป็นนาทีหรือน้อยกว่า เพื่อเป็นการ Generate rndc.key ของ Bind ครับ
* เพิ่มเติม
- หากพบว่า Start Service ไม่ได้ให้ย้อนกลับไปตรวจเชคใหม่ หรือใช้คำสั่งในการตรวจสอบไฟล์ คอนฟิก ว่าตรงกับ Syntex หรือไม่ ดังนี้
- named-checkconf ใช้สำหรับตรวจสอบไฟล์ named.conf หากถูกต้องจะไม่แสดงข้อความใดๆ
# named-checkconf /etc/named.conf
- named-checkzone ใช้สำหรับตรวจสอบ Zone File ที่เราสร้างขึ้นมา
# named-checkzone ispying.com /var/named/fwd.ispying.zone
# named-checkzone 56.168.192.in-addr.arpa /var/named/rvs.ispying.zone
Step 4 : ทดลองใช้คำสั่ง nslookup และ dig ในการตรวจสอบ DNS Server
Step 5 : ปรับค่า Firewall เพื่อใช้งาน DNS
- พิมพ์ setup เพื่อเรียกใช้งานการตั้งค่าแบบกราฟฟิค และไปที่ Firewall -> Customize -> *DNS -> Foward หรือดูตามภาพ
# setup
- หรืออีกวิธีใช้คำสั่ง /etc/init.d/iptables stop เพื่อเป็นการ Stop การงานของ iptables ลงชั่วคราว
# /etc/init.d/iptables stop
Step 5 : ทดสอบการใช้งานภายในเครือข่าย โดยการใช้เครื่อง Client (เครื่อง Windowns) เรียก DNS Server ของ CentOS
Step 6 : ทดลองเรียกใช้งานผ่าน Web Browser
- หลังจากคอนฟิกทุกข้อแล้วก็มาถึงข้อสุดท้ายครับ ทดลองใช้ Web Broswer จากเครื่อง Client ( Windows หรือเครื่อง Host ) เรียกไปยัง DNS Server ( CentOS ) ผ่าน Domain name ที่เรากำหนดไว้ ในที่นี้เราใช้ ( www.ispying.com )
- สำหรับเครื่องไหนที่พบปัญหาการเรียกผ่าน IP Address เช่น 192.168.56.101 หรือ 192.168.56.102 แล้วกลายเป็น Localhost หรือ Host ของตัวเองบนเครื่อง Windows ลองใช้วิธี คอนฟิก IP และ Subnet mask ตามนี้นะครับ
* ผิดพลาดประการใดขออภัยด้วยนะครับ (มือใหม่ชอบใช้ Linux) *
ขอบคุณแหล่งข้อมูล : centos.org , amplysoft.com และ บทความอาจารย์พีระศักดิ์