Sanfte Mailserver Migration durch Perdition IMAPPROXY

Das grundlegende Problem bei der Migration von Mailservern auf einen anderen liegt in der Tatsache, dass sich in der Regel die IP-Adressen oder sogar Rechnernamen ändern können und man dann wieder jeden Client einzeln anpassen muss. Somit wäre es doch angenehmer, die Migration möglichst unmerklich für den Enduser zu gestalten.

Lösungsansatz

Durch den Einsatz eines POP3 und IMAP Proxy Dienstes auf der bekannten Konfiguration (Rechnername oder IP-Adresse) kann dieser steuern, wohin die Anfragen gehen, völlig transparent für den Endbenutzer.

Implementierung (Debian)

Die Implementierung unter Debian gestaltet sich einfach, sofern die POP3 und IMAP Dienste auf dem zu konfigurierenden System bereits abgeschaltet sind.

Installation

apt-get install perdition

Es werden die Pakete

  • libvanessa-adt0
  • libvanessa-logger0
  • libvanessa-socket0
  • perdition

installiert.

Konfiguration

/etc/perdition/perdition.conf

Hier habe ich keine Anpassungen vornehmen müssen.

/etc/perdition/popmap

Diese Datei beschreibt die Zuordnung Benutzername zu Zielsystem.

popmap

thomasbaumann:pop.web.de

Anschließend ist diese Datei ins entsprechende hash-Format zu konvertieren. Dies erledigt das Programm make.

von Hand

/usr/bin/makegdbm popmap.gdbm.db < popmap
/usr/bin/makebdb popmap.bdb.db < popmap

Test

Mitschnitt einer POP3 Session und Anzeige der Logdatei. Man kann gut erkennen, dass trotz der Ansprache mittels telnet auf localhost die Verbindung zu pop.web.de aufgebaut wurde.

session

xm1:~# telnet 127.0.0.1 110
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
+OK POP3 Ready xm1 0001b12b
  Oct 19 19:41:32 xm1 perdition[19329]: Connect: 127.0.0.1->127.0.0.1  
USER thomasbaumann
+OK USER tirili set, mate
PASS geheimeskennwort
+OK You are so in
  Oct 19 19:41:47 wwh3 perdition[19329]: Auth: 127.0.0.1->127.0.0.1 \
    user="thomasbaumann" server="pop.web.de" port="110" status="ok" 
LIST
+OK
1 973
2 644
3 631
4 837
5 861
6 1442
7 831
8 1899
9 1936
.
quit
+OK
Connection closed by foreign host.
xm1:~# 
  Oct 19 19:42:02 xm1 perdition[19329]: Close: 127.0.0.1->127.0.0.1 \
    user="tirili" received=12 sent=616 

Info

Es wird nur die in der popmap definierte Zuordnung durchgeführt. Ein Benutzername, der hier nicht existiert, kann nicht ans Zielsystem weitergeleitet werden. Allerdings kann man sich durch Verwendung der popmap.re, die Regular Expressions versteht, die Benutzerzuordnung vereinfachen.

popmap.re

# Substitution is of the form
# [<username><domain_delimiter>]<server>[:<port>]
#^[a-k]: localhost
#^[^a-k]: localhost:110
#^user: user2@localhost
#(.*)@(.*): $1_$2@localhost

Links

 
wissen/mailserver/bequeme-mailserver-migration-durch-imapproxy-perdition-cyrus-imapsync.txt · Zuletzt geändert: 05.09.2010 20:31
 
Recent changes RSS feed Donate Valid XHTML 1.0 Valid CSS Recent cached RSS feed cacert-signed web site: inhalt.serviert.de