Spamassassin per amavisd-new anbinden

Rakor

Administrator
Teammitglied
Hallo zusammen,

nachdem ich nun fast einen Tag daran verzweifle wollte ich mal hier nach Rat fragen...

Also ich habe einen Mailserver aufgesetzt der per OpenSMTPd Mails empfangen und senden kann. Per Dovecot wird das Maildir der User per IMAP zur Verfügung gestellt. OpenSMTPd übergibt per lmtp die Mails an Doevecot welcher sie dann in das Postfach legt. Kommunikation zwischen diesen beiden Diensten funktioniser wunderbar über unix-sockets (was mich sehr erfreut).

Soweit funktioniert alles wunderbar und Problemlos....

Nun wollte ich gerne noch eine automatische Spamfilterung installieren und damit beginnt die Tragödie.

Ich habe mich für Spamassassin entschieden als Filterwerkzeug. Da OpenSMTPd den SA nicht automatisch zur Filterung verwenden kann muss/will ich ihn also irgendwie zwischen OpenSMTPd und Dovecot setzen. Hierzu brauche ich also wieder irgendeinen zusätzlichen Dienst. Zur Wahl standen spampd und amavisd-new. Ich habe mich für letzteren entschieden da ich dachte ich könnte hier auch unix-sockets zur Kommunikation verwenden (was bei spampd nicht geht).

Leider rannte ich hier in ein Problem was Zugriffsrechte angeht, denn der OpenSMTPd der als User _smtpd läuft darf nicht auf den Socket von amavisd-new zugreifen (was ein Mist). Nach einigem Lesen stellte ich fest, dass es Leute gibt die deswegen amavisd-new etwas angepasst haben um die Rechte des sockets anzupassen. Da ich das nicht wollte (z.B. wegen Updatefähigkeit) habe ich mich entschieden eben doch die Verbindung per TCP zu machen...

Einen langen Kampf später hat das auch funktioniert (das Problem hierbei war, dass OpenSMTPd immer als source IP die externe IP mitgegeben hat, wenngleich ich ihm sagte er solle 127.0.0.1 wählen. Das lehnte aber amavisd-new als Quelle ab).

Nach langem Hin und Her kommen nun wieder Mails im Postfach an, aber Spamassassin äußert sich dazu nicht. Ich musste razor2 deaktivieren da mir dieser immer Fehler geworfen hat. Amavisd-new behauptet, wenn ich es per debug-sa starte, ANTI-SPAM code loaded aber dennoch erfahren meine Mails keine Änderung (ausser X-Virus-Scanned: amavisd-new der mir recht egal ist, denn eigentlich wollte ich ja erst mal Spam filtern).

Ich bin nun langsam stinksauer und genervt. Hat jemand eine kleine Handhabe was ich evtl. falsch mache? Ein HowTo das für FreeBSD passt und auch funktioniert oder einfach nur Erfahrungen die er mir mitteilen könnte?

Das ganze läuft in einer Jail und hinter einer ipfw. Ich musste feststellen, dass es hier hierbei um die wohl am schlechtesten und wenigsten dokumentierten Werkzeuge handelt.

Bin um jede Hilfe dankbar, auch wenn ich nicht sicher bin ob ich meine Situation verständlich darstellen konnte.
 
Moin Rakor,

dass die Meldung "X-Virus-Scanned: amavisd-new" im Mail-Header drinsteht ist schon einmal ein gutes Zeichen.
Ich habe die eine ähnliche Konfiguration laufen - statt OpenSMTP habe ich Postfix - und die filtert Spam sehr zuverlässig. Amavisd-new ist nichts anderes als eine Vermittlungsstelle zwischen den einzelnen Contentfiltern. D.h. amavisd-new ruft Spamassisin bzw. dessen Tools zum Filter auf, die nudeln die Mail durch und und melden sich anschließend mit einem entsprechenden Return-Code wieder beim amavisd-new. Und der überarbeitet dann den Mail-Header.

Nachtrag: Zum Testen schicke doch einfachmal eine Mail an deine öffentliche Mailadresse und beobachte dabei mit tail -f /var/log/maillog. Dort sieht man sehr schön, wie die Mails gefiltert werden.
Viele Grüße
JueDan
 
Zuletzt bearbeitet:
Danke Juedan, aber mit dem maillog hab ich schon die ganze Zeit gearbeitet.... ;)

