วันจันทร์ที่ 16 มีนาคม พ.ศ. 2552

Mail Server บนระบบปฏิบัติการ Linux

ทฤษฎี
MTA (Mail Tranfer Agent)
ในการส่ง E-mail นั้นจะต้องอาศัย Protocol ที่ชื่อ SMTP (Simple Mail Transfer Protocol) เป็นตัวกลางในการรับและส่ง E-mail แต่ละฉบับ โปรแกรมที่ทำหน้าที่คอยรับการสื่อสารทาง SMTP นั้นมีหลายตัวด้วยกัน เช่น Sendmail, Postfix, qmail, smail, Microsoft Exchange, Lotus Note เป็นต้น โดยปรกติ SMTP จะรอรับการติดต่ออยู่ที่ Port 25 อยู่แล้ว


คำศัพท์ Mail server Server ที่ทำหน้าที่รับส่ง E-mail โดยปรกติแล้วที่ Mail Server จะต้องรันโปรแกรม (service) ประเภท MTA ไว้ เพื่อรับการติดต่อที่ Port 25 MTA ย่อมาจาก Mail Tranfer Agent คือโปแกรมที่ทำหน้าที่รับส่ง E-mail กับ Mail-Server ต่าง โดยจะทำงานผ่าน Simple Mail Tranfer Protocol Mail Client เป็นโปรแกรมที่เอาไว้รับและส่ง E-mail เช่น Outlook Express, Pine, Eudora เป็นต้น

เมื่อผู้ใช้งานส่ง E-mail เมื่อผู้ใช้งาน Sivawut บน Domain sivawut.org ต้องการส่ง email ถึง Prachya บนDomain crma.ac.th โดยปรกติ Sivawut จะต้องใช้โปรแกรมส่ง E-mail เช่น Outlook Express ทำการส่ง E-mail Address เมื่อกดส่ง โปรแกรมจะเข้าไปดูว่า Outgoing นั้นใช้ช่องทางไหน (outgoing คือ ข้อมูลที่บอกว่าจะใช้ mail server ที่ไหนเป็นตัวส่ง E-mail ) ซึ่งปรกติแล้ว Outgoing จะเป็น address ของ mail server ที่เรามีบัญชีใช้งานอยู่ ซึ่งในที่นี้ก็คือ mail.sivawut.org นั่นเอง เมื่อเจอ outgoing Mail โปรแกรม OutlookExpress ก็จะส่ง mail ไปยัง Outgoing Mail ของเรา

เมื่อ mail ถูกส่งถึง outgoing mail แล้ว outgoing ก็ดูว่า จดหมายเราจ่าหน้าไปที่ใด e-mail server ก็จะไปถาม DNS ว่า domain ที่จะส่งไป มี mail server ชื่ออะไร จากนั้นก็จะส่งไปที่ Mail server ที่จ่าหน้าไปถึง กรณีที่ E-mail Server ที่เราจ่าหน้าไป ไม่มีตัวตนอยู่ หรือเครื่องปิด หรืออาจะไม่รับ Mail จากผู้ส่งที่ไม่รู้จัก E-mail ฉบับนั้นจะถูกตีกลับมายังผู้ส่ง เมื่อ E-mail ไปถึง Server ปลายทางแล้ว ก็จะเข้าไปอยู่ใน Mailbox ของผู้ใช้แต่ละคน ตามที่จ่าหน้าไปถึง ด้วยหลักการนี้ ทำให้เราสามารถส่ง E-mail กันถึงได้ทั่วโลก เพียงแค่เชื่อมต่อกับเครือข่ายอินเตอร์เน็ต
POP3 (Post Office Protocol Version 3)
หากเราต้องการจะส่ง e-mail ได้นั้นจะต้องมีชื่อบัญชีผู้ใช้บนเครื่องซึ่งเราต้อง login เข้าไปในเครื่อง mail server โดยตรง ดังนั้นทุกครั้งที่เราต้องการอ่าน Mail เราต้อง Login เข้าไปที่เครื่อง Mail Server ทุกครั้ง ซึ่งเป็นความไม่สะดวกอย่างยิ่ง จึงได้มีคนพัฒนา Protocol ตัวใหม่ขึ้นมาชื่อ Post Office Protocol ( POP ) ซึ่งตอนนี้ถึง Version 3 (POP3) เพื่อใช้ในการ ดึงเอา Mail จาก Mail server ที่เรามีชื่อบัญชีอยู่ มาเก็บไว้ในเครื่องคอมพิวเตอร์ของเราเอง


POP3 (Post Office Protocol version 3) ทำให้เราสามารถ Download e-mail จาก mail server มาเก็บไว้ที่เครื่องคอมพิวเตอร์ของเราเองได้

