ติดตั้งและคอนฟิกเบื้องต้น postfix บน Fedora 17

หลังจากใช้เวอร์ชั่นเก่ามานาน ก็ได้เวลาปรับปรุงเมล์เซิร์ฟเวอร์ให้ลูกค้าซะที ทั้งนี้เพื่อประสิทธิภาพในการทำงาน และสามารถต่อสู้กับ 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

 

ข้อมูลอ้างอิง

Leave a Reply