คอนฟิก postfix เบื้องต้น บน CentOS 6

บทความนี้อธิบายการคอนฟิก postfix เบื้องต้นบน CentOS 6 โดยเริ่มจากคอนฟิกหลังจากการติดตั้ง CentOS 6 เสร็จใหม่ๆ ยังไม่มีการ update โปรแกรมใดๆ ทั้งสิ้น

ทดสอบบน CentOS 6.3 (x86_64) ที่ติดตั้งแบบ Minimal + Base

โดยดีฟอลต์ CentOS 6 จะติดตั้ง postfix เป็นเมล์เซิร์ฟเวอร์

[root@cent6 ~]# rpm -qa | grep postfix
postfix-2.6.6-2.2.el6_1.x86_64

แก้ไขคอนฟิกพื้นฐานของ postfix

ไฟล์คอนฟิกหลักของ postfix คือไฟล์ /etc/postfix/main.cf

หลังจากการแก้ไขคอนฟิก ต้องรีสตาร์ตเซอร์วิส postfix เพื่อให้คอนฟิกใหม่มีผล

[root@cent6 ~]# service postfix restart
Shutting down postfix:                     [ OK ]
Starting postfix:                          [ OK ]

 

ใช้คำสั่ง netstat -an เพื่อดูการเปิดพอร์ต SMTP (TCP 25) ของ postfix จะเห็นว่า ดีฟอลต์คอนฟิกจากการติดตั้ง รับเมล์เฉพาะจากเครื่องเซิร์ฟเวอร์เองเท่านั้น (localhost) ไม่สามารถรับเมล์จากเครื่องอื่น หรือเครื่องอื่นไม่สามารถส่งเมล์เข้าเซิร์ฟเวอร์เครื่องนี้ได้

[root@cent6 ~]# netstat -an | grep 25
tcp    0  0   127.0.0.1:25   0.0.0.0:*      LISTEN
tcp    0  0   ::1:25         :::*           LISTEN

แก้ไขคอนฟิกเพื่อรองรับเมล์จากเครื่องอื่นที่ไม่ใช่ localhost (127.0.0.1) ได้

[root@cent6 ~]# cd /etc/postfix/
[root@cent6 postfix]# vi main.cf
...
#inet_interfaces = localhost
inet_interfaces = all

 

เมื่อเปิดให้ส่งเมล์เข้ามาจากเครื่องอื่นแล้ว โดยดีฟอลต์ postfix จะสามารถรับเมล์ที่ส่งจากเครื่องที่อยู่ใน subnet เดียวกันกับ ip ของเซิร์ฟเวอร์เท่านั้น

หากต้องแก้ไขคอนฟิกว่าสามารถรับเมล์ที่ส่งมาจากเครื่องที่อยู่ใน subnet ไหนได้บ้าง เช่นอนุญาตให้รับเมล์จาก subnet 192.168.2.0/24 และ 192.168.3.0/24 เพิ่มเติม

#mynetworks_style = class
#mynetworks_style = subnet
#mynetworks_style = host
mynetworks_style = subnet
#mynetworks = 168.100.189.0/28, 127.0.0.0/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
mynetworks = 192.168.2.0/24, 192.168.3.0/24, 127.0.0.0/8

 

คอนฟิกชื่อโดเมนของเมล์ที่จะรับว่าเป็นของเครื่องเอง ไม่ต้องส่งต่อไปยัง เมล์เซิร์ฟเวอร์เครื่องอื่นต่อไป

#mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
# mail.$mydomain, www.$mydomain, ftp.$mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

 

กำหนดว่าเมล์ที่ส่งออกจากเครื่องนี้ จะมีอีเมล์โดเมนเป็นชื่ออะไร

#myorigin = $myhostname
#myorigin = $mydomain
myorigin = $mydomain

 

หากต้องการแก้ไขคอนฟิกให้เก็บเมล์ไว้แบบ Maildir ใน home ของ user ต้องคอนฟิกให้สอดคล้องกับโปรแกรมอ่านเมล์ ที่เราจะคอนฟิกต่อไปเช่น dovecot

คอนฟิกดีฟอลต์คือ Mailbox หมายถึงเก็บไฟล์ mailbox ของ user ในรูปแบบ /var/spool/mail/<username>

แนะนำให้คอนฟิกเป็นแบบ Maildir/

#home_mailbox = Mailbox
#home_mailbox = Maildir/
home_mailbox = Maildir/

 

รีสตาร์ตเซอร์วิส postfix หลังการแก้ไขคอนฟิก

[root@cent6 ~]# service postfix restart
Shutting down postfix:              [ OK ]
Starting postfix:                   [ OK ]

 

ใช้คำสั่ง netstat -an ดูพอร์ต 25 หลังแก้ไขคอนฟิก inet_interfaces

root@cent6 ~]# netstat -an | grep 25
tcp   0  0   0.0.0.0:25   0.0.0.0:*   LISTEN
tcp   0  0   :::25        :::*        LISTEN

 

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

Leave a Reply