CHIP-Spezial: Linux als Mailserver
| |
Linux-Rechner arbeiten schon sei langer Zeit als Mail-Server. Bei
vielen Providern werden Linux-Rechner aufgrund des extrem guten
Preis-Leistungs-Verhältnisses und der hohen Flexibilität eingesetzt,
um Mails für Kunden und Mitarbeiter zu verwalten.
|
|
1. Debian-Installation |
Einer der wichtigsten und ältesten Dienste im Internet, wenn nicht der wichtigste überhaupt, Electronic-Mail. In der Anfangszeit des Internets wurden mit Hilfe von Unix-to-Unix-Copy (kurz: UUCP) Mails zwischen zwei amerikanischen Universitäten ausgetauscht. Die Verbindung war langsam, doch wurden damals auch noch nicht viele Mails geschrieben.
Das Verschicken von elektronischen Nachrichten fasziniert seitdem die Menschheit. Heutzutage stellt Mail immer noch einen extrem wichtigen Dienst im Internet dar. Die meisten Personen, die das Internet auf die eine oder andere Weise nutzen, verfügen über wenigstens eine eigene Mailbox. E-Mail ist heutzutage selbstverständlich.
Um E-Mail empfangen und versenden zu können, wird jedoch noch lange kein eigener Mailserver benötigt. Für viele Zwecke ist es völlig ausreichend, die Mailserver des Providers zu benutzen. Wenn ein Netzwerk mit (semi-) permanenter Verbindung zum Interenet betrieben werden soll, kann ein Mailserver jedoch sinnvoll werden.
Abb. 1: Austausch von Mails mit einem Client (z.B. Netscape)
Die nebenstehende Abbildung beschreibt den Ablauf ohne eigenen Mailserver. Mit Hilfe des Mail-Protokolls POP3 (alternativ auch IMAP) saugt das Mail-Programm (z.B. Netscape, kMail, Balsa, Mutt) vom Mail-Server im Internet die Mails Byte für Byte. Wenn sie auf den Rechner übertragen sind, können sie gelesen werden. Wird neue Mail geschrieben, so sendet das Mail-Programm (auch MUA oder "Mail User Agent" genannt) diese direkt an einen Mail-Server im Internet, der für diesen Client zuständig ist. Dieser leitet die Mail anschließend nach üblichen Regeln weiter.
Umfangreicher ist die Kommunikation mit einem eigenen Mailserver, die Sie in der nächsten Abbildung sehen. Die Mail wird von einem SMTP-Daemon empfangen und an den den Mail-Transport-Agent (MTA, z.B. »exim« oder »postfix«) weitergeleitet. Das kann auch ein und dasselbe Programm sein, Postfix hat z.B. einen eigenen SMTP-Daemon, »exim« macht alles selbst. Wenn die Mail lokal ausgeliefert werden soll, kann dieses über einen Mail-Delivery-Agent (MDA) erfolgen, der es in die Mailbox schreibt, die schließlich vom Mail-Client gelesen wird.
Abb. 2: Mail-Verkehr mit einem eigenen Mail-Server
Debian-Installation
Da auf einem Unix-System teilweise eine Menge Status-Nachrichten erzeugt werden und Unix-Systeme klassischerweise mit einem eigenen Mailserver ausgestattet sind, wird während der Installation von Debian GNU/Linux automatisch ein Mail-Server installiert. Es wird das Paket »exim« installiert, das am einfachsten zu konfigurieren ist und alle benötigten Funktionen bietet. Für große Server im Internet, auf denen viel Mails an viele unterschiedliche Adressen ausgeliefert werden sollen, eignet sich stattdessen vor allem Postfix besonders gut.
Abb. 3: Die Installation von »exim«
Einen Mailserver mit Debian GNU/Linux einzurichten, ist nicht schwer.
Während der Installation stellt die Installationsroutine mehrere
Fragen, anhand derer die Grundkonfiguration selbständig aufgebaut
wird. Normalerweise werden Sie dort die Option »Local delivery only«
auswählen. Sie bewirkt, daß der Mail-Server installiert und
konfiguriert wird, jedoch keine Verbindung zur Außenwelt hat oder
aufbaut. Das ist für den normalen Betrieb eines Linux-Rechners als
Arbeitsplatz vollkommen ausreichend.
Ein richtiger Mailserver?
Einen Mailserver im Internet zu betreiben, bedarf ein gutes Maß an Erfahrung und Fingerspitzengefühl. Die nötige Erfahrung erhält man nur dadurch, daß man die Programme und Protokolle studiert und ausprobiert. Dafür ist das heimische Netzwerk als "Spielplatz" hervorragend geeignet. Vor der Entscheidung, einen eigenen Server einzurichten sollte man sich jedoch Gedanken über die Gefahren machen:
- Wenn der Mailserver falsch konfiguriert ist, kann dieses zum Verlust von Mails führen. Es ist kein Administrator da, bei dem man sich beschweren kann, wenn man selbst für den Rechner verantwortlich ist.
- Der Mail-Server darf kein sogenanntes Offenes Relay darstellen. So wird ein Rechner bezeichnet, der Mails aus dem Internet für beliebige Empfänger annimmt und sie auch ausliefert. Auf diese Weise wird gerne SPAM (unverlangt zugeschickte kommerzielle Mail) verschickt. Wenn das passiert, ist Ärger vorprogrammiert.
- Viele große Mailserver verweigern die Annahme von Mails, wenn sie
direkt von einer IP-Nummer kommt, die zu einem Dial-Up-Adreßraum
gehört. Wer sich per ISDN, Modem oder DSL bei einem Provider
einwählt, wird daher Mail nicht an beliebige Empfänger ausliefern
können.
Abb. 4: Mail Abuse Preventing System - Einige Provider modifizieren Mails, wenn sie von einem Dial-Up-System via SMTP direkt an den Empfänger und nicht an das eigene Mail-System ausgeliefert werden. T-Online ist z.B. dafür bekannt, daß dort die »From:«-Zeile umgeschrieben wird.
- Falls keine permanente Verbindung zum Internet besteht, kann der Mailserver unkontrolliert die Verbindung aufbauen und für hohe Verbindungskosten sorgen, wenn keine Flatrate vorhanden ist.
Abb. 5: Exim-Homepage
Daneben gibt es natürlich auch Vorteile, die für den Einsatz eigenen Mailservers sprechen:
- Für den Versand von Mails ist man selbst verantwortlich und kann selbst kontrollieren, was wann wohin geschickt wird.
- Der Mail-Client kann nicht mehr durch das Senden von Mails blockiert sein, da Mails nur noch an ein Programm auf dem gleichen Rechner ausgeliefert werden. Dieses sorgt selbständig für den Versand.
- Innerhalb des lokalen Netzwerks können Mails verschickt werden ohne daß sie durch die Leitung zum Internet übertragen werden müssen.
- Wenn der Rechner über eine offizielle Adresse verfügt (keine Dial-Up-IP-Nummer), können auch Mailing-Listen und verschiedene Adressen betrieben werden.
Konfiguration
Debian stellt die Basiskonfiguration während der Installation des Pakets »exim« zusammen. Wenn sie nachträglich geändert werden soll, wird das Programm »eximconfig« aufgerufen, das die Konfiguration neu zusammenstellt und anschließend in »/etc/exim.conf« speichert. Während der Konfiguration müssen die folgenden Begriffe bekannt sein:
- Visible Name - Der sichtbare und offizielle Name dieses Rechners. Er wird in Mail-Headern verwendet. Wenn eine Mail verschickt wird, ohne komplette »From:«-Zeile, dann wird dieser Name dort eingefügt.
- Smarthost - So wird ein Mailserver bezeichnet, zu dem alle Mails geschickt werden, die nicht lokal ausgeliefert werden können (für lokale Benutzer) und dessen Auslieferung nicht in zusätzlichen Tabellen beschrieben ist. Der Smarthost muß daher Mails von diesem Rechner annehmen, unabhängig von der Zieladresse. Im Fall von Dial-Up-Systemen ist dieses der Mailserver des jeweiligen Providers.
- Zusätzliche Namen - Oftmals sollen Mails für verschiedene Adressen gleichermaßen angenommen und verteilt werden: »name@rechner.domain.de« und »name@www.domain.de« sowie »name@domain.de«.
- MX - Steht für »Mail eXchanger«, ein Rechner der Mails für andere Adressen annimmt und korrekt weiterleitet bzw. ausliefert. Dieses ist nur für Mail-Server mit festen IP-Nummern im Internet relevant.
- Relay - So wird ein Rechner bezeichnet, der Mails annimmt und weiterschickt. Ein Smarthost ist für andere Rechner ein Relay (s.o. Offenes Relay). Um den Rechnern im lokalen Netzwerk zu gestatten, über diesen Rechner Mails zu verschicken, müssen ihre Adressen entsprechend eingetragen werden. »/24« steht dabei für das gesamte Netzwerk z.B. 192.168.10.1 bis 192.168.10.254.
- RBL - Die Realtime Blackhole List ist eine Liste von unsicheren Mail-Servern, die in der Vergangenheit SPAM verschickt haben und dessen Administratoren dieses nicht unterbunden haben.
Das Programm »exim« ist so konfiguriert, daß es mit Hilfe des
Internet-Superservers »inetd« Mails vom SMTP-Port empfängt. Dieses
ist in »/etc/inetd.conf« eingetragen. Sobald der Rechner eine
Verbindung zum Internet hat, ist es daher möglich, daß Mail im eigenen
Rechner eingeliefert wird.
Mails lesen
Eingehende Mails werden im Verzeichnis »/var/mail« in die verschiedenen Mailboxen einsortiert. Die meisten Programme erwarten eine lokale Mailbox, wenn sie nicht anders konfiguriert wurden. Mit normalen Mail-User-Agents wie Mutt werden nun die eingehenden Mails gelesen.
Wenn Sie jedoch den Linux-Rechner als Server verwenden und Mails von einem anderen Rechner lesen möchten, bietet es sich an, einen POP3-Daemon zu installieren und damit anderen Rechnern im Netzwerk paßwortgeschützten Zugriff auf die Mailboxen auf dem Linux-Rechner zu geben. Seien Sie jedoch gewarnt, das POP3-Protokoll ist nicht auf Sicherheit getrimmt, Paßwörter werden üblicherweise im Klartext übertragen, also unverschlüsselt. Um Zugriff auf Mails mit POP3 zu ermöglichen, installieren Sie das Paket »ipopd« mit dem Befehl:
apt-get install ipopd
Abb. 6: So tragen Sie Ihren eigenen Server in Netscape in
Wenn Sie auf den Arbeitsplatzrechnern Netscape einsetzen, dann müssen Sie dort lediglich Ihren Namen, Ihre E-Mail-Adresse sowie die Namen der Server einstellen. Dazu wählen Sie im Menü den Eintrag »Edit | Preferences« aus, worauf das Preferences-Fenster aufpopt. Dort tragen Sie die Einstellungen in den Menüpunkten »Identity« und »Mail Servers« im Zweig »Mail and Newsgroups« ein. Bei »Outgoing Mail Server« sowie »Server Name« tragen Sie den Namen bzw. die IP-Nummer des Linux-Rechners ein und bei »User Name« Ihr Login auf dem Linux-Rechner.
Abb. 7: Mit »fetchmailconf« läßt sich »fetchmail« bequem konfigurieren
Mails automatisch holen
Unix wäre nicht Unix, wenn man nicht Aufgaben automatisieren könnte. Wenn auf dem Rechner ein Mail-Server installiert ist, dem Rechner jedoch keine dauerhafte IP-Nummer zugewiesen wurde, dann werden Mails normalerweise nicht über den SMTP-Port von außerhalb empfangen, die Adresse ändert sich ja bei jeder Einwahl. Stattdessen wird ein Mail-Server des Providers benutzt, auf dem Mails eingehen und von dem sie per POP3 abgeholt werden müssen.
Dieses muß jedoch nicht mit einem Mail-Client erledigt werden, sondern kann auch bequem mit »fetchmail« geschehen. Das Programm baut eine Verbindung zu einem POP3-Server auf, authentifiziert sich anhand der Einstellungen, saugt die Mails, löscht sie auf dem Server, falls das gewünscht ist, und füttert das lokale Mail-System mit den gesogenen Mails. Dazu wird bei normaler Konfiguration ein funktionierendes lokales Mail-System benötigt. Wer »fetchmail« nicht manuell in einer Datei konfigurieren möchte, hat mit dem Programm »fetchmailconf« aus dem gleichnamigen Paket eine einfache grafische Möglichkeit dazu.
Abb. 8: Postfix-Homepage
Andere Mailserver
Auf großen Mail-Servern, die viel Mails verarbeiten und viele Mails verschicken, werden aus Performance-Gründen oft andere Programme als »exim« eingesetzt. Die Programme »postfix«, »sendmail« und »qmail« verhalten sich flexibler und schicken Mails schneller raus. Sie sind jedoch allesamt auch komplizierter zu konfigurieren und zu warten als »exim«.
Während »sendmail« pur nur von wenigen verstanden wird, läßt sich das Programm über Makros jedoch in akzeptabler Weise einrichten. Postfix ist relativ neu und wird mit extrem gut dokumentierten Konfigurationsdateien ausgeliefert. Abgerundet werden diese durch viele, ebenfalls gut kommentierte, Beispiele in »/usr/doc/postfix/examples/«.
Ressourcen
- Exim-Homepage
- Fetchmail-Homepage
- Postfix-Homepage
- Sendmail-Homepage
- Mail Abuse Preventing System
- Open Relay Behaviour-modification System
![[Die Installation von »exim«]](eximinst-4-small.png)
![[Mail Abuse Preventing System]](mapsweb-small.png)
![[Exim-Homepage]](eximweb-small.png)
![[So tragen Sie Ihren eigenen Server in Netscape in]](nsmail1-small.png)
![[Mit »fetchmailconf« läßt sich »fetchmail« bequem konfigurieren]](fetchmail1.png)
![[Postfix-Homepage]](postfixweb-small.png)