Externe Mailempfänger blockieren

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
maybee
Posts: 80
Joined: 2005-11-02 18:21

Externe Mailempfänger blockieren

Post by maybee » 2009-12-08 22:48

Hi zusammen

ich baue gerade an einem Mailserver (Postfix) und stehe vor der Frage wie ich es lösen kann das der Versand von E-Mail nur über lokale User die über eine Domain die auf dem Server liegt verfügen erfolgen kann.

Das ganze kennt man ja von den meissten Hostingprovidern, ich möchte damit verhindern das jeder via PHP als Absender eine "fremde" Adresse eines anderen Mailservers angeben kann.

Bin mir hier nicht sicher ob ich das ganze über PHP lösen muss oder ob man das ganze global über Postfix regeln kann - vermutlich geht sogar beides?

Vermutlich eine duselige Frage mit der ich in ein Fettnäpfchen trete aber... :-)

Kann mir da jemand einen Tipp geben?

User avatar
Joe User
Project Manager
Project Manager
Posts: 11578
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Externe Mailempfänger blockieren

Post by Joe User » 2009-12-08 23:38

maybee wrote:ich baue gerade an einem Mailserver (Postfix) und stehe vor der Frage wie ich es lösen kann das der Versand von E-Mail nur über lokale User die über eine Domain die auf dem Server liegt verfügen erfolgen kann.

Das ganze kennt man ja von den meissten Hostingprovidern, ich möchte damit verhindern das jeder via PHP als Absender eine "fremde" Adresse eines anderen Mailservers angeben kann.

Bin mir hier nicht sicher ob ich das ganze über PHP lösen muss oder ob man das ganze global über Postfix regeln kann - vermutlich geht sogar beides?

Das geht weder per PHP noch per Postfix OOTB. Deine Hostingprovider setzen dazu individuell stark modifizierte Mailserver (meist Sendmail oder QMail) oder komplexe Mailwrapper ein. Beide Lösungen dürften für <1k Kunden uninteressant, sprich zu teuer sein.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

maybee
Posts: 80
Joined: 2005-11-02 18:21

Re: Externe Mailempfänger blockieren

Post by maybee » 2009-12-08 23:48

Danke für deine Antwort.

PHP ruft momentan den mitgelieferten sendmail von Postfix auf, also die Default Einstellung:

sendmail -t -i

Jetzt frag ich mich wie ich PHP "zwinge" die Mails per SMTP abzuliefern.

Aktuell steht das ganze auf:

SMTP = localhost

Hab ich hier was übersehen?

Meine Idee wäre es den sendmail_path leer zu lassen, aber ob das so richtig ist :)

maybee
Posts: 80
Joined: 2005-11-02 18:21

Re: Externe Mailempfänger blockieren

Post by maybee » 2009-12-09 00:01

Joe User wrote:Das geht weder per PHP noch per Postfix OOTB.


Das OOTB lässt mich hoffen :-)

Ich habe das Verhalten bisher tasächlich nur bei grösseren Providern gesehen, aber ich habe da auch keinen Vergleich.

Wenn doch jemand eine Idee hat, immer her damit :-)

User avatar
Joe User
Project Manager
Project Manager
Posts: 11578
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Externe Mailempfänger blockieren

Post by Joe User » 2009-12-09 00:11

maybee wrote:Danke für deine Antwort.

PHP ruft momentan den mitgelieferten sendmail von Postfix auf, also die Default Einstellung:

sendmail -t -i

Jetzt frag ich mich wie ich PHP "zwinge" die Mails per SMTP abzuliefern.

Aktuell steht das ganze auf:

SMTP = localhost

Hab ich hier was übersehen?

Meine Idee wäre es den sendmail_path leer zu lassen, aber ob das so richtig ist :)

Lies mal die zugehörigen Kommentare in der original php.ini aus dem Source ;)

Du kannst PHP nicht zu SMTP-AUTH zwingen, ausser PHP selbst entsprechend umzuprogrammieren. Letzteres willst Du nicht wirklich...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Externe Mailempfänger blockieren

Post by Roger Wilco » 2009-12-09 00:58

Wenn die PHP-Skripte auf deinem System jeweils unter einem eigenen Benutzer laufen (SuExec, SuPHP), könnte authorized_submit_users nützlich für dich sein.

Bei der Einlieferung via SMTP (also nicht lokal) kannst du auf smtpd_sender_restrictions bzw. konkreter die Restrictions check_sender_access und reject_sender_login_mismatch zurückgreifen.
Last edited by Roger Wilco on 2009-12-09 00:58, edited 1 time in total.

maybee
Posts: 80
Joined: 2005-11-02 18:21

Re: Externe Mailempfänger blockieren

Post by maybee » 2009-12-09 01:28

Joe User wrote:Lies mal die zugehörigen Kommentare in der original php.ini aus dem Source ;)


Ahh, die sind natürlich manchmal ganz hilfreich... SMTP fällt also aus.

Joe User wrote:authorized_submit_users


Ich glaube das könnte was werden, bei mir läuft php unter dem jeweiligen User. Theoretisch müsste ich hier nur die From Mailadresse mit dem Systemuser verbinden. Ich habe die User alle in der MySQL Tabelle und könnte aus dieser auch ermitteln welcher Systemuser zu dieser Emaildresse gehört.

Klingt das sinnvoll oder hab ich was komplett falsch verstanden?

Ich denke da werde ich mich mal versuchen und auf meinem Testserver ein bißchen basteln.

Lichtblicke :)

maybee
Posts: 80
Joined: 2005-11-02 18:21

Re: Externe Mailempfänger blockieren

Post by maybee » 2009-12-09 13:09

matzewe01 wrote:dann lässt sich doch die Absender Adressen locker gegen die Alias aus der DB Matchen oder?


Jepp, genau das werde ich versuchen. Wenn ich es auf die Reihe bekommen habe hört ihr von mir und wenn nicht mit Sicherheit auch 8)

Die Restrictions für SMTP auf Postfix Ebene habe ich "natürlich" schon drin.

PS.: Ich glaube die Links im Wiki funktionieren im Moment nicht.

maybee
Posts: 80
Joined: 2005-11-02 18:21

Re: Externe Mailempfänger blockieren

Post by maybee » 2009-12-12 00:32

Hi zusammen

danke für den Hinweis wegen der Wiki, ich war auch etwas überrascht als ich euer neues Design gesehen habe - hatte noch das Blaue im Hinterkopf :)

matzewe01 wrote:Ja dann, dann lässt sich doch die Absender Adressen locker gegen die Alias aus der DB Matchen oder?


Ich bin mir nicht ganz sicher :) Die Abfrage nach dem User klappt bestens, nur habe ich keine Ahnung ob die Info welche Absender-Adresse genutzt wird zur Verfügung steht.

%s enthält den Usernamen (Shelluser) der versucht zu senden, an die Absender-Adresse bin ich nicht ran gekommen.

Ich konnte in der Doku keine Info finden für welche Abfragen welche Werte verfügbar sind oder ob man Werte vergeben kann die Verfügbar sein sollen:

http://www.postfix.org/mysql_table.5.html

Hat hiermit schon jemand Erfahrungen machen können?