การเซ็ต Postfix Mail + cyrus-imapd + squirrelmail บน Fedora Core 3

รายละเอียดของบทความ
จัดทำเมื่อ
25 ธันวาคม 2547
แก้ไขล่าสุดเมื่อ
: 15 เมษายน 2548
ทดลองใช้งานบน
: RedHat Fedora Core 3
ผู้เขียน
:
อดิศร  ขาวสังข์

หมายเหตุ
การใช้งาน
IMAP & POP3 Server ที่เป็น cyrus-imapd จะนิยมใช้งานกับ high-performance mail คือใช้กับระบบเมล์ที่มีจำนวน user มาก ๆ ฉะนั้นการคอนฟิกในส่วนของ cyrus-imapd อาจจะมีความยุ่งยากอยู่บ้าง  ถ้าท่านไม่อยากเจอกับความยุ่งยากดังกล่าวก็ขอแนะนำให้ใช้ IMAP & POP3 Server ที่เป็นของ dovecot
ซึ่งดูวิธีการคอนฟิกได้ ที่นี่ ครับ

ขอบเขต

นที่นี้จะแสดงวิธีการติดตั้งโปรแกรม Mail Server ที่เป็น Postfix Mail และโปรแกรม Cyrus IMAP/POP Server  เพื่อให้เครื่องที่เป็น Mail Client อย่าง MS Outlook ,Mozilla mail, Kmail, Netscape mail ฯลฯ  สามารถเรียกใช้งานได้  รวมถึงการใช้งานโปรแกรม squirrelmail และโปรแกรมป้องกันไวรัส spamassasin


สรุปโปรแกรมที่ต้องติดตั้ง มีดังนี้ 
1. Posfix Mail
2. Cyrus-imapd
3. Squirrelmail
4. Spamassassin

การติดตั้งโปรแกรม
ในที่นี้ขออนุญาตติดตั้งโปรแกรมผ่านเมนู System Settings --> Add/Remove Applications โดยให้เลือกโปรแกรมต่าง ๆ ดังรูปข้างล่าง



การคอนฟิก Posfix Mail
ในบทความนี้ได้ตั้งชื่อโฮสต์ให้กับ Mail  Server ไว้ใน DNS Server เป็น mail.itwizard.info และได้มีการเพิ่ม MX Record ใน DNS ของโดเมนแล้วด้วยฉะนั้นในการรับส่งเมล์สามารถใช้ชื่ออีเมล์เป็น user@itwizard.info

ไฟล์คอนฟิกของ Postfix Mail คือไฟล์ /etc/posfix/main.cf  โดยให้คอนฟิกค่าที่จำเป็นดังต่อไปนี้
1.
กำหนดค่า myhostname = mail.itwizard.info  เพื่อกำหนดชื่อ hostname ใน internet
2. กำหนกค่า mydomain = itwizard.info  เพื่อกำหนดชื่อของ local internet domain
3. กำหนดค่า myorigin = itwizard.info เพื่อใช้บอกว่าผู้รับเมล์ว่าเมล์มาจากโดเมนไหน
4. กำหนดค่า inet_interface = all ซึ่งเป็นการกำหนด network interface address ของ Mail Server ที่ใช้ในการรับเมล์
5. กำหนดค่าของ mydestination = itwizard.info  เพื่อกำหนดโดเมนปลายทางของของรับเมล์
6.
การคอนฟิกเพื่อจำกัดการ relay mail ให้ดูในหัวข้อ  "TRUST AND RELAY CONTROL" ของไฟล์คอนฟิก /etc/postfix/main.cf

  • โดยให้กำหนดพารามิเตอร์ของ mynetworks_style ว่ามีค่าเป็น class, subnet หรือ host

  • โดยค่า default จะเป็น subnet หมายถึงว่า postfix จะ "trust" SMTP client ที่มี IP อยู่ในเครือข่ายเดียวกับ subnetwork ที่เป็น local machine ซึ่งบน Linux จะทำงานได้ถูกต้องเฉพาะ interfaces ที่ถูกระบุด้วยคำสั่ง ifconfig

  • การกำหนดค่าเป็น class หมายถึง postfix จะ "trust" SMTP client ที่มี IP อยู่ใน class เดียวกันกับเครือข่ายที่เป็น Local machine

  • การกำหนดค่าเป็น host หมายถึง postfix จะ "trust" เฉพาะ local machine

ในที่นี้กำหนดให้ค่าเป็น subnet เพื่อให้เครื่องภายในองค์กรค์สามารถส่งเมล์ผ่าน MS Outlook หรือโปรแกรมประเภทเดียวกันได้

หรืออาจจะระบุค่า mynetworks ให้เป็นแบบ list  ก็ได้ ซึ่งถ้าเป็นการระบุค่า mynetworks โปรแกรม Postfix จะไม่สนในค่า mynetworks_style โดยค่า mynetworks ให้กำหนดค่า network ที่อนุญาตให้ relay ได้ ซึ่งในที่นี้กำหนดเป็น network ภายในของที่ใช้งานเป็นดังนี้
mynetworks = 202.129.16.0/26, 172.24.51.0/24, 127.0.0.0/8

