Copyright ? 2015 深圳市鑫惠廣網絡科技有限公司 粵ICP備2023111395號
1.1 介紹
福哥在使用docker-compose搭建郵箱服務器的時候發現sendmail需要依賴的服務非常多,勢必需要用到privileged權限,而福哥非常不想在這樣的服務里面分配這么高的權限,那么怎么辦呢?
后來經過一番研究,發現了postfix這個小可愛,它真的很簡單,真的很好用,比起sendmail來說配置起來舒服太多了!配合著dovecot服務,就可以輕松搭建郵箱服務器了!
2.1 安裝
直接通過yum安裝即可。
yum-y install postfix cyrus-sasl cyrus-sasl-plain rsyslog
postfix是一個實現SMTP服務的軟件,相比較sendmail它更加的軟件,配置起來也方便,非常的好用~~
3.1 配置文件
配置文件是/etc/postfix/main.cf,里面有一些默認參數。
3.2 參數預覽
使用postconf -n查看配置文件main.cf當前的配置參數。
3.3 myhostname
設置為郵箱服務器的域名。
myhostname= mail.test.tongfu.net
3.4 mydomain
設置為郵箱域名。
mydomain= test.tongfu.net
3.5 myorigin
設置為郵箱域名,這里可以使用mydomain的設置。
myorigin= $mydomain
3.6 inet_interfaces
設置服務器使用所有網絡,否則只能本機連接25端口。
inet_interfaces= all
3.7 重啟
重啟postfix之后,可以通過telnet測試SMTP服務是否正常。
systemctlrestart postfix
3.8 測試
福哥使用telnet驗證了postfix的SMTP服務,因為福哥沒有配置認證部分,所以發郵件是不需要用戶名/密碼的。
默認情況下使用postfix發送電子郵件是不需要認證的,這個內部系統調用還好,如果是當作用戶郵箱使用就不合適了!
postfix的認證方式和sendmail一樣,也是利用SASL實現的。
4.1 啟動SASL
打開/etc/postfix/main.cf,增加如下兩行配置。
smtpd_sasl_path= smtpd smtpd_sasl_auth_enable= yes
4.2 客戶端支持
默認情況下我們是無法使用巨嬰的Outlook去連接postfix的,如果要支持這些郵件客戶端的話,需要在/etc/postfix/main.cf里面設置一下。
broken_sasl_auth_clients= yes
4.3 禁止匿名
默認情況下postfix是允許匿名方式發送郵件的,我們需要在/etc/postfix/main.cf里關閉一下。
smtpd_sasl_security_options= noanonymous
雖然關閉了匿名發送郵件,但是依然可以不用認證就發送郵件,這個有點迷惑~~
4.4 寄信限制
默認情況下是可以通過匿名方式發送郵件的,我們需要在/etc/postfix/main.cf里面設置一下。
smtpd_recipient_restrictions= permit_sasl_authenticated, reject
這段的意思是,通過sasl認證的可以,其他拒絕。
4.5 認證方式
默認情況下SASL是使用PAM作為認證方式的,福哥打算使用Linux本地用戶作為認證源。
通過下面的命令可以查看可用的認證方式:
saslauthd-v
打開/etc/sysconfig/saslauthd,將MECH設置為shadow,也就是使用本地用戶來認證。
MECH=shadow
4.6 重啟
使用下面的命令重啟postfix和saslauthd兩個服務。
systemctlrestart saslauthd systemctl restart postfix
4.7 創建用戶
我們創建test這個用戶,設置密碼為123456。
useradd testpasswd test
4.8 測試
福哥還是使用telnet測試postfix的服務,因為開啟了認證,這里需要使用auth login登錄之后才能發送郵件了。
今天福哥帶著童鞋們學習了使用Postfix+SASL搭建SMTP服務器的技巧。通常情況下,一個系統需要向外發送電子郵件的話,使用Postfix+SASL就足夠了。
Copyright ? 2015 深圳市鑫惠廣網絡科技有限公司 粵ICP備2023111395號