Ubuntu 12.04 Precise Pangolin
Webmailsysteme wie Squirrelmail müssen in der Regel für jede IMAP-Operation eine neue Verbindung zum Server aufbauen, da einzelne Webseiten nur schwer persistente Netzwerkverbindungen offen halten können. Um die Performance zu verbessern, die durch das ewige Ein- und Ausloggen leidet, kann man einen IMAP-Proxy wie den up-imapproxy benutzen, der die Verbindung offen hält. Dieser läuft dann am besten direkt auf dem Webserver.
Für reguläre Mail-Clients bringt das allerdings keinen Vorteil, da diese ihre Verbindungen auch alleine über längere Zeit nutzen können.
Folgende Zeilen müssen in der Datei /etc/imapproxy.conf u.U. angepasst werden [4]:
server_hostname localhost listen_port 143 #listen_address 127.0.0.1
Aus naheliegenden Gründen kann der imapproxy nicht gleichzeitig am selben Port lauschen wie der IMAP-Server. Wenn der IMAP-Server also auf demselben Host läuft, muss die listen_port-Direktive auf einen anderen Wert gesetzt werden, z.B. 144
. Die IMAP-Konfiguration des Webmaildienstes muss dann natürlich auf diesen Port angepasst werden.
Läuft der IMAP-Server anderswo, kann man den Port beibehalten, muss aber logischerweise stattdessen den server_hostname in den Namen des IMAP-Servers ändern. Der Webmail-Dienst muss dann nach localhost:143
verbinden, statt zum eigentlichen Server.
Außerdem sollte man listen_address 127.0.0.1 aktivieren, indem man das Kommentarzeichen (#) entfernt. Dann ist der Proxy von außerhalb nicht mehr zu erreichen (und evtl. zu missbrauchen). Das Webmail-Skript läuft ja auf demselben Rechner.
Danach muss der Dienst [5] neu gestartet werden [3]:
sudo /etc/init.d/imapproxy restart
Falls der Proxy nicht auf demselben Rechner läuft wie der IMAP-Server und die Daten vielleicht sogar durch unsichere Netze geleitet werden, empfiehlt sich die Benutzung der TLS-Verschlüsselung (ehemals SSL genannt). Leider ist die TLS-Unterstützung im up-imapproxy bestenfalls als "ziemlich merkwürdig" zu bezeichnen.
Anstatt nur das Server-Zertifikat zu benutzen, besteht der imapproxy darauf, selber ebenfalls ein gültiges Zertifikat zu besitzen, obwohl das für Clients (der Proxy nimmt ja gegenüber dem IMAP-Server die Rolle des Clients an) nicht vorgeschrieben ist.
Mit selbstsignierten Zertifikaten, wie vom Paket ssl-cert bereitgestellt, gibt sich der Proxy ebenfalls nicht zufrieden. Man muss sich also ein korrekt signiertes Zertifikat samt passendem Schlüssel besorgen.
Der imapproxy besteht anscheinend darauf, dass sowohl sein eigenes Zertifikat, als auch das des Servers von derselben Certification Authority (CA) ausgestellt wurden, was es quasi unmöglich macht, sich seine persönliche Weboberfläche für einen IMAP-Server zu basteln, der nicht unter eigener Kontrolle steht.
Wenn man keine Lust hat, sich für die benötigten Zertifikate an eine öffentliche (und meist kostenpflichtige) CA zu wenden, kann man sich auch selber eine eigene CA erstellen, was Thema des Wiki-Artikels CA ist. An dieser Stelle wird davon ausgegangen, dass man die benötigten Dateien besitzt, die vielleicht key.pem, cert.pem und cacert.pem (oder so ähnlich) heißen. Wie schon erwähnt, benötigt man auch auf der Seite des Servers ein passendes Zertifikat von derselben CA, was u.U. auch dort ein wenig Konfigurationsarbeit erfordert.
Die Konfiguration findet wieder in der Datei /etc/imapproxy.conf statt.
Als erstes muss man den chroot-Mechanismus leider ausschalten, weil er nicht mit den TLS-Optionen zusammen funktioniert. Hierfür wird die folgende Zeile mit einem # auskommentiert:
#chroot_directory /var/lib/imapproxy/chroot
Nun müssen die TLS-Optionen aktiviert und mit der richtigen Pfadangabe ausgestattet werden. Am besten kopiert man die Schlüssel und Zertifikate in das sowieso vorhandene Verzeichnis /var/lib/imapproxy/chroot und benutzt dieses. Man muss natürlich dafür sorgen, dass der Benutzer nobody, unter dessen Kennung der up-imapproxy läuft, diese auch lesen kann, während andere Benutzer genau das am Besten nicht können [6]. Die wichtigen Optionen befinden sich bereits auskommentiert in der Datei und müssen nur noch aktiviert und angepasst werden:
tls_ca_file /var/lib/imapproxy/chroot/cacert.pem tls_ca_path /var/lib/imapproxy/chroot tls_cert_file /var/lib/imapproxy/chroot/cert.pem tls_key_file /var/lib/imapproxy/chroot/key.pem
Nach Beendigung muss der imapproxy natürlich wieder neugestartet werden.
imapproxy loggt ganz normal nach /var/log/mail.log. Leider sind besonders die Fehlermeldungen, wenn mit dem TLS etwas nicht klappt, nicht sehr aussagekräftig. Es empfiehlt sich, die Installation zuerst ohne TLS-Verschlüsselung zu testen (natürlich mit einem eigenen Test-Account, wenn das Passwort durch ein unsicheres Netz geschickt werden soll).
Diese Revision wurde am 21. April 2013 00:30 von ubot erstellt.