# Spam-Policies von ISPC. anpassen (Amavis/Spamassassin)



## fheft (11. Nov. 2009)

Hallo,

ich habe einen Server mit einer vom Anbieter vorinstallierten ISPConfig3-Installation (Debian5, minimal konfiguriert [im Bezug auf eine sichere Standard-ISPconfig-Installation mit den verwendeten Diensten]).
Leider bin ich bisher mit dem Spamfilter noch absolut nicht zufrieden, bin da von meinem früheren (von Hand konfigurierten) System besseres gewohnt. Momentane Filterquote liegt bei vllt 70%.

Habe da mal recherchiert. Spam-Mails, die im Postfach landen, werden nämlich z.B. so geflaggt:


> X-Spam-Score: 3.601
> X-Spam-Level: ***
> X-Spam-Status: No, score=3.601 tagged_above=-100 required=6
> tests=[BAYES_99=3.5, RDNS_NONE=0.1, STOX_REPLY_TYPE=0.001]


Also werden de facto *nur sehr wenige Filter verwendet*, v.a. der BAYES-Filter (der auch zuverlässig funktioniert und ausreichend trainiert ist), der in dem Fall alleine aber nicht ausreicht.

Wenn ich über die Kommandozeile *dieselbe Mail von Hand mit Spamassassin überprüfe*, ergibt sich da ein *deutlich besseres Bild*:


> # su vmail -c "spamassassin -D <  MAILDATEI"
> [...]
> Inhaltsanalyse im Detail:   (13.7 Punkte, 5.0 benötigt)
> 
> ...


Die Mail würde nach diesem Scan also als Spam erkannt, da deutlich mehr Filter verwendet wurden.

Meine Frage nun: *Wie kann ich Spamassassin dazu bringen, auch die "normal" eintreffenden Mails (via Postfix/Amavis) auf diese Weise zu filtern?* Offensichtlich überschreibt ISPConfig mit seinen Filterpolicies (die ja pro Mailaccount aus einer MySQL-Table gelesen werden) die Einstellungen, wodurch nur bestimmte Mailfilter verwendet werden:


			
				Zitat von /etc/amavis/conf.d/50-user:
			
		

> $sql_select_policy =
> 'SELECT *,spamfilter_users.id'.
> ' FROM spamfilter_users LEFT JOIN spamfilter_policy ON spamfilter_users.policy_id=spamfilter_policy.id'.
> ' WHERE spamfilter_users.email IN (%k) ORDER BY spamfilter_users.priority DESC';


Darüber kann ich ja nur so Sachen wie "Spam_Lover" etc. an- oder abschalten (natürlich alles auf "no"). Aber irgendwo muss ja definiert sein, *welche Filter für "spam_lover: no" verwendet werden*. Genau diese Policies möchte ich anpassen, dass zusätzlich noch weitere Filter genutzt werden.

Habe jetzt auch schon testweise zusätzliche Filter (z.B. NIx-Spam) installiert, die bei der manuellen Filterung korrekt verwendet werden, im normalen Betrieb aber ebenso nicht zum Zuge kommen.


Schöne Grüße und danke schonmal, 
Florian H.

PS: Google-Suche war absolut erfolglos und auch eine ganz pauschale (verzweifelte) in-Dateiensuche nach "spam_lover" hat für mich nicht zum Erfolg geführt.
Edit/PPS: Natürlich möchte ich weiterhin für bestimmte Mailaccounts z.B. keinen Spamfilter aktiv haben. Also ein pauschales rauskicken der MySQL-Queries mit den dynamischen Policies ist nicht ganz die beste Lösung ...


----------



## Till (12. Nov. 2009)

> Also werden de facto *nur sehr wenige Filter verwendet*


das ist falsch. Es werden immer alle Filter verwendet. Dort sind nur die filter gelistet, die einen Ausschlag auf den Score gegeben haben.



> Aber irgendwo muss ja definiert sein, *welche Filter für "spam_lover: no" verwendet werden*. Genau diese Policies möchte ich anpassen, dass zusätzlich noch weitere Filter genutzt werden.


Erstens sind das keine Regeln von ispconfig sondern die van amavisd, siehe amavisd Doku mit sql Anbindung und zweitens werden alle Regeln angewendet. Spamlover deaktiviert den kompletten spamfilter und nicht nur einige Regeln.

Das was Du da manuell ausgeführt hats ist ja auch etwas anderes als das, was amavisd macht. Amavisd ruft nicht mnuell den spamassassin auf, es läd selbst die spamassassin librarys als Teil des amavis daemon. Für Details solltest Du also mal in die amavisd Doku sehen.


----------



## fheft (12. Nov. 2009)

Danke erstmal für deine Antwort!



Zitat von Till:


> das ist falsch. Es werden immer alle Filter verwendet. Dort sind nur die filter gelistet, die einen Ausschlag auf den Score gegeben haben.


Nungut, dann formuliere ich die Frage um: Wie kann ich das System dazu bewegen, dass alle Filter einen Ausschlag auf den Score geben (wenn sie einen Grund dazu haben), so wie sie es beim manuellen Aufruf von SA machen?



Zitat von Till:


> Erstens sind das keine Regeln von ispconfig sondern die van amavisd, siehe amavisd Doku mit sql Anbindung und zweitens werden alle Regeln angewendet. Spamlover deaktiviert den kompletten spamfilter und nicht nur einige Regeln.


Ersteres habe ich ja nie behauptet, und zu letzterem: Wieso reagieren dann all diese Filter nicht? Oder besser: wie kriege ich sie dazu, sich bei Amavis genauso zu verhalten, wie wenn ich SA manuell aufrufe?
Ich habe zig Spammail-Header durchgeschaut, und überall dieses wirklich magere Ergebnis ...

Dokus habe ich natürlich auch schon gewälzt, aber ich hatte gehofft, jemand weiß das und ist bereit mir das zu sagen - und erspart mir weitere ellenlange Texte, die sich dann doch als nutzlos herausstellen für mein Problem ...


----------



## Till (13. Nov. 2009)

Sie mal in der amavisd Konfigurationsdatei und den entsprechenden Includes nach, ob da das hier drin steht:

$sa_local_tests_only = 0;    # only tests which do not require internet access?

Nur wenn das auf 0 steht werden auch netzwerk-Tests durchgeführt.


----------



## fheft (14. Nov. 2009)

Es steht "leider" auf 0 (ist auch nur in der _20-debian_defaults_ Datei definiert).

Es überrascht mich ja schon, dass ich offenbar der Einzige mit dem Problem bin...


----------



## Burge (14. Nov. 2009)

was mich ein bissel verwirrt wenn es auch nicht genau in den thread passt. Ich lass mails per getmail abholen und die dann auf spam testen und leite die dann per rules weiter.

Aber diese 


> X-Spam-Score: 3.601
> X-Spam-Level: ***
> X-Spam-Status: No, score=3.601 tagged_above=-100 required=6
> tests=[BAYES_99=3.5, RDNS_NONE=0.1, STOX_REPLY_TYPE=0.001]


Einträge hab ich nicht drin. Er setzt den Betreff in der Subjectzeile so wie das im Spamlevel einstelle aber die infos stehen dazu nicht drin.
Hab aber auch keine stellung gefunden die das explziert ab oder anstellt.


----------

