Zentrales Authsystem mittels LDAP

martin

Well-Known Member
Hallo

ich beschäftige mich gerade etwas mit dem Thema einer zentralen Benutzerverwaltung für alle möglichen Dienste, darunter Postfix, Dovecot, SMB, etc.
Dabei habe ich schon bei Google versucht etwas zu forschen, aber ich seh' wohl den Wald vor lauter Bäumen nicht.
Also wie gesagt Ziel ist es, eine zentrale Benutzerverwaltung aufzubauen und diese Benutzer dann in den verschiendensten Diensten "verwenden" zu können. So soll es beispielsweise möglich sein, dass ein Benutzer einmalig angelegt wird und er dann automatisch mit einem username und kennwort alle oben erwähnten Dienste verwenden kann. Ich habe mir lange den Kopf zermartert und bin zum Schluss gekommen, dass eigentlich nur LDAP für so eine Sache in Frage kommt, oder kennt jemand Alternativen?
Es sollten nämlich auch Windows-User integriert werden (SMB) und dabei sollte eine Änderung des Kennworts z.B. vom User selbst kein Problem darstellen und von allen Dienste übernommen werden.
Was ich so gegoogelt habe, sollte das mit LDAP funktionieren, was ich noch nicht ganz rausgefunden habe, ist, wie es mit Rechten auf dem Dateisystem (des Servers) aussieht, also wie diese mit LDAP Benutzern vergeben werden können.
Sicher haben einige Kunden von euch genau diese Anforderungen, mich würde einfach grundsätzlich interessieren, wie ihr das löst und was ihr davon haltet.

danke
 
Hallo martin,

Hallo

ich beschäftige mich gerade etwas mit dem Thema einer zentralen Benutzerverwaltung für alle möglichen Dienste, darunter Postfix, Dovecot, SMB, etc.
Dabei habe ich schon bei Google versucht etwas zu forschen, aber ich seh' wohl den Wald vor lauter Bäumen nicht.
Ging mir auch so :)
Irgendwann habe habe diese Suchergebnisse gelöscht und mir Dieter Klünters Buch über LDAP gekauft. Danach war mir einiges klar und ich konnte gezielter suchen.

Also wie gesagt Ziel ist es, eine zentrale Benutzerverwaltung aufzubauen und diese Benutzer dann in den verschiendensten Diensten "verwenden" zu können. So soll es beispielsweise möglich sein, dass ein Benutzer einmalig angelegt wird und er dann automatisch mit einem username und kennwort alle oben erwähnten Dienste verwenden kann. Ich habe mir lange den Kopf zermartert und bin zum Schluss gekommen, dass eigentlich nur LDAP für so eine Sache in Frage kommt, oder kennt jemand Alternativen?
Nicht wirklich. LDAP ist am weitesten verbreitet. Selbst ActiveDirectory ist eine Art LDAP. Es gibt sogar Schemas, die AD abdecken.
Es sollten nämlich auch Windows-User integriert werden (SMB) und dabei sollte eine Änderung des Kennworts z.B. vom User selbst kein Problem darstellen und von allen Dienste übernommen werden.
Solange Du keine FreeBSD-Clients verwendest, funktioniert das auch. Bei FreeBSD ist das Problem, dass passwd mit LDAP nicht umgehen kann (siehe PR 71290 und PR 121243).
Was ich so gegoogelt habe, sollte das mit LDAP funktionieren, was ich noch nicht ganz rausgefunden habe, ist, wie es mit Rechten auf dem Dateisystem (des Servers) aussieht, also wie diese mit LDAP Benutzern vergeben werden können.
Da bin ich anfangs auch immer gestolpert. Die Lösung ist einfach: Du musst auf dem Server ebenfalls eine LDAP-Client-Konfiguration durchführen. Nur dadurch weiß auch der Server von Benutzern in Deinem Netzwerk.
Sicher haben einige Kunden von euch genau diese Anforderungen, mich würde einfach grundsätzlich interessieren, wie ihr das löst und was ihr davon haltet.
Die LDAP-Lösung ist im Moment die flexibelste und am besten dokumentierte Authentifizierungslösung. Sie ist knifflig zu konfigurieren, aber bietet auch die Möglichkeit der Plattformunabhängigkeit.
Bei uns in der Firma läuft so ein Szenario: Zentrale Userverwaltung mit Single-Sign-On (OpenLDAP mit Kerberos) für unsere Redhat- und Solaris-Server und Fedora-Clients. Die FreeBSD-Gateways/Firewalls sind aus Sicherheitsgründen von LDAP ausgenommen. Wir verwalten darüber nicht nur ein zentrales Adressbuch, sondern auch die kompletten Dienste und die komplette Infrastruktur. Läuft super seit etwa fünf Jahren.

