Có rất nhiều phần mềm dùng để chạy Mail server. Nhưng trong bài này chúng ta sẽ dùng Postfix + Dovecot + pop-before-smtp để cài đặt đơn giản nhất. Các vấn đề khác như: cho phép login với SSL, Antivirus, SpamAssassin,... sẽ được cập nhật trong thời gian tới khi cần thiết.
1. Cài đặt Postfix
Để cài đặt Postfix, chạy lệnh sau:
#sudo apt-get install postfix
Mặc định Postfix sẽ quản lý email theo dạng mbox với một số hạn chế. Chúng ta sẽ chuyển sang dùng Maildir.
#sudo postconf -e "home_mailbox = Maildir/"
Nếu lệnh trên hổng chạy thì edit file /etc/postfix/main.cf và thêm dòng "home_mailbox = Maildir/" (không có dấu nháy) vào cuối file.
Khởi động lại Postfix:
#sudo /etc/init.d/postfix restart
2. SMTP Authentication
Cài đặt vào các gói cần thiết:
#sudo apt-get install libsasl2 libsasl2-modules sasl2-bin
Mở file /etc/default/saslauthd và uncomment dòng này "START=yes"
Mở file /etc/init.d/saslauthd và tìm dòng có chữ "PARAMS=..." và thêm vào cuối dòng đoạn mã sau:
-m /var/spool/postfix/var/run/saslauthd
Sau đó tạo ra các thư mục sau và chown cho user postfix:
#mkdir /var/spool/postfix/var
#mkdir /var/spool/postfix/var/run
#mkdir /var/spool/postfix/var/run/saslauthd
#chown -R root.sasl /var/spool/postfix/var/run/saslauthd
Khởi động lại saslauthd bằng lệnh:
#/etc/init.d/saslauthd restart
Kiểm tra xem nó đã hoạt động chưa:
#ps -ef | grep saslauthd
#ls -lh /var/spool/postfix/var/run/saslauthd
Tạo ra một thư mục /etc/postfix/sasl và sau đó tạo ra một file tên smtpd.conf với nội dung:
pwcheck_method: saslauthd
Sau đó mở file cấu hình của Postfix /etc/postfix/main.cf và thêm vào các dòng sau (nhớ là các dòng cuối cùng phải có khoảng cách đầu dòng):
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_application_name = smtpd
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
check_relay_domains
Khởi động lại Postfix:
/etc/init.d/postfix reload
Có thể thử bằng cách telnet vào server.
Nếu server không hoạt động tốt, hãy thử check file /var/log/mail.log
3. Cài đặt Dovecot
Cài đặt Dovecot bằng lệnh:
#sudo apt-get install dovecot dovecot-pop3d dovecot-imapd
Nếu lệnh trên hổng chạy, thử lệnh sau:
#sudo apt-get install dovecot dovecot-pop3d dovecot-imapd
Mở file /etc/dovecot/dovecot.conf và xác định các giao thức mà Dovecot sẽ cung cấp.
Ở trong bài viết này chỉ hướng dẫn cấu hình cho POP3 và IMAP thôi.
protocols = imap imaps
Khởi động lại Dovecot:
/etc/init.d/dovecot restart
Chúng ta có thể thử lại bằng lệnh mutt (thường phải cài vào):
#mutt -f imap://username@hostname/
#mutt -f pop://username@hostname/
Trong một số trường hợp, khi test với giao thức POP3 sẽ bị báo lỗi "Không tìm thấy thư mục..." gì đấy.
Trong trường hợp này cần mở file /etc/dovecot/dovecot.conf
Tìm dòng có chứa "pop3_uidl_format" và chỉnh lại thành:
pop3_uidl_format %u
Sau đó khởi động lại Dovecot thì lỗi trên sẽ đơợc loại bỏ.
Cấu hình cho Dovecot sử dụng Maildir.
Tìm dòng "default_mail_env" trong file /etc/dovecot/dovecot.conf" và đổi thành:
default_mail_env = maildir:~/Maildir
Khởi động lại Dovecot.
4. Cấu hình Pop-before-smtp
Trước khi cài đặt pop-before-smtp cần phải cài đặt các gói sau:
#sudo apt-get install libtimedate-perl libnet-netmask-perl libberkeleydb-perl
Cài đặt pop-before-smtp:
#sudo apt-get install pop-before-smtp
Sau đó chạy các lệnh sau:
#cp pop-before-smtp.init/etc/rc.d/init.d/pop-before-smtp
#cp pop-before-smtp /usr/sbin/
Edit file /etc/pop-before-smtp/pop-before-smtp.conf và uncomment cho phần mềm thích hợp.
Ở đây chúng ta xài Dovecot nên hãy tìm chỗ Dovecot.
# Set the log file we will watch for pop3d/imapd records.
#$file_tail{'name'} = '/var/log/maillog';
Thử xem pop-before-smtp đã hoạt động chưa:
#pop-before-smtp --dumpconfig
#pop-before-smtp --debug --nowrite --reprocess
Khởi động lại pop-before-smtp:
#/etc/init.d/pop-before-smtp start
Kiểm tra lại xem DB của pop-before-smtp lưu ở đâu bằng các lệnh:
#ls -l /etc/mail/pop*
#ls -l /etc/postfix/pop*
#ls -l /var/lib/pop-before-smtp/hosts*
Sau đó cấu hình để SMTP dùng DB này.
Đối với Postfix, tìm trong file /etc/postfix/main.cf dòng "smtpd_recipient_restrictions" và thêm vào:
check_client_access hash:/etc/postfix/pop-before-smtp
Nếu chưa có dòng đó, hãy thử nguyên đoạn này coi sao:
smtpd_recipient_restrictions =
permit_mynetworks,
reject_non_fqdn_recipient,
check_client_access hash:/etc/postfix/pop-before-smtp,
reject_unauth_destination
Sau đó reload lại Postfix. Cuối cùng, hãy thử lại xem SMTP server đã ổn chưa bằng lệnh:
#telnet relay-test.mail-abuse.org
Nếu thấy kết quả là "System appeared to reject relay attempts" thì đạt yêu cầu.
P/S: Có tham khảo từ các nguồn:
http://popbsmtp.sourceforge.net/quickstart.shtml
http://adomas.org/2006/08/postfix-dovecot/
https://help.ubuntu.com/community/PostfixBasicSetupHowto
|