Postfix

Postfix - 5.7.1 中繼訪問被拒絕

  • January 31, 2015

我正在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_authenticateddefer_unauth_destinationin 提供smtpd_relay_restrictions。這意味著,後綴將

  1. 如果客戶端來自mynetworks參數中定義的 IP 地址,則允許中繼
  2. 如果客戶端已通過 SASL 成功驗證,則允許中繼
  3. 如果收件人域未在後綴地址類中列出,則軟拒絕電子郵件。
  4. 否則,允許中繼

您還可以通過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 中繼和訪問控制頁面

引用自:https://serverfault.com/questions/663569