Categories Linux

Setup Mail Server for your VPS

  1. Để cài mail server trước tiên bạn phải cần MTA (SMTP Server) và MDA (IMAP/POP3 Server). Phổ biến là postfix và dovecot.

Để cài, chạy và khởi động tự động sau boot postfix:

sudo apt update
sudo apt install postfix
sudo systemctl start postfix
sudo systemctl enable postfix

Ngoài ra còn có các lệnh gỡ lỗi: sudo systemctl status postfix, sudo tail -f /var/log/mail.log
Để test postfix, thường thì vps sẽ block port 25 nên bạn không gửi được. Nếu không block mà chỉ block bởi firewall thì bạn có thể mở bằng:

sudo ufw allow 25 #cổng không mã hóa smtp, có thể mở outgoing bằng ...allow out... 
sudo ufw allow 587 #cổng mã hóa smtp
sudo ufw allow 465
# các lệnh gỡ lỗi khác
sudo ufw enable # active nếu nó inactive
sudo ufw status

Kiểm tra xem server có mở port 25 không telnet gmail-smtp-in.l.google.com 25, kiểm tra có kết nối được đến 587 của google không telnet smtp.gmail.com 587, nếu chưa install telnet thì install bằng sudo apt install telnet, ngoài ra có thể xem cổng đang mở và lắng nghe bằng ss -tuln (t: tcp, u: udp, l: listening, n: ip không resolve to hostname và port)

sudo apt install mailutils
echo "Test email body" | mail -s "Test Subject" youremail@example.com

Nếu không mở được port 25 thì có thể dùng relay host. Vào:

 sudo nano /etc/postfix/main.cf

và thay:

relayhost = [smtp.gmail.com]:587

và restart để có hiệu nghiệm:

 sudo systemctl restart postfix
  1. Tải dovecot về:
sudo apt install dovecot-core dovecot-imapd dovecot-pop3d

Vào file config sudo nano /etc/dovecot/dovecot.conf và sửa:

mail_location = maildir:~/Maildir    # Store emails in Maildir format
listen = *
protocols = imap pop3
---------------------------------------
mail_location = mbox:/var/mail/:INBOX=/var/mail/%u #config cho mbox format, thường hay config ở  conf.d/10-mail.conf

Xem tất cả các config bằng dovecot -a, các config được ghi đè bằng: dovecot -n. Tương tự xem tất cả các config của postfix bằng postconf. Test imap server (dovecot) có hoạt động không bằng:

telnet localhost 143 # cổng không mã hóa của imap, mã hóa là 993, pop3 là 
a login <user_name> <your_password>
a select inbox
a logout
----------------------------------------------------- 
openssl s_client -connect localhost:993 # test cổng mã hóa

Lưu ý: Maildir không tự tạo bằng dovecot nên bạn phải tự tạo và sửa ownership và permission cho phù hợp. Phải sửa mailbox location của postfix trong file main.conf nữa: home_mailbox = Maildir/

mkdir -p /root/Maildir/{new,cur,tmp}
chmod -R 700 /root/Maildir
chown -R root:root /root/Maildir

rồi khởi động lại bằng sudo systemctl restart dovecot

Mặc định khi gửi mail vào root là nó sẽ tống vào 1 file ở sudo cat /var/mail/root hoặc sudo cat /var/spool/mail/root. Đây là định dạng mbox.

Nếu bạn tạo một tài khoản trong linux và gửi mail vào tài khoản đó thì nó sẽ gửi vào /var/mail/demo, /var/spool/mail/demo với demo là tên tài khoản của bạn. Để tạo tài khoản linux:

adduser demo # nhập mật khẩu và các thông tin cần thiết
usermod       # gán group sudo để nó thực hiện các thao tác của admin

Nếu bạn dùng định dạng Maildir thì nó sẽ ở ~/Maildir (cụ thể ở đây /home/demo/Maildir)

Nếu không cài dovecot thì nó sẽ gửi theo định dạng mbox có thể dùng mail tool để kiểm tra:

sudo mail # nhấn 1 để kiểm tra mail 1, nhấn q để quit.
  1. Sửa DNS Record:

Thêm A record cho mail.<hostname> vào. Sau đó thêm MX record với tên và giá trị như sau:

shop.blogtholab.de10 mail.shop.blogtholab.de

Thường thì bạn có thể gửi mail không ssl với 2 cái này rồi. Để test thì bạn có thể disable ssl ở postfix:

smtpd_use_tls = no
smtpd_tls_security_level = none
smtpd_tls_auth_only = no

và dovecot, file nên để vào là conf.d/10-ssl.conf:

ssl = no

Nếu có lỗi với authentication vào dovecot nữa thì sửa ở conf.d/10-auth.conf:

auth_mechanisms = plain login
disable_plaintext_auth = no

Dovecot sẽ cấm login bằng root và mật khẩu của nó, nên bạn hãy tạo một tài khoản như trên

More From Author

Leave a Reply

Your email address will not be published. Required fields are marked *