การติดตั้ง Mail เซอร์ฟเวอร์

จาก Research 2549, สารานุกรมฟรี

(นนร. คลิก edit แล้ว copy ทั้งส่วนนี้ลงไปในหน้า ของหัวข้อของตนเอง แล้วขยายความต่อไป)
กลับไป คำแนะนำการเขียนรายงาน



เรื่อง การติดตั้ง Mail เซอร์ฟเวอร์

ชื่อผู้จัดทำ นนร.กิติพงค์ เกตุเดชา

สารบัญ

บทคัดย่อ

  • Mail server

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

บทนำ

  • 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 จากบุคคลภายนอกเข้ามาภายใน ช่วยดูแลรักษาความปลอดภัยได้เป็นอย่างดี

เอกสารอ้างอิง และเว็บลิงค์

  1. ข้อมูลข่าวสารด้านเทคโนโลยี,http://ite.nectec.or.th
  2. http://www.cmsthailand.com/docs/argosoftmail_install.html
  3. http://phst.ph.mahidol.ac.th/Linux/html/mail.html
  4. http://vishnu.sut.ac.th
Personal tools