O'Reilly logo

Mit Open Souce-Tools Spam & Viren bekaempfen by Alexander Wirt, Peter Eisentraut

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

This is the Title of the Book, eMatter Edition
Copyright © 2005 O’Reilly & Associates, Inc. All rights reserved.
|
245
First
Max.
Linie
Max.
Linie
Kapitel 10
KAPITEL 10
MIMEDefang
MIMEDefang wurde im Jahr 2000 von der Firma Roaring Pinguin als Open Source-
Software freigegeben. MIMEDefang wurde als Anti-Spam- und Antivirenlösung für
Sendmail entwickelt. Die Firma Roaring Penguin vertreibt MIMEDefang auch als
kommerzielle Lösung in ihrer Canit Anti-Spam-Lösung.
MIMEDefang ist in C geschrieben und kann über Perl-Skripten flexibel angepasst
und erweitert werden. Dadurch ist mit MIMEDefang nahezu alles möglich, was
auch mit Perl möglich ist.
MIMEDefang integriert SpamAssassin als Anti-Spam- und ClamAV als Antivirenlö-
sung. Die Einbindung anderer Antivirenscanner ist ebenfalls möglich. Dieses Kapi-
tel geht auf die Funktionsweise und Konfiguration von MIMEDefang in Sendmail
ein. Zusätzlich wird die Programmierung von eigenen Filtern mit Perl in MIMEDe-
fang exemplarisch erklärt und erläutert. Am Ende des Kapitels wird das Programm
GraphDefang vorgestellt, das eine grafische Auswertung der Arbeit von MIMEDe-
fang erglicht.
Wie MIMEDefang arbeitet
MIMEDefang wird als Milter-Plugin in Sendmail eingebunden. Milter ist die
Schnittstelle von Sendmail zur Einbindung von Filtern. Hierbei kommuniziert
Sendmail über einen TCP- oder Unix-Socket mit diesem Filter. An verschiedenen
Punkten der SMTP-Funktion wird dem Filter ermöglicht, steuernd in die Kommu-
nikation zwischen Client und Sendmail einzugreifen und eine E-Mail an diesem
Punkt zurückzuweisen. Weitergehende Informationen zu Milter findet man in Ka-
pitel 3, Spam- und Virenabwehr mit Postfix, Exim und Sendmail.
This is the Title of the Book, eMatter Edition
Copyright © 2005 O’Reilly & Associates, Inc. All rights reserved.
246
|
Kapitel 10: MIMEDefang
Links
Max.
Linie
Max.
Linie
Um eine möglichst hohe Verarbeitungsgeschwindigkeit zu erreichen, besteht
MIMEDefang aus mehreren Komponenten:
mimedefang
MIMEDefang wurde in C geschrieben und ist das eigentliche Milter-Plugin. Es
kommuniziert direkt mit Sendmail, nimmt eingehende Verbindungen an und
verteilt sie an den Multiplexer.
mimedefang-multiplexer
Der Multiplexer ist ein Daemon, der auf eingehende Verbindungen von MIME-
Defang wartet und diese auf einen Pool von mimedefang.pl-Prozessen, die ei-
gentlichen Filter, verteilt. Seine Aufgabe ist es, die einzelnen Perl-Prozesse vor-
zuhalten und die Arbeit zu verteilen. Zusätzlich startet er die Prozesse nach
einer gewissen Zeit neu, um Speicherlöchern in Perl entgegenzuwirken.
mimedefang.pl
Dies stellt den eigentlichen Filter dar. Er wurde in Perl geschrieben, da Perl zum
einen leicht erlernbar ist und zum andern hervorragend zur Verarbeitung von
Textinformationen geeignet ist. Die mimedefang.pl-Prozesse sind es, die die ei-
gentliche Arbeit erledigen und die Filterung vornehmen.
Diese Struktur ermöglicht eine gute Balance zwischen Geschwindigkeit und Flexibi-
lität.
Einbindung in Sendmail
Da MIMEDefang für Sendmail entwickelt wurde, gestaltet sich seine Einbindung
recht unspektakulär. Wie bei Sendmail üblich, wird die Konfigurationsdatei send-
Abbildung 10-1: MIMEDefang-Kommunikation mit Sendmail
This is the Title of the Book, eMatter Edition
Copyright © 2005 O’Reilly & Associates, Inc. All rights reserved.
Einbindung in Sendmail
|
247
Rechts
Max.
Linie
Max.
Linie
mail.cf nicht direkt editiert, sondern zunächst in der Makrosprache m4 geschrieben.
Aus dieser Datei wird dann mit m4 die eigentliche Konfigurationsdatei erzeugt. In
sendmail.cf wird MIMEDefang als Filter eingetragen:
INPUT_MAIL_FILTER(`mimedefang', `S=unix:/var/spool/MIMEDefang/mimedefang.sock, F=T,
T=S:360s;R:360s;E:15m')
Anschließend ist die Sendmail-Konfigurationsdatei sendmail.cf neu zu erzeugen.
Für die meisten Linux-Distributionen bedeutet dies, dass man in /etc/mail ein make
ausführt.
Wenn man MIMEDefang aus den Quellen installiert hat, muss man darauf achten,
dass MIMEDefang vor Sendmail gestartet wird. Entweder schreibt man ein eigenes
Init-Skript oder fügt folgende Zeilen in das Sendmail-Init-Skript ein, bevor Sendmail
gestartet wird:
rm -f /var/spool/MIMEDefang/mimedefang.sock
/usr/local/bin/mimedefang -p /var/spool/MIMEDefang/mimedefang.sock &
Das bewirkt, dass bei einem Sendmail-Neustart zuerst der alte Socket gelöscht wird
und eine neue MIMEDefang-Instanz gestartet wird.
Sendmail kommuniziert dann mit MIMEDefang über einen Unix-Socket. Deshalb
ist darauf zu achten, dass Sendmail über Lese- und Schreibrechte auf dem Socket
verfügt.
Abbildung 10-2: MIMEDefang-Interne Kommunikation

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required