Announcement

Collapse
No announcement yet.

konventionen für imapLogin

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • konventionen für imapLogin

    Hallo zusammen,

    gibt es für imapLogin im OX Namenskonventionen?

    Beispiel:

    vorname.nachname geht
    vorname.nachname@example.com geht nicht

    Ich hatte bislang das Problem das ich nicht aus mehreren Contexten auf die Mailboxen zugreifen konnte, dies habe ich nun glaube ich abgestellt.
    Um die Möglichkeit zu schaffen das in verschiedenen Contexten gleiche Namen auftauchen können wie Context 1 max.muster@example1.com und Context 3 max.muster@beispiel.de und dies sich nicht mit dem Mailserver sticht sollte der imapLogin immer gleich der Mail Adresse sein also imapLogin=max.muster@example1.com.

    Obwohl ich über cyradm in cyrus eine entsprechende Mailbox angelegt habe, wird diese beim starten von OX nicht mit eingebunden.

    mail.info:
    Code:
    cyrus/imap[10108]: badlogin: localhost [127.0.0.1] PLAIN [SASL(-13): authentication failure: Password verification failed]
    Verwende ich eine Mailbox die nur lautet max.muster und der entsprechende imapLogin = max.muster so wird die Mailbox beim start von OX eingebunden.
    Dies schließt jedoch die mehrfache Vergabe der gleichen Namenskombination über mehrere Contexte aus.

    Für Hilfe wie Fragen bin ich dankbar,

    MfG

    outlow

  • #2
    Hallo outlow,

    ich habe das Problem mit mehreren Contexten und den gleichen Usernamen gelöst indem ich User wie folgt erstellt:
    1. Username=imaplogin=emailadresse

    2. Als imapserver und smtpserver musst Du nicht localhost(127.0.0.1) nehmen, sondern die IP-Adresse des Servers, dabei muss in der Hostsdatei unbedingt der Eintrag existieren:
    ip host.domain host

    3. Um zu sehen, was bei der Anmeldung über saslauthd passiert, muss Du unter dem Pam-Modul imap eine Option einfügen: verbose=1 und den Dienst neu starten. Unter CentOS die Logdatei bei der Anmeldung beobachten:
    tail -f -n300 /var/log/secure

    Meine imap-Datei sieht dann so aus:
    # Auth for Open-Xchange
    auth optional pam_mysql.so host=/var/lib/mysql/mysql.sock user=openexchange passwd=pw_openexchange db=oxdatabase_6 [table=login2user LEFT JOIN user ON login2user.id=user.id AND login2user.cid=user.cid] usercolumn=login2user.uid passwdcolumn=user.userPassword crypt=1

    account required pam_mysql.so host=/var/lib/mysql/mysql.sock user=openexchange passwd=pw_openexchange db=oxdatabase_6 [table=login2user LEFT JOIN user ON login2user.id=user.id AND login2user.cid=user.cid] usercolumn=login2user.uid passwdcolumn=user.userPassword crypt=1


    4. Wenn Du mit virtualen Domains arbeitest dann unter imapd.conf die Option einfügen:
    # Virtuelle Domains support
    virtdomains: yes

    5. Für Support von virtuellen Domains seitens Postfix main.conf editieren:
    # ---------------- Virtual Domain options
    virtual_mailbox_domains = hash:/etc/postfix/virtual_mailbox_domains
    virtual_mailbox_maps = mysql:/etc/postfix/virtual_mailbox_maps.cf
    virtual_mailbox_base = /var/spool/imap
    virtual_transport = lmtp:unix:/var/lib/imap/socket/lmtp
    virtual_minimum_uid = 100
    virtual_uid_maps = static:5000
    virtual_gid_maps = static:5000

    User für virtuellen Domains erstellen:
    groupadd vmail -g 5000
    useradd vmail -d /home/vmail -g 5000 -m -s /bin/false -u 5000

    6. virtual_mailbox_domains sieht bei mir so aus:
    # Liste Virtual Domains
    # Example
    anwalt4u.local OK

    Nicht vergessen:
    postmap virtual_mailbox_domains

    7. Das Schlimmste war für mich, die funktionierende MySQL-Abfrage für virtual_mailbox_maps zu erstellen, hat fast ein Tag gedauert. Das Ergebnis der Abfrage muss so aussehen:
    user1@anwalt4u.local anwalt4u.local/user1

    Die Anfrage lautet:
    query = SELECT mail, CONCAT( SUBSTR(mail,INSTR(mail,'@')+1), '/', SUBSTR( mail, 1, INSTR(mail, '@')-1) ) from user;

    8. Wenn Du nach der Anmeldung die Fehlermeldung von Sieve siehst, dann einfach eine Einstellung ändern und zwar:
    sed -i 's/SIEVE_CREDSRC=session/SIEVE_CREDSRC=imapLogin/' /opt/open-xchange/etc/groupware/mailfilter.properties

    9. Zum testen unter shell kannst Du das nehmen:
    cyradm --auth login -user user1@domain -server ip-address

    und dabei logfile von saslauthd betrachten

    Schöne Grüße
    Johann

    Comment


    • #3
      thx for replay.

      Ist die Umstellung auch noch auf einem bereits laufendem Cyrus möglich?

      Ich werde wohl nur die Mailboxeb renamen müssen oder?

      thx outlow

      Comment


      • #4
        ich habe es nicht getestet, aber es dürfte eigentlich funktionieren. Man fügt dann zu imapd.conf den Eintrag

        defaultdomain: example.com

        ein. Dann dürfte die Anmeldung ohne Domainanhang weiter möglich sein. Danach kann man die neuen Context's wie oben beschrieben hinzufügen.
        Ich würde dann einfach unter VM Ware eine Testumgebung installieren und das ganze Szenario durchspielen.

        Gruß Johann

        Comment


        • #5
          in Version 6.12 scheint das nicht zu funktionieren.
          Ich habe es folgendermassen hingekriegt (siehe oben):

          1. username= user1; imaplogin=user1@example.com
          3. Damit keine Probleme mit den gleichen Usernamen in unterschidlichen Context's auftreten, habe ich die imap Datei (Pam Modul) wie folgt abgeändert:

          cat /etc/pam.d/imap
          # Auth for Open-Xchange
          auth optional pam_mysql.so host=/var/lib/mysql/mysql.sock user=openexchange passwd=geheim db=oxdatabase_6 [table=login2user LEFT JOIN user ON login2user.id=user.id AND login2user.cid=user.cid] usercolumn=user.imapLogin passwdcolumn=user.userPassword crypt=1

          account required pam_mysql.so host=/var/lib/mysql/mysql.sock user=openexchange passwd=geheim db=oxdatabase_6 [table=login2user LEFT JOIN user ON login2user.id=user.id AND login2user.cid=user.cid] usercolumn=user.imapLogin passwdcolumn=user.userPassword crypt=1

          Die Anmeldung erfolgt dann entweder user1@domain odr user1@context-id

          Nun funktioniert jetzt alles wieder
          Last edited by johann8; 10-09-2009, 12:20 PM.

          Comment


          • #6
            Einfachere Lösung

            Hallo Johann

            Ich habe genau das gleiche Problem, ich habe Benutzer mit verschiedenen Domains. Beispiel: hans.muster@domain1.com und hans.muster@domain2.com.

            Ich finde es toll, dass Du eine Lösung für das Problem hier gefunden hast. Ich kann aber einfach nicht glauben, dass so ein mächtiges Tool wie OX diesen Fall nicht vorgesehen hat und dass es nicht einfachere Lösungen gibt.

            Irgendwo habe ich gelesen, dass bei der Anmeldemaske der Domainname eingegeben werden könnte. Wie weiss ich nicht.

            Ich fand zudem heraus, dass mit sasldblistusers2 folgende Namen ausgegeben werden:
            hans.muster@<servername> wenn hans.muster als Benutzer erzeugt wurde.
            hans.muster@domain1.com wenn dieser volle E-Mail-Name verwendet wurde.

            Ich möchte hier die OX-Fachleute fragen, wie die Grundidee umgesetzt wurde, dass verschiedene Domains auf demselben Server gehostet werden, und für jede Domain ein Context verwendet wird. Dann muss man entweder die volle E-Mail-Adresse als Benuternamen verwenden oder - und das wäre hässlich - auf Fantasienamen ausweichen.

            Comment


            • #7
              Hallo,

              Benutzeranmeldung und E-Mail Adresse haben bei OX nichts miteinander zu tun da wir E-Mail als backend benutzen und uns darin integrieren.

              Wir sprechen vor drei Attributen
              1. OX username
              2. OX contextalias
              3. OX passwort

              Der OX username kann "hans.mueller" sein und identifiziert einen Benutzer in einem Kontext eindeutig. Intern ist es hans.mueller@1 - 1 ist die Context-ID. Ein OX Server kann beliebig viele Contexte verwalten, es kann also auch hans.mueller@1337 geben. Diese Benutzer haben nichts mit einander zu tun, es sind getrennte Accounts in unterschiedlichen Kontexten.

              Weil die Anmeldung mit hans.mueller@1337 nicht benutzerfreundlich ist, haben wir sogenannte loginmappings. Ein mapping ist reserviert - "defaultcontext" - dieser Name wird als fallback erkannt wenn der Benutzer keine ID und keinen Kontextnamen angibt. Beispiel: "hans.mueller" loggt sich ein, dann sucht der OX nach einem hans.mueller im Kontext mit dem loginmapping "defaultcontext", was zum Beispiel Kontext 1337 sein könnte.

              Nun gehen wir davon aus du hast 3 Kontexte auf einem OX Server: Firma1, Firma2 und Firma3. Der Kontext "Firma2" hat die ID2 und das loginmapping "firma2". Man könnte sich also mit hans.mueller@firma2 oder mit hans.mueller@2 anmelden. Um die Sache nun mehr nach E-Mailserver aussehen zu lassen, legt man das loginmapping "firma2-gmbh.de" für Kontext 2 an. Der Nutzer kann sich dann als "hans.mueller@firma2-gmbh.de" anmelden - das @firma2-gmbh.de" ist nur ein beliebiger Wert der so aussieht als wäre er eine Domain, das hat mit dem E-Mail backend *nichts* zu tun.

              Für hans.mueller im Kontext mit dem mapping firma2-gmbh.de kannst du nun einen Mail Account definieren. Zum Beispiel "--imapserver mail.firma2.de --imaplogin hans.mueller --smtpserver mail.firma2.de -e hans.mueller@firma2-gmbh.de -p secret". Einzig das Passwort muss auf der OX und dem IMAP/SMTP Server gleich sein. Du kannst auch einen komplett anderen Mail Server für diesen Benutzer konfigurieren.

              Weiter Informationen findest du in der Dokumentation der commandline tools "create/changecontext", in der RMI, der SOAP Schnittstelle oder im Code vom admindaemon.

              Gruß
              Last edited by Martin Heiland; 11-03-2009, 05:28 PM.

              Comment


              • #8
                Hi Johann,

                bei uns nimmt das Projekt jetzt langsam aber sicher konkrete Züge an.

                Wie gesagt sollen auf einem Server mehrere Domains mit seperaten Benutzer entstehen soll heißen:

                user1@domain1.de
                user2@domain.1.de

                bzw.

                user1@domain2.de
                user2@domain2.de

                Was ich mich gerade frage bzw. vielleicht sehe ich es auch nur nicht:

                wie sieht den jetzt dann der verzeichnis baum bei cyrus aus bzw. woher nimmt cyrus die Information wie dieser aufzubauen ist

                thx

                outlow

                Comment


                • #9
                  ich war wohl wirklich ein wenig blind

                  http://cyrusimap.web.cmu.edu/imapd/i...rtdomains.html

                  hier steht es ja auch noch einmal schön beschrieben

                  ich werde das ganze mal versuchen und berichte dann wie es läuft

                  mfg

                  outlow

                  Comment


                  • #10
                    Hi,

                    ich bräuchte vielleicht doch noch einmal hilfe.

                    Ich baue gerade einen neuen Server mit OX auf.
                    Dieser soll zukünftig mehrere Contexte haben, hierbei soll es jedem Context möglich sein entsprechend jeden benutzernamen/e-mail namen einmal zu vergeben.

                    Das ganze läuft auf einem Debian Lenny mir Postfix, Cyrus, SASL, Mysql, OX:

                    Bislang wurde alle Paket installiert und nun geht es an die konfiguration.

                    Es wurden in OX 2 Contexte angelegt mit domain1.de und domain2.de und jeweils einem Benutzer Administrator.

                    Aktuell versuche ich mich an cyrus an zumelden mit:

                    Code:
                    cyradm --user administrator@domain1.de domain1.de
                    jedoch werde ich hier abgwiesen mit der Meldung:

                    Code:
                    cyradm: cannot authenticate to server with loign as administrator@domain1.de
                    das log sagt dazu:

                    Code:
                    Apr  1 12:21:39 a228 cyrus/master[29412]: about to exec /usr/lib/cyrus/bin/imapd
                    Apr  1 12:21:39 a228 cyrus/imap[29412]: executed
                    Apr  1 12:21:39 a228 cyrus/imap[29412]: accepted connection
                    Apr  1 12:21:45 a228 cyrus/imap[29412]: badlogin: domain1.de [xxx.xxx.xxx.xxx] plaintext administrator@domain1.de SASL(-13): authentication failure: checkpass failed
                    in der imapd.conf wurden folgende Einstellungen vorgenommen:

                    Code:
                    admins: administrator@domain1.de administrator@domain2.de
                    loginrealms: domain1.de domain2.de
                    virtdomains: yes
                    in den pam Dateien benutze ich die Angaben von Johann wenn ich das ganze mal asl sql Abfrage ausführe bekomme ich folgende Antwort

                    uid userPassword
                    administrator qUqP5cyxm6YcTAhz05Hph5gvu9M=
                    administrator Uau5Y2B43vv4iNhFenx2+FyPEUw=

                    sollte hier nicht etwas stehen wie

                    administrator@domain1.de password
                    administrator@domain2.de password

                    thx for help

                    outlow

                    Comment


                    • #11
                      Hi,

                      ich habe mir mal das mysql log anlegen lassen und finde nun bei aufruf folgendem Befehl

                      cyradm -u administrator@domain1.de localhost

                      entsprechenden Eintrag im Log

                      Code:
                       
                      19122 Init DB     oxdatabase_7
                      19122 Query       SELECT user.userPassword FROM login2user LEFT JOIN user ON login2user.id=user.id AND login2user.cid=user.cid WHERE user.imapLogin = 'administrator'
                      hier müsste ja nun eigentlich bei user.imapLogin = 'administrator' stehen user.imapLogin = 'administrator@domain1.de'

                      aber was muss ich nun umstellen damit dieses auch so passiert?

                      in der pam.d Datei smtp steht folgendes:

                      Code:
                      auth optional pam_mysql.so host=localhost user=oxdbadmin passwd=secret db=oxdatabase_7 [table=login2user LEFT JOIN user ON login2user.id=user.id AND login2user.cid=user.cid] usercolumn=user.imapLogin passwdcolumn=user.userPassword crypt=1
                      account required pam_mysql.so host=localhost user=oxdbadmin passwd=secret db=oxdatabase_7 [table=login2user LEFT JOIN user ON login2user.id=user.id AND login2user.cid=user.cid] usercolumn=user.imapLogin passwdcolumn=user.userPassword crypt=1
                      für hilfe wie immerr dankbar

                      schöne Ostern

                      outlow

                      Comment


                      • #12
                        Hi,

                        das Problem der nicht Authentifizierung bei cyrus konnte ich lösen.

                        Es fehlte hier in der saslauthd Datei der zusätzliche Paramter "-r", der nichts anderes bewirkt als vor dem Login den usernamen und den realm Namen zusammen zuführen:

                        aus

                        administrator und domain1.de

                        wird

                        administrator@domain1.de

                        somit funktioniert dann auch der Abgleich gegen die Mysql DB.

                        Ich versuche mich jetzt an der weiteren config,

                        hoffe das dies jetzt etwas besser läuft.

                        MfG

                        outlow

                        Comment

                        Working...
                        X