IMAP4 (Internet Message Access Protocol Version 4)
IMAP เป็น Protocol ที่เอาไว้ใช้ในการ อ่านและเขียนจดหมายอีกตัวหนึ่งที่มีมาเพื่อแก้ปัญหาข้อด้อยของ POP กล่าวคือ POP จะทำการดึงจดหมายจาก Mail Server มาเก็บไว้ที่เครื่องผู้ที่ใช้งาน เมื่อเราดึง Mail มาแล้ว หากเราต้องการอ่าน E-mail ฉบับนั้นอีกแต่ไม่ได้อยู่บนเครื่องเดิม หากเราใช้คอมพิวเตอร์อีกเครื่องดึงเมล์เพื่อมาอ่านอีก เราจะพบกับความว่างเปล่า เพราะว่า E-mail ของเรา ที่ Mail Server ได้ถูกดึงมาอ่านไปที่คอมพิวเตอร์เครื่องแรกเรียบร้อยแล้ว
IMAP จึงถูกออกแบบมาเพื่อแก็ปัญหานี้ กล่าวคือ การทำงานของ IMAP นั้น จะเป็นการ Access เข้าไปโดยตรงที่ MailBox ของเรา ทำให้เราสามารถ อ่าน เขียน ลบ E-mail ของเราได้จากคอมพิวเตอร์เครื่องไหนก็ได้ เพราะ E-mail ของเรา จะอยู่ที่เครื่อง Mail Server ตลอดเวลา ทำให้ง่ายต่อการเข้าถึง
Web based Mail
เมื่อ Internet ได้แพร่หลายไปทุกหน่วยงาน และความสะดวกสบายในการติดต่อสื่อสารด้วยการใช้ E-mail มากขึ้น ทำให้ E-mail ได้เข้าไปมีบทบาทแทบทุกองค์กร ในการติดต่อสื่อสารระหว่างกัน ความต้องการในการใช้ E-mail ในทุกๆที่นั้นได้เพิ่มมากขึ้น สืบเนื่องมาจากการพัฒนาของ HTML และการทำ Dynamic Web ด้วย CGI จึงได้มีผู้คิด Webbased Mail ขึ้นมา เพื่อตอบสนองข้อจำกัดของ POP3 และ การต้อง Login เข้าเครื่อง Mail Server โดยตรง เพื่อลดความยุ่งยากในการใช้โปรแกรม Mail Client ที่หลากหลาย และความยุ่งยากในการปรับตั้งค่าการทำงานของโปรแกรมและความปลอดภัย Webbased-Mail จึงได้กำเนิดขึ้นมา

การทำงานของ Webbased Mail จะใช้ Web Interface เป็นตัวติดต่อกับผู้ใช้งาน ทำให้ผู้ใช้งานสามารถเข้าถึง MailBox จากที่ไหนก็ได้ ขอเพียงแค่เชื่อมต่อกับเครือข่าย Internet ให้ได้ก็พอ และในปัจจุบันได้มี Website หลายๆที่ ได้ให้บริการ Free Webbased-Mail กันมากมายเช่น Yahoo Mail, GMail, Hotmail, ThaiMail เป็นต้น เหล่านี้คือ Webbased Mail ทั้งสิ้น
ในระบบปฎิบัติการ Linux หากเราต้องการเปิดให้บริการ Webbased Mail นั้นก็สามารถทำได้หลายวิธี เช่น ติดตั้ง Web server และ Protocol IMAP จากนั้นก็พัฒนา Webmail Interface ขึ้นมาเองโดยใช้ Server-side Script อย่าง PHP ในการบริหารจัดการกับ MailBox ก็ได้ ซึ่งวิธีที่กล่าวมาค่อนข้างจะยุ่งยากพอสมควร
ในปัจจุบันได้มี Software Opensource บ้างตัวได้แจก Webmail Interface ให้นำไปใช้งานและปรับแต่งได้ฟรี ไม่มีค่าใช้จ่าย ผู้ใช้งานเพียงแค่ ติดตั้งระบบ Mail Server และ Web Server ให้เรียบร้อย จากนั้นนำ Webmail Interface มาติดตั้ง ก็สามารถใช้งานได้ทันที เช่น www.squirrelmail.org
ตัวอย่าง Interface ของ SquirrelMail ตัวอย่าง Interface ของ SquirrelMail
www.openwebmail.org
ปฏิบัติ
ในขั้นตอนนี้ผู้อ่านเข้าใจทฤษฎีการทำงานของ mail server กันเรียบร้อยแล้ว ภาคต่อไปจะเป็นการติดตั้งและปรับแต่งระบบ mail server บน Linux ก่อนอื่นเราต้องมาดู software ที่เราต้องใช้กันก่อน 1. SMTP service 2. POP Service 3. E-mail client สำหรับโปรแกรมที่ไว้บริการ mail server นั้นได้มีอยู่หลายตัวด้วยกัน แต่ในการใช้งานในตัวอย่างนี้ จะใช้โปรแกรม Postfix ซึ่งเป็น mail server ที่มีประสิทธิภาพสูงมาก ตัวหนึ่ง ซึ่งสามารถหารายละเอียดเพิ่มเติมได้จาก http://www.postfix.org
ซึ่งโดยปรกติแล้ว หากเราติดตั้ง Linux แบบมาตรฐาน Package เหล่านี้จะถูกติดตั้งและ start เรียบร้อยแล้ว เราสามารถตรวจดูได้ด้วยการ telnet เข้าไปที่ port 25 หากมีการตอบรับ แสดงว่าได้มีการติดตั้งและใช้งาน SMTP แล้ว


