Suche im Katalog
Linux Netzwerker-Handbuch

Linux Netzwerker-Handbuch


Tony Bautts, Terry Dawson & Gregor N. Purdy
3. Auflage Juli 2005
ISBN 3-89721-414-8
382 Seiten
Weitere Informationen zur gedruckten Version des Buches finden Sie unter:
www.oreilly.de/catalog/linag3ger/

Zur Übersicht aller OpenBooks


TOC PREV NEXT INDEX

Kapitel 15

IMAP

Das Internet Message Access Protocol (IMAP) wurde entwickelt, da ein Bedarf nach einem mobilen E-Mail-Zugriff entstand. Die meisten Menschen lesen Mail von vielen unterschiedlichen Orten aus (Büro, Zuhause, Hotelzimmer usw.) und wünschen sich solch flexible Funktionen wie die Fähigkeit, zuerst die Header und anschließend ausgewählte Mail-Nachrichten herunterzuladen. Das wichtigste Mail-Auslieferungsprotokoll für das Internet war vor IMAP das POP-Protokoll, das eine eher rudimentäre Funktionalität liefert und Mails ausschließlich ausliefert.

Mit IMAP können Benutzer, die auf Reisen sind, von überall her auf ihre E-Mails zugreifen und sie ganz nach Wunsch herunterladen oder auf dem Server lassen. POP funktioniert im Gegensatz dazu nicht besonders gut, wenn die Benutzer von unterschiedlichen Maschinen aus auf ihre E-Mails zugreifen; am Ende sind die E-Mails über viele verschiedene E-Mail-Clients verstreut. IMAP bietet Benutzern die Möglichkeit, aus der Ferne mehrere E-Mail-Postfächer zu verwalten sowie alte Nachrichten zu speichern, zu durchsuchen und zu archivieren.

IMAP - Eine Einführung

IMAP, das im RFC 3501 vollständig dokumentiert ist, wurde geschaffen, um einen robusten, mobilen Mechanismus zum Ausliefern von und zum Zugreifen auf E-Mails zu bieten. Falls Sie Genaueres über das Protokoll und wie es auf der Netzwerkschicht funktioniert wissen wollen oder nähere Informationen über die verschiedenen Spezifikationsoptionen suchen, schauen Sie bitte in die RFC-Dokumentation.

IMAP und POP

POP und IMAP werden oft in einem Atemzug genannt oder miteinander verglichen. Das ist aber ein bisschen unfair, da sie sich auf vielerlei Weise unterscheiden. POP wurde als einfaches Hilfsmittel zum Ausliefern von Mails geschaffen und erledigt diese Aufgabe ziemlich gut. Die Benutzer stellen eine Verbindung zum Server her und beziehen ihre Nachrichten, die dann im Idealfall vom Server gelöscht werden. IMAP verfolgt einen völlig anderen Ansatz. Es fungiert als Bewahrer der Nachrichten und stellt einen Rahmen zur Verfügung, in der die Benutzer die gespeicherten Nachrichten effizient manipulieren können. Administratoren und Benutzer können POP zwar so konfigurieren, dass es die Nachrichten auf dem Server speichert, allerdings wird das schnell ineffizient, da ein POP-Client jedes Mal alle alten Nachrichten herunterlädt, wenn die Mails abgefragt werden. Das erweist sich ganz schnell als unpraktisch, wenn der Benutzer eine Menge E-Mails empfängt. Für Benutzer, die keinen Wert auf Portabilität legen oder nur wenige E-Mails erhalten, ist POP wahrscheinlich eine akzeptable Wahl. Alle anderen jedoch, die sich eine größere Funktionalität wünschen, werden eher IMAP benutzen.

Welches IMAP sollten Sie wählen?

Sobald Sie beschlossen haben, dass IMAP für Sie geeignet ist, haben Sie zwei Möglichkeiten. Die beiden Hauptrichtungen sind Cyrus-IMAP und der IMAP-Server der University of Washington. Beide folgen der RFC-Spezifikation für IMAP und weisen Vor- und Nachteile auf. Sie benutzen außerdem unterschiedliche Mailbox-Formate und können nicht zusammen verwendet werden. Einen wichtigen Unterschied zwischen den beiden finden Sie in Cyrus-IMAP. Es benutzt nicht /etc/passwd für seine Mail-Konto-Datenbank, so dass der Administrator Mail-Benutzer nicht extra in die System-Kennwortdatei einfügen muss. Diese Möglichkeit ist für Systemadministratoren sicherer, da das Anlegen von Konten auf Systemen als Sicherheitsrisiko angesehen wird. Allerdings lässt die Einfachheit der Konfiguration und Installation UW-IMAP oft attraktiver erscheinen. In diesem Kapitel konzentrieren wir uns vor allem auf die beiden verbreitetsten IMAP-Server: UW-IMAP wegen seiner Beliebtheit und der Einfachheit seiner Installation und Cyrus-IMAP wegen seiner zusätzlichen Sicherheitsfunktionen.

