Servercommunity Foren-Übersicht Servercommunity
Das informative Forum für Fragen rund um Server
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

exim und die Virenflut

 
Neues Thema eröffnen   Neue Antwort erstellen    Servercommunity Foren-Übersicht -> How-To's
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Monty
Dunkler Gebieter


Anmeldedatum: 21.06.2003
Beiträge: 670
Wohnort: Asperg

BeitragVerfasst am: Mo Sep 22, 2003 16:37    Titel: exim und die Virenflut Antworten mit Zitat

Hi!
Wer einen Exim Mailserver sein eigen nennt, der kann folgende Maßnahmen ergreifen, um der momentanen Virenflut Herr zu werden (debian Style, andere Distris brauchen natürlich Anpassungen):

Einen Exim-Systemfilter anlegen: /etc/exim/exim.filter

Code:
# Exim filter
logfile /var/log/exim/filterlog

if
        $message_body: contains "<html>" and
        $message_body: matches  "<(iframe|embed) src=(3d)?\"?cid:"
then
        headers add "X-Virus: iframe bug exploit"
        logwrite "$tod_log $message_id iframe/embed bug exploit"
        save /var/virusmails/
        finish
endif

if
        $header_from: MATCHES "^\"?(MS|Microsoft|Security) " or
        $header_to:   MATCHES "^\"?(MS|Microsoft|Commercial) "
then
        headers add "X-Virus: Swen"
        logwrite "$tod_log $message_id Swen"
        save /var/virusmails/
        finish
endif

Hier mal kurz erklärt:

Code:
# Exim filter

Muss am Anfang eines exim-Filters stehen

Code:
logfile /var/log/exim/filterlog

Das File, in das der Befehl "logwrite" schreiben wird, wer logwrite nicht verwendet, braucht auch diesen Befehl nicht.

Code:
if
        $message_body: contains "<html>" and
        $message_body: matches "<(iframe|embed) src=(3d)?\"?cid:"
then
        headers add "X-Virus: iframe/embed bug exploit"
        logwrite "$tod_log $message_id iframe/embed bug exploit"
        save /var/virusmails/
        finish
endif

Der erste Filterblock: Der Body soll "<html>" enthalten und auf die Perl-Regexp <(iframe/embed) src=(3d)?"?cid: matchen. Anleitung für PCREs (Perl Compatible Regular Expressions) z.B. hier. Diese Regexp matcht, wenn im Message-Body

  • <iframe=3D"cid:
  • <iframe="cid:
  • <iframe=3Dcid:
  • <iframe=cid:
(oder dasselbe mit embed) enthalten ist.
Wenn der Body passt, dann soll

  1. Ein Header eingefügt werden
  2. in das Logfile geschrieben werden
  3. die Mail nach /var/virusmails geschrieben werden (und nicht ausgeliefert)
  4. finish weist exim an, keine weiteren Filterregeln mehr anzuwenden

Die anderen beiden ifs funktionieren analog.

Eine Anmerkung zur "Sven-Detection-Rule": wenn die Filterbedingung in Grossbuchstaben geschrieben wird, ist sie case-sensitiv, bei kleingeschriebenen Filterbedingungen ist die Gross-/Kleinschreibung wurscht.

Den Filter integrieren

/etc/exim/exim.conf (in der Sektion "MAIN CONFIGURATION SETTINGS")
Code:
message_body_visible = 5k
message_filter_pipe_transport = address_pipe
message_filter_directory_transport = address_file
message_filter = /etc/exim/exim.filter

Dabei erhöht die erste Zeile den Inhalt von $message_body im Filter von den defaultmäßigen 500 Byte auf 5kB, Zeilen 2 und 3 erklären Exim, was er mit den gefilterten Mails anfangen soll und Zeile 4 bringt Exim dazu, den Filter auch zu verwenden.

Verzeichnisse anlegen und aufräumen
mkdir /var/virusmails; chown mail:mail /var/virusmails
Dann muss man noch nachsehen, ob exim /var/log/exim/filterlog anlegen und schreiben darf. In /etc/cron.daily ein Script zum Aufräumen anlegen: /etc/cron.daily/virusmails:

Code:
#!/bin/sh

find /var/virusmails -ctime +7 -exec rm -f {} \;

chmod a+x /etc/cron.daily/virusmails. Virenmails, die älter als 7 Tage sind, überleben diesen find nicht mehr.

Aufpassen

Wenn Du etwas falsch gemacht hast, dann laufen jetzt in /var/log/exim/paniclog aussagekräftige Fehlermeldungen auf, die Mails bleiben in der Message-Queue bis der Fehler beseitigt wurde, wenn Du keinen gemacht hast, laufen jetzt die virenverseuchten Mails herzerfrischend in /var/virusmails auf Wink.

Monty

Edit: Swen-Rules verbessert, Unterschied MATCH<->match, PCRE erklärt
Edit: Swen-Rules verfeinert, embed- und iframe-Rule jetzt in einem if
Edit: finish eingebaut, um mehrfaches save zu verhindern

_________________
Gewalt ist die letzte Zuflucht der Unfähigen - Salvor Hardin
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Servercommunity Foren-Übersicht -> How-To's Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.



Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de