Homepage Wolfgang Wilhelm :: v 0.9.1 21.02.2006 :: (v.0.9 __ 14.04.03) | ||
LINKWEG ::: inhalt / sendmail als MTA / Milter Schnittstelle |
sendmail als Mail Transport Agent
Milter Schnittstelle
Sendmail Milter Schnittstelle
Virenscanner
Bogofilter
Sendmail Milter | |
sendmail wurde bereits mit der MILTER Direktiven kompiliert. Ein /usr/sbin/sendmail -d0.12 -bv root sollte die Ausgabe MILTER beinhalten:
Version 8.13.4 Compiled with: DNSMAP LOG MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETUNIX NEWDB PIPELINING SASLv2 SCANF STARTTLS USERDB XDEBUG ...
Sendmail unterstützt Mailfilter um eingehende SMTP-Nachrichten entsprechend der "Sendmail Mail Filter API"-Dokumentation zu filtern. Diese Filter werden in der .mc-Datei konfiguriert:
MAIL_FILTER(`name', `argumente') oder INPUT_MAIL_FILTER(`name', `argumente')
Die beiden Anweisungen
INPUT_MAIL_FILTER(`amavis-milter', `S=local:/var/amavis/amavis-milter.sock, F=R')
INPUT_MAIL_FILTER(`bogofilter-milter', `S=local:/var/run/bogofilter-milter.sock, F=T')
sind gleichwertig mit den drei Anweisungen:
MAIL_FILTER(`amavis-milter', `S=local:/var/amavis/amavis-milter.sock, F=R')
MAIL_FILTER(`bogofilter-milter', `S=local:/var/run/bogofilter-milter.sock, F=T')
define(`confINPUT_MAIL_FILTERS', `amavis-milter, bogofilter-milter')
Im Allgemeinen sollte INPUT_MAIL_FILTER() verwendet werden, solange Sie nicht mehr Filter definieren möchten, als Sie in confINPUT_MAIL_FILTERS verwenden werden.
Virenscanner | |
Um die Mail nach Würmern,Viren etc. zu durchsuchen braucht man einen Virenscanner sowie das Bindeglied zwischen sendmail und Scanner, den Milter.
Ich setzte beispielsweise AntiVir Professional for Linux Workstations und AMaViS ein. Für den privaten Einsatz zu Hause erhält man von AntiVir eine einjährige Lizenz kostenfrei zugesandt.
AntiVirHier gibt es nicht viel flasch zu machen, ein Installationsskript ist im Setup enthalten. Es muss nur noch die erhaltene Lizenzfdatei hbedc.key nach /usr/lib/AntiVir kopiert werden. |
|
AMaViS
Ich fand die Seite zuerst etwas verwirrend, da dort checking for perl modules... module not found in path: 'Convert/UUlib'. module not found in path: 'Convert/TNEF'. module not found in path: 'Compress/Zlib'. module not found in path: 'Archive/Tar'. module not found in path: 'Archive/Zip'. Diese sind sehr einfach über die Kommandozeile oder CPAN zu installieren: perl -MCPAN -e 'install Convert::UUlib' perl -MCPAN -e 'install Convert::TNEF' ...
Damit begnügt sich AMaViS aber nicht, laut README folgt noch:
Eine Übersicht bietet die AMaViS-Webseite. checking for sm_errstring in -lsm... no checking for libmilter/mfapi.h... no We will use sendmail as the MTA
In diesem Fall: ./configure --enable-milter --with-warnsender=no --sysconfdir=/etc --prefix=/usr --enable-syslog=no --with-sockname=/var/amavis/amavisd.sockDas Ergebnis sollte ähnlich aussehen, wichtig ist die sendmail/milter Zeile Install amavis daemon as: ${exec_prefix}/sbin/amavisd Install amavis client as: ${exec_prefix}/sbin/amavis Daemon config file: /etc/amavisd.conf Path to socket: /var/amavis/amavisd.sock Configured for use with: libmilter Configuration type: sendmail/milter Use virus scanner(s): H+BEDV AntiVir/X Scanner runs as: amavis Log file directory: /var/amavis Run-time directory: /var/amavis Warn sender: no Warn recipient(s): no Notify admin: yesAus Sicherheitsgründen (die MILTER sollten nicht unter dem Benutzer root laufen) noch einen unpreviligieren Benutzer amaviserstellen und das Verzeichnis /var/amavis übereignen. makeund make installkomplettieren das Setup. Nun gilt es noch die Schnittstellen zu AMaViS und sendmail zu starten:
Im Verzeichnis /var/amavis sind nun zwei Sockets zu sehen, amavis-milter.sock und amavisd.sock. |
Werbefilter - bogofilter | |
Um die Post nach Werbung (Spam) oder unerwünschte Inhalte zu sortieren (oder direkt am Server ablehen) wird Bogofilter als Milter eingesetzt.
Bogofilter klassifiziert mail als spam oder ham (non-spam) durch statistische Analyse der Message Header sowie dem Inhalt (body). Der Filter ist fähig sich selbst zu trainieren, natürlich können manuelle Korrekturen vorgenommen werden. Die Methode ist bekannt als the Bayesian technique
und wurde beschrieben von Paul Graham in seinem Artikel A Plan For Spam
,August 2002.
BogofilterDownload von Sourceforge und entpacken. Damit die Software ebenso gegen BDB4 gelinkt wird noch die Compilerflags setzen: LDFLAGS=-L/usr/local/BerkeleyDB.4.1/lib/ CPPFLAGS=-I/usr/local/BerkeleyDB.4.1/include/ ./configure --prefix=/usr --sysconfdir=/etc make && make install Der Sendmail Filter befindet sich in contrib/bogofilter-milter.pl, diese bsp. nach /usr/sbin kopieren und den eigenen Gegebenheiten anpassen. Das wichtigste für einen Statistikfilter sind bereits vorhandene Spam/Ham Mails, die in eine Datenank verfüttert werden.Damit auf Benutzerbasis gefiltert werden kann muss in /etc/bogofilter.cf die Option bogofilter_dir=~/.bogofilter gesetzt sein.
Dazu noch $HOME/.bogofilter/training (oder die in bogofilter-milter.pl gesetzte) Datei anlegen. Diese bewirkt das unerwünschte Post nicht abgelehnt sondern markiert wird. Diese Einstellung sollte man am Anfang beibehalten, der Filter trainiert sich damit selbst. Entfernt man diese Datei, werden eingehene
Diese direkt bei CPAN suchen oder per shell installieren. Dies hat den Vorteil das eventuelle Abhängigkeiten mit aufgelöst werden. perl -MCPAN -e 'install Mail::Alias' perl -MCPAN -e 'install Proc::Daemon'
Sendmail::Milter kann nicht automatisiert installiert werden, die Konfiguration verlangt das sendmail Quellenverzeichnis: Sendmail-Milter-0.18> perl Makefile.PL /usr/local/src/sendmail-8.13.4/ /usr/local/src/sendmail-8.13.4/obj.Linux.2.4.31.i686/
Manche Distributionen kompilieren Perl ohne Threads, dann muss Perl mit -Dusethreads neu übersetzt werden.(SourceRPM oder Quellpaket) Die Flags der z.Zt. installierten Version können per ./configure.gnu -ds -e -Dprefix=/usr -Di_db -Di_dbm -Di_ndbm -Di_gdbm -Duseshrplib=true -Dusethreads make && make test && make installEin /usr/sbin/bogofilter-milter.pl --daemon
startet endlich den Prozess. require ["fileinto"]; if anyof ( # Blacklisted ip subnets due to excessive spam from them header :contains "Received" [ "[4.63.221.224", "[208.46.5.","[208.187.", "[209.164.27.","[209.236.", "[218.160.42.74", "[218.242.112.4]" ], # Blacklisted SpamAssassin flags header :contains ["X-Bogosity"] ["Yes","YES", "yes"] # Almost all emails from these domains is spam #header :contains "Received" # [".ru ",".jp ", ".kr ",".pt ",".pl ",".at ",".cz "], ) { fileinto "INBOX.spam"; stop; } |
starke Verschlüsselung |
© 2003 by Wolfgang Wilhelm • mail: wwilhelm at rz-online dot de |