UW-IMAP

Sie finden UW-IMAP, wie der Name schon nahe legt, an der University of Washington. Deren Website http://www.washington.edu/imap/ enthält verschiedene Dokumentationen und Implementierungsvorschläge sowie einen Verweis auf die FTP-Site mit dem Software-Repository. Es sind eine Vielzahl unterschiedlicher Versionen in verschiedenen Formen erhältlich. Der Einfachheit halber bietet das UW-IMAP-Team einen direkten Verweis auf die neueste Version: ftp://ftp.cac.washington.edu/mail/imap.tar.Z.

UW-IMAP installieren

Sobald der Server heruntergeladen und ausgepackt wurde, kann er installiert werden. Wegen seiner großen Portabilitätsdatenbank bietet UW-IMAP keine Unterstützung für GNU-automake, das heißt, es gibt kein configure-Skript. Stattdessen wird ein Makefile verwendet, das auf vom Benutzer festgelegte Parameter zurückgreift. Es werden viele Betriebssysteme unterstützt, einschließlich einer Reihe von Linux-Distributionen. Hier ist eine Liste einiger der unterstützten Linux-Distributionen:

# ldb Debian Linux
# lnx Linux mit traditionellen Kennwörtern und crypt(  ) in der C-Bibliothek
# (siehe lnp, sl4, sl5 und slx)
# lnp Linux mit Pluggable Authentication Modules (PAM)
# lrh Red Hat Linux 7.2
# lsu SuSE Linux
# sl4 Linux mit -lshadow, um die crypt(  )-Funktion zu bekommen
# sl5 Linux mit Shadow-Kennwörtern, keine zusätzlichen Bibliotheken
# slx Linux mit -lcrypt, um die crypt(  )-Funktion zu bekommen

Die lrh-Version funktioniert wahrscheinlich auch auf neueren Red Hat-Versionen. Falls Ihre Distribution nicht aufgeführt ist, versuchen Sie eine der passenden generischen Optionen. lnp ist für die meisten modernen Versionen von Linux eine gute Wahl.

Falls Sie OpenSSL nicht installiert haben, müssen Sie einen Teil des Makefile bearbeiten. Schauen Sie in den Abschnitt, in dem SSL konfiguriert wird, und suchen Sie die folgende Zeile:

SSLTYPE=nopwd

Die Option nopwd muss auf none gesetzt werden, um IMAP mitzuteilen, dass Sie kein OpenSSL verwenden.

Falls Sie OpenSSL installiert haben, die Installation aber immer noch nicht funktioniert, liegt das wahrscheinlich daran, dass an der falschen Stelle nach OpenSSL gesucht wird. Standardmäßig durchsucht das Makefile einen vordefinierten Pfad, der auf Ihren Angaben am Anfang des Vorgangs beruht. Falls Sie beispielsweise die Option lnp verwendet haben, um IMAP zu kompilieren, sucht es SSL im Verzeichnis /usr/ssl. Benutzen Sie dagegen Gentoo Linux, dann ist /usr Ihr SSL-Verzeichnis, und Sie müssen die SSLPATH-Option im Makefile suchen und den Pfad korrigieren. Genauso müssen Sie bei der Option SSLCERTS vorgehen, die sich im gleichen Bereich des Makefile befinden sollte.

Wenn Sie den IMAP-Server erfolgreich kompiliert haben, müssen Sie ihn in Ihrer inetd.conf-Datei installieren (oder gegebenenfalls xinetd benutzen). Um inetd.conf zu benutzen, müssen Sie die folgende Zeile hinzufügen:

imap stream tcp nowait root /path/to/imapd imapd

Beachten Sie, dass Sie den Pfad so ändern müssen, dass er den tatsächlichen Ort widerspiegelt, an dem Sie das imapd-Programm installiert haben.

Die meisten modernen Linux-Systeme besitzen eine relativ vollständige /etc/services-Datei. Sie sollten dennoch überprüfen, ob IMAP vorhanden ist, indem Sie danach suchen und notfalls folgende Zeile hinzufügen:

imap 143/tcp
imaps 993/tcp

Wenn diese Schritte abgeschlossen sind, kann die Installation mit netstat getestet werden. Wenn Ihre Installation erfolgreich verlaufen ist, sehen Sie einen Listener an TCP-Port 143.

