Anzahl der eMails pro Tag pro Domain beschränken
Anzahl der eMails pro Tag pro Domain beschränken
Hallo!
Ich betreibe einen Dezidierten Rootserver mit Debian etch.
Ich habe Postfix als Mailserver installiert.
Ich würde gerne die Anzahl der eMails pro Tag für jede Domain (vHost eintrag) festlegen.
Habe schon :google: genervt aber leider konnte ich nichts brauchbares finden.
Kennt jemand einen Lösungsansatz dafür? Ich bin für jeden Tip dankbar.
lG AVUvm9
Ich betreibe einen Dezidierten Rootserver mit Debian etch.
Ich habe Postfix als Mailserver installiert.
Ich würde gerne die Anzahl der eMails pro Tag für jede Domain (vHost eintrag) festlegen.
Habe schon :google: genervt aber leider konnte ich nichts brauchbares finden.
Kennt jemand einen Lösungsansatz dafür? Ich bin für jeden Tip dankbar.
lG AVUvm9
Re: Anzahl der eMails pro Tag pro Domain beschränken
Hmm, das ist mal ein interessantes "Quota". AFAIK gibt es da keine Fertig-Lösung, aber Du könntest einen eigenen kleinen Policy-Daemon skripten (in den Postfix-Examples gibt es eine brauchbare Perl-Vorlage, oder hier ein Beispiel in Python), der einen Zähler bedient (Datenbank, Textfile oder einfach Speicherstruktur im RAM, wenn es nicht sooooo wichtig ist) und danach entscheidet, ob eine Mail ein "action=dunno" (Limit noch nicht erreicht) oder ein "action=reject" (Limit überschritten) bekommt.
Du müsstest Postfix dann allerdings so konfigurieren, dass die Policy (check_policy_service) in den Restrictions vor permit_sasl_authenticated zum Zuge kommt, damit auch ausgehende Mails mit erfasst werden. Da das Postfix-Policy-Protokoll den gesamten Header (aber nichts nach DATA) zur Verfügung stellt, kannst Du sogar separate Quotas für ein- und ausgehende Mails festlegen, den Umgang mit Alias-Adressen regeln, etc. Je nachdem, wie viel Du an Arbeit reinstecken möchtest sind Dir da keine Grenzen gesetzt
Du müsstest Postfix dann allerdings so konfigurieren, dass die Policy (check_policy_service) in den Restrictions vor permit_sasl_authenticated zum Zuge kommt, damit auch ausgehende Mails mit erfasst werden. Da das Postfix-Policy-Protokoll den gesamten Header (aber nichts nach DATA) zur Verfügung stellt, kannst Du sogar separate Quotas für ein- und ausgehende Mails festlegen, den Umgang mit Alias-Adressen regeln, etc. Je nachdem, wie viel Du an Arbeit reinstecken möchtest sind Dir da keine Grenzen gesetzt
Re: Anzahl der eMails pro Tag pro Domain beschränken
Vielen Dank für deine Mühe.
Ich habe es nun ein bisschen anders gemacht.
Zum Hintergrund:
Ich habe einen kleinen Dezidierten Server.
Da er viel zu groß für mich alleine ist, vermiete ich einen Teil an Freunde und Bekannte.
Ich möchte nicht, dass ein Angreifer einen Fehler in einem PHP Script von einem Benutzer findet und dadurch den Server zum Massmailen missbraucht.
Da man nur über PHP eMails versenden kann, fange ich die emails nun mit einem kleinen Perl Script ab, überprüfe von welcher Domain die eMail kommt, und setze den zähler für diesen Benutzer um eine eMail hoch. Wenn die maximale Anzahl erreicht ist, werden von diesem Benutzer keine eMails mehr Versand.
Das ist für meine Zwecke einfacher - wie ich finde.
Nun habe ich nur noch ein kleines Problem.
Das Perlscript kann den Hostname nicht ausgeben.
Hier ist das Scrip, das an Stelle von sendmail platziert wird.
Dieses Beispiel Script sollte den Host an die eMail anhängen.
Ich hoffe ihr könnt mir helfen.
Ich danke euch schon mal für eure Hilfe.
lG AVU4m9
Ich habe es nun ein bisschen anders gemacht.
Zum Hintergrund:
Ich habe einen kleinen Dezidierten Server.
Da er viel zu groß für mich alleine ist, vermiete ich einen Teil an Freunde und Bekannte.
Ich möchte nicht, dass ein Angreifer einen Fehler in einem PHP Script von einem Benutzer findet und dadurch den Server zum Massmailen missbraucht.
Da man nur über PHP eMails versenden kann, fange ich die emails nun mit einem kleinen Perl Script ab, überprüfe von welcher Domain die eMail kommt, und setze den zähler für diesen Benutzer um eine eMail hoch. Wenn die maximale Anzahl erreicht ist, werden von diesem Benutzer keine eMails mehr Versand.
Das ist für meine Zwecke einfacher - wie ich finde.
Nun habe ich nur noch ein kleines Problem.
Das Perlscript kann den Hostname nicht ausgeben.
Hier ist das Scrip, das an Stelle von sendmail platziert wird.
Code: Select all
#!/usr/bin/perl
open(MAIL, "| /usr/sbin/sendmail_def -oi -t");
while (<STDIN>) {
print MAIL $_;
}
print MAIL qq(%ENV{'HTTP_HOST'});
close MAIL;
Ich hoffe ihr könnt mir helfen.
Ich danke euch schon mal für eure Hilfe.
lG AVU4m9
Re: Anzahl der eMails pro Tag pro Domain beschränken
Woher soll das Skript denn ENV{'HTTP_HOST'} kennen? Es wird ja nicht per CGI aufgerufen, sondern ganz normal über die Kommandozeile.
Re: Anzahl der eMails pro Tag pro Domain beschränken
Ah ja?
Perl ist für mich Neuland...
Google sagt mir auch nichts passendes.
Könntest du mir sagen, was ich ändern muss damit es funktioniert?
MfG
AVU4m9
Perl ist für mich Neuland...
Google sagt mir auch nichts passendes.
Könntest du mir sagen, was ich ändern muss damit es funktioniert?
MfG
AVU4m9
Re: Anzahl der eMails pro Tag pro Domain beschränken
Du kommst in einem Sendmail-Wrapper (der von PHP als normaler Prozess ohne CGI gestartet wird) nicht an Umgebungsvariablen des CGI-Moduls heran. Du kannst also nur einen hart codierten Hostnamen anhängen oder den Rechnernamen verwenden (Rückgabe von hostname()).
Re: Anzahl der eMails pro Tag pro Domain beschränken
Damit wäre ich auch schon zufrieden. :)
Re: Anzahl der eMails pro Tag pro Domain beschränken
So...
Ich hatte noch eine Idee.
Wenn man eine eMail via PHP versendet, wird ja immer eine Zeile in den eMail Header geschrieben, die ungefähr so aussieht:
Diese Zeile sollte nun an der Sendmail Schnittstelle abgefangen werden, und in eine Datenbank geschrieben werden.
Mehr fehlen nur leider ein paar Funktionen für Perl.
In PHP heißen diese zum Beispiel: explode(), eregi(), etc, ...
Danke für die Hilfe.
MfG
AVU4m9
Ich hatte noch eine Idee.
Wenn man eine eMail via PHP versendet, wird ja immer eine Zeile in den eMail Header geschrieben, die ungefähr so aussieht:
Code: Select all
X-PHP-Script: SLDomain.TLD/forum/register.php for 35.764.876.558
Mehr fehlen nur leider ein paar Funktionen für Perl.
In PHP heißen diese zum Beispiel: explode(), eregi(), etc, ...
Danke für die Hilfe.
MfG
AVU4m9
Last edited by avu4m9 on 2008-08-09 14:43, edited 1 time in total.
-
Roger Wilco
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: Anzahl der eMails pro Tag pro Domain beschränken
Dann schreib den Wrapper doch einfach mit PHP, wenn du dich damit besser auskennst...AVU4m9 wrote:In PHP heißen diese zum Beispiel: explode(), eregi(), etc, ...
Re: Anzahl der eMails pro Tag pro Domain beschränken
Naja.
Da bei mir PHP nicht als fCGI läuft, müsste ich die popen Funktion freigeben.
Diese stellt aber ein Sicherheitsrisiko da.
MfG
AVU4m9
Da bei mir PHP nicht als fCGI läuft, müsste ich die popen Funktion freigeben.
Diese stellt aber ein Sicherheitsrisiko da.
MfG
AVU4m9
-
Roger Wilco
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: Anzahl der eMails pro Tag pro Domain beschränken
Der Sendmail-Wrapper nutzt kein CGI, sondern wird über den CLI PHP-Interpreter aufgerufen...AVU4m9 wrote:Da bei mir PHP nicht als fCGI läuft, müsste ich die popen Funktion freigeben.
Diese stellt aber ein Sicherheitsrisiko da.
Re: Anzahl der eMails pro Tag pro Domain beschränken
Öhm? fCGI?
Fast CGI ist eine andere Form um PHP5 mit Apache2 zum verbinden.
Hirbei kann man verschiedene php.ini's erstellen.
Bei der libapache2_mod_php5 Lösung geht das leider nicht.
MfG
AVU4m9
Fast CGI ist eine andere Form um PHP5 mit Apache2 zum verbinden.
Hirbei kann man verschiedene php.ini's erstellen.
Bei der libapache2_mod_php5 Lösung geht das leider nicht.
MfG
AVU4m9
-
Roger Wilco
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: Anzahl der eMails pro Tag pro Domain beschränken
Öhm? CLI!AVU4m9 wrote:Öhm? fCGI?
Fast CGI ist eine andere Form um PHP5 mit Apache2 zum verbinden.
Re: Anzahl der eMails pro Tag pro Domain beschränken
ignoriert CLI die php.ini denn??
lG AVU4m9
lG AVU4m9
-
Roger Wilco
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: Anzahl der eMails pro Tag pro Domain beschränken
Nein, aber der Interpreter kann ja eine eigene php.ini haben, so dass die Einstellungen nicht für die übrigen Varianten gelten.AVU4m9 wrote:ignoriert CLI die php.ini denn??
Re: Anzahl der eMails pro Tag pro Domain beschränken
Jo!
Du hast recht.
Unter '/etc/php5/CLI/' gibt es eine extra php.ini.
Vielen Dank für deine Hilfe.
Wenn ich das Script fertig habe, werde ich es hier posten.
MfG
AVU4m9
Du hast recht.
Unter '/etc/php5/CLI/' gibt es eine extra php.ini.
Vielen Dank für deine Hilfe.
Wenn ich das Script fertig habe, werde ich es hier posten.
MfG
AVU4m9
