หลังจากใช้เวอร์ชั่นเก่ามานาน ก็ได้เวลาปรับปรุงเมล์เซิร์ฟเวอร์ให้ลูกค้าซะที ทั้งนี้เพื่อประสิทธิภาพในการทำงาน และสามารถต่อสู้กับ spam ที่นับวันจะมีเทคนิคซับซ้อนมากขึ้นเรื่อยๆ
เริ่มจากการติดตั้งและคอนฟิกเบื้องต้น postfix บน Fedora 17 มาจากเนื้อหาที่เคยเขียนไว้สำหรับติดตั้งบน Fedora 14 แต่ขอปรับเนื้อหาให้กระขับมากขึ้น โดยรวมทั้งสองตอนเข้าด้วยกัน หากต้องการดูรายละเอียดของการเปลี่ยนแปลงก่อนและหลังแก้ไขค่าคอนฟิกแต่ละค่า สามารถตามไปดูได้ตามลิ้งค์ในส่วนข้อมูลอ้างอิงด้านล่าง
ติดตั้งไฟล์ rpm ของ Postfix
ไฟล์ rpm สำหรับติดตั้งโปรแกรม postfix ไม่มีอยู่ในแผ่นติดตั้ง Fedora 17 ต้องดาวน์โหลดไฟล์เพิ่มเติมเองจาก Fedora 17 Everything
[root@fc17-64a Everything]# rpm -i postfix-2.9.2-2.fc17.x86_64.rpm
error: Failed dependencies:
libmysqlclient.so.18()(64bit) is needed by postfix-2:2.9.2-2.fc17.x86_64
libmysqlclient.so.18(libmysqlclient_16)(64bit) is needed by postfix-2:2.9.2-2.fc17.x86_64
ต้องติดตั้งไฟล์ rpm เพิ่มเติม ในที่นี้คือ libmysqlclient ซึ่งอยู่ในไฟล์ rpm ชื่อ mysql-libs อยู่ในแผ่นติดตั้ง Fedora 17 อยู่แล้ว
[root@fc17-64a ~]# rpm -i /mnt/Packages/m/mysql-libs-5.5.23-1.fc17.x86_64.rpm
ลองติดตั้งไฟล์ rpm ของ postfix อีกครั้ง
[root@fc17-64a Everything]# rpm -i postfix-2.9.2-2.fc17.x86_64.rpm
หรืออาจจะใช้ yum install postfix ทีเดียวเลยก็ได้
เปลี่ยนคอนฟิก alternatives MTA
ดีฟอลต์จากการติดตั้ง Fedora 17 โปรแกรมส่งเมล์ที่ติดตั้งมาคือ sendmail ถ้าต้องการเปลี่ยนมาใช้ postfix ต้องปิดเซอร์วิส sendmail ก่อน
[root@fc17-64a ~]# systemctl stop sendmail.service [root@fc17-64a ~]# systemctl disable sendmail.service rm '/etc/systemd/system/multi-user.target.wants/sm-client.service' rm '/etc/systemd/system/multi-user.target.wants/sendmail.service'
เปลี่ยนคอนฟิกเมล์ของระบบให้มาใช้ postfix ด้วยคำสั่ง alternatives แล้วเลือกตัวเลขบรรทัดที่เป็น postfix แทน
[root@fc17-64a ~]# alternatives --config mta
There are 2 programs which provide 'mta'.
Selection Command ----------------------------------------------- *+ 1 /usr/sbin/sendmail.sendmail 2 /usr/sbin/sendmail.postfix
Enter to keep the current selection[+], or type selection number: 2
ใช้คำสั่ง systemctl เพื่อรันเซอร์วิส postfix
[root@fc17-64a ~]# systemctl start postfix.service
ถอดโปรแกรม sendmail
หากติดตั้งคอนฟิกและใช้งาน postfix ได้ตามที่ต้องการแล้ว และเพื่อป้องกันความสับสนในการใช้งานโปรแกรมเมล์ แนะนำให้ถอดโปรแกรม (uninstall) sendmail ออกจากเครื่อง
[root@fc17-64a ~]# rpm -e sendmail
แก้ไขคอนฟิกพื้นฐานของ postfix
ไฟล์คอนฟิกหลักของ postfix คือไฟล์ /etc/postfix/main.cf ในการเริ่มต้น ค่าคอนฟิกต่างๆ ที่อาจต้องเปลี่ยนมีดังนี้
inet_interfaces = all
เพื่อรองรับเมล์จากเครื่องอื่นที่ไม่ใช้ localhost ได้
mynetworks_style = subnet mynetworks = 192.168.7.0/24, 127.0.0.0/8
คอนฟิกว่าสามารถรับเมล์ที่ส่งมาจากเครื่องที่อยู่ใน subnet ไหนได้บ้าง
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
คอนฟิกชื่อโดเมนของเมล์ที่จะรับว่าเป็นของเครื่องเอง ไม่ต้องส่งต่อไปยัง เมล์เซิร์ฟเวอร์เครื่องอื่นต่อไป
myorigin = $mydomain
กำหนดว่าเมล์ที่ส่งออกจากเครื่องนี้ จะมีโดเมนเป็นชื่ออะไร
home_mailbox = Maildir/
หากต้องการแก้ไขคอนฟิกให้เก็บเมล์ไว้แบบ Maildir ใน home ของ user ต้องคอนฟิกให้สอดคล้องกับโปรแกรมอ่านเมล์เช่น dovecot
คอนฟิกดีฟอลต์คือ Mailbox หมายถึงเก็บไฟล์ mailbox ของ user ในรูปแบบ /var/spool/mail/<username>
หลังแก้ไขคอนฟิกต้องรีสตาร์ตเซอร์วิส postfix ด้วย
[root@fc17-64a ~]# systemctl restart postfix.service