Postfix - 5.7.1 中繼訪問被拒絕
我正在
postfix
執行RHEL6
:# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.6 (Santiago) # rpm -q postfix postfix-2.6.6-6.el6_5.x86_64 #
我正在嘗試執行以下操作:
/etc/postfix/access
- 訪問 - Postfix SMTP 伺服器訪問表:# /etc/postfix/main.cf: # smtpd_client_restrictions = # check_client_access hash:/etc/postfix/access # # /etc/postfix/access: # 1.2.3 REJECT # 1.2.3.4 OK # # Execute the command "postmap /etc/postfix/access" after # editing the file.
postconf
- 後綴配置實用程序:# postconf -n | grep access smtpd_client_restrictions = check_client_access hash:/etc/postfix/access #
/etc/postfix/access(.db)
:# grep -v ^# access 10.52.11.97 OK #
postmap
- 後綴查找表管理:# postmap /etc/postfix/access # echo $? 0 #
每當嘗試轉發電子郵件時,我都會收到以下資訊:
/var/log/maillog
:postfix/smtpd[1515]: connect from X.X.X[10.52.11.97] postfix/smtpd[1515]: NOQUEUE: reject: RCPT from X.X.X[10.52.11.97]: 554 5.7.1 <X@X.X>: Relay access denied; from=<X@X.X> to=<X@X.X> proto=SMTP helo=<HELO> postfix/smtpd[1515]: lost connection after RCPT from X.X.X[10.52.11.97] postfix/smtpd[1515]: disconnect from X.X.X[10.52.11.97]
更新
每個@yoonix,@masegaloeh,我也在發布’smtpd_*_restrictions’:
$ egrep 'smtp.*restriction' * access:# text of smtpd_end_of_data_restrictions. access:# smtpd_client_restrictions = main.cf:# through Postfix. See the smtpd_recipient_restrictions parameter main.cf:# relay mail to. See the smtpd_recipient_restrictions description in master.cf:# -o smtpd_client_restrictions=$mua_client_restrictions master.cf:# -o smtpd_helo_restrictions=$mua_helo_restrictions master.cf:# -o smtpd_sender_restrictions=$mua_sender_restrictions master.cf:# -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject master.cf:# -o smtpd_client_restrictions=$mua_client_restrictions master.cf:# -o smtpd_helo_restrictions=$mua_helo_restrictions master.cf:# -o smtpd_sender_restrictions=$mua_sender_restrictions master.cf:# -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject $
似乎所有內容都被註釋掉了。
好吧,您應該告訴我們您的目標和嘗試的解決方案。沒有目標,我們無法為您提供替代解決方案。
從評論中看,您似乎想將某些客戶端列入白名單以通過您的伺服器進行中繼。Postfix 本身通過 smtpd_*_restriction具有 ACL 中繼機制。要知道在 postfix 中啟用 ACL 的原因,您可以執行命令
postconf | grep _restrictions
預設情況下,postfix 僅由
permit_mynetworks
,permit_sasl_authenticated
和defer_unauth_destination
in 提供smtpd_relay_restrictions
。這意味著,後綴將
- 如果客戶端來自
mynetworks
參數中定義的 IP 地址,則允許中繼- 如果客戶端已通過 SASL 成功驗證,則允許中繼
- 如果收件人域未在後綴地址類中列出,則軟拒絕電子郵件。
- 否則,允許中繼
您還可以通過man 5 postconf頁面獲取有關該參數的資訊。
這就是為什麼當您將其 IP 地址放在
mynetworks
參數中時後綴允許來自特定客戶端的中繼的原因。關於您的初始解決方案
check_client_access
,如果您將它放在 defer_unauth_destination 之前,它也應該可以工作。所以,你必須把這個配置放在main.cf
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, check_client_access hash:/etc/postfix/access, defer_unauth_destination
說它
smtpd_client_restrictions
不起作用,因為 postfix 將檢查每個階段的限制(…,客戶端,helo,發送者,中繼,接收者,…)。有關更多資訊,您可以參考Postfix SMTP 中繼和訪問控制頁面