An dieser Stelle möchte ich noch empfehelen darauf zu achten, dass die -d Domain Option angegeben wurde weil das der wichtige Teil nach dem der Filter sucht und ich glaube nicht, dass die Defaulteinstellung "localhost" zu Ihrer Domain passt. Wenn eine falsche Domain für den Filter angegeben wird, dann sucht dieser nach der falschen Domain und wenn er sie nicht findet, was dann sehr wahrscheinlich ist, dann schickt er die Mail an postmaster@(die falsche Domain).
Die -t Option ist erforderlich, wenn man die offizelle Domain(Angabe -d) durch eine andere Domain ersetzen will. Mit dieser Option wird der Domainteil der Adressen, die zu der Domain von -d passen, durch die angegebene Domain ersetzt. Durch diese Option ist es möglich eine andere lokale Domain zum Verteilen der Mails benutzen als die offizielle Internet Domain.
Die -n postmasteralias Option ist wichtig wenn der Filter im Kopf der Mail keine zu der Domain passende Adresse findet. In diesem Fall schickt der Filter die Mail dann an postmaster@(domain aus der -d Option). Die Defaulteinstellung des poastmasteralias ist postmaster und das sollte auf den meisten System passend sein da die meisten Unix Systeme von vorne herein einen Alias von postmaster auf root haben.
Mails können auch an eine Adresse, die mit -r Adresse angegeben
wird umgeleitet werden. Wenn -r gesetzt wird, werden alle Adresse im Kopf der
Mail ignoriert und die To:-Zeile wird mit der angegebenen Adresse ersetzt.
Vorsicht, auch wenn die -r Option benutzt wird, sollten trotzdem die Optionen
-d und -n auch benutzt werden. Aus diesen beiden Optionen wird die Postmaster
Adresse gebildet und and diese gehen alle Warung und Fehler Mails (z.B. VBS-Warnungen
oder Fehler bei Mailkopf absuchen.
Seit V0.8.2:
Seit V0.8.2 werden die Optionen -d und -n nicht mehr unbedingt zusammen mit der
-r Option benötigt, da ab dieser Version diese Angaben aus der Adresse, die
mit -r übergeben wurde, gebildet werden.
Wenn -d nicht angegeben wird, werden auch die To:-Zeile und die Cc:-Zeile nicht
mehr ersetzt, wenn die Mail über SMTP weiterversandt wird. Dies sollte
in diesem Fall aber keine Mailloops oder ungewolltes doppeltes verschicken an
Empfänger einer Mail hervorrufen, weil der SMTP Server den Empfänger
mit SMTP-Befehlen übergeben bekommt. Trotzdem gibt es manche wenige SMTP
Server die den SMTP-Dialog ignorieren und selbst die To:-Zeile absuchen. Bei
einem solchen Server sollten die -d und -n Optionen wieder benutzt werden, da
dann die To:-Zeile wieder wie vorher ersetzt wird.
Seit der Version V0.9.3 ist es auch möglich definierte To-Adressen durch
andere Adressen zu ersetzen. Das To-Adressen-Routing benutzt die selbe Datei
wie das Domain-Routing um die Routen zu definieren. Wenn manche Adressen
durch andere ersetzt werden sollen, genügt es wenn man eine Zeile für
jedes ":"-getrennte Adressenpaar in die domroute.conf Datei
einfügt.
Example:
# domroute.conf: Domain-Routing
# domain.from:domain.to
domain.xxx:domain.yyy
...
offical.dom:local.dom
# To-Address-Routing
name@domain.xxx:othername@otherdomain.yyy
maillist@some.dom:name@local.dom
Achtung: Die Domains der Adressen die ersetzt werden sollen, sollten
nicht zu den Domains der -d Option hinzugefügt werden. Nur Domains
für das Domain-Routing müssen bei der -d Option angegeben werden,
das To-Adressen-Routing wird nur dann benutzt, wenn keine passende Domain
gefunden wurde.
Als Grundeinstellung wird SMTP des localhost zum Weiterversenden der gefilterten Mails benutzt. Mit der -s SMTP-Host Option kann ein anderer Host als der localhost zum Weiterversandt mit SMTP benutzt werden.
Die Grundeinstellung SMTP zu benutzen kann mit der -m MDA Option überschrieben
werden und ein lokaler MDA wie "sendmail -t" kann stattdessen benutzt werden.
Als Grundeinstellung wird SMTP zum verschicken der gefileterten Mails benutzt.
Die -m Option sollte fast jeden belibigen MDA erlauben, das kann ich
allerdings nicht sicher sagen, da ich es nur mit Sendmail testen konnte und
damit hat es problemlos funktioniert. Wenn jemand Erfahrungen mit anderen MDA's
macht würde es mich freuen davon zu hören wie es funktioniert hat.
!!! Wichtig: Falls der MDA Befehl Leerzeichen haben sollte wie "sendmail -t",
dann muss dieser Befehl unbedingt in Anführungszeichen setzen, ansonsten
kann man nicht sagen was passieren wird. Wenn der gesamte Befehl bereits in
Anführungszeichen steht, dann kann man auch Single-Quotes ' benutzen.
(z. B. "mailf...-m 'sendmail -t' -l...") !!!
Normalerweise benutzt der Filter die selbe Logdatei wie der aufrufende Prozess benutzt. Um eine ander Datei zu benutzen, kann die -l Option benutzt werden. Diese schreibt Datum, die From:-Zeile, die To:-Zeile und die alte To:-Zeile von den Mails die durch den Filter geschickt wurden in die Logdatei. Als Beispiel "-l /var/log/mailf.log" schreibt das Log in die Datei /var/log/mailf.log.
Wenn die --novbs Option zum Aufruf hinzugefügt wurde, sucht der
der Filer nach Anhängen mit VB-Wurm-Virus typischen Dateierweiterungen
.vbs, .vbe, .wsh, .wsc, .wsf, .scr, .chm, .pif und .shs und ersetzt diese mit
.txt. Die .txt Erweiterung sollte von keinem Mailprogramm ausgeführt werden,
nicht einmal wenn der Anhang doppel angeklickt wurde.
Falls jemand noch mehr Dateierweiterungen, als die oben genannten, für
Würmer kennt, würde ich mich freuen Informationen darüber
per Mail zu erhalten.
Die <iframe> and <script> Tags in HTML Mails (Nimda Virus) werden mit der
--novbs Option ebenfalls deaktiviert. Dadurch starten Anhänge wie
readme.exe nicht bereits im Vorschaufenster und auch nicht automatisch beim öffenen
einer Mail. Trotzdem können angehängte Dateien wie readme.exe
einen Virus enthalten, sie werden nur nicht mehr automatisch ausgeführt.
Neu in V1.0rc6: Die zu ersetzenden Dateierweiterungen können mit VirusExts=
in der Config-Datei bestimmt werden. Jede Erweiterung muss mit einem .(Punkt) beginnen und
innerhalb nur einer Zeile stehen.
Example:
~/.mailf/mailf.conf
VirusExts=.vbs.vbe.wsh.wsc.wsf.scr.chm.pif.shs
Durch die --vscan "/path.../scanner options" Option können
auch Mailanhänge mit einem exterenen nach Viren gescannt werden. Falls ein
Virus gefunden wird, wird der Anhang durch eine Textdatei zur Information ersetzt.
Es sollte eigentlich mit jedem Virenscanner funktionieren, der Scanner muss nur
einen Status von 0 zurückgeben wenn kein Virus gefunden wurde. Die Option
wurde mit den Scannern Network Associates Virus Scan und H+BEDV AntiVir/X getestet,
um einen anderen Virenscanner einzusetzen empfiehlt es sich zunächst auch
die --nodelvir Option zu setzen.
Der Kommandozeile für den Aufruf des Virenscanner kann entweder direkt nach
--vscan Option angegeben werden (Kommandozeilen mit Leerzeichen müssen in
Anführungszeichen gesetzt werden) oder in der Datei "/$HOME/.mailf/vscan.cmd",
im Heimverzeichnis des Benutzers mit dem der Filter gestartet wurde, festgelegt
werden. Falls nur --vscan gesetzt wird und kein Scanner angegeben wurde, versucht der
Filter die Datei "/$HOME/.mailf/vscan.cmd" zu öffnen und sucht in
dieser Datei nach der Kommandozeile für den Virenscanner.
Beispiel:
mailf -d ... --vscan "/usr/local/uvscan/uvscan --secure"
--- Oder:---
mailf -d ... --vscan
~/.mailf/vscan.cmd
/usr/local/uvscan/uvscan --secure
Mit der --nodelvir Option werden infizierte Dateien nicht aus dem
tmp-Verzeichnis "/$HOME/.mailf/" gelöscht, sie werden nur aus
der Mail entfernt damit diese ohne Virus beim Empfänger ankommt.
Vorsicht: Mit dieser Option sind die Mail zwar sicher die als infiziert erkannt
wurden, aber die Dateien im tmp-Verzeichnis enthalten immer noch Viren. Diese
Option nur zu Testzwecken verwenden oder versuchen die Dateien im tmp-Verzeichnis
vor einer Verwendung mit einem Virenkiller bereinigen.
Hinweis: Die --vscan Option kann immer nur so gut sein wie der verwendete
Virenscanner. Ein Virenscanner sollte regelmässig (mindestens jeden Monat,
empfohlen jede Woche) auf den aktuellen Stand gebracht werden.
Spammails können nach der Absender Adresse oder der Absender Domain gefiltert
werden. Dieses Feature wird aktiviert in dem man eine Datei
"/$HOME/.mailf/from.spam" im Home-Verzeichnis des Benutzers mit
dem der Filter gestartet wurde erstellt. Jede Zeile dieser Datei sollte aus einem Paar
bestehend aus Absender oder Domain und einem Schlüsselwort, was mit der Mail
geschehen soll, das durch ein ":" Zeichen gtrennt ist, bestehen.
(sender:action). Als Schlüsselwörter können folgende benutzt werden:
trash (Mail nur löschen), postmaster (Postmaster benachrichtigen und die Mail
als Anhang mit schicken), reject (Mail löschen und Absender benachrichtigen),
postmaster-reject (postmaster und reject gleichzeitig)
Example:
# from.spam: From address spamfilter
# sender:action
# domain:action
spammer@some.dom:trash
sender@other.dom:reject
spam.dom:postmaster
spaming.xxx:postmaster-reject
Manche Spammails können auch an einer Zeile wie X-Mailer: ...Mass Sender...
im Mailkopf erkannt werden. Solche Zeilen wird meist von einer massen Mail
Software erstellt und so eine Software sucht oft zuvor Homepages nach EMail
Adressen ab. Der Filter kann auch solche Mails erkennen und handhaben.
Die --delmass Option löscht eine solche Mail sofort die eine
solche Zeile enthält. Die --mass2pm Option schickt die Mail an den
Postmaster als Anhang einer Benachrichtigungsmail.
Achtung: Mass Mailer Software kann auch benutzt werden um Maillisten zu
verwalten. Normalerweise wird eine solche Software nicht für Maillisten
benutzt aber es ist nicht unmöglich.
Um den Kopf einer Mail best möglich zu erhalten, kann das ersetzen
der To:-Zeilen durch die Option --norewrite verhindert werden. Diese
Option funktioniert beim Wiederversandt der Mail über SMTP, da der Filter
dann einen SMTP-Server-Dialog nur mit den gefundenen Empfängern erstellt.
Trotzdem gibt es manche wenige SMTP Server die den SMTP-Dialog ignorieren und
selbst die To:-Zeile absuchen. Bei einem solchen Server sollten die --norewrite
Optionen nicht benutzt werden.
Seit der Version V0.9.2 werden Mails unter einer angegebenen Größe
im Speicher gefiltert. Dadurch wird nur noch eine Tmp-Datei angelegt und kleine
Mails werden schneller bearbeitet.
Voreingestellt werden Mails kleiner als 1048576 Bytes (= 1 MB) im Speicher
abgearbeitet. Bei Rechnern mit mehr Hauptspeicher kann auch durch die
--maxmem # Option eine andere Grenze (z.B. --maxmem 5242880 für
5 MB) angeben werden.
Durch "--maxmem 0" werden alle Mails wie bisher durch einzelne
Dateien(Mailkopf, Mailkörper, neuer Kopf) bearbeitet.
Seit der Version V0.7.7 beendet der Filter normal (Status 0) wenn ein Fehler
beim Weiterversandt auftrat. Diese Fehler treten meist bei falsch adressierten
Mails oder wenn ein SMTP-Server oder ein lokaler MDA nicht verfügbar war
auf. In den meisten Fällen ist es nicht gewollt diese Mails die z.B. mit
"550 unknown local mailbox" den Weiterversandt abbrechen, auf dem
Server zu behalten. In dem der Filter mit Status 0 beendet wird einer abholenden
Software wie fetchmail mitgeteilt, dass sie die Mail vom Server löschen
kann.
Falls so eine Mail nicht vom Server entfernt werden soll, kann die
--keepresend Option benutzt werden damit der Filter mit einem Fehler
beendet und die Mail auf dem Server belassen wird. Wenn eine solche Mail
jedoch auf dem Server verbleibt, kann dies dazu führen, dass nur diese
Mail immer wieder von der abholenden Software abgerufen wird und die Software
sich dann beendet bevor sie weiter Mails danach abheolt hat. Die Option kann
aber auf jedenfall nützlich sein, wenn man einen SMTP-Server oder lokalen
MDA testet bei dem man Versandtfehler erwartet.
In beiden Fällen werden Mails, bei denen ein Versandtfehler auftrat, in
einem Unterverzeichnis "fail" im tmp-Verzeichnis gespeichert und
können, wenn nötig, von dort aus manuell versandt werden. Ein
Kommandozeilentool zum Versandt von Mails aus diesem Ordner ist momentan in
Entwicklung.
Der Filter benachrichtigt auch den Absender einer Mail wenn die Mailbox unbekannt
war und der Mailserver mit 550 geantwortet hat. Die selben Mails werden normalerweise
von dem absendenden Mailserver erstellt. Wenn solche Mails nicht versandt werden
sollen, kann die --no550 Option benutzt werden.
Anmerkung: Mit der --no550 Option wird der Filter keine derartigen Mails versenden,
jedoch er kann keine Mails unterdrücken die vom empfangenden Mailserver
generiert werden.
Durch die --pm550 wird eine Kopie der Mail zusammen mit einer Meldung auch an den Postmaster gesendet wenn ein 550 Fehler auftritt.
Abschliessend stehen noch zwei Optionen zur Verfügung welche das Verhalten
des Filters nicht beeinflussen und lediglich Informationen ausgeben.
Die Option -v gibt die Versionsnummer des Filters aus.
Die Option -h gibt eine kurze hilfe zu den Optionen aus.
Seit Version V0.9.3 können die meisten oben beschriebenen Optionen durch
eine config-Datei gesetzt werden anstatt mit den Parametern der Kommandozeile.
Wenn KEINE Domain(-d), Alias(-n) und Redirect-Adresse(-r) durch die
Kommandozeile gesetzt wurden sucht der Filter in einer config-Datei nach den
Optionen. Falls auch NUR EINE von diesen(-d, -n oder -r) bereits durch die
Kommandozeile gesetzt wurde, wird der Filter keine Optionen von einer Datei
lesen. Alle anderen Optionen werden zu denen aus eine config-Datei
hinzugefügt.
Der Filter versucht zuerst die config-Datei
"?userhome?/.mailf/mailf.conf" des Benutzers mit dem er gestartet
wurde zu öffnen und die Optionen daraus zu lesen. Sollte eine solche Datei
nicht vorhanden sein, versucht der Filter die globale config-Datei
"/etc/mailf.conf" zu lesen und die Optionen daraus zu erhalten.
Ein Beispiel für eine "mailf.conf"-Datei kann man im Ordner
"samples.mailf" des Quellenpfades finden. Nicht benötigte
Optionen können darin deaktiviert werden, in dem man ein #-Zeichen an den
Anfang der Zeile, in der diese Option steht, einfügt.
Um eine Konfiguration(Kommandozeile oder config-Datei) zu testen, wurde die neue
Option -cf hinzugefügt. Durch hinzufügen dieser Option zur
Kommandozeile gibt der Filter lediglich die momentane Konfiguration aus.
Vorsicht: Die -cf Option gibt lediglich die Konfiguration des Filters
aus, aber es werden keine eingehenden Mails bearbeitet. Diese Option sollte
nur zum Testen einer Konfiguration benutzt werden.