Changes for page LDAP-Benutzer unter Linux
Last modified by Martin Uhl on 2025/05/07 12:27
From version 14.1
edited by Jonas Jelten
on 2025/01/07 12:53
on 2025/01/07 12:53
Change comment:
There is no comment for this version
To version 18.1
edited by Martin Uhl
on 2025/05/07 12:27
on 2025/05/07 12:27
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. jelten1 +XWiki.uhl - Content
-
... ... @@ -1,3 +1,5 @@ 1 +{{toc/}} 2 + 1 1 # Für wen ist diese Anleitung 2 2 3 3 **Nicht relevant**: für VMs im ITO-VM-Cluster mit Ubuntu 24.04 oder neuer - diese haben das LDAP-Setup **direkt schon mitgeliefert**! ... ... @@ -36,39 +36,19 @@ 36 36 37 37 Konfiguration in `/etc/nslcd.conf`: 38 38 39 -``` 40 -# /etc/nslcd.conf 41 -# nslcd configuration file. See nslcd.conf(5) 42 -# for details. 41 + # /etc/nslcd.conf 42 + # nslcd configuration file. See nslcd.conf(5) 43 + # for details. 43 43 44 -# The user and group nslcd should run as. 45 -uid nslcd 46 -gid nslcd 45 + uid nslcd 46 + gid nslcd 47 47 48 -# The location at which the LDAP server(s) should be reachable. 49 -uri ldaps://ldap.cit.tum.de 48 + uri ldaps://ldap.cit.tum.de 50 50 51 -# The search base that will be used for all queries. 52 -base ou=dir,dc=cit,dc=tum,dc=de 50 + base ou=dir,dc=cit,dc=tum,dc=de 53 53 54 -# The LDAP protocol version to use. 55 -#ldap_version 3 56 - 57 -# The DN to bind with for normal lookups. 58 -#binddn cn=annonymous,dc=example,dc=net 59 -#bindpw secret 60 - 61 -# The DN used for password modifications by root. 62 -#rootpwmoddn cn=admin,dc=example,dc=com 63 - 64 -# SSL options 65 -#ssl off 66 -tls_reqcert demand 67 -tls_cacertfile /etc/ssl/certs/ca-certificates.crt 68 - 69 -# The search scope. 70 -#scope sub 71 -``` 52 + tls_reqcert demand 53 + tls_cacertfile /etc/ssl/certs/ca-certificates.crt 72 72 73 73 Der Installationsprozess sollte schon automatisch die Einträge in `/etc/pam.d/common-*` angelegt haben. 74 74 ... ... @@ -128,15 +128,39 @@ 128 128 ## Filtern von Nutzern mit Gruppen 129 129 130 130 Auf ldap.cit.tum.de sind alle CIT-Benutzer. Gewöhnlich möchte man **nicht**, dass sie **sich alle anmelden können**. 131 -Die gängige Lösung ist, dass man eine Benutzergruppe definiert (auch in der StrukturDB als LDAP-Gruppe oder auch lokal aus /etc/groups) mit den Benutzern, die sich einloggen dürfen. 113 +Die gängige Lösung ist, dass man eine Benutzergruppe definiert (auch in der StrukturDB als LDAP-Gruppe oder auch lokal aus `/etc/groups`) mit den Benutzern, die sich einloggen dürfen. 132 132 Diese Gruppe konfigurieren wir dann in allen installierten Diensten, die eine Benutzeranmeldung ermöglichen. 133 133 134 134 ## PAM-Logins 135 135 136 -Für logins über PAM (z.b. `ssh`) kann man es global mit `pam_access` in `/etc/security/access.conf` regulieren. 137 -Dafür: `/usr/share/pam-configs/ito-ldap` anlegen: 118 +Ob ein Nutzer sich einloggen kann (`ssh`, desktop login), wird global mit `pam_access` geprüft. Selbst erstellte lokale Nutzer müssen in der `login`-Gruppe sein. 138 138 120 +Erlaube Gruppen (oder Nutzer) werden in `/etc/security/access.conf` eingetragen: 121 + 139 139 ``` 123 +# login restriction for pam_access 124 + 125 +# StrukturDB machine's lsadmin and lsuser groups 126 ++:(yourmachinename-admin) (yourmachinename-user):ALL 127 + 128 +# allow local "root" user and members of local groups "root" and "login" 129 ++:root (login) (root):ALL 130 + 131 +# deny rest 132 +-:ALL:ALL 133 +``` 134 + 135 +Um die `machinename-admin`/`machinename-user`-Gruppen zu sehen, muss ein zusätzlicher LDAP-Filter für Gruppen eingestellt sein. In der `nslcd.conf` wäre das: 136 + 137 +``` 138 +filter group (|(objectClass=posixGroup)(&(objectClass=itoMachineUserGroup)(cn=yourmachinename-*))) 139 +``` 140 + 141 +### `pam_access` Setup 142 + 143 +Für PAM-Autokonfiguration `/usr/share/pam-configs/ito-ldap` anlegen: 144 + 145 +``` 140 140 Name: ITO LDAP group-based Authentication 141 141 Default: yes 142 142 Priority: 128 ... ... @@ -164,6 +164,12 @@ 164 164 %deine-ldap-gruppe ALL=(ALL) NOPASSWD: ALL 165 165 ``` 166 166 173 +Um zum beispiel den `lsadmin`-Nutzern aus dem `machine`-Eintrag `sudo`-Rechte zu geben: 174 + 175 +``` 176 +%yourmachinename-admin ALL=(ALL) NOPASSWD: ALL 177 +``` 178 + 167 167 ## SSH-Key Login aus StrukturDB 168 168 169 169 Damit `ssh` automatisch ssh-keys von Nutzern aus der StrukturDB verwendet, muss man diese aus dem LDAP abholen. config für `ssh`: