Microsoft Mailserver absichern

Veröffentlicht: 28. Mai 2003 | Aktualisiert: 11. Nov 2004

Von Hannes Preishuber

Der Microsoft IIS (Internet Information Services) macht vor allem durch seine zahlreichen Sicherheitslücken von sich reden, wobei meist nur ein Teilbereich, nämlich der Web Server, davon betroffen ist. Von den zahlreichen anderen Diensten wird nur selten gesprochen. Dabei ist der beinhaltete Mailserver von großem Nutzen. Durch mangelndes Hintergrundwissen oder durch schlechte Administration kann dieser jedoch ein erhebliches Sicherheitsrisiko darstellen. Aber auch ein gut abgesichertes System steckt noch voller Optimierungsmöglichkeiten.

ASP .NET professional - Partner von MSDN Online

Diesen Artikel können Sie dank freundlicher Unterstützung von ASP .NET professional auf MSDN Online lesen. ASP .NET professional ist ein Partner von MSDN Online.

Partner von MSDN Online

Auf dieser Seite

 Installation
 Funktionsweise
 Verwendungszweck
 Sicherheit
 Sicher ist Sicher?

Installation

Je nach verwendetem Betriebssystem fällt die Vorgehensweise bei der Installation unterschiedlich aus. Allen gemeinsam ist aber, dass das Setup über die Windows Komponenten gestartet wird. Diese finden Sie in der Systemsteuerung unter Software. Einzig bei NT 4 verläuft die Installation über das nachgelieferte Option Pack. Der Mailserver verbirgt sich in der Option SMTP-Dienst (Simple Mail Transfer Protocol).

Microsoft+Mailserver+absichern_1.jpg

Installation des SMTP Dienstes

Im Ergebnis wird tatsächlich ein Dienst in Betrieb genommen, den Sie über den Dienstmanager auch stoppen und wieder starten können. Bei genauer Betrachtung lässt sich feststellen, dass damit der Inetinfo Prozess gesteuert wird. Falls es Probleme mit dem SMTP- Dienst gibt, kann man den IIS in der Regel gefahrlos deinstallieren und wieder neu installieren. Eine Ausnahme tritt ein, wenn der Exchange Server 2000 installiert ist. Dieser nutzt den SMTP-Dienst und funktioniert ohne ihn nicht mehr. In diesem Zusammenhang sei auch die Inkompatibilität zwischen Exchange Server 5.5 und SMTP-Dienst erwähnt.

Die Einstellungen des SMTP-Dienstes werden IIS-üblich in der Metabase gespeichert. Diese lässt sich über Tools wie die MMC (Management Console) sichern und wiederherstellen. Für die Verwaltung des SMTP Service stehen drei Optionen zur Verfügung.

Kommandozeile
Die wichtigsten Jobs, wie das Starten oder Stoppen, lassen sich über die Kommandozeile erledigen. So können Sie zum Beispiel den Server per Kommandozeile remote über eine Telnet Session steuern.

Net Stop smtpsvc

Script-basiert
Dabei wird per VBScript und ADSI-Objekt (Active Directory Service Interface) direkt in die Metabase geschrieben.

IIS Snap-In
Der häufigste Fall ist sicherlich die MMC. Damit lassen sich auch mehrere SMTP Server zentral und visuell managen.

Nach der Installation findet sich unterhalb des Inetpub Verzeichnis Mailroot mit sieben Unterpunkten. Achten Sie gegebenenfalls darauf, dass bei fehlenden Rechten in dieser Struktur Probleme auftauchen können.

Badmail

Fehlerhafte und nicht zustellbare Mails

Drop

Eingehende E-Mails

Mailbox

Ohne direkte Verwendung

Pickup

Job-Aufnahme

Queue

Jobs in Bearbeitung

Route

Ohne direkte Verwendung

SortTemp

Ohne direkte Verwendung

Mails werden immer als Textdateien gehandhabt und lassen sich direkt mit dem Notepad öffnen. Sollte es sich um Mails im Drop-Verzeichnis handeln, ist sogar das direkte Öffnen mit Outlook Express möglich. Um eine Mail zu versenden, wird diese in das Pickup-Verzeichnis gestellt.

 

Funktionsweise

SMTP ist ein sehr einfaches Protokoll, das für das Versenden von E-Mails zum Einsatz kommt. Mailserver verwenden SMTP, um sich gegenseitig die Mails zuzuschieben. Dies ist einer der wenigen Push-Prozesse im Web. Der Mailserver von Microsoft unterstützt kein POP (Post Office Protocol) oder das neuere IMAP. Beide sind für das Abholen von E-Mails bestimmt und kommen nur bei Mailclients zum Einsatz.

Wie gelangen Sie nun an die Nachrichten, wenn dafür kein Protokoll bereitsteht? Sie brauchen ein Drop-Verzeichnis, in das eingehende Mails abgelegt werden.

Doch zunächst zu den Grundlagen. Ein Mailserver lässt sich ganz einfach per Telnet direkt ansprechen. Dazu müssen Sie nur den Namen oder die IP-Adresse wissen. Der Port ist in 99% der Fälle 25. Bei NT 4 verwendet man den visuellen Telnet, bei Windows 2000 die Kommandozeile.

Telnet 127.0.0.1 25

Bei allen Herstellern lassen sich Mailserver in der angegebenen Weise ansprechen, was gleichzeitig eine hervorragende Möglichkeit ist, die Funktion zu testen. Aus der Antwort können Sie auch den verwendeten Mailserver erkennen.

220 XP-PRE.dom-ppa01.ppedv.de Microsoft ESMTP MAIL Service, Version: 6.0.2600.11 
06 ready at  Mon, 30 Dec 2002 20:24:32 +0100

Als Nächstes erwartet der Server eine Art Begrüßung mit dem HELO-Kommando. Diesem gibt man seine Domain als Parameter mit.

HELO ppedv.de

Als Antwort sollten Sie eine 250er-Meldung erhalten. Manche Mailserver beginnen bereits hier mit Sicherheitssperren anhand des HELO Domain-Namens. Der Microsoft XP SMTP Webserver meldet sich in etwa so zurück:

250 XP-PRE.dom-ppa01.ppedv.de Hello [127.0.0.1]

Nun können Sie mit wenigen Kommandos eine E-Mail versenden.

mail from:hannesp@ppedv.de

Der Response des Mailservers sollte dann wie folgt aussehen:

250 2.1.0 hannesp@ppedv.de....Sender OK

Als Nächstes geben Sie den oder die Empfänger an.

rcpt to:info@aspnet-professional.de

An dieser Stelle greift ein Schutzmechanismus des Providers und verhindert das unautorisierte Senden.

550 5.7.1 Unable to relay for info@aspnet-professional.de

Es gibt hier die verschiedensten Arten der Einschränkung. Aus historischen Gründen ist eine Benutzerauthentifizierung bei SMTP nicht vorgesehen, und so wurden diese sehr unterschiedlichen Schutzmechanismen entwickelt.

IP-Bereich
Provider wie T-Online oder UUNET erlauben das Senden von Mails nur, wenn der Sender eine IP-Adresse aus einem bestimmten Subnetz hat. In der Praxis weis der Provider durch die Anmeldung bei der Einwahl die IP und erlaubt dann das senden über den SMTP Server solange die Verbindung steht.

SMTP after POP
Hosting Provider wie Schlund erlauben das Senden nur nach vorherigem Abholen eines POP3-Kontos. Damit wird auf Umwegen die IP-Adresse oder E-Mail Adresse des Senders für ein schmales Zeitfenster freigegeben. Dies ist kein Standard und führt oft zu Problemen.

Relay-Beschränkung
Es werden nur Empfängeradressen akzeptiert, die ihren Endpunkt auf diesem Mailserver haben. Eine Weiterleitung an einen anderen Mailserver ist nicht möglich.

Senderbeschränkung
Der Mailserver prüft, ob der Sender eine passende Domain für den Mailserver besitzt.

Andere Beschränkungen
Manche Mailserver können zusätzlich prüfen, ob eine Mailbox einen gewissen Füllgrad erreicht hat, und lehnen dann weitere Nachrichten ab. Der Microsoft SMTP Server kennt zwar keine Benutzerkonten, kann aber trotzdem zum Beispiel die Größe der zulässigen Nachrichten beschränken.

SMTP-Authentifizierung
In neueren Implementierungen des SMTP-Protokolls sind die Mechanismen für eine Benutzeranmeldung beinhaltet.

Wenn der Empfänger akzeptiert wurde, lässt sich der Mail Body erstellen. Dieser wird mit dem Befehl Data eingeleitet.

data

Geben Sie nun den Text ein und schließen die Mail mit der Tastenfolge Return Punkt Return. Die Mail steht zum Versand bereit.

354 Start mail input; end with <CRLF>.<CRLF> 
das wird meine Mail 
keine Kopfzeile 
. 
250 2.6.0 <<A href="mailto:XP-PREdkxMx62f7ms9n00000001@XP-PRE.dom-ppa01.ppedv.de">
XP-PREdkxMx62f7ms9n00000001@XP-PRE.dom-ppa01.ppedv.de</A>> Queued mail for delivery

Damit befindet sich die Mail als Textdatei im Queue-Verzeichnis, bis sie versendet werden kann.

Mail senden
Wenn der Mailserver anhand der Einstellungen erkennt, dass diese Mail nicht für ihn bestimmt ist, versucht er sie weiterzuleiten (relay). Dazu gibt es zwei grundsätzliche Methoden die jetzt vorgestellt werden.

Relay Server
Dabei handelt der Server nach dem Motto "Ich weiß zwar nichts Genaues, ich kenne aber jemanden, der es wissen könnte". Dieser Jemand ist der Relay Server und heißt bei Microsoft Smart Host.

Microsoft+Mailserver+absichern_2.jpg

Smart Host zum Weiterleiten von E-Mails

Die Maske findet sich in den Eigenschaften des SMTP Servers unter dem Reiter Übermittlung hinter dem Button Erweitert. Ein pikantes Detail am Rande ist, dass bei Eingabe einer IP-Adresse diese in eckige Klammern gestellt werden muss:

[192.168.0.1]

Namensauflösung
Wie findet nun eigentlich eine E-Mail ihren Weg zum Zielserver? Im Regelfall geschieht dies über die Namensauflösung. Dazu versucht jeder Mailserver, seinen DNS (Domain Name Server) nach dem Namen aus der E-Mail-Adresse zu befragen. In den Tiefen des DNS-Systems findet sich im Erfolgsfall der so genannte MX-Eintrag (Mail Exchanger), der die IP-Adresse des Ziels bekannt gibt.

info@aspnet-professional.de wird nach aspnet-professional aufgelöst und ergibt die IP-Adresse 80.146.208.52. Wenn der Smart-Host-Eintrag leer bleibt, ist dies die Methode des SMTP Servers.

Wird nun eine Mail versendet, übermittelt Ihr Mailclient sie an Ihren Mailserver. Dieser sendet die Mail direkt an den Zielserver, an dem sie der Empfänger sofort abholen kann. Die Laufzeit der E-Mail liegt im Sekundenbereich. Wenn der Zielserver nicht bereit ist, muss Ihr Server die Übermittlung immer wieder versuchen.

Bei der Verwendung von Weiterleitungsservern verschwindet die Mail sofort von Ihrem Server, aber die gesamte Laufzeit ist meist deutlich höher. Das Verwenden eines Smart Hosts bietet sich deshalb speziell bei Einwahlverbindungen an.

Die fehlerhafte Namensauflösung ist die häufigste Ursache für nicht versendete E-Mails. Dabei kann ein falsch angegebener DNS Server in den TCP/IP-Einstellungen oder eine Firewall die Fehlerquelle sein. Wenn es Probleme gibt, versuchen Sie es mit einem Smart Host über die IP-Adresse direkt.

 

Verwendungszweck

