การติดตั้ง Mail เซอร์ฟเวอร์
จาก Research 2549, สารานุกรมฟรี
(นนร. คลิก edit แล้ว copy ทั้งส่วนนี้ลงไปในหน้า ของหัวข้อของตนเอง แล้วขยายความต่อไป)
กลับไป คำแนะนำการเขียนรายงาน
เรื่อง การติดตั้ง Mail เซอร์ฟเวอร์
ชื่อผู้จัดทำ นนร.กิติพงค์ เกตุเดชา
สารบัญ |
บทคัดย่อ
- Mail server
คือ เครื่องบริการรับ-ส่งจดหมายสำหรับสมาชิก บริการที่มีให้ใช้เช่น ส่งจดหมาย รับจดหมาย ส่ง attach file หรือการมี address book เป็นต้น ตัวอย่าง mail server ที่เป็นที่รู้จักทั่วไป เช่น hotmail.com หรือ thaimail.com เป็นต้น Email Server เป็นงานบริการมาตรฐานสำหรับองค์กรยุคใหม่ที่การสื่อสารคือหัวใจสำคัญของการด ำเนินงาน หลักสูตรนี้มีจุดประสงค์เพื่อการนำระบบปฏิบัติการลีนุกซ์และซอฟต์แวร์โอเพ่น ซอร์สมาประยุกต์ใช้ในการสร้างระบบ Email Server ที่มีคุณสมบัติครบถ้วนสมบูรณ์ มีความปลอดภัยและเชื่อถือได้สูง ง่ายต่อการบริหารจัดการบำรุงรักษา มีประสิทธิภาพสูงเหมาะสมกับองค์กรขนาดใหญ่ และช่วยลดต้นทุนด้านซอฟต์แวร์

