[Postfixbuch-users] Throttling mit poliycd auch für sendmail-Mails

Philipp Wollermann philipp at igowo.de
Fr Aug 3 11:29:03 CEST 2007


Hi Uwe,

Uwe Driessen wrote:
> Philipp Wollermann schrieb: 
>> Damit so etwas nicht wieder passiert, bzw. in Grenzen bleibt, würde ich
>> gern - es sei denn, euch fällt etwas besseres ein - Sender-Throttling
>> einbauen, um meinen Usern nur X Mails pro Minute zu erlauben. Das sollte
>> ja der policyd.sf.net können. :) Nur schickt das PHP-mail() natürlich
>> über /usr/bin/sendmail und da hab ich in Erinnerung, dass die
>> smtpd_recipient_restrictions nicht greifen und deswegen auch der policyd
>> nichts mehr zu melden hat.
> 
> Schau dir mal diese Fuktionen an 
> 
> #authorized_submit_users = !webuser, static:anyone
> #authorized_submit_users = !www-data, static:anyone
> 
> Dann kannst du deine User dazu zwingen das sie sich per phpscript am Server anmelden
> müssen um Mails zu versenden. Dadurch greifen dann auch wieder die Restriktionen.
> Nachteil alle Mailscripte müssen angepasst werden und mit Username und PW versehen werden.

Das werde ich auf jeden Fall einbauen :) Dann müssen sie
erzwungenermaßen über SMTP senden.. zwar geht www-data in meinem Fall
nicht, weil meine User alle eigene Accounts haben und die PHP-Skripte
auch darunter laufen (FastCGI), aber das Prinzip ist mir jetzt klar..
und ab Postfix 2.4 kann ich da wohl auch einfach eine Datei mit einer
Userliste als Exclusion-Liste angeben. Danke für den Tipp!

Ich habe zusätzlich noch einen schönen Trick gefunden, mit der die
mail() Funktion trotzdem weiterhin funktioniert:

- Das Skript putmail.py wird als sendmail-Ersatz in der php.ini
eingetragen und ein wenig gepatched, so dass es für mein System passt.
Das liest dann aus /home/einerMeinerUser/putmail/putmailrc eine Config
aus, in der ich oder der User Anmeldedaten eingeben kann, die zum
Versenden von Mail verwendet werden sollen - z.B. die von seinem Account
auf meinem Server.

[config]
server = localhost
email = einerMeinerUser at seineDomain.de
username = einerMeinerUser at seineDomain.de
password = tollesPasswort

- Dann kann sogar noch permit_mynetworks raus aus den
recipient_restrictions, denn nun melden sich die User ja sogar an
localhost per SASL an, wenn sie mail() und damit putmail.py benutzen. :)
(Oder übersehe ich da etwas?)

In einem kleinen Test gestern Abend hat das schön funktioniert.. die
putmailrc kann ich dann sogar für jeden User automatisch anlegen mit
meinem Verwaltungssystem.

Viele Grüße,
Philipp



Mehr Informationen über die Mailingliste Postfixbuch-users