Postfix
如何在沒有身份驗證的情況下禁用通過 postfix smtp 發送郵件
我只是用 postfix 2.6.6 和 dovecot 設置了一個郵件伺服器。
我在 main.cf 中有與身份驗證相關的配置,如下所示:
smtpd_tls_cert_file=/etc/httpd/ssl/mail.crt smtpd_tls_key_file=/etc/httpd/ssl/mail.key smtpd_use_tls=yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
現在我可以正常發送和接收來自我的域和外部的電子郵件,這很好。
但是,我發現我可以使用如下所示的遠端登錄輕鬆地從遠端發送郵件而無需身份驗證,這意味著其他人可以輕鬆地將垃圾郵件發送到我的域。
Myhost:~/ z$ telnet mail.example.com 25 Trying 232.96.23.130... Connected to mail.example.com. Escape character is '^]'. 220 mail.example.com ESMTP Postfix ehlo mail.example.com 250-mail.example.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN mail from:frodo@gmail.com 250 2.1.0 Ok rcpt to: sam@example.com 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> subject:how much dust? fdhjaklf fdsahjk; fdajshk . 250 2.0.0 Ok: queued as 08B2C5883481
如何保護 postfix 並禁止其他人無需身份驗證即可發送郵件?
通常一個郵件伺服器有兩個目的:
- 允許其使用者將郵件發送到 Internet 上的其他郵件伺服器。這部分你已經完成了。
- 為應該為其服務的域的使用者接收郵件。
如果您只希望您的伺服器用於發送外發郵件,而不是接收外來郵件,則需要更改
mydestination
main.cf 中的參數並$mydomain
從中刪除。這樣它就不會接受任何發往您的域的電子郵件。在postfix 文件站點上有更多資訊。但是請注意,這意味著您必須設置一些其他電子郵件伺服器來接受傳入您的域的郵件。否則您收到的所有郵件都將被退回。