vlager# netstat -aunt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN

Wie bei jedem Dienst kann es sich als notwendig erweisen, Einstellungen an der Firewall vorzunehmen, um die neuen Verbindungen zu erlauben.

Die IMAP-Konfiguration

Eines der schönen Dinge am UW-IMAP ist die Tatsache, dass er fast immer sofort voll funktionstüchtig ist, wenn er erst einmal installiert wurde. Die vorgegebenen Optionen, einschließlich der Benutzung der normalen Authentifizierung mittels /etc/passwd sowie des Unix-Mailbox-Formats, werden von den meisten Administratoren als akzeptabel eingeschätzt. Falls Sie eine größere Flexibilität oder mehr Funktionen benötigen, bietet UW-IMAP erweiterte Konfigurationsoptionen wie etwa anonyme Logins, IMAP-Warnmeldungen, alternative Mailbox-Formate und die Möglichkeit gemeinsam genutzter Mailboxen, die wir uns im nächsten Abschnitt ansehen.

Erweiterte Konfigurationsoptionen für UW-IMAP

Es gibt eine ganze Reihe zusätzlicher Funktionen, die entsprechend Ihren Anforderungen zu einem UW-IMAP-Server hinzugefügt werden können. Eine Funktion, die sich als sinnvoll erweisen könnte, ist die Möglichkeit, anonyme Logins zu erlauben. Damit könnten Sie Benutzern Informationen anbieten, ohne für sie spezielle Benutzerzugänge anlegen zu müssen. An Universitäten wurde diese Methode eingesetzt, um Informationen zu verteilen oder um einen Lesezugriff auf Diskussionslisten zu ermöglichen. Um diese Funktionalität zu aktivieren, ist es lediglich erforderlich, eine Datei namens anonymous.newsgroups in Ihr /etc-Verzeichnis zu platzieren. Sobald Sie das erledigt haben, können anonyme Benutzer auf gemeinsam genutzte Mailboxen zugreifen.

Eine weitere potenziell nützliche Funktion ist die Fähigkeit, eine Warnmeldung für IMAP-Benutzer zu erzeugen. Wenn diese Funktion aktiviert ist, generiert sie eine Warnmeldung für alle Benutzer, die sich anmelden, um nach ihren E-Mails zu sehen. Da die Meldung jedes Mal angezeigt wird, wenn ein Benutzer seine Mails prüft, sollte diese Technik nur im Notfall eingesetzt werden. Es ist kein guter Ort, um ein Banner oder einen Disclaimer abzulegen. Um eine Warnmeldung zu erzeugen, müssen Sie eine Datei namens imapd.alert anlegen. Der Inhalt besteht aus Ihrer Nachricht.

Alternative Mailbox-Formate

Das vorgegebene Mailbox-Format, das durch UW-IMAP konfiguriert wird, wurde ausgewählt, weil es die größte Flexibilität und Kompatibilität bietet. Das sind zwar definitiv Vorteile, allerdings gehen sie auf Kosten der Leistung. Das mbx-Format, das von UW-IMAP unterstützt wird, bietet bessere Möglichkeiten für gemeinsam genutzte Mailboxen, da es ein gleichzeitiges Lesen und Schreiben erlaubt.

IMAP für die Benutzung von OpenSSL konfigurieren

IMAP bietet viele nützliche Annehmlichkeiten, die von den Benutzern verlangt werden, wenn diese mit ihren E-Mails arbeiten. Es fehlt allerdings eine außerordentlich wichtige Funktion - Verschlüsselung. Aus diesem Grund wurde IMAP-SSL entwickelt. Wenn es installiert ist, kann ein IMAP-Benutzer mit einer kompatiblen Client-Software alle Funktionen von IMAP genießen, ohne sich über Lauscher Sorgen machen zu müssen. Um IMAP mit SSL-Unterstützung zu installieren, müssen Sie zuerst sicherstellen, dass Ihr IMAP-Server richtig installiert ist und funktioniert. Außerdem benötigen Sie eine lauffähige OpenSSL-Installation. Die meisten Linux-Distributionen werden mit OpenSSL ausgeliefert. Falls das bei Ihrer Distribution aus irgendeinem Grund nicht der Fall sein sollte, lesen Sie bitte im Apache-Kapitel dieses Buches nach, wie Sie OpenSSL kompilieren.

Um den Konfigurationsvorgang zu starten, erzeugen Sie digitale Zertifikate, die Ihr IMAP-Server benutzen kann. Dazu verwenden Sie das OpenSSL-Kommandozeilenprogramm. Ein Beispielzertifikat kann folgendermaßen erzeugt werden:

