發佈日期:
分類:
如何利用Linode服務‧設置Postfix SMTP寄件伺服器
01. 之前已用AWS建立了Postfix郵件伺服器,但因為AWS預設封閉了埠位(port)25,所以只能用來收取而不能發送電郵。一個可行的方法是利用SMTP Relay,但SMTP Relay的限制,就是發送大量電郵時是需要付費的,另外就是需要在DNS中作出TXT設定。問題是為節省成本,我是用ddns.net這種免費的DNS服務,如要用TXT設定,那一樣就要付費了。
02. 由AWS轉為Linode服務,伺服器配置及位置都和AWS一樣,但成本卻由以前的USD10變成USD5。而我只是用AWS EC2中的Linux伺服器及S3服務,更重要是Linode是可以按要求開放埠位(port)25(只要您有方法確認SMTP伺服器不會用來發送垃圾郵件)。
03. 返回正題,依之前方法設置好Postfix郵件伺服器及Dovecot的IMAP協定,剩下的就只有SMTP伺服器部份。
04. 編輯『/etc/postfix/main.cf』檔案,加入以下內容,其中smtpd_tls_cert_file及smtpd_tls_key_file設定,應為TLS證書路徑,此可用Let’s Encrypt服務免費取得。而『smtpd_』一堆設定是用於Dovecot接收電郵使用,而『smtp_』一堆設定是用於發送電郵時的設定。
sudo nano /etc/postfix/main.cf
smtpd_tls_cert_file = /etc/letsencrypt/live/<MAIL_DOMAIN_NAME>/cert.pem smtpd_tls_key_file = /etc/letsencrypt/live/<MAIL_DOMAIN_NAME>/privkey.pem smtpd_use_tls=yes smtpd_tls_auth_only = yes smtpd_tls_security_level = may smtpd_sasl_security_options = noanonymous noplaintext smtpd_sasl_tls_security_options = noanonymous smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtp_tls_security_level = may smtp_tls_loglevel = 1
05. 再次編輯『/etc/postfix/main.cf』檔案,加入以下內容。此目的是在Postfix郵件伺服器接收電郵時作出過濾垃圾電郵。
sudo nano /etc/postfix/main.cf
smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname, reject_unknown_helo_hostname, reject_unknown_client_hostname smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_sender_domain, reject_unknown_reverse_client_hostname, reject_unknown_client_hostname smtpd_tls_CAfile = /etc/letsencrypt/live/<MAIL_DOMAIN_NAME>/fullchain.pem
05. 編輯『/etc/postfix/master.cf』檔案。更改或加入以下內容。
sudo nano /etc/postfix/master.cf
submission inet n - y - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_tls_wrappermode=no -o smtpd_sasl_auth_enable=yes -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject -o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth smtps inet n - y - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject -o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth
05. 重新啟動Postfix服務。
sudo systemctl restart postfix
06. 確認Linode接納您開放埠位(port)25的申請。
07. 在Linode防火牆對外開啟了埠位(port)25。而為免任何人士利用SMTP伺服器發送電郵,可在防火牆中,限制埠位(port)465、587使用。
發佈留言