Admin-Zugriff auf alle Postfächer von außerhalb mit ImapSync

Hallo,

ich muss alle Postfächer auf einen neuen Server migrieren und würde dazu gerne ImapSync nutzen.
Das bietet ja die Option, dass man sich am Cyrus mit einen Admin-User (z.B. “cyrus”) anmeldet und dann auf die einzelnen Mailboxen zugreift. Das ist sinnvoll, denn ich weiss ja nicht die Passwörter der einzelnen User und will diese auch ungern ändern.

Leider bekomme ich es nicht zum Laufen und auch in der http://www.univention.de/fileadmin/download/dokumentation_2.4/ucs-cyrus-administration.pdf Doku (Punkt 2) steht, dass “cyrus” nur funktioniert, wenn man von “localhost” kommt.
Wenn ich versuche, mich mit “cyrus” anzumelden (Psswort aus cyrus.secret), bekomme ich immer ein “NO Login failed: authentication failure”.

Ich habe dann lokal auf dem UCS mit “openssl” händisch einen Login versucht und das funktioniert wirklich NUR, wenn man als hostname “localhost” verwendet. Nutzt man den wirklichen hostname, bekommt man auch den obigen Fehler.

Ich kann aber leider nur von außerhalb mit ImapSync arbeiten. - Daher nun meine Frage:
Wie bekomme ich es hin, dass ich mich von einem anderen Rechner als “localhost” mit ImapSync aof den Cyrus als Admin verbinde, um dann die ganzen Mailboxen der user per Skript migrieren zu können (ohne dass ich deren Passwort kenne).
==> Wo kann man konfigurieren, dass man sich mit “cyrus” auch von einem anderen Host als “localhost” anmelden darf?
==> Hat schon jemand das mit ImapSync (über “–authuser”) gemacht?

Danke und Gruß,
F. Illenseer

Ich würds mal mit SSH-Forwarding versuchen:

ssh imap-server -L beliebiger-port:localhost:cyrus-port

Hallo und vielen Dank! - Das war eine sehr gute Idee und bringt mich einen Schritt weiter.

Ich bekomme nun einen Login in den Cyrus Server, aber bei einem “–dry” testrun, findet Imapsync auf dem Cyrus server keine Unterordner, obwohl in dem User, den ich benutze, definitiv eine ganz Menge Unterordner sind.

Kommandozeile:

./imapsync --dry --justfolders --host1 localhost --port1 993 --ssl1 --authuser1 cyrus --host2 new-mailserver --tls2 --user1 f.illi --user2 illi

Ausgabe (gekürzt):

Host1: state Authenticated
Host2: state Authenticated
Host1 capability: IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxte QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SORT SORT=MODSEQ THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE LIST-EXTENDED WITHIN QRESYNC SCAN XLIST URLAUTH URLAUTH=BINARY LOGINDISABLED IDLE
Host2 capability: IMAP4 IMAP4rev1 AUTH=NTLM AUTH=GSSAPI AUTH=PLAIN CHILDREN IDLE NAMESPACE LITERAL+
Host1: separator given by NAMESPACE: [/]
Host2: separator given by NAMESPACE: [/]
Host1: prefix given by NAMESPACE: [user/]
Host2: prefix given by NAMESPACE: []
Host1 separator and prefix: [/][user/]
Host2 separator and prefix: [/][]
++++ Calculating sizes on Host1
[...]
++++ Calculating sizes on Host2
[...]
++++ Listing folders
Host1 folders list:

Host2 folders list:
[...]

Was kann da noch schief laufen? - Er müsste doch wegen “–user1 f.illi” in meine Mailbox gehen und dort meine Unterordner finden.
(Wenn ich das “–authuser1 cyrus” weglasse, dann fragt er nach meinem persönlichen Passwort und dann sieht Imapsync auch meine Unterordner.)

Hat jemand noch eine Idee?

Danke und Gruß,
F Illenseer

Hallo,

hat jemand vielleicht noch eine Idee bzw. Erfarungen mit dem login und ImapSync (siehe mein letztes Posting)?

Danke.
F. Illenseer

Hallo,

ich hatte, wenn ich mich recht entsinne, einen zusätzlichen Benutzer unter “admins:” in die /etc/imapd/imapd.conf eingetragen um das Problem des Zugriffs “von außen” zu umgehen. Außerdem habe ich “–include ‘^INBOX’” angegeben. Ich bin aber nicht mehr sicher ob ich das evtl. nur gemacht habe um den Sync der Shared-Folder zu unterbinden.
Ich kopiere einfach mal den Befehl hier rein den ich verwendet hatte. Quelle war ein cyrus 2.2 (UCS 2.4), Ziel ein cyrus 2.4 (UCS 3.2):

imapsync --syncacls --usecache --tmpdir /var/imapsync \
  --host1 192.168.0.48 --ssl1 --authuser1 meybohm@univention.de --passfile1 pw1.txt \
  --host2 localhost -ssl2 --authuser2 cyrus --password2 "$(cat /etc/cyrus.secret)" \
  --include '^INBOX' --user1 "$address" --user2 "$address"

Mit freundlichen Grüßen
Janis Meybohm

Mastodon