Verbesserung der Spamfilterung

Dieses Thema im Forum "Entwicklerforum" wurde erstellt von BlackDragon, 2. Feb. 2010.

  1. BlackDragon

    BlackDragon New Member

    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)
     
  2. Till

    Till Administrator

    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. BlackDragon

    BlackDragon New Member

    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
     
  4. Till

    Till Administrator

    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.
     

Diese Seite empfehlen