JueDan
 
Willst du eine zentrale Authentifizierung oder eine zentrale Autorisierung?

Das mit dem Kennwort ist ersteres, das mit den Dateirechten letzteres. Scheinbar also beides. LDAP kann man für beides verwenden. Gerne wird es auch mit Kerberos (für Authentifizierung) verbunden, um ein Single-Sign-On zu ermöglichen, wie z.B. bei Microsoft's AD.
 
danke an beide für die Antworten. Also mein Vorhaben läuft dann wohl auf LDAP mit Kerberos hinaus :rolleyes:

@judean
aus deiner Sig. habe ich den Link zu dem Buch gefunden, das du wohl geschrieben hast. Eigentlich behandelt es ja genau das, was ich brauche, oder? Meinst du damit könnte ich mein Vorhaben in überschaubarem Zeitraum realisieren?
 
danke an beide für die Antworten. Also mein Vorhaben läuft dann wohl auf LDAP mit Kerberos hinaus :rolleyes:

@judean
aus deiner Sig. habe ich den Link zu dem Buch gefunden, das du wohl geschrieben hast. Eigentlich behandelt es ja genau das, was ich brauche, oder? Meinst du damit könnte ich mein Vorhaben in überschaubarem Zeitraum realisieren?

Zunächst Mal solltest Du dich in LDAP einarbeiten, damit du die Zusammenhänge verstehst. Dann solltest Du natürlich auch eine Planung machen, was Du alles umsetzen möchtest. Mein Buch kannst Du natürlich gerne kaufen :), weil ich die Themen anspreche und auch andere Auth.-Verfahren zeige.
 
ok, dann werde ich mich mal an mein Testsystem setzen und mit ldap anfangen. Front-Ends zur Verwaltung der Benutzer, Gruppen, usw. scheint es ja einige zu geben, habt ihr einen Favoriten? Und wie sieht es mit guten HowTos aus? Empfehlungen?

P.S. das Buch hab ich bestellt, dauert wohl noch ein paar Tage bis ich es dann bekomme :)
 
Hallo Martin,

ok, dann werde ich mich mal an mein Testsystem setzen und mit ldap anfangen. Front-Ends zur Verwaltung der Benutzer, Gruppen, usw. scheint es ja einige zu geben, habt ihr einen Favoriten?
Privat setze ich GQ ( http://www.freebsd.org/cgi/url.cgi?ports/net/gq/pkg-descr ) ein. Das Gegenstück für KDE heißt LUMA ( http://www.freebsd.org/cgi/url.cgi?ports/sysutils/luma/pkg-descr ). In der Firma haben wir uns selber etwas auf GTK und Perl basierendes gestrickt, weil wir ja so ziemlich alles in LDAP abgebildet haben.
Und wie sieht es mit guten HowTos aus? Empfehlungen?

Da sind einerseits zwei empfehlenswerte Bücher:
  • Dieter Klünter, LDAP verstehen, OpenLDAP einsetzen: Grundlagen und Praxiseinsatz, # dpunkt.verlag, ISBN-13: 978-3898642637
  • OpenLDAP: Schemata, Services, Tools, SSL, TLS, ACLs, Samba, Kerberos, Galileo Computing, ISBN-13: 978-3898427623

Gerade das letzte Buch ersetzt so ziemlich alle Tutorials und Howtos (nein, ich habe nix mit dem Verlag zu tun).

P.S. das Buch hab ich bestellt, dauert wohl noch ein paar Tage bis ich es dann bekomme :)
:D Danke!