vlager# cd /path/to/ssl/certs
vlager# openssl req -new -x509 -nodes -out imapd.pem -keyout imapd.pem -days 365
Using configuration from /etc/ssl/openssl.cnf
Generating a 1024 bit RSA private key
..............++++++
..................................................++++++
writing new private key to 'imapd.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
.
.
Common Name (eg, YOUR name) [  ]: mail.virtualbrewery.com
Email Address [  ]:
vlager # ls -l
total 4
-rw-r--r-- 1 root root 1925 Nov 17 19:08 imapd.pem
vlager #

Wenn Sie dieses Zertifikat anlegen, dann achten Sie darauf, dass Sie den Domainnamen Ihres Mailservers in das Common Name-Feld eintragen. Ist der Name nicht gesetzt oder stimmt er nicht, erhalten Sie im besten Fall Fehlermeldungen, sobald Clients versuchen, Verbindungen herzustellen. Im schlimmsten Fall fällt der Server aus.

Die Wahrscheinlichkeit ist ziemlich hoch, dass Ihr IMAP-Server neu kompiliert und konfiguriert werden muss, damit er OpenSSL benutzen kann. Glücklicherweise ist das relativ einfach. Falls Sie Red Hat, SuSE oder eine andere der erwähnten Distributionen verwenden, setzen Sie sie entsprechend auf der Kommandozeile ein. Ansonsten funktionieren die folgenden Kommandozeilenoptionen für die meisten anderen Linux-Distributionen:

vlager# make lnp PASSWDTYPE=pam SSLTYPE=nopwd

Falls Sie Fehlermeldungen erhalten, die OpenSSL betreffen, müssen Sie möglicherweise die Pfadeinstellungen anpassen. Dazu nehmen Sie Änderungen an den Pfadoptionen SSLDIR, SSLLIB und SSLINCLUDE vor, die Sie im Makefile finden. Für die meisten Benutzer wird das nicht notwendig sein.

Nachdem Sie den neuen IMAP-Server kompiliert haben, kopieren Sie ihn aus dem Build-Verzeichnis an die Stelle in Ihrem System, an der sich Ihre anderen Dämon-Dateien befinden. Da IMAP-SSL einen anderen Port verwendet als das Standard-IMAP, müssen Sie Ihre inetd.conf-Datei entsprechend anpassen.

imaps stream tcp nowait root /pfad/zu/imapd imapd

Falls Sie xinetd benutzen, müssen Sie eine Datei in Ihrem /etc/xinetd.d-Verzeichnis anlegen, die etwa so aussieht:

service imaps
{
socket_type = stream
wait = no
user = root
server = /path/to/imapd
log_on_success += DURATION USERID
log_on_failure += USERID
disable = no
}

An dieser Stelle sollten Sie auch sicherstellen, dass Sie einen imaps-Eintrag in Ihrer /etc/services-Datei haben.

vlager # cat /etc/services |grep imaps
imaps 993/tcp # IMAP over SSL
imaps 993/udp # IMAP over SSL
vlager #

Sie können Ihren Server nun von verschiedenen Clients aus testen. Achten Sie darauf, in der Client-Konfiguration anzugeben, dass Sie SSL benutzen wollen. Bei vielen Clients empfangen Sie während des Verbindungsaufbaus eine Nachricht, in der Sie gefragt werden, ob Sie dem Zertifikat vertrauen wollen. Diese Nachricht erscheint nur, wenn Sie Ihr eigenes Zertifikat generiert haben, wie wir es in unserem obigen Beispiel demonstriert haben. Manche Administratoren ziehen es vermutlich vor, ein Zertifikat zu kaufen, um diese Meldung zu vermeiden - vor allem, wenn der Server immer einwandfrei laufen muss.

Cyrus-IMAP

Eine andere Möglichkeit, die IMAP-Administratoren zur Verfügung steht, ist das Produkt von CMU namens Cyrus. Was die allgemeine Funktionalität angeht, ähnelt es UW-IMAP - aus Sicht der Benutzer gibt es nur wenige Unterschiede. Die Mehrheit der Unterschiede gibt es jedoch auf der administrativen Seite, auf der seine Vorteile liegen.

Cyrus-IMAP beziehen

Es gibt eine Reihe von Stellen, von denen Sie die Cyrus-Software beziehen können. Die verlässlichste Wahl mit den neuesten Quellcodeversionen ist die zentrale CMU Cyrus-Distributionssite, http://asg.web.cmu.edu/cyrus/download/. Dort können sowohl aktuelle als auch frühere Versionen heruntergeladen werden. Die Verfügbarkeit älterer Versionen könnte ein Vorteil für solche Sites sein, die sich in ihren Regularien gegen die Verwendung der allerneuesten Software-Versionen aussprechen.

