Verbesserung der Spamfilterung

#1
Hallo zusammen,
da SysCP offenbar keine Fortschritte macht und ein Serverwechsel anstand bin ich nun auf ISPConfig umgestiegen.
Leider vermisse ich eine gescheite Möglichkeit die bayes Filterung zu nutzen.
Ich hatte bei SysCP nach einiger eigener Arbeit die Möglichkeit, dass die Spam und Vieren Mails in Separate Ordner geschoben werden. Das habe ich nach einer Modifizierung der .mailfilter -Datei nun auch mit der Plus-Adressung:
Code:
#
# Autocreate maildir for plus adressing, if not existant
#

if ( "$EXTENSION" ne "" )
{
  `test -e /var/vmail/$HOST/$USER/$EXTENSION`
  if ( $RETURNCODE != 0 )
  {
    `maildirmake /var/vmail/$HOST/$USER/$EXTENSION`
    `chmod -R 0700 /var/vmail/$HOST/$USER`
  }
  DEFAULT="/var/vmail/$HOST/$USER/$EXTENSION/."
}
Ferner werden automatisch bereits die Ordner .Lern-Ham und .Leran-Spam angelegt, wo jeder Benutzer selbst Mails zum lernen reinschieben kann. Da werde ich wohl auch mein altes Script für nutzen können, welches übrigens auch immer 14 Tage alte Spam und VirenMails löscht.
Soweit so gut.
Ich weiß jetzt nur nicht wie ich es sinnvoll möglich machen kann, dass jedes Mailkonto seine eigenen Spamfiltereinstellungen haben kann.
Bei SysCO hatte ich das so:
Es gibt insbesondere eine Tabelle in der DB mit dieser Struktur:
Code:
CREATE TABLE IF NOT EXISTS `modules_sasettings_sa` (
  `username` varchar(100) NOT NULL default '',
  `preference` varchar(30) NOT NULL default '',
  `value` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`username`,`preference`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
in der local.cf von spamassassin gibt es folgende Einträge:

Code:
bayes_ignore_header Return-Path
bayes_ignore_header Received
bayes_ignore_header X-Spam-Flag
bayes_ignore_header X-Spam-Status
bayes_ignore_header X-Spam-Flag
bayes_ignore_header X-Spam-Level
bayes_ignore_header X-purgate
bayes_ignore_header X-purgate-ID
bayes_ignore_header X-purgate-Ad
bayes_ignore_header X-GMX-Antispam
bayes_ignore_header X-Resent-For
bayes_ignore_header X-Resent-By
bayes_ignore_header X-Resent-To
bayes_ignore_header Resent-To
bayes_ignore_header Sender
bayes_ignore_header Precedence
bayes_ignore_header X-Antispam
bayes_ignore_header X-Sieve
bayes_ignore_header X-Spamcount
bayes_ignore_header X-Spamsensitivity
bayes_ignore_header To
bayes_ignore_header X-Sieve
bayes_ignore_header X-WEBDE-FORWARD

bayes_min_ham_num     100
bayes_min_spam_num     200

########### Bayes-DB in MySQL-Datenbank #####################
bayes_store_module          Mail::SpamAssassin::BayesStore::SQL
bayes_sql_dsn               DBI:mysql:spamassassin:localhost:3306
bayes_sql_username          spamassassin
bayes_sql_password          XXXX
bayes_sql_override_username     vmail
#############################################################

########### Autowhitelist in MySQL-Datenbank ################
auto_whitelist_factory     Mail::SpamAssassin::SQLBasedAddrList
user_awl_dsn         DBI:mysql:spamassassin:localhost:3306
user_awl_sql_username     spamassassin
user_awl_sql_password     XXXX
user_awl_sql_table     awl
#############################################################

user_scores_dsn DBI:mysql:spamassassin:localhost
user_scores_sql_username spamassassin
user_scores_sql_password XXXX
user_scores_sql_custom_query SELECT preference, value FROM modules_sasettings_sa WHERE username = _USERNAME_ OR username = '$GLOBAL' OR username = CONCAT('%',_DOMAIN_) ORDER BY username ASC
Somit ist es einfach möglich Globale, Domainweite, User besogene Einstellungen vorzunehmen.
z.B. führt der DB Eintrag:
Code:
%domain.com     bayes_sql_override_username     @domain.com
dazu, dass die bayes Filterung für diese domain domainweit durchgeführt wird. ZB. sinnvoll, weil da vielleicht Asiatische Mails wilkommen sind.
Code:
user%domain.com     bayes_sql_override_username     user@domain.com
user@domain.com     ok_languages     en,de
dieser Benutzer möchte aber die Einstellungen überschreiben und selbst für sich lernen und filtern, da er sowieso nur en und de kann und der Rest wohl Spam ist.
Jeder Mailkonto, Domain Besitzer kann so beliebige Einstellungen vornehmen und die Globalen überschreiben. Erfolgreich genutzt habe ich z.B. bayes_auto_learn, bayes_sql_override_username, ok_languages, report_safe, required_hits, rewrite_header, use_bayes , use_pyzor, use_razor2. Man kann auch mal eben bayes_min_ham_num und bayes_min_spam_num hinzufügen.

Da ich im Moment übelst viel Stress habe und noch keine Erfahrungen mit ISPConfig und Amavis kann ich das nicht alle für ISPConfig verwirklichen.
Kann mir vielleicht jemand verraten wie man die manipulation der Tabelleneintrage sinnvoll in ISPConfig integrieren könnte?

Danke

Für Interessierte: http://blackdragon.digital-dogz.com/spam.txt
gerade angepasst, könnte so gehen. Bei SysCP ist die Struktur etwas anders(z.B. /var/kunden/mail/kunde/mailuser@domain/). Damit kann man einfach sogar noch Kundenweite Einstellungen berücksichtigen(Also praktisch eine Gruppe von Domains)
 

Till

Administrator
#2
ISPConfig 3 verwendet ja amavisd-new und das funktioniert etwas anders als ein reines spamassassin setup und bietet auch weitergehende Möglichkeiten inkl. clamav Einbindung. Amavisd hat bereits einen integrierten bayes Filter und unterstützt auch quarantining, wobei quarantining in ispconfig aktuell nicht implementiert ist. In ISPConfig werden individuelle scores pro user account bzw. global für eine Domain verwendet, diese sind zu policys zusammengefasst, da es für Kunden deutlich einfacher zu handhaben ist und die wenigsten Kunden die Regeln des spamassassin kennen oder auch nur ansatzweise wissen, was spamassassin ist. Daher ist es für sie einfacher wenn der Admin 3-4 Regelsätze (policys) zusammenstellt, aus denen sie auswählen können. Aber Du kannst natürlich auch für jeden Mail Account eine eigene policy erstellen, wenn Du das möchtest.

Deine Einstellunegn in der local.cf werden wahrscheinlich nur zum Teil gelesen werden, das spamd garnicht aufgerufen wird. amavisd läd nämlich nur die spamassassin libraries, sapmassassin selbst wird nicht als eigenständiger Dienst eingebunden.

Für die Anpassungen die Du machen möchtest, wist Du Dich wohl doch etwas in amavisd einlesen müssen. Die amavisd Doku findest Du hier:

http://www.ijs.si/software/amavisd/#doc

ISPConfig verwendet die in der amavisd Doku vorgeschlagene sql basierte Konfiguration:

http://www.ijs.si/software/amavisd/README.sql-mysql.txt
 
#3
THX, ich werde mich mal weiter informieren.

Inzwischen weiß ich auch, dass es auf jeden Fall so wie bisher nicht mehr gehen wird. Ich habe nämlich gelesen das amavis das tolle Feature hat, dass wenn eine Mail, an mehrere Empfange geht, dass sie nur einmal von spamassassin untersucht wird und deswegen die Benutzerdefinierten Regeln in Spamassassin keine Auswirkungen haben können. Also fassen wir zusammen, mein Server bekommt täglich über 10000 Mails und vielleicht 4 mal im Monat geht eine Mail an mehrere Empfänger(sagen wir durchschnittlich 3), also spart man sich ca. 0,003%. Dafür gab es zusätzliche Aufwand bei der Implementation und die Filterleistung wird (zumindest bei mir) extremst beeinträchtigt. *An dieser Stelle hätte ich gern das Smiley, welches mit dem Kopf gegen die Wand schlägt*

Naja, ich werde mir dann noch ansehen was amavis an eigenem bayes Filter hat. Wobei bisher der einzige Vorteil von amavis ist, dass man zwei Scores für den Spam hat
 

Till

Administrator
#4
Lies Dir erstmal durch was amvisd alles macht und kann, bevor Du so rum heulst. Dein Text sagt soweit lediglich aus, dass Du Dich nicht mit amavisd beschäftigt hast. Ich arbeite seit vielen jahren mit Spamfiltern auf amavis Basis, sie sind äußerst leistungsfähig und erreichen > 99% Spam Erkennungsrate bei keinen false positives. Ich rede hier von Produktivsystemen in großen Unternehmen mit deutlich mehr Mails pro Tag als auf Deinem System.
 

Werbung

Top