Du wirst sehen, LDAP macht irgendwie Spaß. Besonders dann, wenn Du die Möglichkeiten erkennst.

Viele Grüße und viel Erfolg :)

JueDan
 
Front-Ends zur Verwaltung der Benutzer, Gruppen, usw. scheint es ja einige zu geben, habt ihr einen Favoriten?
Ich nutze am liebsten das Apache Directory Studio: http://directory.apache.org/studio/
Funktioniert wunderbar mit OpenLDAP.

Und wie sieht es mit guten HowTos aus? Empfehlungen?
Eher weniger gut. LDAP ist IMHO zu komplex, um mit einem HowTo wirklich etwas erreichen zu können. Was ich bisher gesehen habe, waren simple Kochrezepte für ein spezifisches Problem (OpenXchange installieren, MTA-Authentifizierung per LDAP, etc.). Die beschriebenen Setups waren unflexibel und hätten für SSO über mehrere Dienste überhaupt nicht getaugt.

Ich kann mich JueDan da nur anschließen: Das OpenLDAP-Buch von Liebel und Ungar bietet einen brauchbaren Zugang zur Materie - ich würde allerdings die aktuellere 2. Auflage (ISBN-13 978-3836211987) empfehlen. Das Buch deckt so ziemlich alles ab, was man mit LDAP anstellen kann, und beschäftigt sich auch mit praktischen Aspekten für den Betrieb (Ausfallsicherheit, Replikation, etc.).

juedan schrieb:
Solange Du keine FreeBSD-Clients verwendest, funktioniert das auch. Bei FreeBSD ist das Problem, dass passwd mit LDAP nicht umgehen kann (siehe PR 71290 und PR 121243).
Ich habe mir eine Webanwendung geschrieben (Python mit python-ldap, genshi und cherrypy), mit der User einige Attribute bearbeiten können (u. a. Passwort ändern u. ä.) - ansonsten kann man notfalls einen Alias auf ldappasswd setzen, muss dann aber darauf achten, dass die ldap.conf vernünftig aussieht.
 
Ich nutze am liebsten das Apache Directory Studio: http://directory.apache.org/studio/
Funktioniert wunderbar mit OpenLDAP.
Sieht gut aus, werde ich mir mal anschauen, sobald ich meinen Client dazu bewegen kann mit dem LDAP Server zu kommunizieren. :)

Nun, solange ich auf die LDAP Lektüre warte, die ich bestellt habe, habe ich mich im Internet etwas nach howtos umgesehen und da auch schon etwas Nettes gefunden: http://www.xs4all.nl/~doub/samba-ldap/index.html
Ich habe den ersten Teil (also alles bis auf DHCP und DNS) nachgebaut und es funktioniert soweit tadellos. Ich konnte meinen Server erfolgreich in mein LDAP einbinden mit:
# net rpc join -S smb-server01 -Uroot
Enter root's password:
Joined domain TESTDOMAIN
soweit so gut. Jetzt habe ich aber Probleme weitere Clients unter Windows einzubinden, oder auch mich mit Apache Directory Studio von einem Client aus zu verbinden und weiß nicht ganz wo das Problem liegt, bei pf, ldap oder doch samba.
Also ich habe das Ganze in eine Jail mit ip 192.168.100.1 installiert, meine pf.conf sieht folgendermaßen aus:
Code:
jail_if="em0"
hostsystem = "192.168.1.66"
jail1 = "192.168.100.1"

rdr pass on $jail_if proto tcp from any to ($jail_if) port 389 -> $jail1 port 389
rdr pass on $jail_if proto tcp from any to ($jail_if) port 445 -> $jail1 port 445

