Postfix Wie kann ich einen nicht authentifizierten Benutzer ablehnen?

529
132

Ich habe eine Frage: Wie kann ich einen nicht authentifizierten Benutzer ablehnen, um ihn durch mein SMTP zu senden, oder nur lokal senden? Hier ist meine 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 Antwort auf die Frage

0
Appleoddity

Hinzufügen reject_unauth_destinationzu smtpd_relay_restrictions.

smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination 

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

Richten Sie die Konfiguration außerdem so ein mynetworks, dass sie der tatsächlichen internen Netzwerkadresse Ihrer Benutzer entspricht. Die Verwendung von 0.0.0.0/0 bedeutet grundsätzlich, dass alle Benutzer dies zulassen, und alle anderen Einschränkungen, die Sie haben, umgangen werden.

hi, es schickt immer noch Briefe unauth. Ist es richtig? 132 vor 6 Jahren 0
Ich denke, Sie müssen genauer sein, was passiert, was Sie nicht wollen. Appleoddity vor 6 Jahren 0
Jetzt kann sich jeder Benutzer mit meinem Server verbinden und einen Brief senden (ohne Authentifizierung). Ich möchte, dass nur Benutzer mit E-Mail-Box und Kennwort einen Brief senden können (authentifiziert). 132 vor 6 Jahren 0
Meinen Sie damit, dass Sie keine E-Mails von anderen Benutzern im Internet empfangen möchten? Es besteht ein Unterschied zwischen nicht authentifizierten Benutzern, die E-Mails über Ihren Server als Relay senden können, und nicht authentifizierten Benutzern, die E-Mails an Ihre Benutzer übermitteln können, was für den normalen Nachrichtenfluss erforderlich ist. Appleoddity vor 6 Jahren 0
Ich möchte E-Mails von anderen Benutzern aus dem Internet empfangen. Wenn sich der Benutzer jedoch über das SMTP-Protokoll mit meinem Server verbinden möchte, muss er Login und Passwort verwenden, die bereits erstellt wurden. Jetzt kann ich mich über Telnet mit meinem Server verbinden und brauche keine Authentifizierung. 132 vor 6 Jahren 0
Ich glaube, ich weiß, was Sie fragen, aber ich glaube immer noch nicht, dass Sie genau verstehen, was ich frage. „Benutzer aus dem Internet“ können Ihnen keine E-Mails senden, wenn sie zur Authentifizierung gezwungen werden. So funktioniert E-Mail nicht. Wenn Sie möchten, dass nur Ihre Benutzer E-Mails an oder über Ihren Server senden, ist dies eine andere Geschichte. Dann verwenden Sie smtpd_sender_restrictions und Sie können keine E-Mails von Personen im Internet erhalten, außer Ihren eigenen Benutzern, die sich anmelden. Appleoddity vor 6 Jahren 1
Ich habe Server: server.com. Ich habe Benutzer: user@server.com. Jetzt kann mein Postfach user@server.com E-Mails von einem beliebigen Server empfangen: Google Mail, Hotmail und andere private SMTP-Server (zumindest könnte dies). Nun kann sich jede Person mit meinem Server.com verbinden und einen Brief an gmails, hotmails senden und so tun, als wäre user123@server.com (nicht sicher, ob er so tun kann). Ich möchte, wenn der Benutzer E-Mails über meinen Server senden möchte, muss er sich nur mit server@server.com (in meinem Fall nur Benutzer) mit dem richtigen Kennwort verbinden und einen Brief an gmails, hotmails usw. senden . 132 vor 6 Jahren 0
OK. Jetzt macht es Sinn und ich habe mir deine Config genauer angesehen. Ich habe meine Antwort für Sie bearbeitet. Es wäre schön, wenn Sie das Beispiel in Ihrem letzten Kommentar verwenden und Ihre Frage bearbeiten, um sie anderen klarer zu machen. Appleoddity vor 6 Jahren 0