Der Microsoft SMTP Server ist kein vollwertiger Mailserver. Es fehlen wichtige Protokolle wie POP3 und IMAP und eine User-Verwaltung. Allerdings gibt es eine Menge Software wie SQL Server oder Überwachungstools, die ihren Status per E-Mail verschicken. Das erspart den zeitintensiven Verbindungsaufbau zum Zielserver. Außerdem ist einigermaßen sichergestellt, dass die Nachricht verschickt werden kann. Die Entwickler müssen also nicht selbst dafür sorgen, dass die Anwendung sauber weiterläuft, wenn eben kein Mailserver greifbar ist.

Für das Versenden aus eigenen Anwendungen steht zum Beispiel das CDO-Objekt (Coloberative Data Object) bereit. Mit ihm lassen sich komfortabel Mails über den Microsoft SMTP Server senden. Auch aus einer Website heraus müssen Mails versendet werden. Dazu gibt es den Namensraum System.Web.Mail, in dem sich eine einfache Kapselung des CDO-Objektes befindet.

Set objMail = Server.CreateObject("CDONTS.NewMail") 
objMail.To = "<A href="mailto:you@ppedv.de">you@ppedv.de</A>"  
objMail.From = "<A href="mailto:ppedv@ppedv.de">ppedv@ppedv.de</A>"  
objMail.Value("Reply-To") = "<A href="mailto:me@ppedv.de">me@ppedv.de</A>"  
objMail.Subject = "Hi there from me" 
objMail.Body = "This is a test message" 
objMail.Send 
Set objMail = Nothing

Zum Testen von Webanwendungen können Sie auch den SMTP-Dienst stoppen. Die Mails sammeln sich dann im Pickup-Verzeichnis. Wie schon ausgeführt, lassen sich diese mit einem Texteditor öffnen, um die Funktion zu prüfen.

 

Sicherheit

Mit der offenen und einfachen Architektur haben sich leider erhebliche Sicherheitslücken eingeschlichen. Lange Zeit waren die Mailserver komplett ungeschützt und offen. Man konnte sich auf einen beliebigen Server verbinden lassen und über ihn Mails versenden. Noch problematischer waren dann Mails mit gefälschtem Absender. Eine Bestellung über den Microsoft SMTP Server mit dem Absender billg@microsoft.com ist für den Empfänger nicht als manipuliert zu identifizieren. Ganz schlimm wurde es mit dem Aufkommen von Spam Mails: Keiner wollte sich wirklich offenbaren und so wurden kurzerhand die Server von anderen für den Massenversand benutzt.
Um diesen Risiken entgegenzutreten, wurden einige sehr wirkungsvolle Schutzmechanismen entwickelt.

IP-Adresse
Beginnen wir gleich mit der einfachsten, radikalsten und wirkungsvollsten Methode: Beschränken Sie den Zugriff auf den SMTP Server auf die IP-Adresse 127.0.0.1. Damit kann garantiert nur der lokale Computer den SMTP Server nutzen. Nicht einmal mit einer gefälschten IP-Adresse lässt sich der Server ansprechen, da diese nicht route-bar ist.

Microsoft+Mailserver+absichern_3.jpg

Beschränkung auf IP Adressen

Natürlich dürfen Sie auch die echte IP-Adresse eintragen. Allerdings ist dann ein Versenden der E-Mails von anderen Computern aus gänzlich ausgeschlossen. Dies könnte aber erwünscht sein, um auch Clients das Senden zu ermöglichen In der Praxis ist es deshalb nützlich, einem ganzen Subnetz den Zugriff zu erlauben. Die dritte Möglichkeit erlaubt das Eintragen einer Domain, die allerdings jedes Mal per Reverse Lookup DNS aufgelöst werden muss. Das ist zum einen langsam und zum anderen sind viele IP-Netze nicht korrekt erfasst. Hilfreich ist auf jeden Fall eine Liste mit den Namen derer, denen man die Erlaubnis erteilen oder verweigern möchte.

Die genannte Methode eignet sich nur, wenn der SMTP Server einzig zum Versenden von E-Mails bestimmt ist. Dabei können Sie allerdings kein SMTP Client verwenden, sondern nur das CDO-Objekt. Bedenken Sie außerdem, dass eingehende E-Mails abgelehnt werden. Der SMTP Server muss in diesem Fall direkt am Webserver laufen.