rdr pass on $jail_if proto tcp from any to ($jail_if) port 137 -> $jail1 port 137
rdr pass on $jail_if proto udp from any to ($jail_if) port 137 -> $jail1 port 137
rdr pass on $jail_if proto tcp from any to ($jail_if) port 138 -> $jail1 port 138
rdr pass on $jail_if proto udp from any to ($jail_if) port 138 -> $jail1 port 138
rdr pass on $jail_if proto tcp from any to ($jail_if) port 139 -> $jail1 port 139
rdr pass on $jail_if proto udp from any to ($jail_if) port 139 -> $jail1 port 139
Kann es sein, dass ich noch zusätzliche Ports freigeben/weiterleiten muss, oder dass ich zwingend einen DNS Server für die Namensauflösung des PDC machen muss?

Oder kann es vielleicht daran liegen, dass mein slapd nicht hochkommt, wenn ich den Parameter uri ... slap://192.168.100.1/ ... verwende? Warum das so ist, weiß ich nicht, ich erhalte die Fehlermeldung "address already in use", wenn ich slap ohne diesen Parameter starte, dann startet slapd ordungsgemäß.
 
Sorry für den Doppelpost, ich habe mir jetzt mal die Logs angeschaut, die eigentlich - sofern ich das beurteilen kann - recht gut aussehen, keine Warnungen oder Fehlermeldungen in Sicht.
Die log.nmbd z.B. sieht folgendermaßen aus:

Attempting to become domain master browser on workgroup TESTDOMAIN, subnet UNICAST_SUBNET.
[2011/03/21 16:45:23.087639, 0] nmbd/nmbd_become_dmb.c:351(become_domain_master_browser_wins)
become_domain_master_browser_wins: querying WINS server from IP 192.168.100.1 for domain master browser name TESTDOMAIN<1b> on workgroup TESTDOMAIN
[2011/03/21 16:45:27.032931, 0] nmbd/nmbd_logonnames.c:121(become_logon_server_success)
become_logon_server_success: Samba is now a logon server for workgroup TESTDOMAIN on subnet 192.168.100.1
[2011/03/21 16:45:29.016396, 0] nmbd/nmbd_logonnames.c:121(become_logon_server_success)
become_logon_server_success: Samba is now a logon server for workgroup TESTDOMAIN on subnet UNICAST_SUBNET
[2011/03/21 16:45:29.016538, 0] nmbd/nmbd_become_dmb.c:110(become_domain_master_stage2)
*****

Samba server SMB-SERVER01 is now a domain master browser for workgroup TESTDOMAIN on subnet UNICAST_SUBNET

*****
[2011/03/21 16:45:29.016610, 0] nmbd/nmbd_become_dmb.c:292(become_domain_master_browser_bcast)
become_domain_master_browser_bcast:
Attempting to become domain master browser on workgroup TESTDOMAIN on subnet 192.168.100.1
[2011/03/21 16:45:29.016658, 0] nmbd/nmbd_become_dmb.c:305(become_domain_master_browser_bcast)
become_domain_master_browser_bcast: querying subnet 192.168.100.1 for domain master browser on workgroup TESTDOMAIN
[2011/03/21 16:45:37.897784, 0] nmbd/nmbd_become_dmb.c:110(become_domain_master_stage2)
*****

Samba server SMB-SERVER01 is now a domain master browser for workgroup TESTDOMAIN on subnet 192.168.100.1

*****
[2011/03/21 16:45:45.791707, 0] nmbd/nmbd_become_lmb.c:395(become_local_master_stage2)
*****

Samba name server SMB-SERVER01 is now a local master browser for workgroup TESTDOMAIN on subnet 192.168.100.1

Kann es sein, dass genau da der Hund begraben liegt? Also dass meine Domäne nur im 192.168.100.X Subnetz zur Verfügung steht? Das ist ja das Subnetz in dem sich die Jail befindet, nicht das Subnetz in dem sich meine Win-Clients befinden!
Hmmm... kann es vielleicht sogar sein, dass mein Vorhaben in einer Jail nicht machbar ist??
 
gelöscht... sorry, konnte mal wieder meine Augen nicht weit genug aufmachen... Montag halt...
 
Zuletzt bearbeitet:
Zurück
Oben