LDAP Multidomain Authentifizierung
Hallo SuSE Liste, ich habe unter SuSE 9.0 einen LDAP Server mit mehreren BaseDNs aufgesetzt. Die LDAP Datenbank hat somit dieses aussehen: ----8<---- dc=firma1,dc=de ou=People,dc=firma1,dc=de uid=user1,ou=People,dc=firma1,dc=de dc=firma2,dc=de ou=People,dc=firma2,dc=de uid=user1,ou=People,dc=firma2,dc=de ---->8---- Der Cyrus Imap Daemon (auch von SuSE 9.0) soll über diese LDAP Datenbank die Usernamen erhalten. *Das Authentifizierungs-Szenario:* Die Authentifizierung wird über sasl - PAM realisiert (/etc/imapd.conf), die LDAP-PAM Informationen werden in der Datei /etc/ldap.conf konfiguriert. *Das Problem:* Aus der Datei /etc/ldap.conf wird nur ein (der letzte) BaseDN Eintrag ausgelesen, heißt dieser Eintrag "dc=firma1,dc=de", können keine User der firma2 sich am Imap-Server anmelden. *Meine Ideen:* Der Cyrusserver hat eine eigene PAM Datei (/etc/pam.d/imap). Hier wird auf die LDAP Library verwiesen. Der Cyrusserver identifiziert sich gegenüber PAM als "imap". Ich dachte durch kopieren (und umbenennen) des imapd Binarys kann ich den Identifikationsnamen ändern, leider vergeblich. Kann der Identifikationsname überhaupt geändert werden, außer die Sourcen zu ändern? So hätte ich zwei PAM Dateien (/etc/pam.d/firma1_imap, /etc/pam.d/firma2_imap) erstellt und diese so konfiguriert, dass die Authentifizierung eine bestimmte BaseDN hat: ----8<---- auth sufficient pam_ldap.so config=/etc/firma1_ldap.conf [ ... ] ---->8---- Ich habe auch in der normalen /etc/pam.d/imap doppelte LDAP Einträge mit unterschiedlichen config-Pfaden (s.o.) gemacht, mit der Hoffnung, das PAM bei einem Loginfehler die nächste LDAP-Konfiguration probiert, leider vergeblich. Meine Frage: Ist es möglich PAM-LDAP so zu konfigurieren, dass zur Authentifizierung mehrere BaseDNs herangezogen werden können? Ich könnte mir auch vorstellen mehrere LDAP Server laufen zu lassen, wenn das Problem dadurch behoben werden kann. Schon mal vorweg vielen Dank für Tipps und Ratschläge. Gruß und einen guten Start in die Woche Sven Schiwek -- Sven Schiwek Netzwerkbetreuung AIS Automations- und Informationssysteme GmbH Rheinweg 7 Crellestraße 12 D-34131 Kassel D-10827 Berlin Tel: +49-561-30859-29 Tel: +49-30-787728-0 Fax: +49-561-30859-39 Fax: +49-30-787728-39 http://www.ais-ag.de
Hallo,
Sven Schiwek
Hallo SuSE Liste,
ich habe unter SuSE 9.0 einen LDAP Server mit mehreren BaseDNs aufgesetzt. Die LDAP Datenbank hat somit dieses aussehen:
----8<---- dc=firma1,dc=de ou=People,dc=firma1,dc=de uid=user1,ou=People,dc=firma1,dc=de
dc=firma2,dc=de ou=People,dc=firma2,dc=de uid=user1,ou=People,dc=firma2,dc=de ---->8----
Das geht so nicht. Du kannst nur einen Suffix, sprich eine Base DN verwenden, alles andere würde gegen das X.500 Protokoll verstoßen. Wenn du Lust hast, kannst du aber drei LDAP Server auf deinem Host laufen lassen, zwei jeweils mit einer anderen Base DN, den dritten als Meta Server, der die beiden unterschiedlichen Bases nach außen als eine gemeinsame Basis darstellt, also ein LDAP Proxy-Server. Eine andere Möglichkeit wäre, die Base DN zu verändern, etwa in der Art: cn=firma1,o=alle firmen,c=de cn=firma2,o=alle firmen,c=de
Der Cyrus Imap Daemon (auch von SuSE 9.0) soll über diese LDAP Datenbank die Usernamen erhalten.
*Das Authentifizierungs-Szenario:* Die Authentifizierung wird über sasl - PAM realisiert (/etc/imapd.conf), die LDAP-PAM Informationen werden in der Datei /etc/ldap.conf konfiguriert.
*Das Problem:* Aus der Datei /etc/ldap.conf wird nur ein (der letzte) BaseDN Eintrag ausgelesen, heißt dieser Eintrag "dc=firma1,dc=de", können keine User der firma2 sich am Imap-Server anmelden.
Das muß so sein, siehe oben. Wenn es anders wäre, würdest möglicherweise unendliche loops produzieren. Es sei denn du veränderst die Base DN, wie oben beschrieben.
*Meine Ideen:*
[..Tünkram entfernt ..]
Meine Frage: Ist es möglich PAM-LDAP so zu konfigurieren, dass zur Authentifizierung mehrere BaseDNs herangezogen werden können? Ich könnte mir auch vorstellen mehrere LDAP Server laufen zu lassen, wenn das Problem dadurch behoben werden kann.
Nein, aber anders herum wird ein Schuh daraus, wie schon oben skizziert, kannst du mehrere LDAP Server laufen lassen, die sich nach außen als eine einheitliche Basis darstellen, dann kann die Authentifizierung durch pam_ldap über diese virtuelle Basis erfolgen. Oder die Base DN modifizieren, allerdings treibt das die Last in ungeahnte Höhen, inbesondere in Verbindung mit PAM. Es müssen dann nämlich alle Teilbäume geparsed werden. -Dieter -- Dieter Kluenter | Systemberatung Tel:040.64861967 | Fax: 040.64891521 mailto: dkluenter(at)dkluenter.de http://www.avci.de
Dieter Kluenter wrote:
Sven Schiwek
writes: ich habe unter SuSE 9.0 einen LDAP Server mit mehreren BaseDNs aufgesetzt. Die LDAP Datenbank hat somit dieses aussehen:
----8<---- dc=firma1,dc=de ou=People,dc=firma1,dc=de uid=user1,ou=People,dc=firma1,dc=de
dc=firma2,dc=de ou=People,dc=firma2,dc=de uid=user1,ou=People,dc=firma2,dc=de ---->8----
Das geht so nicht. Du kannst nur einen Suffix, sprich eine Base DN verwenden, alles andere würde gegen das X.500 Protokoll verstoßen.
Wenn du Lust hast, kannst du aber drei LDAP Server auf deinem Host laufen lassen, zwei jeweils mit einer anderen Base DN, den dritten als Meta Server, der die beiden unterschiedlichen Bases nach außen als eine gemeinsame Basis darstellt, also ein LDAP Proxy-Server.
Eine andere Möglichkeit wäre, die Base DN zu verändern, etwa in der Art:
cn=firma1,o=alle firmen,c=de cn=firma2,o=alle firmen,c=de
Meine Frage: Ist es möglich PAM-LDAP so zu konfigurieren, dass zur Authentifizierung mehrere BaseDNs herangezogen werden können? Ich könnte mir auch vorstellen mehrere LDAP Server laufen zu lassen, wenn das Problem dadurch behoben werden kann.
Nein, aber anders herum wird ein Schuh daraus, wie schon oben skizziert, kannst du mehrere LDAP Server laufen lassen, die sich nach außen als eine einheitliche Basis darstellen, dann kann die Authentifizierung durch pam_ldap über diese virtuelle Basis erfolgen. Oder die Base DN modifizieren, allerdings treibt das die Last in ungeahnte Höhen, inbesondere in Verbindung mit PAM. Es müssen dann nämlich alle Teilbäume geparsed werden.
-Dieter
Hallo, ja, solch eine Idee hatte ich auch schon, das würde dann als Baum so aussehen: dc=de +-dc=firma1 | `-ou=People | | +-dc=firma2 | `-ou=People So kommt aber ein neues Problem auf: Ein User aus firma1 kann sich auch unter firma2 anmelden, da PAM-LDAP nur die BaseDN "dc=de" kennt und dort nach dem Loginnamen sucht. Ich habe vor auf einem Server mehrere unabhängige Imap-Server laufen zu lassen, die je zu einer Firma gehören, es laufen dazu auch je ein SMTP-Server (Postfix). Ist es überhaupt möglich dieses Szenario mit der Software: IMAP - Cyrus SMTP - Postfix Authentifizierung - LDAP aufzubauen? Ich brenne nicht darauf LDAP zu nutzen, es kommt mir nur logisch vor LDAP für diese Zwecke zu nutzen. Gibt für dieses Szenario Alternativsoftware? Ich habe eine veränderte libnss bei Debian gefunden, ich werde mir die Software mal etwas genauer ansehen. http://packages.debian.org/stable/libs/libnss-multidomain Danke. Gruß Sven -- You can verify the SMIME signature on http://thawte.com/ This key is valid till 2004-09-06 Public PGP Key: B409B4DF This key is valid till 2005-03-18 ======================================================================== Sven Schiwek Netzwerkbetreuung AIS Automations- und Informationssysteme GmbH Rheinweg 7 Crellestraße 12 D-34131 Kassel D-10827 Berlin Tel: +49-561-30859-29 Tel: +49-30-787728-0 Fax: +49-561-30859-39 Fax: +49-30-787728-39 http://www.ais-ag.de
Hallo Sven,
Sven Schiwek
Dieter Kluenter wrote:
Sven Schiwek
writes: ich habe unter SuSE 9.0 einen LDAP Server mit mehreren BaseDNs aufgesetzt. Die LDAP Datenbank hat somit dieses aussehen: [...] Eine andere Möglichkeit wäre, die Base DN zu verändern, etwa in der Art: cn=firma1,o=alle firmen,c=de cn=firma2,o=alle firmen,c=de [...] Hallo,
ja, solch eine Idee hatte ich auch schon, das würde dann als Baum so aussehen:
dc=de +-dc=firma1 | `-ou=People | | +-dc=firma2 | `-ou=People
So kommt aber ein neues Problem auf: Ein User aus firma1 kann sich auch unter firma2 anmelden, da PAM-LDAP nur die BaseDN "dc=de" kennt und dort nach dem Loginnamen sucht.
Das ließe sich verhindern, indem man reduntante Namensgebung vermeidet, oder durch Hinzufügung eines trennenden Attributwertes, also z.B. 'uid=franz+firma1, eine andere Möglichkeit wäre die Emailadresse. Da gibt es genügend Beispiele in der Literatur und im Netz. Eine Bemerkung am Rande, eine Base DN 'dc=de' würde ich dir nicht empfehlen, da treten sehr leicht Konflikte auf, abgesehen davon daß dies eine Verletzung des X.500 Protokolls wäre.
Ich habe vor auf einem Server mehrere unabhängige Imap-Server laufen zu lassen, die je zu einer Firma gehören, es laufen dazu auch je ein SMTP-Server (Postfix).
Ist es überhaupt möglich dieses Szenario mit der Software:
IMAP - Cyrus SMTP - Postfix Authentifizierung - LDAP
aufzubauen? Ich brenne nicht darauf LDAP zu nutzen, es kommt mir nur logisch vor LDAP für diese Zwecke zu nutzen.
Ja, es ist möglich! LDAP als Datenbasis zur Authentifizierung ist immer besser als eine reine Textdatei, auch wenn sie gehashed ist. Schon allein aus Gründen der höheren Lesegeschwindigkeit.
Gibt für dieses Szenario Alternativsoftware?
Da fällt mir spontan Kerberos V5 und die SASL Libraries anstelle von PAM ein, inbesondere libgssapi. Aber daß Problem ist nicht die Software, sondern Mangel an Protollkenntnissen. Wenn man DAP oder LDAP nutzen möchte, sollte man schon einige Tage mit dem Design des Serverlayouts verbringen. LDAP ist nicht RDBM.
Ich habe eine veränderte libnss bei Debian gefunden, ich werde mir die Software mal etwas genauer ansehen.
Kenne ich nicht. Aber wenn du dich inensiver mit pam_ldap und libnss auseinandersetzen möchtest, bist du bei http://www.padl.com gut aufgehoben. -Dieter -- Dieter Kluenter | Systemberatung Tel:040.64861967 | Fax: 040.64891521 mailto: dkluenter(at)dkluenter.de http://www.avci.de
participants (2)
-
Dieter Kluenter
-
Sven Schiwek