PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : POSTFIX: Mail-Versand einschränken



bigblue2010
30.10.12, 13:24
Hallo Zusammen,

für ein Projekt müsste der Postfix so eingerichtet werden, dass nur definierte Mail-Adressen Mails empfangen dürfen, alles andere soll ge-bounced werden.

Nachdem ich etwas recherchiert habe, bin ich auf folgende Option gestosen "smtpd_sender_restrictions", aber leider klappt die Umsetzung nicht.
Folgende Einstellungen habe ich vorgenommen:


/etc/postfix/my.cnf

smtpd_sender_restrictions =
check_sender_access hash:/etc/postfix/valid_recipients
reject_unlisted_sender

/etc/postfix/valid_recipients

mail-adresse-1@example.com permit
mail-adresse-2@example.com permit
mail-adresse-3@example.com permit


Natürlich habe ich noch postmap /etc/postfix/valid_recipients durchgeführt und den Postfix restartet, aber leider klappt das wie erwähnt nicht.
Wenn ich Mails an mail-adresse-4@example.com sende, dann werden diese vom Postfix an den Relayhost weiter gegeben und versendet.

Hat jemand eine Ahnung was noch fehlt?

Gruß
Marcus

marce
31.10.12, 10:02
Hab's zwar noch nie verwendet aber die Doku lässt 2 Vermutungen offen:
- Postfix-Version?
und...

An address is always considered "known" when it matches a virtual(5) alias or a canonical(5) mapping.

asaru
31.10.12, 12:11
/etc/postfix/my.cnf

smtpd_sender_restrictions =
check_sender_access hash:/etc/postfix/valid_recipients
reject_unlisted_sender


Hast du auch das DB File geupdatet?


hash
An indexed file type based on hashing. This is available only on systems with support for Berkeley DB databases. Database files are created with the postmap(1) or postalias(1) command. The database name as used in "hash:table" is the database file name without the ".db" suffix.

Quelle: http://www.postfix.org/DATABASE_README.html

bigblue2010
31.10.12, 15:50
- Postfix-Version?
und...Es handelt sich um ein Postfix v. 2.7, dass vom Ubuntu 10.04 mitgelfiert wird.

Zum Thema "smtpd_reject_unlisted_sender", sorry ich hatte vergessen das noch zu erwähnen, die Option hatte ich schon aktiviert:

smtpd_reject_unlisted_sender = yes
smtpd_sender_restrictions =
check_sender_access hash:/etc/postfix/valid_recipients
reject_unlisted_sender



Hast du auch das DB File geupdatet?

Quelle: http://www.postfix.org/DATABASE_README.html
Ja die DB hatte ich schon geupdatet:
postmap /etc/postfix/valid_recipients

Leider hat alles nicht gefruchtet.

TheDarkRose
31.10.12, 17:25
Bitte mal die komplette Ausgabe von postconf -n posten, und wenn möglich die Ausschnitte aus dem mail.log bei Versenden von Testfällen.

bigblue2010
01.11.12, 10:35
Hi,

wie folgt die Ausgabe von postconf -n:


alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = 127.0.0.1
mailbox_size_limit = 0
mydestination = exampel.com, localhost.localdomain, localhost
mydomain = exampel.com
myhostname = exampel.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
readme_directory = no
recipient_delimiter = +
relayhost = smtp.exampel.com
sender_canonical_maps = hash:/etc/postfix/sender_canonical
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/relay_password
smtp_sasl_security_options = noanonymous
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_reject_unlisted_sender = yes
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/valid_recipients reject_unlisted_sender
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:${data_directory}/smtpd_scache
smtpd_use_tls = yes

Das ist die Ausgabe aus dem /var/log/mail.log, nach dem ich eine Mail an einer nicht erlaubten Mail-Adresse gesendet habe. Wie man dem Log gut entnehmen kann, wird die Mail gesendet:


Nov 1 11:30:19 tklxwcmst2 postfix/pickup[20541]: F1A96161026: uid=0 from=<root>
Nov 1 11:30:19 tklxwcmst2 postfix/cleanup[21414]: F1A96161026: message-id=<20121101103018.F1A96161026@example.com>
Nov 1 11:30:19 tklxwcmst2 postfix/qmgr[22303]: F1A96161026: from=<test@example.com>, size=373, nrcpt=1 (queue active)
Nov 1 11:30:19 tklxwcmst2 postfix/smtp[21416]: F1A96161026: to=<not-allowed-user@example.com>, relay=smtp.example.com[123.456.789.101]:25, delay=0.76, delays=0.17/0.01/0.31/0.27, dsn=2.0.0, status=sent (250 ok 1351765819 qp 16485)
Nov 1 11:30:19 tklxwcmst2 postfix/qmgr[22303]: F1A96161026: removed

TheDarkRose
01.11.12, 11:28
Was mir grade auffällt, sender_restrictions betreffen den Absender, du solltest eher mit den recipient_restrictions arbeiten. Alleine schon gehören da ein paar Grundparameter rein, um ein Open-Relay, d.h. Spam zu vermeiden!

bigblue2010
01.11.12, 18:26
Was mir grade auffällt, sender_restrictions betreffen den Absender, du solltest eher mit den recipient_restrictions arbeiten. Alleine schon gehören da ein paar Grundparameter rein, um ein Open-Relay, d.h. Spam zu vermeiden!