Wenn man es nicht ganz so restriktiv angehen möchte, kann man den IP-Adressbereich auf das Relaying von E-Mails beschränken. Diese Option findet sich unter dem Reiter Zugriff in der Weitergabebeschränkung. Damit kann Ihr Webserver per CDO oder SMTP Mails versenden. Externen Mailservern wird außerdem erlaubt, Nachrichten zu senden, die dann im Drop-Verzeichnis landen.

Grabbern aus einem fremden IP Range wird allerdings der Zugriff auf den Server verwehrt, wenn der Empfänger nicht auf dem Server liegt, das Mail also weitergeleitet werden müsste.

Dies ist die wichtigste Methode, um sich vor hohen Transferkosten zu schützen. Leider gibt es im Web zahlreiche Black Lists von offenen SMTP Servern, auf denen Ihr Server auch bald landen könnte. Dann ist Spam-Verkehr garantiert und viele Provider sperren jegliche Weiterleitung von Mails, die mit dieser IP-Adresse versendet wurden. Sie wundern sich dann, warum keine Mails mehr ankommen.

Microsoft+Mailserver+absichern_4.jpg

Beschränkung der Weitergabeberechtigung

Neuere E-Mail Clients unterstützen inzwischen eine Anmeldung für den Sendevorgang. So können Sie auch von unterwegs unter einer "fremden" IP-Adresse den Server zum Senden verwenden. Für den Mailverkehr unter den Mailservern ist dies nicht geeignet, da ansonsten alle die Benutzerdaten jedes anderen besitzen müssten. Das ist wieder unsicher und zudem verwaltungstechnisch kaum machbar. Hier kommt lediglich die Erlaubnis zum Tragen, eine Mail abzugeben, die für diesen Server bestimmt ist.

Domains
Die Steuerung, welche Mails für welchen Server bestimmt sind, wird über die Domains durchgeführt. Wenn Ihr Mailserver alle Mails an aspnet-professional.de annehmen soll, legen Sie einfach eine Alias-Domain mit diesem Namen an. Egal ob an Info@aspnet-professional.de oder xxx@ usw., alles landet im Drop-Verzeichnis und wird nicht weitergesendet. Es darf nicht vergessen werden, dass der MX-Eintrag im DNS-System auch auf die IP-Adressse dieses Servers zeigen muss, um E-Mails aus dem Internet zu empfangen.

Microsoft+Mailserver+absichern_5.jpg

Mit der MMC Domains einrichten

Wenn der SMTP Server in einer Kette von Relay Servern hängt und so ein Domain-Eintrag exisitiert, werden die zur Domain passenden Mails rausgefiltert und ins Drop-Verzeichnis gelegt. Im praktischen Beispiel würde eine E-Mail an ppedv.de ihr Ziel nicht erreichen, da der Mailserver glaubt, er sei der Endpunkt-Server.

Die zweite Möglichkeit beim Einrichten der Domains ist eine Remote-Domain. Dabei handelt es sich um eine Art Routing-Eintrag für Mails, der zu einer bestimmten Domain führt. Man könnte festlegen, dass Mails an die Domain ppedv.de direkt zur uns bekannten IP-Adresse des Zielservers gesendet werden.

Microsoft+Mailserver+absichern_6.jpg

Domaineigenschaften

Ein praktischer Anwendungsfall ist bei externem SMTP Server am Webserver. Mails, die für den internen Gebrauch bestimmt sind, werden hier direkt auf den internen Mailserver (z.B. Exchange) geleitet.

Mittelbare Sicherheit
Die zweithäufigste Fehlerquelle bei SMTP Servern sind Denial of Service Attacks. Dabei werden entweder sehr viele Mails oder sehr große Mails an den Server gesendet. Dies kann absichtlich oder durch unwissende Nutzer, die sich einen Virus eingefangen habe, geschehen.
Auch dagegen gibt es einige Schutzmechanismen.

