Import von Mailkonten wenn _nur_ ein md5 Passwort vorhanden ist.

  • Guten Tag,


    wir müssen für einen Kunden ein auf Postfixadmin basiertes Mailsystem nach LiveConfig migrieren. Allerdings haben wir nur MD5 Passwort Hashes die uns zur Verfügung stehen. (Also keine gesalzenen)


    Welche Möglichkeiten gibt es diese (alten) Passwörter über die SOAP Api ins LiveConfig zu bekommen?


    VG,
    Torsten Walther

  • Welches Format haben denn die Passwörter aktuell? Beginnen die auch mit "$1$..."?
    Die SOAP-API (HostingMailboxAdd()) reicht das angegebene Passwort unverändert an die Lua-Funktion "addMailbox" (Datei dovecot.lua) durch; erst dort wird in ca. Zeile 763 geprüft, welches Format das Passwort hat. Hier ließe sich dann auch die Verarbeitung von einfachen MD5-Hashes integrieren - schicken Sie uns ggf. einfach mal ein Beispiel-Passwort (am besten die Zeichen a-z0-9 durch "#" ersetzen, damit das niemand entschlüsselt ;)


    Viele Grüße


    -Klaus Keppler

  • Das Passwort ist nicht wie longpw beim Confixx gesaltet und würde durch dovecot.lua Passwort Validierung nochmal mittels cram_md5(data.password) gehasht werden.


    Code
    if string.len(data.password) == 34 and string.match(data.password, "^$1$%w%w%w%w%w%w%w%w$[%w./]+$") then
          -- MD5-CRYPT password (propably imported via SOAP interface)
          pwd = data.password
          algo = "MD5-CRYPT"
        else
          -- create CRAM-MD5 hash
          pwd = LC.crypt.cram_md5(data.password)
          algo = "CRAM-MD5"
        end


    Ich werde mal die

    Code
    pwd = LC.crypt.cram_md5(data.password)

    für den Importvorgang auf

    Code
    pwd = data.password

    ändern, dass könnte funktionieren. Da es scheinbar ja schon CRAM-MD5 ist.

  • Nee, wird vermutlich nicht so einfach klappen. Das Passwort-Feld in der SOAP-API darf max. 40 Zeichen lang sein (hängt damit zusammen, dass das LC-intern verschlüsselt und dann Base64-codiert in einem 64-Byte-Feld gespeichert wird).
    Eine Möglichkeit wäre es, einfach irgendein Dummy-Passwort für den Import zu verwenden und anschließend in der /etc/dovecot/passwd die Passwörter direkt durch die alten CRAM-MD5-Hashes zu ersetzen (z.B. mit sed). LiveConfig schreibt die Passwörter nämlich nicht ein zweites Mal raus (im Gegenteil - wenn das Passwort erfolgreich gesetzt wurde, lösche LiveConfig es sicherheitshalber aus seiner eigenen Datenbank).


    Hilft das weiter? Ansonsten müssten wir vermutlich diese 40-Zeichen-Grenze aufbohren.

  • Mit Änderung des dovecot.LUA Scriptes geht's nicht (Error while calling Web Service: Invalid password, vermutlich wegen der mehr als 40 Zeichen).


    Der Workaround mit manuellem Eintrages des CRAM-MD5 Strings in der /etc/dovecot/passwd funktioniert der Abruf via IMAP, POP3.


    ABER: Wenn ich via API das Feld weblogin auf True setzen will, klappt die Anmeldung nur mit dem angesprochenen Dummy Passwort. (LiveConfig wird sich bei Mailadressen, ja nicht gegen DoveCot authentifzieren)


    Die Erweiterung der 40 Zeichen Grenze würde ich für Sinnvoll halten, dann wäre das ganze in sich "rund".

  • Hilft das weiter? Ansonsten müssten wir vermutlich diese 40-Zeichen-Grenze aufbohren.


    Gibt es den hier ein vorankommen? Fällt die 40 Zeichen Grenze, wenn ja: wann?
    Die Workarounds / Alternativen sind eher mühsam. Geht im aktuellen Fall auch um 250 Mailkonten ;)

  • Da scheinbar (wie in vielen anderen Threads) keine Antwort mehr kommt... muss es halt der Workaround tun. Mit den Einschränkungen, dass kein LiveConfig Weblogin möglich ist bis der MailUser das Passwort ändert. Keine Ahnung welcher Rattenschwanz noch dranhängt.


    Den alten Hash in ein File pwd.log

    Code
    EMAILADRESSE HASH

    schreiben und dann .. angelehnt an das cfx-mail.log/rsync vom Confixx Import Skript:

    Code
    while read line; do
      FROM=`echo "$line" | cut -f 1`;
      TO=`echo "$line" | cut -f 2`;
      echo "SET PWD FOR $FROM TO $TO";
      sed "/^$FROM/ s/##DUMMYHASHWERT##/$TO/" -i.bak /etc/dovecot/passwd
    done < pwd.log


    Die SOAP Api ist zwar in Summe nicht schlecht, aber sofern nicht sämtlich CREATE/READ/UPDATE/DELETE Features an sämtlichen Objekten, die man via SOAP anlegen kann, umgesetzt sind, ist es eher ein netter Versuch.


    Meiner Meinung nach, sollten vor neuen Features oder schicken HTML Tricks erstmal die restlichen Baustellen beseitigt werden.


    Dh. beworbenes Feature X sollte auch in allen von Liveconfig angeblich unterstützten Konstellationen nutzbar sein, sofern es das darunter liegende OS auch unterstützt.


    Bsp.: PHP Versionswahl unter Nginx sollte lt. http://www.liveconfig.com/de/f…UI-Fragen?p=9525#post9525 noch einige Woche dauern. DAS WAR ENDE FEBRUAR.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!