<> 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