Protokollierung
Es kann gar nicht oft genug erwähnt werden, wie wichtig die aktivierte Protokollierung ist. Sie sollten für jeden Tag einzelne Logfiles erzeugen. Ein einfacher Blick in das Verzeichnis genügt, um sofort zu sehen, ob eine Datei wesentlich größer ist als andere. Mit einem Texteditor kann dann jeder einzelne Vorgang bis ins Detail analysiert werden.
Es gibt aber auch viele visuelle Analyse-Tools, um diese Information übersichtlich zu gestalten.
Das Tool .NET Analyzer können Sie über die Website des Magazins kostenlos verwenden.

Microsoft+Mailserver+absichern_7.jpg

Protokolierung aktivieren

Eine weitere Möglichkeit ist, die Anzahl der gleichzeitigen Verbindungen zu minimieren. So sinkt die Anzahl der zu versendenden E-Mails. Bieten Sie allerdings selbst einen Newsletter an, wirkt das als Bremse.

Je nach Einsatzzweck Ihres SMTP Servers sind weitere Begrenzungen sinnvoll. Wenn nur die Adressdaten von Eingabeformularen verschickt werden sollen, ist die Nachrichtengröße in der Regel weniger als 3 KB. Wenn Sie keine CC- oder BCC-Einträge haben und immer nur einen Empfänger angeben, lässt sich die Anzahl der Empfänger pro Nachricht beschränken. Dies haben übrigens viele Provider aktiviert, um ein BCC Spamming zu verhindern.

Microsoft+Mailserver+absichern_8.jpg

Nachrichten regeln definieren

Es lässt sich auch ein Postmaster definieren, der Kopien aller unzustellbaren Mails erhält. Dies kann eine gänzlich andere E-Mail-Adresse auf einem anderen Mailsystem sein. Wenn ein Spammer Ihren Mailserver übernimmt, sind in der Regel viele unzustellbare Adressen dabei. Das Postfach des Postmasters quillt dann binnen Minuten über.

Standardanalyse
Neben diesen Möglichkeiten gibt es noch viele andere Methoden, die per Standard im Betriebssystem enthalten sind. Wenn Sie keinen Mailserver verwenden wollen, schalten Sie diesen nicht nur aus, sondern deinstallieren ihn völlig. Manche Trojaner bringen ihre Mailserver gleich selber mit. Dagegen hilft eine Sperre des Port 25 zuverlässig. Sie lässt sich in den Eigenschaften des TCP/IP Protokolls unter Optionen in der TCP/IP Filterung einstellen. Dabei ist zu beachten, dass anschließend auch keine DNS-Auflösung mehr funktioniert, da sie dynamische Ports verwendet.

Auch mit dem eingebauten Systemmonitor lässt sich etwas für die Sicherheit tun. So können Sie zum Beispiel die Auslastung der Netzwerkschnittstelle live mitverfolgen und einen Schwellwert definieren. Wenn nun ein Angriff auf den Server erfolgt und der Traffic einen Spitzenwert erreicht, kann der Performance Monitor eine E-Mail an den Admin senden oder einen Eintrag ins Event Log machen. Der Performance Monitor ist so mächtig, dass man gerne mindestens einen Artikel darüber verfassen möchte.

 

Sicher ist Sicher?

Sicherheit beginnt im Kopf. Es kann gar nicht ausreichend viele Tools geben, um ein System wirklich sicher zu machen. Ihr Nutzen hängt wie immer vom Menschen ab, der diese bedient. Dabei muss man aber deutlich sagen, dass eine höhere Sicherheit fast immer einen verminderten Komfort bedeutet. Auch wenn die Meinung immer wieder durch die Presse geistert: der SMTP Server ist nicht per se unsicher. Allerdings ist er nach der Installation offen wie ein Scheunentor. Das ist für Testzwecke wunderbar, aber für den Webeinsatz brandgefährlich. Umso wichtiger ist es, hier mit dem nötigen Wissen und mit Umsicht zu Werke zu gehen. Ein unsicherer Webserver schadet nur Ihnen selbst. Und ein unsicherer SMTP Server schadet vielen Nutzern im Internet, die mit Ihnen gar nichts zu tun haben.