Inhaltsverzeichnis
- Auf Gerät
- Port
- 389
- LXC
- Hostname
Überblick
Wir verwenden eine LDAP-Datenbank als gemeinsame Grundlage für alle Dienste, die Nutzer-Authentifikation erfordern. Zu diesen Dienste zählt beispielsweise:
LDAP-Accounts sollen 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:
<Location /test> 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 </Location>
Auf Gruppenbasis:
<Location /test> 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 </Location>
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