บทนำ
- Mail Server เป็นเครื่องคอมพิวเตอร์ที่ตั้งไว้ภายในองค์กร เพื่อให้บุคลากรเรียกใช้งาน เปรียบเสมือนพนักงานรับส่งเอกสารที่เป็นสื่อกลางติดต่อระหว่างพนักงานภายใน และติดต่อกับภายนอกแทนพนักงานทั้งหมด องค์กรใดที่ไม่มี server กลาง จะส่งผลให้พนักงานทำงานด้วยความยากลำบาก
- Mail server คือ เครื่องบริการรับ-ส่งจดหมายสำหรับสมาชิก บริการที่มีให้ใช้เช่น ส่งจดหมาย รับจดหมาย ส่ง attach file หรือการมี address book เป็นต้น ตัวอย่าง mail server ที่เป็นที่รู้จักทั่วไป เช่น hotmail.com หรือ thaimail.com เป็นต้น
SMTP server คืออะไร Simple mail transfer protocol server คือเครื่องบริการส่ง e-mail ไปยังเครื่องบริการอื่น ๆ สำหรับ SMTP ส่วนใหญ่จะไม่ยอมให้คนนอกองค์กร หรือ IP ที่อยู่นอกองค์กรใช้งาน SMTP เพราะอาจมีคนในโลกใบนี้มาแอบใช้ ทำให้บริการ SMTP ทำงานหนักให้กับคนภายนอกโดยไม่เกิดประโยชน์ใด ๆ หากเครื่องของท่านบริการ SMTP แก่คนนอก แสดงว่าไม่ได้กำหนด RELAY ไว้ เพราะชาวโลกอาจใช้เครื่องมือค้นหา "OPEN RELAY" แล้วพบว่าเครื่องของท่านเป็นเครื่องหนึ่งที่ไม่ได้ทำ RELAY ไว้ก็ได้ และที่อันตรายคือ อาจมีชาวโลกบางคนใช้โปรแกรม MOBI+ กำหนดให้เครื่อง SMTP ของท่าน bomb mail ไปยัง mail box ของเป้าหมาย และหมายเลขเครื่องที่โจมตี ก็คือ เครื่อง SMTP ของท่านนั่นเอง
POP server คือ Post office protocol server คือบริการรับ-ส่งเมลจาก mail server กับเครื่องของสมาชิก ทำให้สามารถอ่าน mail ด้วยมือถือ หรือ PDA จะเป็น web-based mail ที่เปิดอ่าน e-mail ได้จาก web เท่านั้น จะเปิดด้วย outlook หรือ pda ไม่ได้
ประวัติความเป็นมา/ทฤษฏีพื้นฐานที่เกี่ยวข้อง
ทฤษฏีพื้นฐานที่เกี่ยวข้อง
- mail server ช่วยขจัดปัญหาการใช้อีเมล์ทั้งหมดที่ท่านกำลังเผชิญอยู่ อีเมล์เก็บอยู่ใน server ภายในองค์กร ผู้ใช้สามารถเรียกข้อมูลจาก server มาดูได้ตลอดเวลา ถึงแม้เครื่องที่ใช้จะต้อง format เพื่อลงโปรแกรมใหม่ อีเมล์จะยังถูกเก็บอยู่ใน mail server ผู้ใช้สามารถรับส่งไฟล์ขนาดใหญ่ได้ในเวลาเพียงเสี้ยววินาที ปล่อยให้ mail server ทำงานส่วนที่เหลือ ท่านสามารถเก็บไฟล์ได้เป็นจำนวนมากเท่าที่ต้องการ ตามขนาดของ harddisk ที่มี เรานำเครื่อง mail server ไปตั้งที่องค์กรของท่าน ท่านสามารถให้พนักงานทั้งหมดเข้ามาใช้ได้ทันที เครื่องนั้นถือเป็นลิขสิทธิของท่าน
- หลังจากเสียบสาย lan ระบบจะทำงานอัตโนมัติ ติดต่อรับเมล์จาก mail server อีกเครื่องหนึ่งของเราที่ตั้งไว้ภายนอกซึ่งคอยทำหน้าที่ติดต่อกับโลกภายนอก กรองไวรัส และ ป้องกันเมล์ขยะ ก่อนส่งมายัง mail server ภายในองค์กรของท่าน ท่านจึงได้รับเมล์ที่สะอาดตลอดเวลา โดยไม่ต้องเสียเวลาไปกับการ update โปรแกรมฆ่าไวรัส เนื่องจาก server ของเราจะทำหน้าที่นี้แทน เราตั้ง mail server ภายนอกไว้หลายแห่งทั่วโลกเพื่อให้ท่านมั่นใจได้ว่าจะไม่ขาดการติดต่อ ในกรณีที่อินเตอร์เน็ตจุดใดจุดหนึ่งขัดข้อง
- การที่เราติดตั้งคอมพิวเตอร์เครื่องหนึ่งให้เป็น mail Server จำดป็นต้องติดตั้งโปรแกรมที่ทำหน้าที่เป็นตัวบริหารจัดการเมล์ ArGoSoft Mail เป็น Freeware ขนาดเล็ก ที่ช่วยจำลองคอมพิวเตอร์พีซีธรรมดาให้เป็น MailServer ที่มีความสามารถเสมือนจริง
ปัญหาที่พบในปัจจุบัน
- หากเช่า hosting ภายนอกเพื่อใช้รับอีเมล์แบบ pop3 โดยพนักงานแต่ละคน รับส่งเมล์เป็นอิสระแยกจากกัน พนักงานจะทำงานไม่ประสานกัน เนื่องจาก พนักงานคนหนึ่ง ไม่สามารถเรียกดูอีเมล์ที่เก็บไว้ในเครื่องคนอื่นได้ ที่สำคัญ ท่านยังไม่สามารถเก็บเมล์จำนวนมากไว้ที่ฝั่งผู้ให้บริการ hosting ได้ เนื่องจากถูกจำกัดด้วยพื้นที่ที่เช่ามา จึงจำเป็นต้องดึงเมล์มาเก็บไว้ในเครื่องส่วนตัวของแต่ละคน ซึ่งหากเครื่องส่วนตัวนั้นเสีย หรือต้องลงระบบใหม่จะทำให้เมล์ทั้งหมดสูญหายไปด้วย
- การส่งอีเมล์ออก ผ่าน mail server ของผู้ให้บริการอินเตอร์เน็ตหรือ hosting ที่ใช้ ท่านจะไม่สามารถเข้าไปตรวจสอบที่เครื่องเหล่านั้นได้ว่า อีเมล์ได้ส่งไปถึงปลายทางหรือยังค้างอยู่ต้นทาง หากยังค้างอยู่ต้นทางด้วยสาเหตุต่างๆ เช่น ปัญหาระบบเครือข่าย ทำให้อีเมล์ฉบับนั้นไม่สามารถติดต่อกับปลายทางได้ ท่านจะต้องรออีกหลายวัน ก่อนที่อีเมล์จะถูกตีกลับ
ท่านสามารถเก็บไฟล์ได้เป็นจำนวนมากเท่าที่ต้องการ ตามขนาดของ harddisk ที่มี เรานำเครื่อง mail server ไปตั้งที่องค์กรของท่าน ท่านสามารถให้พนักงานทั้งหมดเข้ามาใช้ได้ทันที เครื่องนั้นถือเป็นลิขสิทธิของท่าน หลังจากเสียบสาย lan ระบบจะทำงานอัตโนมัติ
เนื้อเรื่อง
วิธีการติดตั้ง
การติดตั้ง Mail-Server
sendmail เป็นโปรแกรมที่ใช้ในการทำ mailserver โดยการตรวจสอบว่ามีหรือไม่โดยใช้คำสั่ง
[root@one root]# rpm -q sendmail sendmail-8.11.6-15 [root@one root]#
แสดงว่า มีการติดตั้งไว้แล้ว(ในตอนที่เราลง RedHat จะลงให้อยู่แล้ว
ให้ใส่ CD แผ่นที่ 1 ใน เครื่อง Server และที่เครื่องลูกที่เราทำงาน ไปที่หน้าต่างของโปรแกรม putty
[root@one root]# mount /mnt/cdrom/ [root@one root]# cd /mnt/cdrom/RedHat/RPMS/ [root@one RPMS]# rpm -Uvh m4-1.4.1-7.i386.rpm Preparing... ########################################### [100%] 1:m4 ########################################### [100%] [root@one RPMS]#
ให้ใส่ CD แผ่นที่ 2 ใน เครื่อง Server และที่เครื่องลูกที่เราทำงาน ไปที่หน้าต่างของโปรแกรม putty
[root@one root]# mount /mnt/cdrom/ [root@one root]# cd /mnt/cdrom/RedHat/RPMS/ [root@one RPMS]# rpm -Uvh sendmail-cf-8.11.6-15.i386.rpm Preparing... ########################################### [100%] 1:sendmail-cf ########################################### [100%] [root@one RPMS]# rpm -Uvh imap-2001a-10.i386.rpm Preparing... ########################################### [100%] 1:imap ########################################### [100%] [root@one RPMS]# cd ; eject [root@one root]#
การลงโปรแกรมสำหรับ mail server ก็มีแค่นี้ จากนั้นเป็นการ config โดยการแก้ไขแฟ้ม sendmail.cf
[root@one root]# vi /etc/mail/sendmail.mc
ให้แก้ดังตัวอย่างเพียงแค่บรรทัดเดียว คือบรรทัด DAEMON_OPTIONS ให้เพิ่มคำว่า dnl เข้าไปข้างหน้าแล้วบันทึก
dnl to accept email over the network. dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA') dnl NOTE: binding both IPv4 and IPv6 daemon to the same port requires
ต่อไปใช้คำสั่ง
/etc/sendmail.cf
เพื่อสร้างไฟล์ sendmail.cf ใหม่จากนั้นให้เพิ่มบรรทัดในแฟ้ม accessโดย vi /etc/mail/access แล้วเพิ่มสองบรรทัดล่างเข้าไป ดังนี้
# Check the /usr/share/doc/sendmail/README.cf file for a description # of the format of this file. (search for access_db in that file) # The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc # package. # # by default we allow relaying from localhost... localhost.localdomain RELAY localhost RELAY 127.0.0.1 RELAY 192.168.1 RELAY <=== เพิ่มเข้าไป abcdef.com RELAY <=== เพิ่มเข้าไป
จากนั้นใช้คำสั่ง
[root@one root]# cd /etc/mail/ [root@one mail]# makemap hash /etc/mail/access.db < /etc/mail/access [root@one mail]#
แก้ไขแฟ้ม local-host-names โดยเพิ่มชื่อ domain ของเราเข้าไปดังนี้
# local-host-names - include all aliases for your machine here. abcdef.com
ตามที่ได้กล่าวมาเป็นการทำ SMTP Server ส่วนการทำ Pop Server ให้แก้แฟ้ม ipop3 โดยแก้ disable =yes เป็น no โดย vi /etc/xinetd.d/ipop3 ดังนี้
# default: off
# description: The POP3 service allows remote users to access their mail \
# using an POP3 client such as Netscape Communicator, mutt, \
# or fetchmail.
service pop3
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/ipop3d
log_on_success += HOST DURATION
log_on_failure += HOST
disable = no
}
จากนั้นสั่ง run xinetd อีกครั้งหนึ่ง
[root@one mail]# /etc/init.d/xinetd restart Stopping xinetd: [ OK ] Starting xinetd: [ OK ] [root@one mail]#
เป็นการจบการติดตั้ง mail server
การเซ็ต Mail Server ขั้นพื้นฐานบน Linux โดยใช้ Sendmail
ต่อไปนี้เป็นขั้นตอนการเซ็ต Mail Server บน Linux โดยใช้ Sendmail (SMTP) ที่ทำหน้าที่รับส่งเมล์ และใช้ POP3 กับ IMAP4 ในการติดต่อระหว่าง Mail Client กับ Mail Server โดยมีขั้นตอนพอสรุปได้ดังนี้ :
1.ติดตั้งโปรแกรม Sendmail แล้ว Start ให้ทำงาน (วิธีการ Start/Stop/Restart Service ที่นิยมใช้กันดูได้ที่นี่) และตรวจสอบว่าทำงานแล้วยังโดยคำสั่ง :
#netstat –na |grep 25 หรือ #ps –ef |grep sendmail หรือ telnet ที่ port 25
2.ติดตั้ง POP3 แล้ว start ให้ทำงาน ตรวจสอบว่าทำงานแล้วยังโดยใช้คำสั่ง :
#netstat –na | grep 110 หรือ telnet ที่ port 110
3.ติดตั้ง IMAP แล้ว start ให้ทำงาน ตรวจสอบว่าทำงานแล้วยังโดยใช้คำสั่ง :
#netstat –na |grep 143 หรือ telnet ที่port 143
4.คอนฟิก Sendmail
4.1 แก้ไขไฟล์ /etc/mail/sendmail.mc ในบรรทัดที่เขียนว่า DAEMON_OPTIONS(‘Port=smtp,Addr=127.0.0.1, Name=MTA’) ให้เปลี่ยน 127.0.0.1 เป็น 0.0.0.0 เพื่อเปิดกว้างให้ทุกคนสามารถใช้ Sendmail (SMTP) ได้ แล้ว run macro ดังนี้:
#make -C /etc/mail
4.2 กำหนดว่าจะอนุญาตให้เครื่องไหนมาใช้ smtp บ้าง โดยให้กำหนดที่ไฟล์ /etc/mail/access ซึ่งอาจมีข้อความเป็นดังนี้:
localhost.localdomain RELAY
localhost RELAY
127.0.0.1 RELAY
ให้ต่อท้ายเพิ่มดังนี้เช่น
southcat.net DISCARD
cyberpromo.com REJECT
202.129.18 RELAY
ซึ่งก็หมายถึงเป็นการอนุญาติให้ IP Address ที่ขึ้นต้นด้วย 202.129.16 สามารถใช้ SMTP ได้ แต่ปฏิเสธเมล์ที่มีโดเมนเป็น southcat.net และ cyberrpromo.com จากนั้นให้แปลงข้อมูลจาก access ไปเป็น access.db ดังนี้ :
#makemap hash access < access
4.3 กำหนดโดเมนที่จะรับ mail ให้ใส่โดเมนของเราที่จะยอมรับเมล์ในไฟล์ /etc/mail/local-host-names เช่น
itwizard.info
mydomain.com
หรือจะใส่ค่าในไฟล์ /etc/mail/sendmail.cf ดังนี้
Cwlocalhost itwizard.info, mydomain.com
โดยให้ # หน้าบรรทัดที่มีข้อความว่า Fw /etc/mail/local-host-names เพื่อไม่ให้ไปเรียกใช้งานไฟล์ /etc/mail/local-host-names ดังนี้ :
#Fw /etc/mail/local-host-names
5.การกำหนดขนาดในการรับส่งเมล์ ที่ sendmail จะมีไฟล์ /etc/mail/sendmail.mc ที่ใช้สำหรับสร้างมาโครให้กลายเป็น config file ที่แท้จริงคือ /etc/mail/sendmail.cf การกำหนดขนาดของเมล์โดยค่า Default จะเป็น 2000000 bytes ซึ่งค่านี้สามารถกำหนดได้ในไฟล์ /etc/mail/semdmail.mc ตรงค่าที่เขียนว่า:
define('UUCP_MAILER_MAX', '2000000')
6.Restart Sendmail อีกครั้ง
7.กรณีทำเป็น web based email กรณีทำเป็น web based email โปรโตคอลที่จำเป็นต้องใช้ คือ SMTP แต่ก็มี Web based email บางตัวเช่น SquirrelMail ต้องใช้โปรโคคอล IMAP ด้วยโปรแกรมถึงจะทำงานได้ ดังนั้นในกรณีที่ใช้เป็น web based email อย่างเดียว โปรโตคอลไหนที่ไม่จำเป็นต้องใช้ก็ไม่ควรจะเปิดบริการครับ
แต่มีสิ่งที่ควรพิจารณาคืออาจจะเจอปัญหากับการส่งเมล์ได้ไม่เกิน 524288 bytes ซึ่งวิธีการแก้หรือพิจารณามีสองส่วนคือ :
ส่วนที่ 1 เป็นส่วนที่เกี่ยวกับ Apache ครับ อยู่ที่ /etc/httpd/conf.d/php.conf ตรงข้อความต่อไปนี้ :
<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 524288
</Files>
ค่าของ LimitRequestBody ค่าอาจจะเป็น 524288 นั่นคือเราจะไม่สามารถแนบไฟล์ได้เกิน ค่านี้ (กรณีใช้งานผ่านเว็บเมล์เท่านั้น) ดังนั้นถ้าต้องการให้ Attachment ได้มาก ๆ ก็ต้องเปลี่ยนเป็นค่าที่มากกว่าแล้ว restart apache ใหม่อีกครั้ง
ส่วนที่ 2 (ค่า default อาจจะใช้ได้อยู่แล้ว) ก็จะเป็นส่วนไฟล์ /etc/php.ini ตรงค่าของ upload_max_filesize ก็ควรจะเท่ากับค่าของ LimitRequestBody อย่าลืมให้ค่า file_uploads = on ด้วยนะครับ
หมายเหตุ การติดต่อระหว่าง Mail Client กับ Mail Server สามารถจะใช้ได้ทั้ง POP3 และ IMAP4 บางทีท่านอาจจะเลือกใช้ทั้งสองตัว หรือเลือกใช้ตัวใดตัวหนึ่งก็ได้ ถ้าท่านเลือกใช้ตัวใดตัวหนึ่ง ก็ควรจะติดตั้งเฉพาะตัวที่ท่านเลือกใช้เท่านั้น หรือจะปิด Service ของอีกตัวซะก็ได้
สรุป
ติดตั้ง Mail เซอร์ฟเวอร์ ช่วยทำให้เครื่องของเราสามารถทำหน้าที่ เป็นเซอร์เวอร์ได้ ใช้ในการตรวจสอบ รับส่ง mail จากบุคคลภายนอกเข้ามาภายใน ช่วยดูแลรักษาความปลอดภัยได้เป็นอย่างดี