Du hast vollkommen recht :ugly: Ich hab das gerade mal angepasst, aber das klappt trotzdem nicht :confused:


smtpd_reject_unlisted_sender = yes
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/valid_recipients
reject_unlisted_sender
reject_unknown_recipient_domain
reject

Der Server ist von außen nicht erreichbar, es kann nur von innen nach außen kommuniziert werden. Außerdem nutzen wir einen Relayhost um Mails zu versenden.

TheDarkRose
01.11.12, 19:24
Nun ja, mein Postfix bounced generell, wenn ein User nicht gefunden wird. Verwende zwar virtuelle Mailboxen, aber selbiges sollte auch auf lokale User zutreffen. Postfix antwortet dann mit unknown user.
reject_unauth_destination könnte schon was sein http://www.postfix.org/postconf.5.html#reject_unauth_destination

asaru
02.11.12, 06:31
Nun ja, mein Postfix bounced generell, wenn ein User nicht gefunden wird.

warum man generelles bouncen vermeiden sollte:
http://spamlinks.net/prevent-secure-backscatter.htm

TheDarkRose
02.11.12, 09:38
Ich erzeuge in diesem Fall keine Bounce Mails, außer die Mail kommt von intern. Ist es ein fremder Server, der einliefert, wird abgelehnt/reject (mit gebounced hab ich mich wohl falsch ausgedrückt), aber keine Bounce-Mail erzeugt. Ob der fremde Server dann eine Bounce-Mail erzeugt, liegt nicht mehr in meinen Händen.

bigblue2010
02.11.12, 13:51
Leider hat die Option "reject_unauth_destination" keine Abhilfe geschaffen:


smtpd_reject_unlisted_sender = yes
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/valid_recipients
reject_unauth_destination
reject_unlisted_sender
reject_unknown_recipient_domain
reject

Kann das Problem eventuell daran liegen, dass ich einen Relayhost zum versenden der Mails verwerde?

TheDarkRose
02.11.12, 14:29
Was genau willst du jz eigentlich erreichen?

bigblue2010
02.11.12, 16:15
Also ich möchte, dass der Postfix nur Mails an bestimme Empfänger bzw. Domains sendet und alles andere verworfen wird. Z.B.:

An folgende Mails / Domains dürfen Mails versendet werden:


user1@example.com
user2@example.com
*@meinedomain.de

Alle andere Mails sollen verworfen werden.

TheDarkRose
02.11.12, 19:21
Wie sind diese beiden User und die andere Domain dem Postfix bekannt? Sind das lokale User? Oder ist eigentlich alles extern?

bigblue2010
03.11.12, 07:15
Postfix kennt diese Mail-Adressen und User nicht. Vielleicht noch kurz eine Erleuterung zur Architektur:

- Es gibt ein Linux-System mit Ubuntu 10.04
- Darauf habe ich ein Postfix laufen, der Mails über deinen Externen Relayhost versendet
- Auf dem System läuft eine Anwendung, die Mails über localhost also über den Postfix versendet.
- Die Anwendung adressiert Mails an den Verschiedenen Adressen / Domains.

TheDarkRose
03.11.12, 09:07
Hab grad nochmal in die Postfixdoku geschaut. Dürfte eher die relay_restrictions greifen, da ist default permit_mynetworks, reject_unauth_destination drinnen. Also wird alles von localhost an den Relayhost akzeptiert. Probier mal dort die Rules zu setzen.
http://www.postfix.org/postconf.5.html#smtpd_relay_restrictions

bigblue2010
04.11.12, 09:21
Danke für den Tipp, aber auch das funktioniert leider nicht :( Die Konfiguration sieht nun wie folgt aus:



alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = 127.0.0.1
mailbox_size_limit = 0
mydestination = example.com, localhost.localdomain, localhost
mydomain = example.com
myhostname = example.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
readme_directory = no
recipient_delimiter = +
relayhost = smtp.example.com
sender_canonical_maps = hash:/etc/postfix/sender_canonical
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/relay_password
smtp_sasl_security_options = noanonymous
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/valid_recipients, reject_unauth_destination, reject_unlisted_sender, reject_unknown_recipient_domain, reject
smtpd_reject_unlisted_sender = yes
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:${data_directory}/smtpd_scache
smtpd_use_tls = yes

Ich hab schon eine ganze weile im Internet gesucht und bin auf verschiedene Anleitungen gestoßen, die eigentlich genau diese Thematik beschreiben, aber das klappt alles nicht. Um die Einstellungen genrell zu testen, habe ich eine nacktes Linux-System mit Postfix installiert und folgende Einstellungen vorgenommen:



smtpd_reject_unlisted_sender = yes
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/valid_recipients,
reject_unauth_destination,
reject_unlisted_sender,
reject_unknown_recipient_domain,
reject

In diesem Fall wird kein Relayhost genutzt und die Mails werden trotzdem versendet? Die Regel scheint gar nicht zu greifen?! Irgenwie bin ich echt mit meinem Latein am Ende.

bigblue2010
08.11.12, 22:01
Hallo nochmals,

leider habe ich nichts mehr zum Thema von euch gehört.
Habt Ihr noch eine idee?

Gruß
Marcus