Tuesday, January 20, 2009

สร้าง DNS server ด้วย MyDNS และ MyDNSConfig ด้วย CentOS

เดือนนี้ได้มีโอกาสจัดทำเครื่อง mail server ให้กับบริษัทแห่งหนึ่ง เพื่อใช้เป็นช่องทางหนึ่งของการสื่อสารภายใน วัตถุประสงค์เพื่อลดการใช้กระดาษ และใช้เทคโนโลยีทางด้านเน็ตเวิร์กให้เกิดประโยชน์สูงสุด แน่นอนเครือง server ใช้ PC เก่า ๆ ธรรมดาๆ
และใช้ os เป็น CentOS โดยมีเครื่องปรุงที่สำคัญคือ mydns,mydnsconfig,mysql,dovecot,postfix เพื่อให้บรรลุวัตถุประสงค์ของการเป็นเมล์เซิร์ฟเวอร์ดังกล่าว

องค์ประกอบหนึ่งของเมล์เซิร์ฟเวอร์คือ MX record ใน domain server แต่ไหนแต่ไรมาใน linux เราก็ใช้โปรแกรม BIND เป็นหลัก ซึ่งก็รับประกันได้ในความรวดเร็วและความยืดหยุ่น แต่ไฟล์ที่เกี่ยวข้องมีหลายไฟล์ และยุ่งยากพอสมควร ในที่นี้จึงได้เลือกใช้ mydns เป็น domain ทำหน้าที่ดูแล MX record ดังกล่าว โดยใช้ mydnsconfig เป็นเครื่องมือช่วย set ค่าต่าง ๆ ผ่าน web interface ซึ่งทำได้ง่าย ๆ และเสร็จสิ้นภายใน 30 นาทีเท่านั้นเอง

ขั้นตอนการติดติด mydns ประกอบด้วยสร้างฐานข้อมูลขึ้นมารองรับ สร้าง mydnsconfig และสุดท้ายติดตั้ง dns

ขั้นตอนสร้างฐานข้อมูล ด้วย MySQL

1. รัน mysql ขึ้นมาก่อน
/etc/init.d/mysqld start

2. login เข้า mysql และสร้างฐานข้อมูล
mysql -u root -p < จะขึ้นให้ใส่พาสเวิร์ด >

CREATE DATABASE mydns;
GRANT SELECT,INSERT,UPDATE,DELETE ON mysql.* TO 'mydns'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT SELECT,INSERT,UPDATE,DELETE ON mysql.* TO 'mydns'@'localhost.localdomain' IDENTIFIED BY 'yourpassword';
FLUSH PRIVILEGES;
quit;

'yourpassword' ให้กำหนดพาสเวิร์ดในที่นี้เราใช้ mydns2008

ขั้นตอน setup MyDNSConfig

1. download
- wget http://mesh.dl.sourceforge.net/sourceforge/mydnsconfig/MyDNSConfig-1.1.0.tar.gz
- tar xvfz MyDNSConfig-1.1.0.tar.gz
- cd MyDNSConfig-1.1.0
- mkdir /usr/share/mydnsconfig
- cp -rf interface/* /usr/share/mydnsconfig/
- ln -s /usr/share/mydnsconfig/web/ /var/www/html/mydnsconfig

2. install MyDNSConfig MySQL จากไฟล์ .sql
mysql -u root -p mydns < install/mydnsconfig.sql

3. ปรับแต่งไฟล์ config ให้ถูกต้อง

- vi /usr/share/mydnsconfig/lib/config.inc.php

/*
Database Settings
*/
$conf["db_type"] = 'mysql';
$conf["db_host"] = 'localhost';
$conf["db_database"] = 'mydns';
$conf["db_user"] = 'root';
$conf["db_password" = 'mydns2008';

0 comments:

Twitter Delicious Facebook Digg Stumbleupon Favorites More