溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux下如何安裝Postfix郵件認證配置

發布時間:2022-02-17 09:48:11 來源:億速云 閱讀:165 作者:小新 欄目:開發技術

小編給大家分享一下Linux下如何安裝Postfix郵件認證配置,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

Postfix+Dovecot+Sasl工作原理

1.A用戶使用MUA客戶端借助smtp協議登陸smtpd服務器,需要先進行用戶和密碼認證,而SMTPD服務器端支持sasl認證,例如有一個sasl客戶端,就會去連接SASL。當SASL接受到驗證請求時就會根據驗證方式去進行驗證,常用的有PAM,passwd等。驗證成功后就會返回給Smtpd服務器。而smtpd就會允許A用戶登陸發送郵件。

2.Smtpd服務器接受到郵件轉發請求后,查看郵件是本域的還是外部域的,如果是本域內的用戶,就會開啟MDA進程并進行郵件投遞到用戶的郵箱。

3.B用戶使用MUA客戶端借助pop3協議登陸dovecot服務器,需要先進行用戶和密碼認證,而Dovecot服務器端本身就有sasl認證的功能,而根據設置的認證方式進行用戶和密碼的認證。認證成功之后用戶登錄,Dovecot就會用MDR工具去用戶郵箱中取回郵件并下載到用戶的客戶端本地進行查看。

Postfix+SASL進行用戶發郵件認證

通過驗證配置可以發現,如果想發送郵件給外部(中繼郵件)基本配置只能在mynetwork規定的ip范圍內使用。這個方式在現實中也是不可行的?;ヂ摼W上常用的方式是通過賬號的認證方式允許中繼郵件。但Postfix本身沒有認證功能所以只能借助于第三方認證組件SASL來實現。與Postfix配合較好的SASL有:dovecot-SASL和cyrus-SASL,以及courier-authlib這幾款組件。各有千秋,使用哪個根據實際選擇即可。

①確定cyrus-sasl已安裝

[root@localhost ~]# rpm -qa | grep  cyrus-saslcyrus-sasl-gssapi-2.1.23-13.el6_3.1.x86_64
cyrus-sasl-plain-2.1.23-13.el6_3.1.x86_64
cyrus-sasl-lib-2.1.23-13.el6_3.1.x86_64
cyrus-sasl-2.1.23-13.el6_3.1.x86_64
cyrus-sasl-md5-2.1.23-13.el6_3.1.x86_64
cyrus-sasl-devel-2.1.23-13.el6_3.1.x86_64

②確定Postfix支持sasl認證

[root@localhost ~]# postconf -acyrus
dovecot
 #默認支持cyrus和dovecot這兩種認證方式

③Postfix主配置添加以下內容

[root@localhost ~]# vim /etc/postfix/main.cf###################CYRUS-SASL################broken_sasl_auth_clients = yes
 #定義是否支持像outlook、foxmail等非標準協議認證smtpd_sasl_auth_enable = yes
 #開啟sasl驗證用戶功能smtpd_sasl_local_domain = $myhostname #用于識別本地主機smtpd_sasl_security_options = noanonymous
 #不支持匿名用戶smtpd_sasl_path = smtpd
 #指定使用sasl的程序名smtpd_banner = welcome to smtp.ywnds.com
 #定義telnet連接時顯示信息smtpd_client_restrictions = permit_sasl_authenticated
 #用于限制客戶端連接服務器smtpd_sasl_authenticated_header = yes
 #從頭信息查找用戶名smtpd_sender_restrictions = permit_mynetworks,reject_sender_login_mismatch
 #定義發件人規則smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated, reject_invalid_hostname,reject_unauth_destination
 #定義收件人規則 #permit_mynetworks:允許本地網絡 #permit_sasl_authenticated:允許sasl認證過的用戶發送郵件 #reject_unauth_destination:拒絕沒有經過認證的目標地址(這個一定要放在最后) #reject_invalid_hostname:HELO命令中的主機名稱無效時返回501 #reject_non_fqdn_hostname:HELO命令中的主機名稱不是FQDN形式則返回504 #reject_non_fqdn_recipient:收件地址不是FQDN則返回504 #reject_non_fqdn_sender:發件地址不是FQDN則返回504 #reject_unauth_pipelining:拒絕不守規定的流水線操作 #reject_unknown_client:DNS查不出客戶端IP的PTR記錄時拒絕 #reject_unknown_hostname:HELO命令中的主機名稱沒有A和MX記錄時拒絕 #reject_unknown_recipient_domain:收件人地址的網域部分查不出有效的A或MX記錄時拒絕 #reject_unknown_sender_domain:發件人地址的網域部分查不出有效的A或MX記錄時拒絕

