Serie: Content Security mit Open Source, Teil 1

Linux-Gateway gegen Spam und Viren

25. Juni 2008, 22:00 Uhr | Martin Puaschitz/wj

Wer einen E-Mail-Server betreibt, kann die Spam-Thematik und das Risiko von Viren in E-Mails nicht ausklammern - zu groß sind die Gefahren und der mögliche Unmut der Benutzer. Lösungsmöglichkeiten gibt es viele, die allerdings meist hohe einmalige oder laufende Kosten verursachen. Eine preiswertere Alternative bietet die Open-Source-Gemeinde. Dank ihr lässt sich ein Anti-Viren-, Anti-Spam- und Anti-Phishing-System kostenlos und trotzdem Business-tauglich aufbauen und betreiben.

Im Jahr 2008 eine E-Mail-Adresse zu benutzen bedeutet fast zwangsläufig, auch Spam-Nachrichten
und Phishing-Angriffe zu erdulden. Außerdem finden sich in den meisten Postfächern immer wieder
Viren oder Trojaner. Kein Systemadministrator kommt deshalb umhin, einen professionellen Schutz
gegen die entsprechenden Risiken anzubieten.

Was den meisten kommerziellen Schutzmechanismen gemeinsam ist, sind recht hohe Kosten.
Allerdings gibt es auch professionelle Open-Source-Lösungen. Mit Linux und wenigen Programmen lässt
sich ein vollautomatisches Anti-Viren-, Anti-Spam- und Anti-Phishing-System einrichten, das die
produktiven E-Mail-Server vor Schädlingen schützt.

Als Testumgebung für diesen Artikel dient der in Bild 1 dargestellte schematische Aufbau.
Selbstverständlich kann das Konzept entsprechend der bestehenden Konfiguration vor Ort angepasst
werden. In unserem Modell existiert ein zentraler Internet-Uplink mit einer statischen IP-Adresse.
Dahinter wird die Firewall positioniert, die das interne Netzwerk schützt und Network Address
Translation (NAT) anbietet.

Es sind zwei Port-Weiterleitungen eingerichtet: Port 25 (SMTP) wird auf das Mail-Gateway
weitergeleitet und Port 80 auf den Webserver. Das Mail-Gateway liegt gleichzeitig im lokalen
Subnetz des Exchange-Servers. Die Anwender wiederum greifen ausschließlich auf den Exchange-Server
zu.

Das theoretische Konzept dazu lässt sich recht leicht erklären: Sobald ein externer Mailserver
eine Verbindung mit der statischen IP-Adresse auf Port 25 (SMTP) aufbauen möchte, wird die
Verbindung zu besagtem Mail-Gateway weitergeleitet. Dort wird die Nachricht empfangen und auf
Viren, Spam und Phishing überprüft. Danach wird die E-Mail entsprechend den zuvor getroffenen
Einstellungen zum Beispiel in Quarantäne gestellt oder an den Exchange-Server weitergeleitet.
Umgekehrt wird im Exchange-Server ein "Smarthost" definiert – also ein Default-Server, an den alle
ausgehenden E-Mails geschickt werden sollen; auch hier wird das von uns eingerichtete Mail-Gateway
angegeben.

Doch nun zur Praxis. Als Basis für das Mail-Gateway wählen wir Debian Linux 4.0 Etch in einer
Standardinstallation mit allen Sicherheits-Updates. Auf die Konfiguration der Hardware wird in
diesem Beitrag nicht weiter eingegangen.

Natürlich hängt die genaue Einrichtung vom Aufbau des einzelnen Netzwerks ab. Es ist zu
beachten,

dass die MX-Einträge im DNS auf unsere öffentliche IP-Adresse zeigen (damit
Mails für unsere Domain überhaupt unseren Servern zugestellt werden),

dass die notwendigen Domains in Exim nicht als "local domains", sondern
lediglich als "relay for" definiert werden (Exim würde sonst versuchen, die Mails lokal zuzustellen
– obwohl die User nicht vorhanden sind, da die Maschine lediglich als Gateway verwendet wird),
und

dass die IP-Adresse des Exchange-Servers auf dem Mail-Gateway relayen darf,
sprich: dass unser Mail-Gateway alles verarbeitet, was von Exchange kommt.

