เพื่อป้องกันไม่ให้ผู้ไม่มีสิทธิ์หรือผู้ไม่ปรารถนาดีทั้งหลาย ใช้เมล์เซิร์ฟเวอร์เราส่งอีเมล์ไปยังคนอื่นๆ ไม่ว่าจะตั้งใจหรือตั้งใจในรูปแบบสแปมหรือปลอมแปลงอีเมล์ทั้งหลาย
แนะนำให้คอนฟิก SMTP AUTH ในเมล์เซิร์ฟเวอร์ เพื่อให้ก่อนที่จะส่งอีเมล์ได้นั้น ต้องมีการระบุตัวตนด้วยการใส่ user, password ให้ถูกต้องก่อน ถึงจะส่งเมล์ได้
ในที่นี้จะแสดงการคอนฟิก postfix ในส่วนของพอร์ต submission (TCP 587) ที่รองรับการส่งอีเมล์จากผู้ใช้ โดยให้มีการใส่ user, password แล้วนำไปตรวจสอบกับ dovecot เหมือนกับก่อนที่จะอ่านเมล์ได้ ไม่ว่าจะเป็น pop หรือ imap ต้องล็อกอินก่อน
แก้ไขคอนฟิก dovecot ให้ postfix ตรวจสอบ user, password ได้
ก่อนจะแก้ไขคอนฟิกของ postfix เราต้องแก้ไขคอนฟิกของ dovecot เพื่อสร้างไฟล์ socket ใช้ติดต่อกับโปรแกรม postfix สำหรับการทำตรวจสอบ user, password
ทำได้โดย แก้ไขในไฟล์คอนฟิก /etc/dovecot/conf.d/10-master.conf
คอนฟิกที่ต้องแก้ อยู่ภายใต้ส่วน “service auth” เอาเครื่องหมาย # ออก แล้วเพิ่มคอนฟิก user = postfix และ group = postfix เพื่อให้ postfix สามารถอ่านไฟล์นี้ได้
[root@cent6 ~]# vi /etc/dovecot/conf.d/10-master.conf ... service auth { ... # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix } ...
รีสตาร์ตเซอร์วิส dovecot เพื่อให้คอนฟิกที่แก้ไขมีผล
[root@cent6 ~]# service dovecot restart Stopping Dovecot Imap: [ OK ] Starting Dovecot Imap: [ OK ]
หากแก้ไขถูกต้อง จะมีไฟล์ /var/spool/postfix/private/auth ถูกสร้างขึ้นมา สังเกตว่าจะเป็นไฟล์ชนิดพิเศษ (s) ที่เรียกว่า socket
[root@cent6 ~]# ls -l /var/spool/postfix/private/auth
srw-rw-rw-. 1 postfix postfix 0 Nov 17 23:47 /var/spool/postfix/private/auth
แก้ไขคอนฟิก postfix เพื่อเปิดการทำ SMTP AUTH
แก้ไขคอนฟิกไฟล์ /etc/postfix/main.cf โดยเพิ่มบรรทัดคอนฟิกเหล่านี้ เพื่อระบุการตรวจสอบ user, password กับ dovecot โดยอาจเพิ่มต่อจากบรรทัดสุดท้ายของไฟล์
[root@cent6 ~]# vi /etc/postfix/main.cf ... smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
เปิดคุณสมบัติการทำ SMTP AUTH ของพอร์ต submission ในไฟล์ /etc/postfix/master.cf
[root@cent6 ~]# vi /etc/postfix/master.cf ... submission inet n - n - - smtpd -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING ...
รีสตาร์ตเซอร์วิส postfix เพื่อให้คอนฟิกที่แก้ไขมีผล
[root@cent6 ~]# service postfix restart Shutting down postfix: [ OK ] Starting postfix: [ OK ]
ตัวอย่างการทดสอบการคอนฟิก SMTP AUTH บน Android และ iPhone สามารถดูได้ใน คอนฟิก Postfix SMTP AUTH กับ Dovecot บน Fedora 17