Um die Installation des Cyrus-Servers zu beginnen, laden Sie die neueste Version herunter und entpacken sie. Sie müssen sowohl das IMAP- als auch das SASL-Paket herunterladen.

SASL ist der Authentifizierungsmechanismus, der von Cyrus-IMAP benutzt wird. Er muss zuerst konfiguriert und installiert werden. Er kann leicht in der normalen »configure-make«-Reihenfolge kompiliert werden.

vlager# cd cyrus-sasl-2.1.15
vlager# ./configure
loading cache ./config.cache
checking host system type... i686-pc-linux-gnu
.
creating saslauthd.h
Configuration Complete. Type 'make' to build.
vlager# make
make all-recursive
make[1]: Entering directory `/tmp/cyrus-sasl-2.1.15'

Vorausgesetzt, die Kompilierung wurde ohne Fehler abgeschlossen und Sie haben das make install erfolgreich ausgeführt, können Sie nun mit der Konfiguration und Installation des IMAP-Servers selbst fortfahren.

Nach dem Auspacken der Cyrus-IMAP-Quellen bereiten Sie mit dem folgenden Befehl die Konfiguration vor:

vlager# ./configure --with-auth=unix

Das bereitet Cyrus-IMAP darauf vor, für die Benutzerauthentifizierung die Unix-Dateien passwd/shadow zu benutzen. Sie können an dieser Stelle auch Kerberos für die Authentifizierung aktivieren.

Als Nächstes müssen Sie alle Abhängigkeiten erzeugen und dann das Paket kompilieren und installieren:

vlager# make depend
...
vlager# make all CFLAGS=-O
...
vlager# make install
...

Wenn das erfolgreich abgeschlossen wurde, kann Ihr Cyrus-IMAP-Server konfiguriert werden.

Cyrus-IMAP konfigurieren

Sie müssen einen Benutzer anlegen, den der Cyrus-Server verwenden kann. Diesen Benutzer sollten Sie so wählen, dass Sie leicht eine Verbindung zu Ihrem Cyrus-Server herstellen können. Außerdem sollte er Teil der Mail-Gruppe sein.

Sobald Sie den Benutzer angelegt haben, können Sie damit beginnen, Ihren Cyrus-Server zu konfigurieren. Die Datei /etc/imapd.conf ist die wichtigste Konfigurationsdatei für den Server. Überprüfen Sie, dass sie etwa so aussieht wie das unten gezeigte Beispiel. Möglicherweise müssen Sie eine dieser Zeilen noch hinzufügen.

configdirectory: /var/imap
partition-default: /var/spool/imap
sievedir: /var/imap/sieve
# Don't use an everyday user as admin.
admins: cyrus root
hashimapspool: yes
allowanonymouslogin: no
allowplaintext: no

Fehlerbehebung bei Cyrus-IMAP

Das Kompilieren von Cyrus-IMAP kann etwas komplizierter sein, da dieser Server etwas wählerischer in Bezug auf Dateien und Speicherorte ist. Schlägt das Konfigurieren fehl, dann achten Sie besonders darauf, was genau den Fehler verursacht hat. Wenn beispielsweise das Kompilieren von Cyrus-SASL mit einer Fehlermeldung fehlschlägt, die sich über undefinierte Referenzen im berkeley_db-Abschnitt beschwert, dann ist es sehr wahrscheinlich, dass Sie BerkeleyDB nicht installiert haben oder dass Sie es an einer Stelle installiert haben, an der das Konfigurationsskript nicht nachsieht. Der Pfad zur installierten BerkeleyDB kann auf der Kommandozeile gesetzt werden, wenn Sie das Konfigurationsskript ausführen. Durch diese Suche nach der Ursache und das sofortige Beheben eines Fehlers können Sie viele Probleme lösen.

Ein weiteres übliches Problem beim Kompilieren von Cyrus-IMAP betrifft den Ort, an dem sich eine Datei namens com_err.h befindet. Cyrus-IMAP erwartet diese Datei im Verzeichnis /usr/include. Oft befindet sie sich jedoch im Verzeichnis /usr/include/et. Es ist daher notwendig, diese Datei in das Verzeichnis /usr/include zu kopieren, damit die Installation fortgesetzt werden kann.


TOC PREV NEXT INDEX


O'Reilly Home | O'Reilly-Partnerbuchhandlungen | Bestellinformationen
Kontakt | Über O'Reilly | Datenschutz

© 2005, O'Reilly Verlag GmbH & Co. KG