7. ในบรรทัด 
mailbox_transport ให้กำหนดค่าเป็น lmtp:unix ดังนี้
mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp

7. ทำการ restart postfix (หรือถ้ายังไม่ start ก็ให้ start) ด้วยคำสั่ง service postfix restart/start
8. ให้ทดลอง telnet จากเครื่อง client ที่พอร์ต 25 ดูว่าได้หรือไม่ ดังตัวอย่างต่อไปนี้
telnet mail.itwizard.info  25
ซึ่งถ้ามีข้อความเป็น 220 mail.itwizard.info ESMTP Postfix   ก็แสดงว่า Postfix พร้อมที่จะให้บริการแล้ว  โดยชื่อที่เป็น mail.itwizard.info ก็เป็นค่าของ myhostname ที่ได้กำหนดไปก่อนหน้านี้นั่นเอง

การ Start ระบบ Authentication
ให้ทำการทำการ
start saslauthd ซึ่งเป็น Server process ที่รับผิดชอบเกี่ยวกับ plaintext authentication request โดยใช้คำสั่งดังนี้
#
service saslauthd  start

และควร
ให้โปรแกรมตัวนี้ทำงานทุกครั้งเมื่อมีการบู๊ตเครื่องก็ให้ใช้คำสั่งดังนี้
# chkconfig saslauthd on

หรือจะสั่งงานผ่านหน้าต่าง Service ก็ได้นะครับ

การคอนฟิก Cyrus Imapd
ปกติถ้าใช้งานเมล์โดยใช้งานผ่านโปรแกรม mail client อย่างเช่น Ms Outlook ,Kmail, Mozilla mail, Netscape mail ฯลฯ ในส่วนของ cyrus imapd ไม่ต้องทำการคอนฟิกก็สามารถใช้งานได้แล้วครับ  แต่ในกรณีที่ใช้งานกับ squirrelmail อาจจะมี error ดังรูป



วิธีการแก้ปัญหาก็ให้ทำการเพิ่มส่วนคอนฟิกของ cyrus imapd ซึ่งเป็นตัวที่ทำหน้าที่เป็น IMAP Server และ POP Server โดยไฟล์สำหรับการคอนฟิกคือ /etc/imapd.conf โดยให้ทำการเพิ่มบรรทัดต่อไปนี้เข้าไป

munge8bit: no
autocreatequota: 10000
lmtp_overquota_perm_failure: yes
createonpost: no
altnamespace: yes
unixhierarchysep: yes


และให้ทำการ restart cyrus-imapd

การคอนฟิก SquirrelMail
1. เปลี่ยนไดเร็คทอรี่เข้าไปยังตำแหน่งที่มีไฟล์คอนฟิกของ Squirrelmail ดังนี้
   
cd /usr/share/squirrelmail/config
2. รันไฟล์ที่ใช้ในการคอนฟิกคือ conf.pl ดังนี้
   
./conf.pl
3 เลือกโดเมนให้ตรงกับโดเมนของตัวเองซึ่งในที่นี้เป็น itwizard.info ดังนี้
    - เลือกเมนู
2 (Server Settings)
    - เลือกเมนูย่อย 1
(Domain)
    - ป้อนชื่อโดเมน (itwizard.info)
4. เลือกชนิดของ Mail Server เป็น SMTP ดังนี้
    - เลือกเมนูหมายเลข 2
(Server Settings)
    - เลือกเมนูย่อย 3 (Sendmail or SMTP
    - เลือก SMTP
5. ให้เลือกชนิดของ IMAP เป็น cyrus ดังนี้
     -  เลือกเมนูหมายเลข 2
(Server Settings)
     - เลือกเมนูย่อย A (Update IMAP Settings)
     - เลือกเมนูย่อย 8 (Server Software)
     - เลือก cyrus
6. เลือกเมนูอื่น ๆ ตามความเหมาะสม
7. บันทึกค่าที่เซ็ตด้วยการเลือกเมนู S (Save data)

ทดสอบการส่งเมล์
มาถึงขั้นนี้ก็ให้ลองทดสอบการส่งเมล์ดู  โดยให้ทดสอบทั้งการรับส่งผ่าน Squirrelmail และการใช้โปรแกรม Mail Client  ซึ่งเท่าที่ได้ทดลองดูแล้วถ้าได้ทำตามขั้นตอนดังที่กล่าวมาสามารถรับส่งเมล์ได้แล้วครับ

การคอนฟิก spamassassin
ผมพยายามค้าหาวิธีการคอนฟิก spamassassin แต่ต้องขออภัยด้วยครับ  ไม่สามารถจะหาข้อมูลที่พอจะนำมาเสนอได้เลย  อย่างไรก็แล้วแต่ถ้าท่านต้องการจะดูข้อมูลเพิ่มเติมเกี่ยวกับ spamassasin ก็สามารถดูได้ที่นี่ครับ  http://spamassassin.apache.org/


----
จบครับ---