หากแสงผลว่า Trying 127.0.0.1... telnet: Unable to connect to remote host: Connection refused แสดงว่า ยังไม่ได้มีการติดตั้ง Postfix หรือ อาจจะติดตั้งแล้วแต่ไม่ได้เรียกการทำงานของ Postfix ขึ้นมา หากได้ทำการติดตั้ง Postfix ไปแล้ว ให้เข้าไปดูที่ /etc/init.d/ แล้วให้หา init scripts ที่ชื่อว่า postfix แล้ว start ขึ้นมา โดยใช้คำสั่ง
1. /etc/init.d/./postfix start

หากไม่พบ postfix init scripts ใน /etc/init.d แสดงว่ายังไม่ได้ทำการติดตั้ง postfix ให้ทำการ download และติดตั้ง โดยดาวโหลดได้จาก http://www.postfix.org
ขั้นตอนการ Download และติดตั้ง Postfix

1.เข้าไป download postfix จาก http://www.postfix.org/download

2.ทำการแตกไฟล์ ด้วยคำสั่ง #tar –xvzf postfix*.tar.gz

3. #cd postfix

4. #./configure //รัน Script configure เพื่อเตรียมการ compile

5. #make //คอมไฟล์ source code

6. #make install //ติดตั้งโปรแกรม

7. #/etc/init.d/./postfix start //start postfix daemonการปรับแต่งค่า

เราเริ่มต้น Postfix หลังจากติดตั้งแล้วนั้น จริงๆแล้วโปรแกรมก็สามารถทำงานได้แล้ว เพียงแต่ว่าโปรแกรมยังไม่สามารถทำงานได้ถูกต้องและเต็มประสิทธิภาพนัก Postfix จะได้แค่ส่งเมล์ออก จะไม่สามารถรับ mail จากภายนอกได้ ฉะนั้น เราจึงต้องทำการปรับแต่งค่า เพื่อให้โปรแกรมทำงานได้ตามที่เราต้องการ
โดยมาตรฐานแล้ว เมื่อเราติดตั้ง Postfix เสร็จเรียบร้อย ตัวโปรแกรมจะสร้าง directory ที่เอาไว้เก็บ configuration file ไว้ที่ /etc/postfix ซึ่งใน directory นี้จะมีไฟล์ที่สำคัญต่อระบบด้วยกันอยู่จำนวนหนึ่ง ไฟล์ที่สำคัญที่สุดได้แก่ไฟล์ main.cf ในไฟล์นี้จะประกอบไปด้วยค่าต่างๆที่ไว้สำหรับให้โปรแกรม postfix มาอ่าน เพื่อนำไปตั้งค่าให้กับโปรแกรม
หากเราไม่ทำการแก้ไขค่าใน main.cf เราจะได้แค่ส่งเมล์ออก แต่ไม่สามารถรับเมล์เข้าได้ หากเราต้องการให้ mail server ของเรารับ mail จากที่อื่นได้ เราต้องไปกำหนดชื่อ mail server ใน DNS ก่อน หากในระบบของเราไม่มี DNS server เราก็ต้องใช้หมายเลข ip ของเครื่องเมล์ Server แทนและจะต้องเข้าไปแก้ไขไฟล์ main.cf โดยเข้าไปแก้ไขบรรทัด inet_interfaces = localhost ให้เป็น inet_interfaces = all
โดยใช้คำสั่ง #vi /etc/postfix/main.cf จากนั้นก็ทำการแก้ไขข้อความตามปรกติ แล้วทำการ save และทำการ restart postfix ด้วยคำสั่ง #/etc/init.d/./postfix restart

เป็นอันเสร็จเรียบร้อย ตอนนี้ mail server ของเราก็พร้อมทำงานแล้ว
MTA (Mail Tranfer Agent)ตัวอื่นๆ
ในการจัดตั้ง Mail Server ขึ้นมานั้น ไม่ได้จำเป็นว่าจะต้องใช้ Postfix เพียงอย่างเดียวก็ได้ ในอดีต Sendmail, http://www.sendmail.org เป็น MTA ตัวหนึ่งที่ได้รับความนิยมอย่างสูง เรียกได้ว่าเป็นมาตรฐานของ Linux ก็ว่าได้ เพราะ Linux แทบทุก distro จะติดตั้ง Sendmail เป็น Package มาตรฐานมาให้อยู่แล้ว แต่ด้วยความยุ่งยากและต้องอาศํยความรู้ความเข้ใจอย่างสูงในการปรับแต่งค่าของ Sendmail ทำให้ได้มีการพัฒนา Postfix ขึ้นมา และในปัจจุบัน Postfix ก็ได้พัฒนาจนหลายๆ distro ได้ติดตั้งให้เป็น Package มาตรฐานไปแล้ว

ยังมี MTA อีกหลายตัวที่มีประสิทธิภาพสูงและยังใช้งานได้ฟรีอีกเช่น
Qmail http://www.qmail.org
Exim http://www.exim.org
Courier http://www.courier-mta.org/
เป็นต้น

ไม่มีความคิดเห็น:

แสดงความคิดเห็น