Postfix

Postfix SMTP 伺服器無需身份驗證即可發送電子郵件

  • July 13, 2020

我在 CentOS (5.7) 上使用 Postfix (2.3.3)。現在,我的伺服器似乎就像一個開放的中繼。如果我指定登錄名,它可以正常工作,無論是不安全的還是使用 TLS 的(但是 TLS 讓我抱怨證書無效,但我想我只需要獲得證書)。這就是我想要的,如果客戶端不支持 TLS,那麼回退到不安全。

但是,似乎如果我不提供任何登錄資訊,它仍然會發送電子郵件。

這是我的 main.cf 配置文件:

command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix

myhostname = mail.valdron.ca
mydomain = valdron.ca
myorigin = $mydomain
mydestination = $myhostname, $mydomain

unknown_local_recipient_reject_code = 550

mynetworks = 127.0.0.0/8

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

debug_peer_level = 2

debugger_command =
        PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
        xxgdb $daemon_directory/$process_name $process_id & sleep 5

sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix

setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.3.3/samples
readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES

virtual_alias_maps = hash:/etc/postfix/virtual
sender_bcc_maps = hash:/etc/postfix/bcc
mailbox_command = /usr/bin/procmail-wrapper -o -a $DOMAIN -d $LOGNAME
home_mailbox = Maildir/

smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
broken_sasl_auth_clients = yes

smtpd_tls_key_file = /etc/pki/tls/private/mail.valdron.ca.key
smtpd_tls_cert_file = /etc/pki/tls/certs/mail.valdron.ca.cert
smtpd_tls_loglevel = 1
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_session_cache_database = btree:/var/spool/postfix/smtpd_tls_cache
tls_random_source = dev:/dev/urandom
mailbox_size_limit = 0
notify_classes = bounce, delay, resource
smtpd_recipient_restrictions = reject_unauth_destination permit_sasl_authenticated permit_mynetworks check_relay_domains
smtpd_tls_security_level = may

此外,與第一個問題無關,iPhone 使用者收到以下錯誤(翻譯自法語):“收件人被伺服器拒絕,因為不允許中繼”。我沒有要測試的 iPhone。ISP 是否有可能像許多 ISP 那樣阻止埠 25 郵件伺服器?

嘗試將 smtpd_recipient_restrictions 行更改為:

smtpd_recipient_restrictions = reject_unauth_destination, permit_sasl_authenticated, permit_mynetworks, check_relay_domains

我嘗試查找語法,但我總是在值之間使用 , 除非我將值放在單獨的行上(在這種情況下,以下參數必須以空格開頭),例如:

smtpd_recipient_restrictions = reject_unauth_destination
                              permit_sasl_authenticated
                              permit_mynetworks
                              check_relay_domains

編輯 1

遠端測試伺服器是否真的是開放中繼的好工具是有益的,只是為了避免錯誤或“誤報”。這個測試了十幾種不同的中繼方式,如果其中任何一種有效,就會向您報告。只需在框中輸入您的 IP 地址,然後點擊“測試”: http:

//www.mailradar.com/openrelay/

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