Я просто установил почтовый сервер с 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
Теперь я могу отправлять и получать электронные письма из моего домена и за его пределами, что хорошо.
Однако я обнаружил, что могу легко отправить письмо без авторизации с удаленного компьютера, используя telnet, как показано ниже, что означает, что кто-то другой может легко отправлять спам-письма в мой домен.
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
Как я могу защитить постфикс и запретить кому-либо отправлять почту без аутентификации?
Обычно почтовый сервер имеет две цели:
Если вы хотите, чтобы ваш сервер использовался только для отправки исходящей почты, но не для приема входящей почты, вам необходимо изменить mydestination
параметр в вашем main.cf и удалите $mydomain
от него. Таким образом, он не будет принимать электронные письма, адресованные вашим доменам. Больше информации на сайт документации postfix.