[postfix-users] kein Relaying denied
Hallo zusammen,
ich bin gerade dabei auf Postfix (postfix 2.5.1-2ubuntu1.2) das "Relaying Denied" scharf zu machen, sprich nur Emails aus unserer Domain (user@<our_domain>.at) dürfen versendet werden, ansonsten: relaying denied.
Ich habe daher folgende Parameter ins main.cf eingetragen:
... # grep -i relay main.cf
relay_recipient_maps = hash:/etc/postfix/relay_recipients relay_domains = hash:/etc/postfix/relay_domains smtpd_recipient_restrictions = permit_mynetworks reject_unauth_destination reject_unauth_pipelining check_relay_domains ...
Hier noch die PlainText Files:
# cat /etc/postfix/relay_recipients @<our_domain>.at OK
# cat /etc/postfix/relay_domains <our_domain>.at OK
Wenn ich das ganze Zeugs jetzt mit einer telnet Session auf Port 25 teste, klappts irgendwie nicht so recht ...
administrators-macbook-3:~ glr$ telnet postman 25 Trying 192.168.1.6... Connected to postman. Escape character is '^]'. 220 postman.<our_domain>.at ESMTP Postfix (Ubuntu) helo postman.<our_domain>.at 250 postman.<our_domain>.at mail from: gucksdu@gmx.at 250 2.1.0 Ok rcpt to: gucksdu@gmx.at 250 2.1.5 Ok quit 221 2.0.0 Bye Connection closed by foreign host.
hier noch der 'postconf -n' Output.
# postconf -n alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no config_directory = /etc/postfix header_checks = pcre:/etc/postfix/header_checks inet_interfaces = all mailbox_size_limit = 0 mydestination = postman, postman.rigledv.at, localhost.rigledv.at, localhost myhostname = postman.rigledv.at mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.1.0/24 myorigin = /etc/mailname proxy_interfaces = 62.2.100.199 readme_directory = no recipient_delimiter = + relay_domains = hash:/etc/postfix/relay_domains relay_recipient_maps = hash:/etc/postfix/relay_recipients relayhost = smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_scache smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) smtpd_data_restrictions = reject_unauth_pipelining smtpd_helo_required = yes smtpd_recipient_restrictions = permit_mynetworks reject_unauth_destination reject_unauth_pipelining check_relay_domains smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access, reject_non_fqdn_sender, reject_unknown_sender_domain smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache smtpd_use_tls = yes virtual_alias_maps = hash:/etc/postfix/virtual
Achtung: Zeilenumbrüche sind durch's cut & paste entstanden.
Vielleicht sieht jemand ja den richtigen Baum in diesem ganzen Wald oder fehlt mir da noch ein Setzling?
Danke Richard
* Richard Gliebe postfix-users@de.postfix.org:
Hallo zusammen,
ich bin gerade dabei auf Postfix (postfix 2.5.1-2ubuntu1.2) das "Relaying Denied" scharf zu machen, sprich nur Emails aus unserer Domain (user@<our_domain>.at) dürfen versendet werden, ansonsten: relaying denied.
Die Parameter, die Du einsetzt, um nur Sendern aus Deiner Domain das relayen zu gestatten sind die Falschen; sie sind dafür gedacht auf einen SMTP-Gateway Domains und User zu definieren, für die Postfix Nachrichten annehmen und nach hinten an einen anderen, (versteckten) Mailserver durchzureichen.
Parameter, die Du wahrscheinlich eher willst, sind $mynetworks, $smtpd_sasl_auth_enable usw.
Was genau für Dich am besten und mit dem geringsten Aufwand funktioniert, können wir Dir sagen, wenn Du mehr über Dein Netzwerk und Deine Architektur sagst.
Was genau bedeutet denn "nur Emails aus unserer Domain versenden"?
Heißt das, es dürfen nur Ansender-Adressen nach dem Muster "user@<our_domain>.at" verwendet werden? Soll es heißen, der Server soll nur für diese Zieladressen Nachrichten annehmen? Soll es was ganz anderes bedeuten?
p@rick
Ich habe daher folgende Parameter ins main.cf eingetragen:
... # grep -i relay main.cf
relay_recipient_maps = hash:/etc/postfix/relay_recipients relay_domains = hash:/etc/postfix/relay_domains smtpd_recipient_restrictions = permit_mynetworks reject_unauth_destination reject_unauth_pipelining check_relay_domains ...
Hier noch die PlainText Files:
# cat /etc/postfix/relay_recipients @<our_domain>.at OK
# cat /etc/postfix/relay_domains <our_domain>.at OK
Wenn ich das ganze Zeugs jetzt mit einer telnet Session auf Port 25 teste, klappts irgendwie nicht so recht ...
administrators-macbook-3:~ glr$ telnet postman 25 Trying 192.168.1.6... Connected to postman. Escape character is '^]'. 220 postman.<our_domain>.at ESMTP Postfix (Ubuntu) helo postman.<our_domain>.at 250 postman.<our_domain>.at mail from: gucksdu@gmx.at 250 2.1.0 Ok rcpt to: gucksdu@gmx.at 250 2.1.5 Ok quit 221 2.0.0 Bye Connection closed by foreign host.
hier noch der 'postconf -n' Output.
# postconf -n alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no config_directory = /etc/postfix header_checks = pcre:/etc/postfix/header_checks inet_interfaces = all mailbox_size_limit = 0 mydestination = postman, postman.rigledv.at, localhost.rigledv.at, localhost myhostname = postman.rigledv.at mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.1.0/24 myorigin = /etc/mailname proxy_interfaces = 62.2.100.199 readme_directory = no recipient_delimiter = + relay_domains = hash:/etc/postfix/relay_domains relay_recipient_maps = hash:/etc/postfix/relay_recipients relayhost = smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_scache smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) smtpd_data_restrictions = reject_unauth_pipelining smtpd_helo_required = yes smtpd_recipient_restrictions = permit_mynetworks reject_unauth_destination reject_unauth_pipelining check_relay_domains smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access, reject_non_fqdn_sender, reject_unknown_sender_domain smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache smtpd_use_tls = yes virtual_alias_maps = hash:/etc/postfix/virtual
Achtung: Zeilenumbrüche sind durch's cut & paste entstanden.
Vielleicht sieht jemand ja den richtigen Baum in diesem ganzen Wald oder fehlt mir da noch ein Setzling?
Danke Richard _______________________________________________ postfix-users mailing list postfix-users@de.postfix.org http://de.postfix.org/cgi-bin/mailman/listinfo/postfix-users
On 3/21/10 10:14 AM Patrick Ben Koetter wrote:
Hi Patrick,
Die Parameter, die Du einsetzt, um nur Sendern aus Deiner Domain das relayen zu gestatten sind die Falschen; sie sind dafür gedacht auf einen SMTP-Gateway Domains und User zu definieren, für die Postfix Nachrichten annehmen und nach hinten an einen anderen, (versteckten) Mailserver durchzureichen.
Parameter, die Du wahrscheinlich eher willst, sind $mynetworks, $smtpd_sasl_auth_enable usw.
Was genau für Dich am besten und mit dem geringsten Aufwand funktioniert, können wir Dir sagen, wenn Du mehr über Dein Netzwerk und Deine Architektur sagst.
Was genau bedeutet denn "nur Emails aus unserer Domain versenden"?
Heißt das, es dürfen nur Ansender-Adressen nach dem Muster "user@<our_domain>.at" verwendet werden? Soll es heißen, der Server soll nur für diese Zieladressen Nachrichten annehmen? Soll es was ganz anderes bedeuten?
hier mal eine nähere Erklärung.
der Postfix Server hängt bei uns im LAN und dient nebenher auch als IMAP Server.
Mein Ziel wäre es KEINEN offenen Relayer in Netz zuhaben. Das heisst, dass über den Postfix Server nur Emails von Absendern aus unserer Domain (z.B.: testuser@ourdomain.at> versendet werden dürfen (keine Einschränkungen bei Zieladressen), alle anderen Versuche sollten ein "relaying denied" erhalten.
Daher habe ich mir gedacht, die folgenden Einträge wären genau für das gedacht.
relay_recipient_maps = hash:/etc/postfix/relay_recipients relay_domains = hash:/etc/postfix/relay_domains
# cat /etc/postfix/relay_recipients @ourdomain.at OK
# cat /etc/postfix/relay_domains ourdomain.at OK
Scheinbar doch nicht ... Welche wäre(n) nun die Richtige(n)?
Sorry, aber bin eher noch "sendmail" geschädigt ;-)
Grüsse und Danke Richard
Hi!
* Richard Gliebe postfix-users@de.postfix.org:
On 3/21/10 10:14 AM Patrick Ben Koetter wrote:
Hi Patrick,
Die Parameter, die Du einsetzt, um nur Sendern aus Deiner Domain das relayen zu gestatten sind die Falschen; sie sind dafür gedacht auf einen SMTP-Gateway Domains und User zu definieren, für die Postfix Nachrichten annehmen und nach hinten an einen anderen, (versteckten) Mailserver durchzureichen.
Parameter, die Du wahrscheinlich eher willst, sind $mynetworks, $smtpd_sasl_auth_enable usw.
Was genau für Dich am besten und mit dem geringsten Aufwand funktioniert, können wir Dir sagen, wenn Du mehr über Dein Netzwerk und Deine Architektur sagst.
Was genau bedeutet denn "nur Emails aus unserer Domain versenden"?
Heißt das, es dürfen nur Ansender-Adressen nach dem Muster "user@<our_domain>.at" verwendet werden? Soll es heißen, der Server soll nur für diese Zieladressen Nachrichten annehmen? Soll es was ganz anderes bedeuten?
hier mal eine nähere Erklärung.
der Postfix Server hängt bei uns im LAN und dient nebenher auch als IMAP Server.
Mein Ziel wäre es KEINEN offenen Relayer in Netz zuhaben. Das heisst, dass über den Postfix Server nur Emails von Absendern aus unserer Domain (z.B.: testuser@ourdomain.at> versendet werden dürfen (keine Einschränkungen bei Zieladressen), alle anderen Versuche sollten ein "relaying denied" erhalten.
Okay. Das kannst Du mehrstufig kontrollieren:
Client Du kannst das Relayen auf Basis der Clients kontrollieren und deren IP-Adressen über $mynetworks zulassen oder abweisen
User Du kannst User identifizieren und nur diese Relayen lassen
Absender-Adressen Du kannst User identifizieren und denen Absender-Adressen zuordnen und nur diesen Usern das Senden mit den zugeordneten Absender-Adressen gestatten.
Die Methode "Client" ist am Einfachsten. Einfach subnet in $mynetworks eintragen, postfix reload und fertig. Wenn Du die Methode "User" willst, dann musst Du SMTP AUTH konfigurieren*. Das geht schnell wenn Du z.B. auch Dovecot auf demselben Server mit einsetzt und dauert länger wenn Du es mit Cyrus SASLs Hilfe machen willst. Die Methode "Absender-Adressen" bringt zusätzlich noch die Erstellung der Map mit sich. "User" und "Absender-Adressen" sind bei vielen Usern leichter zu konfigurieren, wenn Du eine Datenbank am Start hast in der Du Userdaten wie login, password und adressen bereits abgelegt hast.
* Du kannst Dir auch Filter-Regeln schreiben, die im SMTP-Dialog und im Header auf @absenderdoma.in matchen und den Rest rejecten, aber das ist wenig brauchbar weil man eben Session-Daten und Header beliebig fälschen kann.
Sorry, aber bin eher noch "sendmail" geschädigt ;-)
Postfix ist anders. Ich persönlich geniesse das sehr. :)
p@rick
On Behalf Of Richard Gliebe
Scheinbar doch nicht ... Welche wäre(n) nun die Richtige(n)?
http://www.postfix.org/postconf.5.html
reject_unknown_sender_domain, reject_unknown_recipient_domain, permit_mynetworks, reject_unlisted_recipient, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_sender_login_mismatch, reject_unlisted_sender, permit_sasl_authenticated, reject_unauthenticated_sender_login_mismatch, reject_unauth_destination,
schau mal auf der Seite nach da dürfte das gesuchte dabei sein
Mit freundlichen Grüßen
Drießen
Am 22.03.2010 08:53, schrieb Richard Gliebe:
On 3/21/10 10:14 AM Patrick Ben Koetter wrote:
Hi Patrick,
Die Parameter, die Du einsetzt, um nur Sendern aus Deiner Domain das relayen zu gestatten sind die Falschen; sie sind dafür gedacht auf einen SMTP-Gateway Domains und User zu definieren, für die Postfix Nachrichten annehmen und nach hinten an einen anderen, (versteckten) Mailserver durchzureichen.
Parameter, die Du wahrscheinlich eher willst, sind $mynetworks, $smtpd_sasl_auth_enable usw.
Was genau für Dich am besten und mit dem geringsten Aufwand funktioniert, können wir Dir sagen, wenn Du mehr über Dein Netzwerk und Deine Architektur sagst.
Was genau bedeutet denn "nur Emails aus unserer Domain versenden"?
Heißt das, es dürfen nur Ansender-Adressen nach dem Muster "user@<our_domain>.at" verwendet werden? Soll es heißen, der Server soll nur für diese Zieladressen Nachrichten annehmen? Soll es was ganz anderes bedeuten?
hier mal eine nähere Erklärung.
der Postfix Server hängt bei uns im LAN und dient nebenher auch als IMAP Server.
Mein Ziel wäre es KEINEN offenen Relayer in Netz zuhaben. Das heisst, dass über den Postfix Server nur Emails von Absendern aus unserer Domain (z.B.: testuser@ourdomain.at> versendet werden dürfen (keine Einschränkungen bei Zieladressen), alle anderen Versuche sollten ein "relaying denied" erhalten.
wie vorgeschlagen erlaube nur authentifizierten usern das einliefern
zb
smtpd_recipient_restrictions = ... reject_unknown_recipient_domain, reject_non_fqdn_recipient, permit_mynetworks, reject_unlisted_recipient, reject_sender_login_mismatch, permit_sasl_authenticated, reject_unauth_pipelining, reject_unauth_destination, ....
die Authentifizierung erfolgt gewoehnlich ueber sasl das Schluesselwort ist dabei permit_sasl_authenticated
smtpd_sasl_auth_enable = yes smtpd_use_tls = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes smtpd_sender_login_maps =......
die exacte authentifizierungs methode haengt aber von deinem sonstigen setup ab
also zb nutzt du saslauthd oder dovecot etc
Daher habe ich mir gedacht, die folgenden Einträge wären genau für das gedacht.
relay_recipient_maps = hash:/etc/postfix/relay_recipients relay_domains = hash:/etc/postfix/relay_domains
# cat /etc/postfix/relay_recipients @ourdomain.at OK
# cat /etc/postfix/relay_domains ourdomain.at OK
Scheinbar doch nicht ... Welche wäre(n) nun die Richtige(n)?
Sorry, aber bin eher noch "sendmail" geschädigt ;-)
Grüsse und Danke Richard
postfix-users mailing list postfix-users@de.postfix.org http://de.postfix.org/cgi-bin/mailman/listinfo/postfix-users
participants (4)
-
Patrick Ben Koetter
-
Richard Gliebe
-
Robert Schetterer
-
Uwe Driessen