④查看SASL支持哪些認證機制

[root@localhost ~]# saslauthd -vsaslauthd 2.1.23
authentication mechanisms: getpwent kerberos5 pam rimap shadow ldap

⑤Postfix開啟基于SASL用戶認證

這里介紹2種認證方式,saslauthd和auxprop,一個是使用系統的賬號來做認證,一個使用外部的賬戶來做認證,對于安全性來說,當然是使用外部的賬號更安全了,這里介紹的使用sasldb2數據庫,mysql的方式暫不介紹。2種方式人選其一即可。

Saslauthd
[root@localhost ~]# vim /usr/lib64/sasl2/smtpd.confpwcheck_method: saslauthd
mech_list: PLAIN LOGIN#登錄方式Auxprop
[root@localhost ~]# vim /usr/lib64/sasl2/smtpd.confpwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM#登錄方式

⑥SASL配置文件/etc/sysconfig/saslauthd

SASL只是個認證框架,實現認證的是認證模塊,而pam是sasl默認使用的認證模塊。如果使用shadow做認證的話直接修改就可以不需要做其他任何配置了。

Saslauthd
[root@localhost ~]# vim /etc/sysconfig/saslauthdSOCKETDIR=/var/run/saslauthd#MECK= pamMECK = shadow

Auxprop
[root@localhost ~]# vi /etc/sysconfig/saslauthd#MECH=FLAGS=sasldb

[root@localhost ~]# saslpasswd2 -c -u 'ywnds.com' redis #執行之后輸入2次密碼就可以了[root@localhost ~]# sasldblistusers2 #查看添加的用戶[root@localhost ~]# saslpasswd2 -d redis@ywnds.com #刪除用戶[root@localhost ~]# chown postfix:postfix /etc/sasldb2[root@localhost ~]# chmod 640 /etc/sasldb2 #數據庫權限修改

⑦重啟服務

[root@localhost ~]# /usr/sbin/postfix reload[root@localhost ~]# service saslauthd restart[root@localhost ~]# chkconfig saslauthd on測試賬號

[root@localhost ~]# testsaslauthd -u hadoop -p hadoop0: OK “Success”

SMTP認證指令

Linux下如何安裝Postfix郵件認證配置

Postfix內部郵件過濾

除了在上面配置文件中使用的一些過濾指令外,管理員也可以使用訪問表(access map)來自定義限制條件,自定義訪問表的條件通常使用check_client_access, check_helo_access, check_sender_access, check_recipient_access進行,它們后面通常跟上type:mapname格式的訪問表類型和名稱。其中,check_sender_access和check_recipient_access用來檢查客戶端提供的郵件地址,因此,其訪問表中可以使用完整的郵件地址,如admin@magedu.com;也可以只使用域名,如magedu.com;還可以只有用戶名的部分,如marion@

案例

1.這里以禁止172.16.100.66這臺主機通過工作在172.16.100.1上的postfix服務發送郵件為例演示說明其實現過程。訪問表使用hash的格式

(1)首先編輯/etc/postfix/access文件,以之做為客戶端檢查的控制文件,在里面定義如下一行:

172.16.100.66          REJECT

(2)將此文件轉換為hash格式產生一個access.db文件

postmap /etc/postfix/access

(3)配置postfix使用此文件對客戶端進行檢查編輯/etc/postfix/main.cf文件添加如下參數:

smtpd_client_restrictions = check_client_access hash:/etc/postfix/access

(4)讓postfix重新載入配置文件即可進行發信控制的效果測試了

2.這里以禁止通過本服務器向microsoft.com域發送郵件為例演示其實現過程訪問表使用hash的格式

(1)首先建立/etc/postfix/denydstdomains文件(文件名任取)在里面定義如下一行:

microsoft.com          REJECT

(2)將此文件轉換為hash格式

postmap /etc/postfix/denydstdomains

(3)配置postfix使用此文件對客戶端進行檢查編輯/etc/postfix/main.cf文件添加如下參數:

smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/denydstdomains, permit_mynetworks, reject_unauth_destination

(4)讓postfix重新載入配置文件即可進行發信控制的效果測試了


以上是“Linux下如何安裝Postfix郵件認證配置”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女