Postfix. Как отказаться от неаутентифицированного пользователя?

324
132

У меня есть вопрос: как отклонить не прошедшего проверку подлинности пользователя для отправки через мой SMTP или просто разрешить отправлять локально? Вот мой main.cf:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version # Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h readme_directory = no # TLS parameters smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:$/smtpd_scache smtp_tls_session_cache_database = btree:$/smtp_scache # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination myhostname = 123 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases mydestination = $myhostname, localdomain, localhost, localhost.localdomain, localhost, vps.server.local relayhost = mynetworks = 0.0.0.0/0 mailbox_command = /usr/bin/procmail-wrapper -o -a $DOMAIN -d $LOGNAME mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = all virtual_alias_maps = hash:/etc/postfix/virtual sender_bcc_maps = hash:/etc/postfix/bcc home_mailbox = Maildir/ smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination smtp_tls_security_level = may allow_percent_hack = no 
1

1 ответ на вопрос

0
Appleoddity

Добавьте reject_unauth_destinationк smtpd_relay_restrictions.

smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination 

http://www.postfix.org/SMTPD_ACCESS_README.html

Кроме того, правильно настройте его так, mynetworksчтобы он соответствовал фактическому внутреннему сетевому адресу (адресам) ваших пользователей. Использование 0.0.0.0/0, по сути, означает разрешение всем и обходит все остальные ваши ограничения.

привет, он по-прежнему отправляет письма unauth. Это сердцевина? 132 6 лет назад 0
Я думаю, вам нужно быть более конкретным в том, что происходит, чего вы не хотите. Appleoddity 6 лет назад 0
Теперь любой пользователь может подключиться к моему серверу и отправить письмо (без аутентификации). Я хочу, чтобы только пользователь с адресом электронной почты и паролем мог отправить письмо (аутентифицирован). 132 6 лет назад 0
Вы хотите сказать, что не хотите получать почту от других пользователей в Интернете? Существует разница между пользователями, не прошедшими проверку подлинности, которые могут отправлять почту через ваш сервер в качестве ретранслятора, и пользователями, не прошедшими проверку подлинности, которые могут доставлять почту вашим пользователям, что необходимо для нормального потока почты. Appleoddity 6 лет назад 0
Я хочу получать письма от любых других пользователей из Интернета, но если пользователь хочет подключиться к моему серверу по протоколу smtp, он должен использовать логин и пароль, которые уже созданы. Теперь я могу подключиться к своему серверу через telnet, и мне не нужно авторизоваться. 132 6 лет назад 0
Я думаю, я знаю, что вы спрашиваете, но я все еще не думаю, что вы полностью понимаете, что я спрашиваю. «Пользователи из Интернета» не могут отправлять вам электронные письма, если они вынуждены проходить аутентификацию. Это не то, как работает электронная почта. Теперь, если вы хотите, чтобы ваши пользователи были единственными, кто может отправлять почту на ваш сервер или через ваш сервер, тогда это уже другая история. Затем вы используете smtpd_sender_restrictions и вы не сможете получать почту от кого-либо в Интернете, кроме ваших собственных пользователей, которые входят в систему. Appleoddity 6 лет назад 1
У меня есть сервер: server.com. У меня есть пользователь: user@server.com. Теперь мой почтовый ящик user@server.com может получать электронную почту с любого сервера: gmail, hotmail, другого частного smtp (по крайней мере, мог). Но теперь любой человек может подключиться к моему server.com и отправить письмо в gmails, hotmails и выдать себя за user123@server.com (не уверен, что он может притворяться). Я хочу, чтобы, если пользователь хочет отправить электронную почту через мой сервер, единственный способ - он должен подключиться к server.com как user@server.com (в моем случае это просто user user) с правильным паролем и отправить письмо в gmail, hotmails и т. Д. , 132 6 лет назад 0
Хорошо. Теперь это имеет смысл, и я внимательно посмотрел на ваш конфиг. Я отредактировал свой ответ для вас. Было бы здорово, если бы вы использовали пример в своем последнем комментарии и отредактировали свой вопрос, чтобы сделать его более понятным для других. Appleoddity 6 лет назад 0

Похожие вопросы