ubuntuusers.de

up-imapproxy

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Webmailsysteme wie Archiv/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.

Installation

Folgendes Paket muss installiert werden [1]:

  • imapproxy (universe), [2])

Konfiguration

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 

TLS-Verschlüsselung

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.

Konfiguration

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.

Fehlersuche

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 10. August 2018 18:09 von BillMaier erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Netzwerk, Server, Email