>
Auf Gerät:: [[Computer/ditto|ditto]]
Port:: 389
LXC:: [[Container/ldap|ldap]]
Hostname:: [[https://ldap.hack-hro.de/]]
= Überblick =
Wir verwenden eine LDAP-Datenbank als gemeinsame Grundlage für alle Dienste, die Nutzer-Authentifikation erfordern. Zu diesen Dienste zählt beispielsweise:
* [[../StartSeite|dieses Wiki]]
* [[../E-Mail]]
* [[../gitlab]]
* ...
LDAP-Accounts sollen [[Verein/Mitglieder|Vereinsmitgliedern]] vorbehalten sein.
= LDAP-Server =
== LDAP-Einrichtung ==
Pakete installieren: {{{
aptitude install slapd
aptitude install gosa gosa-schema gosa-plugin-samba gosa-plugin-ssh gosa-plugin-ssh-schema
}}}
Schemata, die für unsere Zwecke relevant sind, zur LDAP-Datenbank-Definition hinzufügen: {{{
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/gosa/samba3.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/gosa/gofon.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/gosa/gosystem.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/gosa/goto.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/gosa/gosa-samba3.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/gosa/openssh-lpk.ldif
}}}
== Gosa-Nachbereitung ==
* Gosa in Apache aktivieren
* das gosa-Web-Interface besuchen und dort eine Konfiguration erstellen
* sobald du die Nutzer/Gruppen-Konfiguration im gosa-Interface siehst, bist du fertig mit diesem Schritt
* in der Datei {{{/etc/gosa/gosa.conf}}} ungefähr die folgende Zeile einfügen (siehe auch {{{man gosa.conf}}}: {{{
idGenerator="{%givenName}{%sn[0-2]}"
}}}
= Clients / Dienste =
== LDAP in unix-Accounts integrieren ==
* Ziel: Einträge aus dem LDAP-Verzeichnis sollen lokal auf dem Rechner als Nutzernamen sichtbar sein
* leicht zu sehen in {{{getent passwd}}}
* die Kombination der lokalen Nutzerverwaltung mit dem LDAP-Server ist über den NSS-Dienst (Name-Service-Switch) möglich
* siehe {{{/etc/nsswitch.conf}}} - dort fehlt bisher noch "ldap"
* ldap-Nutzeraccount-Integration installieren: {{{
aptitude install libnss-ldapd
}}}
* unsere Datenquellen: passwd, shadow, group
* anschließend sind die Nutzer via {{{getent passwd}}} sichtbar
* Nutzerverzeichnis automatisch anlegen, durch folgende Zeile am Ende der {{{/etc/pam.d/common-session}}} und {{{common-session-noninteractive}}}: {{{
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
}}}
== Webserver-Zugangssicherung mit LDAP ==
=== Apache2.4 ===
Notwendige Apache-Module aktivieren: {{{
a2enmod ldap
a2enmod authnz_ldap
}}}
Example config: {{{
AuthType Basic
AuthBasicProvider ldap
AuthName "hack-hro.de"
AuthLDAPURL "ldap://ldap/ou=people,dc=hack-hro,dc=de?uid?sub?(objectClass=posixAccount)"
Require valid-user
}}}
Auf Gruppenbasis: {{{
AuthType Basic
AuthBasicProvider ldap
AuthName "hack-hro.de"
AuthLDAPURL "ldap://ldap/ou=people,dc=hack-hro,dc=de?uid?sub?(objectClass=posixAccount)"
Require ldap-group cn=smb_privileged,ou=groups,dc=hack-hro,dc=de
AuthLDAPGroupAttributeIsDN off
AuthLDAPGroupAttribute memberUid
}}}
== Samba-Server ==
* Samba-Server und LDAP-Integration installieren: {{{
aptitude install smbldap-tools
}}}
* anschließend den Abschnitt "SAMBA Server Configuration" in der {{{/usr/share/doc/smbldap-tools/README.Debian.gz}}} ausführen
* die smb.conf-Einstellung {{{obey pam restrictions}}} auf {{{yes}}}
* abschließend den Abschnitt "SMBLDAP-TOOLS Configuration" in der {{{/usr/share/doc/smbldap-tools/README.Debian.gz}}} ausführen
== SSH-Login mit Schlüssel ==
Details: https://github.com/AndriiGrytsenko/openssh-ldap-publickey -> geht nicht gut böses perl
* schlanke python-Implementierung sucht publickeys aus ldap für uid
* wird verbessert/veröffentlicht/dokumentiert
----
KategorieDienste