Aber heute morgen hat es mich so angekotzt, dass ich flott mal mail/spampd installiert und gestartet habe (die MTA-Durchschleusung hatte ich ja eh schon im smtpd eingestellt) und nach nicht mal 3 Minuten hatte ich eine saubere Spamfilterung am Laufen.

Ergebnis: amavisd-new ist der größte Mist der mir bisher in dieser Richtung begegnet ist und die Entwickler scheinen "Dokumentation" für eine neumodischen Schulabschluss oder evtl. auch eine italienische Nachspeisenplatte zu halten.

Nun geht es nur noch darum meine mit amavisd-new zugemüllte Mail-Jail wieder aufzuräumen.
 
Es stimmt schon, die Dokumentation ist "Sonderklasse". Zur Konfiguration wird dem freundlichen Admin ein Perl-Skript geliefert, dass sch.... äh gewöhnungsbedürftig aussieht. Das geht besser. Aber gut, Dein Problem ist gelöst und das ist die Hauptsache. :)
 
Ich möchte dazu noch was anmerken: Ohne besondere Konfiguration pack amavisd-new den von dir gefundenen Kommentar (X-Virus-Scanned) rein, meldet aber sonst nichts weiter dazu. Hast du mal versucht "eicar"[1] und GTUBE[2] durch den Scanner zu schicken? Den müßte er ja dann bemängeln bzw. zurückweisen. Bei mir läuft es in dieser Form: Postfix -> amavisd-new -> dovecot und das Einbinden von spamassassin war hier eigentlich das kleinste Problem...

[1]http://www.eicar.org/86-0-Intended-use.html
[2]http://spamassassin.apache.org/gtube/

Grüße,
errorsmith
 
Wir mussten feststellen, dass ein Problem wohl auch noch ist, dass FreeBSD es nicht erlaubt, dass die IP 127.0.0.1 in einer Jails verwendet wird und ersetzt sie automatisch durch die Jail-IP. amavisd-new lauscht standardmässig nur auf dieser loopback-ip.

Ich bin froh, dass es mit spampd problemlos funktioniert :)

Ich habe mit gtube getestet, was amavisd-new nicht erkannte.

Meine Vermutung war kurz vor Ende auch, dass evtl mein ipfw dem amavisd-new irgendwo im Wege steht, habe mich aber nicht mehr genauer damit befasst.
Ich habe auf der Kiste nur IMAP, SMTP und SMTPS offen, keine Ahnung op Spamassassin noch irgendwelche zusätzlichen Ports braucht (ausser für sa-update).

Was mich an spamassassin aber noch etwas wundert ist wie es mit spammails umgeht. Bei manchen passt es das Subject an, bei anderen nicht. Bei manchen ist der "Spambeschreibungstext" englisch, mal ist er deutsch.... Ich habe rewrite-subject (oder wie das nochmal hiess) explizit nicht gesetzt da mir das Standardverhalten mit gtube eigentlich gefiel.
 
Hm, das kann ich nicht erklären, jedenfalls nicht komplett.
Fakt ist: Er ändert das Subject normalerweise abhängig davon wie hoch der "Spamscore" ist. Das heißt, je nach "Eskalationsstufe" vermerkt er es nur im Header ODER ändert das Subject ODER verweigert die mail ganz (bzw. packt sie in einen quarantäne-Ordner). Das Deutsch-Englisch könnte eine Autmagie sein, basierend auf der Mailsprache oder ggf auch abhängig von Spracheinstellungen des Empfängers. Allerdings hatte ich sowas noch nie.

Die IP von amavisd kann man einstellen, habe ich bei mir gemacht. 127.0.0.1 geht tatäschlich nicht ohne weiteres.

GTUBE ist ansonsten mein Standardtest, aber wenn der schon nicht geht, war wohl irgendwas anderes noch im argen.

Grüße,
errorsmith
 
Moin,

die deutschsprachigen Spam-Meldungen können auch vom ISP kommen. Die werden von amavisd durchgewunken, da sie ja als Spam erkannt wurden. Das ist bei meiner Installation nicht anders. Wie Errorsmith schon geschrieben hat, lassen sich IP-Adresse und Port konfigurieren.

Grüßle
JueDan
 
Zurück
Oben