[postfix-users] Amavis und ausgehende Mails
Hi,
ich habe eine kleine Frage bzw. Anregung für euch und wollte mal fragen ob man das so machen kann.
Ich habe nach dieser Anleitung http://doc.ubuntu.com/ubuntu/serverguide/C/mail-filtering.html Amavis installiert. Nun hatte ich das Problem, dass Amavis auch ausgehende E-Mails gescannt hat.
Da ich die Mails über den Submission Port einliefere habe ich folgendes gemacht:
Diese Zeile habe ich aus der main.cf entfernt: content_filter = smtp-amavis:[127.0.0.1]:10024
und dafür in der master.cf eingetragen: smtp inet n - - - - smtpd -o content_filter=smtp-amavis:[127.0.0.1]:10024
Jetzt werden eingehende E-Mails per Amavis gescannt (wie gewollt) und alle ausgehenden Mails werden nicht mehr gescannt.
Da das so nicht in dem How To stand wollte ich mal bei euch nachfragen ob meine Lösung so trotzdem professionell ist? Oder ist das eine schlechte Lösung?
Bisher funktioniert das so einwandfrei und auch in den Logs ist alles okay.
Danke
Chris
Auch hi,
Ich habe nach dieser Anleitung http://doc.ubuntu.com/ubuntu/serverguide/C/mail-filtering.html Amavis installiert. Nun hatte ich das Problem, dass Amavis auch ausgehende E-Mails gescannt hat.
das muss nicht immer ein Problem sein. Kommt meiner Meinung nach auf den Einsatzzweck deines Mailservers an. Ist dein Benutzerstamm überschaubar? Liegt dieser innerhalb eines Netzwerkes, welches du unter Kontrolle hast? Kannst du anderweitig ausschließen, dass einer deiner Benutzer zu einem Botnet gehört?
und dafür in der master.cf eingetragen: smtp inet n - - - - smtpd -o content_filter=smtp-amavis:[127.0.0.1]:10024
Hier setzen wir erfolgreich smtpd_proxy ein. Ist meiner Meinung nach schöner, weil als Spam erkannte Mails während des Einlieferungsdialogs bereits abgewiesen werden können.
Jetzt werden eingehende E-Mails per Amavis gescannt (wie gewollt) und alle ausgehenden Mails werden nicht mehr gescannt.
Wie du es wolltest...
Da das so nicht in dem How To stand wollte ich mal bei euch nachfragen ob meine Lösung so trotzdem professionell ist? Oder ist das eine schlechte Lösung?
Nicht jedes Howto führt zu professionellen Lösungen. Aber das geht schon in Ordnung mit dem Eintrag in der master.cf. ;o)
Bisher funktioniert das so einwandfrei und auch in den Logs ist alles okay.
Na dann...
Danke
Bitte.
Patrick
Am 8. Juni 2010 07:24 schrieb Patrick Schroth patrick.schroth@transmit.de:
Auch hi,
das muss nicht immer ein Problem sein. Kommt meiner Meinung nach auf den Einsatzzweck deines Mailservers an. Ist dein Benutzerstamm überschaubar? Liegt dieser innerhalb eines Netzwerkes, welches du unter Kontrolle hast? Kannst du anderweitig ausschließen, dass einer deiner Benutzer zu einem Botnet gehört?
Bei den Punkten sollte alles Okay sein.
Hier setzen wir erfolgreich smtpd_proxy ein. Ist meiner Meinung nach schöner, weil als Spam erkannte Mails während des Einlieferungsdialogs bereits abgewiesen werden können.
Aber dafür muss doch die Mail erst durch Amavis laufen?
Nicht jedes Howto führt zu professionellen Lösungen. Aber das geht schon in Ordnung mit dem Eintrag in der master.cf. ;o)
Danke das wollte ich nur wissen :)
Am 8. Juni 2010 14:19 schrieb Patrick Schroth patrick.schroth@transmit.de:
Tut es auch, nur wird das eben bereits im SMTP-Dialog abgehandelt. Solange Amavis arbeitet, wird der SMTP-Dialog von Postfix einfach aufrecht erhalten.
Gibt es dafür irgendwo ein How To? Würde mir das gerne mal anschauen.
Chris
* Christopher Stolzenberg postfix-users@de.postfix.org:
Am 8. Juni 2010 14:19 schrieb Patrick Schroth patrick.schroth@transmit.de:
Tut es auch, nur wird das eben bereits im SMTP-Dialog abgehandelt. Solange Amavis arbeitet, wird der SMTP-Dialog von Postfix einfach aufrecht erhalten.
Gibt es dafür irgendwo ein How To? Würde mir das gerne mal anschauen.
Laß amavis wie gewohnt auf localhost:10024 laufen. Dann in master.cf die Mails im smtpd gleich an amavis durchreichen:
smtp inet n - n - 16 smtpd -o smtpd_proxy_filter=127.0.0.1:10024 -o smtpd_client_connection_count_limit=10 -o smtpd_authorized_xforward_hosts=127.0.0.0/8 -o smtpd_authorized_xclient_hosts=127.0.0.0/8
Kommen sie durch, gibt amavis sie wieder wie gewohnt rein:
127.0.0.1:10025 inet n - n - - smtpd -o content_filter= -o smtpd_authorized_xforward_hosts=127.0.0.0/8 -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o smtpd_restriction_classes= -o smtpd_milters=inet:localhost:8891 -o mynetworks=127.0.0.0/8 -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks -o local_header_rewrite_clients=
In amavis willst Du dann noch die Policies für Spamfunde anpassen:
$final_spam_destiny = D_REJECT;
p@rick
Am 8. Juni 2010 14:42 schrieb Patrick Ben Koetter p@state-of-mind.de:
Laß amavis wie gewohnt auf localhost:10024 laufen. Dann in master.cf die Mails im smtpd gleich an amavis durchreichen:
smtp inet n - n - 16 smtpd -o smtpd_proxy_filter=127.0.0.1:10024 -o smtpd_client_connection_count_limit=10 -o smtpd_authorized_xforward_hosts=127.0.0.0/8 -o smtpd_authorized_xclient_hosts=127.0.0.0/8
Hi Patrick,
aber greifen dann überhaupt noch die smtpd_recipient_restrictions aus der main.cf? Oder läuft das dann parallel?
Chris
* Christopher Stolzenberg postfix-users@de.postfix.org:
Am 8. Juni 2010 14:42 schrieb Patrick Ben Koetter p@state-of-mind.de:
Laß amavis wie gewohnt auf localhost:10024 laufen. Dann in master.cf die Mails im smtpd gleich an amavis durchreichen:
smtp inet n - n - 16 smtpd -o smtpd_proxy_filter=127.0.0.1:10024 -o smtpd_client_connection_count_limit=10 -o smtpd_authorized_xforward_hosts=127.0.0.0/8 -o smtpd_authorized_xclient_hosts=127.0.0.0/8
Hi Patrick,
aber greifen dann überhaupt noch die smtpd_recipient_restrictions aus der main.cf?
Ja, die greifen.
Generell gilt ein 3-stufiges Modell:
1. Standardwert 2. main.cf 3. master.cf
Im Detail:
1. Jeder Daemon kommt mit Standardwerten, die Du mit "postconf -d <WERT>" abfragen kannst. 2. Diese Standardwerte können von Einstellungen in main.cf überschrieben werden. Solche Einstellungen gelten global/service¹-übergreifend für jede Instanz eines Daemon (z.B. smtpd-Daemon). Du kannst sie, wenn sie gesetzt sind, mit "postconf -n <WERT>" abfragen. 3. Einstellungen in master.cf fügen einem service der einen Daemon nutzt, service-spezifische Optionen hinzu oder verändern/überschreiben solche aus main.cf.
¹ Falls Du nicht weißt was Postfix mit "service" meint - es ist die erste Spalte eines Eintrags in master.cf.
Konkret in Deinem Fall: Du setzt keine $smtpd_recipient_restrictions in master.cf für den service. Es gelten also entweder die Defaults oder Werte, die Du in main.cf definiert hattest.
p@rick
Am 8. Juni 2010 16:02 schrieb Patrick Ben Koetter p@state-of-mind.de:
Ja, die greifen.
Generell gilt ein 3-stufiges Modell:
- Standardwert
- main.cf
- master.cf
Im Detail:
- Jeder Daemon kommt mit Standardwerten, die Du mit "postconf -d <WERT>" abfragen
kannst. 2. Diese Standardwerte können von Einstellungen in main.cf überschrieben werden. Solche Einstellungen gelten global/service¹-übergreifend für jede Instanz eines Daemon (z.B. smtpd-Daemon). Du kannst sie, wenn sie gesetzt sind, mit "postconf -n <WERT>" abfragen. 3. Einstellungen in master.cf fügen einem service der einen Daemon nutzt, service-spezifische Optionen hinzu oder verändern/überschreiben solche aus main.cf.
¹ Falls Du nicht weißt was Postfix mit "service" meint - es ist die erste Spalte eines Eintrags in master.cf.
Konkret in Deinem Fall: Du setzt keine $smtpd_recipient_restrictions in master.cf für den service. Es gelten also entweder die Defaults oder Werte, die Du in main.cf definiert hattest.
Danke für die ausführliche Erläuterung.
Bei Postfix kann man ja wirklich ständig noch was dazu lernen :)
Bei so vielen Möglichkeiten die Postfix bietet frage ich mich langsam ernsthaft ob da überhaupt andere MTA´s von der Erweiterbarkeit und Funktionalität rankommen? Exim, Sendmail, Qmail usw. Gibt es da eigentlich Zahlen mit Marktanteilen von Postfix?
Chris
Quoting Christopher Stolzenberg xchris89x@googlemail.com:
Am 8. Juni 2010 16:02 schrieb Patrick Ben Koetter p@state-of-mind.de:
Konkret in Deinem Fall: Du setzt keine $smtpd_recipient_restrictions in master.cf für den service. Es gelten also entweder die Defaults oder Werte, die Du in main.cf definiert hattest.
Danke für die ausführliche Erläuterung.
Bei Postfix kann man ja wirklich ständig noch was dazu lernen :)
Bei so vielen Möglichkeiten die Postfix bietet frage ich mich langsam ernsthaft ob da überhaupt andere MTA´s von der Erweiterbarkeit und Funktionalität rankommen? Exim, Sendmail, Qmail usw.
Exim ist programmierbar. Postfix ist Bausteine. Postfix ist wohl gut fuer 80% der Faelle und Exim hilft Dir bei den 20%, wenn Du wirklich tiefgreifend in die Mailverarbeitung eingreifen musst.
Gibt es da eigentlich Zahlen mit Marktanteilen von Postfix?
Habe ich die Tage entdeckt. Wie brauchbar die Daten sind, kann ich aber nicht sagen: http://www.mailradar.com/mailstat/mta/?mid=4
---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program.
Am 8. Juni 2010 23:47 schrieb Patrick Ben Koetter p@state-of-mind.de:
Exim ist programmierbar. Postfix ist Bausteine. Postfix ist wohl gut fuer 80% der Faelle und Exim hilft Dir bei den 20%, wenn Du wirklich tiefgreifend in die Mailverarbeitung eingreifen musst.
Okay und in Sachen Performance gibt es bei Postfix keine Einschränkungen? Wenn man z.B. für Großkonzerne wie IBM oder Redhat Mailserver betreibt müssen die ja pro Minute ein relativ hohes Volumen schaffen.
1000 Mails pro Minute wären z.B. für Postfix kein Problem?
Habe ich die Tage entdeckt. Wie brauchbar die Daten sind, kann ich aber nicht sagen: http://www.mailradar.com/mailstat/mta/?mid=4
Danke für den Link.
http://www.mailradar.com/mailstat/countries/Germany.html
In Deutschland ist Postfix mit 35% ja wirklich gut dabei :) Ich habe immer gedacht das Sendmail immer noch am meisten verbreitet ist.
Bei OpenSource sind ansonsten die Zahlen natürlich immer schwer einzuschätzen.
Chris
* Christopher Stolzenberg postfix-users@de.postfix.org:
Am 8. Juni 2010 23:47 schrieb Patrick Ben Koetter p@state-of-mind.de:
Exim ist programmierbar. Postfix ist Bausteine. Postfix ist wohl gut fuer 80% der Faelle und Exim hilft Dir bei den 20%, wenn Du wirklich tiefgreifend in die Mailverarbeitung eingreifen musst.
Okay und in Sachen Performance gibt es bei Postfix keine Einschränkungen? Wenn man z.B. für Großkonzerne wie IBM oder Redhat Mailserver betreibt müssen die ja pro Minute ein relativ hohes Volumen schaffen.
1000 Mails pro Minute wären z.B. für Postfix kein Problem?
1.000 msg/min macht Postfix im Vorbeigehen. Im Detail müsstest Du mal definieren mal was da getan werden muss. Nur Annehmen? Nur Senden? Viren-Filtern? Spam-Filtern?
p@rick
Habe ich die Tage entdeckt. Wie brauchbar die Daten sind, kann ich aber nicht sagen: http://www.mailradar.com/mailstat/mta/?mid=4
Danke für den Link.
http://www.mailradar.com/mailstat/countries/Germany.html
In Deutschland ist Postfix mit 35% ja wirklich gut dabei :) Ich habe immer gedacht das Sendmail immer noch am meisten verbreitet ist.
Bei OpenSource sind ansonsten die Zahlen natürlich immer schwer einzuschätzen.
Chris _______________________________________________ postfix-users mailing list postfix-users@de.postfix.org http://de.postfix.org/cgi-bin/mailman/listinfo/postfix-users
Am 9. Juni 2010 10:22 schrieb Patrick Ben Koetter p@state-of-mind.de:
1.000 msg/min macht Postfix im Vorbeigehen. Im Detail müsstest Du mal definieren mal was da getan werden muss. Nur Annehmen? Nur Senden? Viren-Filtern? Spam-Filtern?
Annehmen durch Amavis (spamassassin, pyzor, clamav) und dann z.B. an einen anderen Server (Mailbox Server) weitergeben.
Mir ist aufgefallen wenn man z.B. von einer Mailinglist wie die LKML mal 30-40 Mails auf einmal reinkommen das dann die Systemload unter Linux schon ganz ordentlich hochgeht... Wenn ich mir dann vorstelle das da 1000 Mails gleichzeitig reinkommen müsste es doch theoretisch einen Stau geben? Wie verhält sich dann amavis?
Wieviel Mails (SMTP Connections) kann Postfix standardmäßig überhaupt gleichzeitig bewältigen?
Auf eurer Webseite unter http://postfix.state-of-mind.de/patrick.koetter/amavisd-new/#basiskonfigurat... wird maxproc erwähnt. Allerdings habt ihr unter amavisfeed unix gar keinen -o maxproc Wert konfiguriert... ist der default Wert von 2 nicht etwas gering? Wenn mal 100 Mails gleichzeitig reinkommen und amavis vorübergehend keine Mails annimmt und der Absender einen Fehler bekommt ist das natürlich nicht so schön.
Chris
* Christopher Stolzenberg xchris89x@googlemail.com:
Wieviel Mails (SMTP Connections) kann Postfix standardmäßig überhaupt gleichzeitig bewältigen?
200
Auf eurer Webseite unter http://postfix.state-of-mind.de/patrick.koetter/amavisd-new/#basiskonfigurat... wird maxproc erwähnt. Allerdings habt ihr unter amavisfeed unix gar keinen -o maxproc Wert konfiguriert... ist der default Wert von 2 nicht etwas gering?
Der default ist 200. Nicht 2.
Wenn mal 100 Mails gleichzeitig reinkommen und amavis vorübergehend keine Mails annimmt und der Absender einen Fehler bekommt ist das natürlich nicht so schön.
Der kriegt ja keinen Fehler bei einer kurzen temp. Verzögerung.
* Christopher Stolzenberg postfix-users@de.postfix.org:
Am 9. Juni 2010 10:22 schrieb Patrick Ben Koetter p@state-of-mind.de:
1.000 msg/min macht Postfix im Vorbeigehen. Im Detail müsstest Du mal definieren mal was da getan werden muss. Nur Annehmen? Nur Senden? Viren-Filtern? Spam-Filtern?
Annehmen durch Amavis (spamassassin, pyzor, clamav) und dann z.B. an einen anderen Server (Mailbox Server) weitergeben.
Mir ist aufgefallen wenn man z.B. von einer Mailinglist wie die LKML mal 30-40 Mails auf einmal reinkommen das dann die Systemload unter Linux schon ganz ordentlich hochgeht... Wenn ich mir dann vorstelle das da 1000 Mails gleichzeitig reinkommen müsste es doch theoretisch einen Stau geben? Wie verhält sich dann amavis?
Generell gilt: Amavis sollte nie mehr Postfix mail clients sehen, als Postfix selbst mail annehmen kann.
Wenn Du 1.000 gleichzeitige Mails bearbeiten willst, mußt Du das mit LoadBalancer verteilen. 1.000 Nachrichten pro Minute sind im Schnitt 16.666 Nachrichten pro Sekunde. Das sollte ein handelsüblicher Server locker (!) abkönnen.
Deine Bottlenecks in diesem Fall ist die I/O Deines Systems und die amavis-Aufgaben, besonders alle netzbasierten Prüfungen wie DNSBL und pyzor, weil Du da mit Sicherheit in Latenzen auf DNS-Serverseite reinrennst.
Das kann man mit lokalen Caches eine Weile abfangen, dann muss man den Service irgendwann zahlen und schlussendlich stellt man sich eine Kopie der DNSBL in die DMZ.
Um Deine Frage mit amavis zu beantworten: amavis hängt hinter Postfix. Postfix gibt einen 4xx Fehler raus und schickt den Client weg, wenn keine amavis-Verbindungen frei sind.
Wieviel Mails (SMTP Connections) kann Postfix standardmäßig überhaupt gleichzeitig bewältigen?
Auf eurer Webseite unter http://postfix.state-of-mind.de/patrick.koetter/amavisd-new/#basiskonfigurat... wird maxproc erwähnt. Allerdings habt ihr unter amavisfeed unix gar keinen -o maxproc Wert konfiguriert... ist der default Wert von 2 nicht etwas gering? Wenn mal 100 Mails gleichzeitig reinkommen und amavis vorübergehend keine Mails annimmt und der Absender einen Fehler bekommt ist das natürlich nicht so schön.
Der default von 2 ist für Privatuser in der Regel völlig ausreichend. Auf Produktionssystemen bei Kunden haben wir oft 60 Prozesse und mehr am Start. Die sind nicht aus der Luft gegriffen, sondern das Resultat von errechneten Lastszenarien und Test mit Lastgeneratoren für die jeweiligen Lastszenarien.
Wer selber testen will kann die Postfix-Tools smtp-sink und smtp-source, sowie postal und mstone hernehmen.
p@rick
* Patrick Ben Koetter p@state-of-mind.de:
Der default von 2 ist für Privatuser in der Regel völlig ausreichend. Auf Produktionssystemen bei Kunden haben wir oft 60 Prozesse und mehr am Start. Die sind nicht aus der Luft gegriffen, sondern das Resultat von errechneten Lastszenarien und Test mit Lastgeneratoren für die jeweiligen Lastszenarien.
Ich habe hier auf dem Eingangsserver: | |-10*[smtp] | |-40*[smtpd]
und auf dem Ausgangsserver: | |-14*[smtp] | |-27*[smtpd]
Bei ca. 30.000 Adressen.
* Ralf Hildebrandt Ralf.Hildebrandt@charite.de:
- Patrick Ben Koetter p@state-of-mind.de:
Der default von 2 ist für Privatuser in der Regel völlig ausreichend. Auf Produktionssystemen bei Kunden haben wir oft 60 Prozesse und mehr am Start. Die sind nicht aus der Luft gegriffen, sondern das Resultat von errechneten Lastszenarien und Test mit Lastgeneratoren für die jeweiligen Lastszenarien.
Ich habe hier auf dem Eingangsserver: | |-10*[smtp] | |-40*[smtpd]
80 messages/minute
und auf dem Ausgangsserver: | |-14*[smtp] | |-27*[smtpd]
50 messages/minute
Am 10. Juni 2010 13:36 schrieb Patrick Ben Koetter p@state-of-mind.de:
Generell gilt: Amavis sollte nie mehr Postfix mail clients sehen, als Postfix selbst mail annehmen kann.
Wenn Du 1.000 gleichzeitige Mails bearbeiten willst, mußt Du das mit LoadBalancer verteilen. 1.000 Nachrichten pro Minute sind im Schnitt 16.666 Nachrichten pro Sekunde. Das sollte ein handelsüblicher Server locker (!) abkönnen.
Das ist schon mal gut zu wissen.
Deine Bottlenecks in diesem Fall ist die I/O Deines Systems und die amavis-Aufgaben, besonders alle netzbasierten Prüfungen wie DNSBL und pyzor, weil Du da mit Sicherheit in Latenzen auf DNS-Serverseite reinrennst.
Das kann man mit lokalen Caches eine Weile abfangen, dann muss man den Service irgendwann zahlen und schlussendlich stellt man sich eine Kopie der DNSBL in die DMZ.
Eine Kopie der DNSBL ist auf jeden Fall eine gute Idee.
Um Deine Frage mit amavis zu beantworten: amavis hängt hinter Postfix. Postfix gibt einen 4xx Fehler raus und schickt den Client weg, wenn keine amavis-Verbindungen frei sind.
So gesehen muss man Amavis in der master.cf auf smtp inet abstimmen?
Der default von 2 ist für Privatuser in der Regel völlig ausreichend. Auf Produktionssystemen bei Kunden haben wir oft 60 Prozesse und mehr am Start. Die sind nicht aus der Luft gegriffen, sondern das Resultat von errechneten Lastszenarien und Test mit Lastgeneratoren für die jeweiligen Lastszenarien.
Also definiert maxproc in der master.cf wieviel gleichzeitige Verbindungen Postfix / Amavis erlaubt?
Wie oben schon angedeuted müsste man also beides aufeinander abstimmen?
z.B.
# service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ================================================== smtp inet n - - - 60 smtpd
weiter unten:
amavisfeed unix - - n - 60 lmtp
So müsste das dann aussehen? Wenn man bei smtp inet n nichts definiert hat akzeptiert Postfix Standard 100 oder 200 gleichzeitig?
Wenn man dann bei amavis allerdings unten nur 2 angegeben hat wäre das ja so gesehen ein Problem wenn wirklich mal zu viele gleichzeitig reinkommen.
Also stimmt man den Wert von smpt inet n und amavisfeed aufeinander ab?
Chris
* Christopher Stolzenberg postfix-users@de.postfix.org:
Das kann man mit lokalen Caches eine Weile abfangen, dann muss man den Service irgendwann zahlen und schlussendlich stellt man sich eine Kopie der DNSBL in die DMZ.
Eine Kopie der DNSBL ist auf jeden Fall eine gute Idee.
Nur wenn die Latenzen zu hoch sind oder wenn Du mit den Query nicht die IP des Query preisgeben darfst... ;)
Um Deine Frage mit amavis zu beantworten: amavis hängt hinter Postfix. Postfix gibt einen 4xx Fehler raus und schickt den Client weg, wenn keine amavis-Verbindungen frei sind.
So gesehen muss man Amavis in der master.cf auf smtp inet abstimmen?
Ja und auch in der amavisd.conf.
Teste wieviele amavis-Prozesse der Server gut leisten kann. Stelle die ein. Stelle den Transport zu amavis (amavisfeed) in der master.cf darauf ab.
Wenn du post-queue Filter machst, dann lass den smtpd in der master.cf wie er war.
Wenn Du pre-queue Filter machst, dann stimme die Anzahl der smtpd-Prozesse auf die Anzahl der amavisd-Prozesse ab.
Der default von 2 ist für Privatuser in der Regel völlig ausreichend. Auf Produktionssystemen bei Kunden haben wir oft 60 Prozesse und mehr am Start. Die sind nicht aus der Luft gegriffen, sondern das Resultat von errechneten Lastszenarien und Test mit Lastgeneratoren für die jeweiligen Lastszenarien.
Also definiert maxproc in der master.cf wieviel gleichzeitige Verbindungen Postfix / Amavis erlaubt?
Wie oben schon angedeuted müsste man also beides aufeinander abstimmen?
Ja, oben habe ich die Vorgehensweise beschrieben.
# service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ================================================== smtp inet n - - - 60 smtpd
weiter unten:
amavisfeed unix - - n - 60 lmtp
So müsste das dann aussehen? Wenn man bei smtp inet n nichts definiert hat akzeptiert Postfix Standard 100 oder 200 gleichzeitig?
Ja, dann gelten die Standardwerte "-".
Wenn man dann bei amavis allerdings unten nur 2 angegeben hat wäre das ja so gesehen ein Problem wenn wirklich mal zu viele gleichzeitig reinkommen.
Also stimmt man den Wert von smpt inet n und amavisfeed aufeinander ab?
Im Pre-Queue Filtern ja. Im Post-Queue Filtern nein.
p@rick
Am 10. Juni 2010 16:03 schrieb Patrick Ben Koetter p@state-of-mind.de:
So gesehen muss man Amavis in der master.cf auf smtp inet abstimmen?
Ja und auch in der amavisd.conf.
Damit der amavis daemon praktisch auch so viele Verbindungen akzeptiert? Wenn man also überall 60 einstellt muss man in der amavisd.conf auch 60 einstellen damit man auf Port 10024 60 Connections gleichzeitig aufmachen kann?
Bei Debian sind die configs unter /etc/amavis/conf.d In Welcher Datei muss man dann da die 60 definieren?
Wenn du post-queue Filter machst, dann lass den smtpd in der master.cf wie er war.
Wenn Du pre-queue Filter machst, dann stimme die Anzahl der smtpd-Prozesse auf die Anzahl der amavisd-Prozesse ab.
In dem HowTo auf eurer Website ist dann also die pre-queue Variante beschrieben?
Weil ja erst die Mail von Postfix angenommen wird, dann zu Amavis per lmtp geht und dann wieder zurück zu Postfix?
Die post-queue Variante wäre dann ohne amavisfeed und ohne lmtp?
smtp inet n - n - 16 smtpd -o smtpd_proxy_filter=127.0.0.1:10024 -o smtpd_client_connection_count_limit=10 -o smtpd_authorized_xforward_hosts=127.0.0.0/8 -o smtpd_authorized_xclient_hosts=127.0.0.0/8
-o smtpd_client_connection_count_limit=10
Muss man die 10 Connections dann auch in der amavisd.conf festlegen in dem Post-queue Szenario?
thx
Chris
Hallo Chris,
Am Donnerstag, 10. Juni 2010 schrieb Christopher Stolzenberg:
Bei Debian sind die configs unter /etc/amavis/conf.d In Welcher Datei muss man dann da die 60 definieren?
natürlich in der 50-user, die wird als einzige bei Updates garantiert nicht überschrieben.
Gruß, Gregor
Am 10. Juni 2010 17:29 schrieb Gregor Hermens gregor.hermens@a-mazing.de:
natürlich in der 50-user, die wird als einzige bei Updates garantiert nicht überschrieben.
thx.
/etc/amavis/conf.d/50-user $max_servers=100;
/etc/postfix/master.cf
smtp inet n - - - 100 smtpd amavisfeed unix - - n - 100 lmtp
So müsste das dann alles passen.
Ich sehe gerade, sobald man amavis neustartet mit max_servers 100 macht er tatsächlich schon 100 Prozesse auf... kann man das so einstellen, dass die Prozesse auf dem System auch nur dann aufgemacht werden wenn diese tatsächlich benötigt werden?
Noch´n kleines Update:
Wenn man als Spaß mal 5000 max_servers eingibt schafft man es die Kiste zum Stillstand zu bringen :D
ccr-gw-xw-04:~# uptime 17:50:01 up 2 days, 19:53, 4 users, load average: 253.32, 148.36, 65.01
Die load ist so brutal das man sich nicht mal mehr lokal an der Konsole einloggen kann :D login timed out :D
Chris
Am 10. Juni 2010 16:03 schrieb Patrick Ben Koetter p@state-of-mind.de:
So gesehen muss man Amavis in der master.cf auf smtp inet abstimmen?
Ja und auch in der amavisd.conf.
Ich habe nochmal bei Google geschaut.
Du meinst sicherlich $max_servers in der amavisd.conf?
Das ist total strange... in Debian finde ich nirgendswo max_servers???
Der Default Wert von max_servers scheint 2 zu sein? Wenn ich per telnet localhost 10024 mehr als 2 Verbindungen aufmache kommt nichts mehr.
Jetzt weiss ich nur leider nicht wo ich bei Debian max_servers definieren soll...
Chris
* Christopher Stolzenberg postfix-users@de.postfix.org:
Ich habe nochmal bei Google geschaut.
Du meinst sicherlich $max_servers in der amavisd.conf?
Das ist total strange... in Debian finde ich nirgendswo max_servers???
Du gehst anscheinend davon aus, dass die in /etc/amavis/conf.d/* gelisteten Parameter die einzigen Parameter in amavisd-new seien. Das Gegenteil ist der Fall - sie stellen nur einen Bruchteil der konfigurierbaren Parameter dar. Sieh Dir, wenn Du viel Zeit hast..., einfach mal den hash %EXPORT_TAGS mit dynamic_confvars und confvars an. Das kann man alles konfigurieren (wenn man Mark Martinec heißt und die Doku dazu im Kopf hat...). *SCNR*
Anyway, den Parameter $max_servers gibt es. Du findest ihn in im Programm amavisd-new:
p@mail:~$ grep '$max_servers' /usr/sbin/amavisd-new $max_servers $max_requests $max_servers = 2; # number of pre-forked children my($log_level_override, $max_servers_override); $max_servers_override = untaint($val); max_servers => defined $max_servers_override ? $max_servers_override : $max_servers, # number of pre-forked children
Der Default Wert von max_servers scheint 2 zu sein? Wenn ich per
Ja, siehe output von grep oben.
telnet localhost 10024 mehr als 2 Verbindungen aufmache kommt nichts mehr.
Jetzt weiss ich nur leider nicht wo ich bei Debian max_servers definieren soll...
Schreibe alle Deine (!) Settings in /etc/amavis/conf.d/50-user. Die Dateien in /etc/amavis/conf.d/ werden aufsteigend geladen. Wiederholt sich ein Parameter, überschreibt er den Wert des vorherigen Vorkommens. Die 50-user ist die zuletzt geladene und wird nicht überschrieben.
p@rick
Am 10. Juni 2010 21:56 schrieb Patrick Ben Koetter p@state-of-mind.de:
Du gehst anscheinend davon aus, dass die in /etc/amavis/conf.d/* gelisteten Parameter die einzigen Parameter in amavisd-new seien. Das Gegenteil ist der Fall - sie stellen nur einen Bruchteil der konfigurierbaren Parameter dar. Sieh Dir, wenn Du viel Zeit hast..., einfach mal den hash %EXPORT_TAGS mit dynamic_confvars und confvars an. Das kann man alles konfigurieren (wenn man Mark Martinec heißt und die Doku dazu im Kopf hat...). *SCNR*
Danke das werde ich mir mal anschauen.
Anyway, den Parameter $max_servers gibt es. Du findest ihn in im Programm amavisd-new:
Ist schon gesetzt und auf maxproc abgestimmt und läuft super. Amavis kann jetzt bis zu 100 gleichzeitige Verbindungen annehmen und damit sollte man so schnell nicht an´s Limit kommen.
Schreibe alle Deine (!) Settings in /etc/amavis/conf.d/50-user. Die Dateien in /etc/amavis/conf.d/ werden aufsteigend geladen. Wiederholt sich ein Parameter, überschreibt er den Wert des vorherigen Vorkommens. Die 50-user ist die zuletzt geladene und wird nicht überschrieben.
Okay alle von mir individuell gesetzten Settings stehen ab jetzt in 50-user.
Danke für die vielen Hinweise hier in der Mailinglist. Das hat mir insgesamt sehr weitergeholfen.
Selbst von kommerziellen Firmen und Support Mitarbeitern die dafür bezahlt werden kriegt man nicht so einen guten Support wie hier :)
Open Source rockt einfach.
thx
Chris
On Behalf Of Christopher Stolzenberg
Ist schon gesetzt und auf maxproc abgestimmt und läuft super. Amavis kann jetzt bis zu 100 gleichzeitige Verbindungen annehmen und damit sollte man so schnell nicht an´s Limit kommen.
Hier sind deine Limits Ramspeicher und Platten IO. Sollte also eine Fette Maschine sein mit ordentlich Ram und sehr schnellen Platten.
Jeder Amavis zieht Speicher ca. 30 - 50 MB je nach Regeln die eingebunden sind. Solltest bei 100 gleichzeitigen also auch entsprechend Ram haben, ansonsten fängt die Maschine an zu swappen und dann bringen die 100 auch nix mehr.
Das Tempverzeichnis (100 X max Mailgröße/2 oder 3 sollte reichen) in den Ramspeicher legen das spart Plattenzugriffe ohne Ende und beschleunigt Amavis um ein vielfaches. Für die Größe gibt es irgendwo eine Berechnungsformel ich hab se vergessen.
Mit freundlichen Grüßen
Drießen
Am 11. Juni 2010 13:24 schrieb Uwe Driessen driessen@fblan.de:
Hier sind deine Limits Ramspeicher und Platten IO. Sollte also eine Fette Maschine sein mit ordentlich Ram und sehr schnellen Platten.
Jeder Amavis zieht Speicher ca. 30 - 50 MB je nach Regeln die eingebunden sind. Solltest bei 100 gleichzeitigen also auch entsprechend Ram haben, ansonsten fängt die Maschine an zu swappen und dann bringen die 100 auch nix mehr.
Das Tempverzeichnis (100 X max Mailgröße/2 oder 3 sollte reichen) in den Ramspeicher legen das spart Plattenzugriffe ohne Ende und beschleunigt Amavis um ein vielfaches. Für die Größe gibt es irgendwo eine Berechnungsformel ich hab se vergessen.
Geht klar. In dem Fall ist es ein Dell PowerEdge mit 2x Intel Xeon E5440 und 16 GB Memory. HDD´s sind 2x SAS Raid1.
Ich denke das sollte reichen? Swap ist komplett leer selbst mit 100 laufenden Amavis Prozessen.
Wenn der Server nächste Woche produktiv eingesetzt werd, werde ich die load auf jeden Fall beobachten.
Chris
* Christopher Stolzenberg postfix-users@de.postfix.org:
Am 11. Juni 2010 13:24 schrieb Uwe Driessen driessen@fblan.de:
Hier sind deine Limits Ramspeicher und Platten IO. Sollte also eine Fette Maschine sein mit ordentlich Ram und sehr schnellen Platten.
Jeder Amavis zieht Speicher ca. 30 - 50 MB je nach Regeln die eingebunden sind. Solltest bei 100 gleichzeitigen also auch entsprechend Ram haben, ansonsten fängt die Maschine an zu swappen und dann bringen die 100 auch nix mehr.
Das Tempverzeichnis (100 X max Mailgröße/2 oder 3 sollte reichen) in den Ramspeicher legen das spart Plattenzugriffe ohne Ende und beschleunigt Amavis um ein vielfaches. Für die Größe gibt es irgendwo eine Berechnungsformel ich hab se vergessen.
Geht klar. In dem Fall ist es ein Dell PowerEdge mit 2x Intel Xeon E5440 und 16 GB Memory. HDD´s sind 2x SAS Raid1.
Ich denke das sollte reichen? Swap ist komplett leer selbst mit 100 laufenden Amavis Prozessen.
Wenn der Server nächste Woche produktiv eingesetzt werd, werde ich die load auf jeden Fall beobachten.
GGf. solltest Du in Verbindung mit Spamassassin auch nach jedem Pattern-Update das Kommando sa-compile ausführen. Das tut der CPU-Last auch richtig gut. ;)
p@rick
Das Tempverzeichnis (100 X max Mailgröße/2 oder 3 sollte reichen) in den Ramspeicher legen das spart Plattenzugriffe ohne Ende und beschleunigt Amavis um ein vielfaches. Für die Größe gibt es irgendwo eine Berechnungsformel ich hab se vergessen.
Mailanzahl x Mailgröße x Auspackfaktor = Gesamtvolumen
Ist aber recht unwahrscheinlich dass z.B. 100 Mails mit der maximal möglichen Mailgröße gleichzeitig reinflattern. Die Hälfte reicht meiner Meinung nach auch aus. Und falls mal nicht, gibt es einen 4xx-Fehler.
mfg Patrick
Am 11. Juni 2010 15:35 schrieb Patrick Schroth patrick.schroth@transmit.de:
Ist aber recht unwahrscheinlich dass z.B. 100 Mails mit der maximal möglichen Mailgröße gleichzeitig reinflattern. Die Hälfte reicht meiner Meinung nach auch aus. Und falls mal nicht, gibt es einen 4xx-Fehler.
Kriegt der Absender den 4xx Fehler?
Normal sollte Postfix doch wenn gerade keine Connection zu Amavis available ist die Mail auf "deferred" setzen und es dann nochmal ohne den Absender zu benachrichtigen versuchen?
Chris
Hallo Chris,
Am Freitag, 11. Juni 2010 schrieb Christopher Stolzenberg:
Am 11. Juni 2010 15:35 schrieb Patrick Schroth
Ist aber recht unwahrscheinlich dass z.B. 100 Mails mit der maximal möglichen Mailgröße gleichzeitig reinflattern. Die Hälfte reicht meiner Meinung nach auch aus. Und falls mal nicht, gibt es einen 4xx-Fehler.
Kriegt der Absender den 4xx Fehler?
Normal sollte Postfix doch wenn gerade keine Connection zu Amavis available ist die Mail auf "deferred" setzen und es dann nochmal ohne den Absender zu benachrichtigen versuchen?
bei Pre-Queue bekommt der Absender einen 4xx, bei Post-Queue bleibt die Mail in der ersten Postfix-Queue.
Bei deiner hohen Anzahl an Amavis-Prozessen wäre ich jetzt von einem Pre- Queue-Setup ausgegangen?
Gruß, Gregor
Am 11. Juni 2010 17:19 schrieb Gregor Hermens gregor.hermens@a-mazing.de:
Hallo Chris,
bei Pre-Queue bekommt der Absender einen 4xx, bei Post-Queue bleibt die Mail in der ersten Postfix-Queue.
Bei deiner hohen Anzahl an Amavis-Prozessen wäre ich jetzt von einem Pre- Queue-Setup ausgegangen?
Worin liegt denn genau der Unterschied zwischen Post- und Prequeue? Bei der einen Variante nimmt Postfix erstmal die Mails normal an und gibt sie an amavis weiter? Bei der anderen Variante macht man es per smtpd_proxy_filter?
Chris
* Christopher Stolzenberg xchris89x@googlemail.com:
Am 11. Juni 2010 17:19 schrieb Gregor Hermens gregor.hermens@a-mazing.de:
Hallo Chris,
bei Pre-Queue bekommt der Absender einen 4xx, bei Post-Queue bleibt die Mail in der ersten Postfix-Queue.
Bei deiner hohen Anzahl an Amavis-Prozessen wäre ich jetzt von einem Pre- Queue-Setup ausgegangen?
Worin liegt denn genau der Unterschied zwischen Post- und Prequeue?
post queue: sofort annehmen, später scannen pre queue: nicht sofort annehmen, sofort scannen, wenn sauber annehmen
Am Freitag, 11. Juni 2010 schrieb Ralf Hildebrandt:
- Christopher Stolzenberg xchris89x@googlemail.com:
Am 11. Juni 2010 17:19 schrieb Gregor Hermens <gregor.hermens@a-
mazing.de>:
Hallo Chris,
bei Pre-Queue bekommt der Absender einen 4xx, bei Post-Queue bleibt die Mail in der ersten Postfix-Queue.
Bei deiner hohen Anzahl an Amavis-Prozessen wäre ich jetzt von einem Pre- Queue-Setup ausgegangen?
Worin liegt denn genau der Unterschied zwischen Post- und Prequeue?
post queue: sofort annehmen, später scannen pre queue: nicht sofort annehmen, sofort scannen, wenn sauber annehmen
... wobei du nur mit pre-queue die mail sauber durch Amavis ablehnen lassen kannst (REJECT). Post-queue hat Postfix die Mail ja schon akzeptiert, d.h. du beschränkst dich aufs Taggen oder erzeugst Bounces und damit potentiell Backscatter.
Gruß, Gregor
* Christopher Stolzenberg postfix-users@de.postfix.org:
Am 9. Juni 2010 10:22 schrieb Patrick Ben Koetter p@state-of-mind.de:
1.000 msg/min macht Postfix im Vorbeigehen. Im Detail müsstest Du mal definieren mal was da getan werden muss. Nur Annehmen? Nur Senden? Viren-Filtern? Spam-Filtern?
Annehmen durch Amavis (spamassassin, pyzor, clamav) und dann z.B. an einen anderen Server (Mailbox Server) weitergeben.
Mir ist aufgefallen wenn man z.B. von einer Mailinglist wie die LKML mal 30-40 Mails auf einmal reinkommen das dann die Systemload unter Linux schon ganz ordentlich hochgeht... Wenn ich mir dann vorstelle
Das habe ich vorher ausgelassen: Du sagst "ganz ordentlich hochgeht...". Was konkret ist denn "ordentlich" und wie wirkt sich das aus? Wenn der Load bei 1 und mehr ist, heißt das oft ja einfach nur, das der Server endlich mal was für sein Geld tut... ;)
p@rick
Am 10. Juni 2010 13:48 schrieb Patrick Ben Koetter p@state-of-mind.de:
Das habe ich vorher ausgelassen: Du sagst "ganz ordentlich hochgeht...". Was konkret ist denn "ordentlich" und wie wirkt sich das aus? Wenn der Load bei 1 und mehr ist, heißt das oft ja einfach nur, das der Server endlich mal was für sein Geld tut... ;)
Joa in dem Moment hat man ganz kurzfristig mal eine Load von 2-3.
Chris
* Christopher Stolzenberg postfix-users@de.postfix.org:
Am 10. Juni 2010 13:48 schrieb Patrick Ben Koetter p@state-of-mind.de:
Das habe ich vorher ausgelassen: Du sagst "ganz ordentlich hochgeht...". Was konkret ist denn "ordentlich" und wie wirkt sich das aus? Wenn der Load bei 1 und mehr ist, heißt das oft ja einfach nur, das der Server endlich mal was für sein Geld tut... ;)
Joa in dem Moment hat man ganz kurzfristig mal eine Load von 2-3.
Das ist in Ordnung, wenn das System den Betrieb im erwartenden/benötigtem Rahmen aufrecht erhält.
Load ist okay. Dafür sind die Dinger da. Die Servicequalität muss stimmen...
p@rick
participants (6)
-
Christopher Stolzenberg
-
Gregor Hermens
-
Patrick Ben Koetter
-
Patrick Schroth
-
Ralf Hildebrandt
-
Uwe Driessen