IT-Academy Logo
Sign Up Login Help
Home - Betriebssysteme - Linux - Debian-Spezielles - Debian Exim Exim4 Mailscanner Spamassasin: Automatischer VirenCheck & Spam-Schutz



Debian Exim Exim4 Mailscanner Spamassasin: Automatischer VirenCheck & Spam-Schutz

In der heutigen Zeit ist es schon fast notwendig, dass ein E-Mail-Server automatisch nach Viren checkt und unerwünschten SPAM aussortiert. Gut ist, wenn das automatisch funktioniert. Wie man mit Debian und Exim einen solchen Schutz aufbaut verrät dieser Artikel.


Autor: Martin Puaschitz (onestone)
Datum: 13-07-2003, 19:13:35
Referenzen: Diverse Manuals
Schwierigkeit: Fortgeschrittene
Ansichten: 23587x
Rating: 8 (1x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Über dieses Dokument

Im ersten Abschnitt wird die Konfiguartion mit Exim4+Mailscanner gezeigt (Mai 2007), im zweiten Abschnitt die ältere Variante mit Exim3+Mailscanner (Juli 2003). Bitte darauf achtgeben, grundsätzlich wird empfohlen Exim4 zu verwenden da Exim3 nicht mehr unterstützt bzw. supported wird.

Mailscanner mit Exim4

Installation

Zuerst müssen wir die Pakete installieren (ggf. Abhängigkeiten und empfohlene Pakete beachten!)

apt-get install mailscanner spamassassin exim4 clamav

Neue Exim4-Config

Ein wichtiger Unterschied bei exim4 ist, dass ab sofort die Konfiguration ein wenig anders aussieht. Es gibt das File nicht mehr als solches, sondern


exim4.conf.template

als "Master-File" und


update-exim4.conf.conf

als jenes File dass nach der Neu-Installation mit Hilfe von dpkg erstellt wird.

Wichtig ist,
  • dass die MX-Einträge (DNS) auf die Maschine zeigen
  • dass die notwendigen Domains nicht als "local domains" sondern lediglich als "relay for" definiert werden - dies erspart und Fehlermeldungen und Probleme da Exim nicht mehr versucht, die Mails lokal zuzustellen (wo die User ja nicht vorhanden sind weil die Maschine lediglich als Gateway verwendet wird)
  • dass der Hauptmailserver (z.B. ein Exchange-Server) per IP-Adresse relayen darf (sprich: unser Exim alles vom Exchange annimmt und verarbeitet)
  • dass wir auf das Splitten der Config-Files verzichten (Optional/Tipp)
Falls die Installation wiederholt werden soll:


dpkg-reconfigure exim4

Nach der Installation und Grundkonfiguration müssen wir zuerst definieren, welche Domains (idealerweise ident mit jenen für die relayed wird) wohin weitergeleitet werden müssen, hierzu erstellen wir die Datei


/etc/exim4/hubbed_hosts

mit folgendem Inhalt:
Domainname.Domainendung IP-Adresse (z.B. des Exchange-Servers)
Nun müssen wir

exim4.conf.template
editieren und folgenden Inhalt ganz oben hinzufügen:

.ifdef OUTGOING
SPOOLDIR=/var/spool/exim4
.else
SPOOLDIR=/var/spool/exim4_incoming
queue_only = true
queue_only_override = false
.endif

Man sieht eindeutig, dass wir ursprüngliche Queue auf zwei aufteilen, einmal Incoming, einmal Outcoming.
Dies aktivierern wir in dem Exim neu starten wodurch die "echte" Konfig aus den Templates generiert wird.

/etc/init.d/exim4 restart
Ab sofort ist exim mit zwei verschiedenen Kommandozeilenparametern unterschiedlich anzusprechen, Incoming wird mit

exim

aufgerufen wohingehen Outgoing mit

exim -DOUTGOING

aufgerufen wird.

MailScanner konfigurieren

Nun müssen die Mailscanner konfigurieren und öffnen

/etc/MailScanner/MailScanner.conf

und setzen folgende Variablen:

MTA = exim
Sendmail = /usr/sbin/sendmail
Sendmail2 = /usr/sbin/sendmail -DOUTGOING
Virus Scanners = clamav
%org-name% = YourCompany
%org-long-name% = Your Company's Full Name
%web-site% = www.mycompany.com/mailscanner/info/page.html
Run As User = Debian-exim
Run As Group = Debian-exim
Incoming Queue Dir = /var/spool/exim4_incoming/input
Outgoing Queue Dir = /var/spool/exim4/input
Bitte die Pfade von Mailscanner mit jenen von Exim vergleichen, man sieht, dass Exim im Gegensatz zu Mailscanner in Verzeichnis weiter "oben" arbeitet - das ist in Ordnung (sprich: Die Pfade sind nicht 100% ident, aber fast!). Hier nochmal der Config-Auszug von Exim (siehe oben):

.ifdef OUTGOING
SPOOLDIR=/var/spool/exim4
.else
SPOOLDIR=/var/spool/exim4_incoming

SpamAssassin konfigurieren

Nun müssen wir SpamAssassin konfigurieren und öffnen daher

/etc/MailScanner/spam.assassin.prefs.conf

Folgender Abschnitt muss gesucht und adaptiert werden, alles was vor "-Mailscanner" steht muss insofern geändert werden dass die Werte mit Mailscanner (%org-name%) übereinsimmt:

bayes_ignore_header X-MyCompany-MailScanner
bayes_ignore_header X-MyCompany-MailScanner-SpamCheck
bayes_ignore_header X-MyCompany-MailScanner-SpamScore
bayes_ignore_header X-MyCompany-MailScanner-Information

Berechtigungen setzen

Zur Sicherheit prüfen wir nun noch die Berechtigungen in dem wir

chown -R Debian-exim:Debian-exim

auf folgende Verzeichnisse ausführen:
/var/lib/Mailscanner
/var/run/MailScanner
/var/spool/MailScanner
/var/spool/exim4_incoming/
/var/spool/exim4/
/var/lock/subsys/MailScanner
Alles aktivieren

Wir sind fast fertig, daher aktivieren wir nun MailScanner und SpamAssassin indem wir in

/etc/default/mailscanner

folgendes Eintragen/Ändern:

run_mailscanner=1

sowie in

/etc/default/spamassassin

folgendes Eintragen/Ändern:

ENABLED=1

Am Schluss können wir mit

/etc/init.d/exim restart
/etc/init.d/Mailscanner restart

das System in Betrieb nehmen.

Testen

Da der Hauptmailserver bereits via IP-Adresse im Exim relayen darf, kann man hier gleich ausprobieren ob die Mails bei exim ankommen. Das sieht man sehr schön in

/var/log/exim4/mainlog
/var/log/exim4/paniclog

Desweiteren kann man mit

mail email@adresse.domain (evtl. apt-get install mailx)

ausprobieren wie Mails die auf der Maschine ankommen sich verhalten (interne sollen zu Hauptmailserver geleitet werden, externe sollen die Maschine verlassen).
Um Mailscanner und vorallem Clamav testen zu können empfiehlt sich der EICAR-Testvirus (siehe Ende dieses Dokumentes) vom Hauptserver nach Extern zu schicken und parallel
/var/log/mail.info

zu prüfen - hier sollte Clamav die Datei als Virus erkennen und ausfiltern (je nach Einstellung wird diese u.U. disarmed und weitergeschickt)
Hilfreiche Befehle für Exim

Nun kurz einige Befehle für das Prüfen der Funktion innerhalb von Exim - jeweils für beide Queues!

Wieviele Mails befinden sich in der Queue:

exim -bpc
exim -DOUTGOING -bpc

Welche Mails befinden sich in der Queue:
exim -bpc
exim -DOUTGOING -bpc

Abarbeiten der Queues:

exim -q
exim -DOUTGOING -q

Automatisches abarbeiten der Queues:

Natürlich sollen die Queues automatisch und regelmäissig abgearbeitet werden, daher editieren wir

/etc/crontab

und fügen folgendes hinzu um beide Queue jede Minute abzuarbeiten:


* * * * * Debian-exim /usr/sbin/exim4 -DOUTGOING -q
* * * * * Debian-exim /usr/sbin/exim4 -q
Mailscanner mit Exim3

Vorraussetzung
Exim bereits installiert & konfiguriert
Mailscanner & Clam AV
Zuerst müssen zwei Packete installiert werden: mailscanner & clamav.
apt-get install mailscanner
apt-get install clamav
Für den Fall, dass Sie eine Stable-Version von Debian verwenden, geben Sie folgende Befehle ein:
apt-get -t testing install mailscanner
apt-get -t testing install clamav
Alle Default-Konfigurationen können momentan übernommen werden, wir werden diese später detailiert konfigurieren.
Exim
Mailscanner verwendet zwei verschiedene Exim-Queues. Eingehend und ausgehend. Nur Mailscanner kann zwischen diesen Queues Nachrichten verschieben. Kopieren Sie die bestehende exim.conf nach exim_outgoing.conf:
cp /etc/exim/exim.conf /etc/exim/exim_outgoing.conf
Öffnen Sie nun die exim.conf (z.B. mit 'vi', 'vim' oder 'nano'): Fügen Sie die folgenden Sektionen wo benötigt ein:
Fügen Sie ziemlich nah am Anfang des Files, direkt unter 'MAIN CONFIGURATION SETTINGS' folgendes ein:

spool_directory = /var/spool/exim_incoming
queue_only = true

Nun fügen Sie direkt unter 'DIRECTORS CONFIGURATION' folgendes ein:

defer_director:
driver = smartuser
new_address = :defer: All deliveries deferred
verify = false
Nun fügen Sie direkt unter 'ROUTERS CONFIGURATION' folgendes ein:

defer_router:
driver = domainlist
self = defer
route_list = "* 127.0.0.1 byname"
verify = false
Somit sind wir mit exim.conf fertig. Nun der erste Cron-Job der geändert werden muss.
Öffnen Sie /etc/cron.d/exim, kopieren Sie folgende zwei Zeilen.

# Run queue every 15 minutes
08,23,38,53 * * * * mail if [ -x /usr/sbin/exim -a -f /etc/exim/exim.conf ]; then /usr/sbin/exim -q ; fi

Nun fügen Sie die kopierten Zeilen direkt darunter ein. Nun ändern Sie die Zeilen wie folgt ab:

# Run queue every 15 minutes for exim_outgoing
08,23,38,53 * * * * mail if [ -x /usr/sbin/exim -a -f /etc/exim/exim_outgoing.conf ]; then /usr/sbin/exim -q -C /etc/exim/exim_outgoing.conf ; fi

Das erste Kommando startet die Queue und verwendet das Standard-exim.conf-File wenn es existiert. Der zweite Befehl startet die Outgoing-Queue wenn das passende Konfigurationsfile exim_outgoing.conf exisiert.
Nun zum letzten Cron-Job:
Öffnen Sie /etc/cron.daily/exim, und suchen Sie folgende zwei Zeilen:

exim_tidydb /var/spool/exim retry <--/dev/null
exim_tidydb /var/spool/exim wait-remote_smtp<--/dev/null

Kopieren Sie diese zwei Zeilen und kopieren Sie den Inhalt direkt darunter, nun ändern Sie die Zeilen wie folgt ab:

exim_tidydb /var/spool/exim_incoming retry <--/dev/null
exim_tidydb /var/spool/exim_incoming wait-remote_smtp<--/dev/null
Exim-Konfiguration beendet!
Mailscanner
Mailscanner arbeitet grundsätzlich ohne weitere Konfiguration, dennoch benötigen wir einige Änderungen in /etc/mailscanner/mailscanner.conf. Ich habe das Folgende geändert:
virus scanning = yes

Checkt eingehende Nachrichten nach Viren

virus scanner = clamav

Verwendet clamav als Viren-Scanner

Sweep = /etc/mailscanner/wrapper/clamavwrapper

Definiert die Datei, die Mailscanner als interface mit dem Virenscanner verwendet.

Local Domains = ion-dreams.com

Definiert locale Hosts, *muss nicht verwendet werden*

Sign Clean Messages = yes

Schreibt eine Fußzeile in jedes Mail, welches als 'sauber' erachtet wurde (siehe Konfigurationszeilen genau darunter).

Spam Checks = no

Definition ob Mailscanner auch nach SPAM-Mails checken soll. Ich verwende ein eigenes Setup um mit Smapassin nach Spam zu checken - es gibt einem bessere Kontrolle. Wenn Sie einen Systemweiten SPAM-Check wünschen konfigurieren Sie diese Option mit 'yes'. In diesem Fall beachten Sie folgende Konfigurationsschritte ebenfalls::
Spam Modify Subject = yes

Modifiziert das Subjekt von erkannten Spam-Mails.

Spam Subject Text = *****SPAM*****

Was vor das Subjekt geschrieben werden soll (auch oft {SPAM})

Use SpamAssassin = yes

Um SpamAssasin zu verwenden.

Max SpamAssassin Size = 256000

Überprüfe keine Files die größer als 256kb sind.

Always Include SpamAssassin Report = no

Nur einen Report erstellen wenn Spam eintrifft. Um Spam zu filtern, lassen Sie ihren MUA nach dem entsprechenden Subject filtern, dies kann auch über folgende Header-Zeile erreicht werden:

Spam Header = X-MailScanner-SpamCheck:
Nun, editieren Sie folgende Zeile:

Minimum Code Status = beta

Dies ist nicht empfohlen, anders funktioniert das Setup aber leider nicht.
Mailscanner.conf beendet. Wir müssen nun das File /etc/default/mailscanner mit folgendem Inhalt erstellen:
# Mailscanner default file. # run_mailscanner: 1 to run at boot , 0 to not run at boot
run_mailscanner=1 #End of file
Fertig.

/etc/init.d/mailscanner start

um mailscanner/clamav zu starten. Es ist sinnvoll einige Test-E-Mails zu senden um zu erkennen was geschieht. Wenn Sie sauber sind, erkennt man dies im Header an 'X-MailScanner: Found to be clean'.
Für beide Versionen
Virusupate
In /etc/crontab kann folgender Eintrag ergänzt werden, somit wird jeden Tag um 5:00 die aktuelle Anti-Viren-DB heruntergeladen:

0 5 * * * root /usr/bin/freshclam --daemon-notify --quiet -l /var/log/clam-update.log
Problem 'Never heard of scanner 'clamav'!'
Für den Fall das mailscanner nach dem Start 'Never heard of scanner 'clamav'!' meldet liegt es daran, dass die falsche Version von mailscanner installiert wurde. Scheinbar wurde bei Versionsnummer 3.13.2-4 (link führt zu Debian-Package) noch keine clamav-Unterstützung angeboten.

Abhilfe:
/etc/mailscanner/mailscanner.conf --<-- virus scanner = clamav auskommentieren (damit mailscanner ohne fehler gestartet & gestoppt werden kann)
apt-get remove mailscanner (de-installation)
dpkg --purge mailscanner (alle konfig-files von mailsacnner löschen)

Version 3.27.1-1 (link führt zu Debian-Package) manuell herunterladen (mit lynx oder wget; installation mit apt-get install lynx oder apt-get install wget)
dpkg -i mailscanner 3.27.1-1

Nun Konfiguration von /etc/mailscanner/mailscanner.conf erneut durchführen. Wenn man nun die auskommentierte Liste von Viren-Scanner im Konfig-File ansieht, scheint nun clamav auf - bisher war das nicht der Fall; nun ist clamav-Unterstützung dabei.
Virentests
http://www.eicar.org/anti_virus_test_file.htm bietet ein Virus-Test-File an.


onestone
Administrator
Beitrag vom:
23-12-2003, 12:51:13

Zusatz 23.12.2003

Habe letztens apt-get update gemacht, mailscanner änderte sich. Hatte folgendes Problem laut /var/log/syslog:

Dec 23 12:08:31 puaschitz MailScanner[17892]: Could not read directory /var/spool/exim4/input

Dec 23 12:08:31 puaschitz MailScanner[17892]: Error in configuration file line 104, directory /var/spool/exim4/input for outqueuedir does not exist (or is not readable)

Dec 23 12:08:31 puaschitz MailScanner[17892]: Could not read directory /var/spool/exim4/input

Dec 23 12:08:31 puaschitz MailScanner[17892]: Error in configuration file line 104, directory /var/spool/exim4/input for outqueuedir does not exist (or is not readable)

Habe folgendes zur Lösung gemacht:

Cd /var/spool
ln -s exim_incoming exim4_incoming
ln -s exim exim4

os

-----------------------------------------------------
Kein Problem kann so komplex sein, dass es keine Lösung dafür gibt.


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04508
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06245
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1150
Comments: 0