Exchange vorbereiten

In einem ersten Schritt muss der Exchange-Server dafür eingerichtet werden, künftig alle
ausgehenden E-Mails an einen so genannten "Smarthost"zu übermitteln, der sich dann um das Versenden
der Nachrichten kümmert. Die entsprechende Einstellung findet sich im "Exchange-Manager" unter dem
Punkt "Connectors": Den SMTP-Connector klickt man dort mit der rechten Maustaste an und wählt "
Eigenschaften". Danach kann der SMTP-Connector (wie in Bild 2 zu sehen) auf einen Smarthost
eingestellt werden. In Bild 2 heißt der Exchange-Server DC, und der Smarthost (also das
Mail-Gateway) hat die IP-Adresse 192.168.1.2.

Linux vorbereiten

Im nächsten Schritt sind die notwendigen Pakete zu installieren:

apt-get install mailscanner spamassassin exim4 clamav.

Man erkennt die Pakete "Mailscanner" (das Paket, das die Steuerung des Scan-Prozesses
ermöglicht), "Spam Assassin" (das Paket für die Spam-Untersuchung), "Exim4" (der bekannte Mail
Transfer Agent unter Debian) sowie "Clamav" (das Paket für die Antiviren-Untersuchung). Optionale
Pakete, die der Installer vorschlägt, sind zu akzeptieren. Die Installation läuft im Normalfall
ohne Rückfragen ab.

Einzig Exim4 wird während der Installation konfiguriert, allerdings ist dies auf vielen Geräten
auch schon vorab erledigt. Um die Konfiguration erneut durchlaufen zu lassen, ist folgender Befehl
notwendig:

dpkg-reconfigure exim4-config.

Achten Sie auf die Optionen "Lokale Zustellung", "Relay Domains" und "Smarthost": Die lokale
Zustellung ist auf dem Gateway nicht notwendig und kann deaktiviert werden. Als Relay-Domains sind
jene Domain-Namen einzutragen, für die unsere Server zuständig sind. Unter "Smarthost" ist die
IP-Adresse des Exchange-Servers anzugeben. Selbstverständlich können alle Änderungen auch direkt in
den Config-Dateien erfolgen.

Nach der Grundkonfiguration muss der Anwender definieren, welche Domains vom Mail-Gateway nach
der Prüfung an den Exchange-Server weiterzuleiten sind.

Hierzu erstellen wir entsprechende Einträge pro Zeile in /etc/exim4/hubbed_hosts:

Domainname.Domainendung IP-Adresse des Exchange-Servers

In einem nächsten Schritt muss die Grundkonfiguration von Exim abgeändert werden. Im Normalfall
besitzt Exim eine Queue (Warteschleife), in der eingehende E-Mails bis um Versand abgelegt bleiben.
Da wir allerdings einen Filtermechanismus einbauen, ist es notwendig, zwei getrennte Queues
einzusetzen. Das Paket "Mailscanner" holt die Nachrichten aus der ersten Queue, prüft diese auf
Spam, Phishing und Viren und legt geprüfte Nachrichten in die zweite. Daher 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

Nun erkennt man, dass die ursprüngliche Queue auf zwei unterschiedliche aufgeteilt wird: einmal "
Incoming", einmal "Outgoing". Dies aktivieren wir, indem Exim mit /etc/init.d/exim4 restart neu
gestartet wird. Ab sofort ist der Befehl "exim" aus der Kommandozeile unterschiedlich anzusprechen.
Die Incoming-Queue wird mit exim aufgerufen, während die Outgoing-Queue mit exim –DOUTGOING
aufgerufen wird. Die Konfiguration von Exim ist somit abgeschlossen. Exim kann als Daemon laufen
und sich selbstständig um die Abarbeitung der Queues kümmern. Alternativ kann in /etc/crontab
folgender Eintrag hinzugefügt werden, um beide Queues alle fünf Minuten abzuarbeiten:

*/5 * * * * Debian-exim /usr/sbin/exim4 -DOUTGOING -q */5 * * * * Debian-exim /usr/sbin/exim4
-q

In der nächsten Folge geht es um die Konfiguration des Mail-Scanners und der weiteren
Komponenten.


Lesen Sie mehr zum Thema


Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Lampertz GmbH & Co. KG

Matchmaker+