Changes for page LDAP-Benutzer unter Linux

Last modified by Thomas Walter Erbesdobler on 2025/07/24 16:28

From version 21.1
edited by Christoph Bußenius
on 2025/07/23 11:52
Change comment: There is no comment for this version
To version 14.1
edited by Jonas Jelten
on 2025/01/07 12:53
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.busseniu
1 +XWiki.jelten
Content
... ... @@ -1,5 +3,3 @@
1 -{{toc/}}
2 -
3 3  # Für wen ist diese Anleitung
4 4  
5 5  **Nicht relevant**: für VMs im ITO-VM-Cluster mit Ubuntu 24.04 oder neuer - diese haben das LDAP-Setup **direkt schon mitgeliefert**!
... ... @@ -8,8 +8,6 @@
8 8  
9 9  Falls du den LDAP für andere Zwecke benutzen möchtest (Einbindung in ein Mailprogramm, als Kontaktbuch oder für Webanwendungen), ist dies vermutlich nicht die passende Anleitung.
10 10  
11 -[[LDAP für Webanwendungen etc.|https://wiki.ito.cit.tum.de/bin/edit/CIT/ITO/Docs/Guides/LDAP-Apps/WebHome]]
12 -
13 13  # Allgemein
14 14  
15 15  {{warning}}
... ... @@ -40,19 +40,39 @@
40 40  
41 41  Konfiguration in `/etc/nslcd.conf`:
42 42  
43 - # /etc/nslcd.conf
44 - # nslcd configuration file. See nslcd.conf(5)
45 - # for details.
39 +```
40 +# /etc/nslcd.conf
41 +# nslcd configuration file. See nslcd.conf(5)
42 +# for details.
46 46  
47 - uid nslcd
48 - gid nslcd
44 +# The user and group nslcd should run as.
45 +uid nslcd
46 +gid nslcd
49 49  
50 - uri ldaps://ldap.cit.tum.de
48 +# The location at which the LDAP server(s) should be reachable.
49 +uri ldaps://ldap.cit.tum.de
51 51  
52 - base ou=dir,dc=cit,dc=tum,dc=de
51 +# The search base that will be used for all queries.
52 +base ou=dir,dc=cit,dc=tum,dc=de
53 53  
54 - tls_reqcert demand
55 - tls_cacertfile /etc/ssl/certs/ca-certificates.crt
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 +```
56 56  
57 57  Der Installationsprozess sollte schon automatisch die Einträge in `/etc/pam.d/common-*` angelegt haben.
58 58  
... ... @@ -112,39 +112,15 @@
112 112  ## Filtern von Nutzern mit Gruppen
113 113  
114 114  Auf ldap.cit.tum.de sind alle CIT-Benutzer. Gewöhnlich möchte man **nicht**, dass sie **sich alle anmelden können**.
115 -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.
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.
116 116  Diese Gruppe konfigurieren wir dann in allen installierten Diensten, die eine Benutzeranmeldung ermöglichen.
117 117  
118 118  ## PAM-Logins
119 119  
120 -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.
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:
121 121  
122 -Erlaube Gruppen (oder Nutzer) werden in `/etc/security/access.conf` eingetragen:
123 -
124 124  ```
125 -# login restriction for pam_access
126 -
127 -# StrukturDB machine's lsadmin and lsuser groups
128 -+:(yourmachinename-admin) (yourmachinename-user):ALL
129 -
130 -# allow local "root" user and members of local groups "root" and "login"
131 -+:root (login) (root):ALL
132 -
133 -# deny rest
134 --:ALL:ALL
135 -```
136 -
137 -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:
138 -
139 -```
140 -filter group (|(objectClass=posixGroup)(&(objectClass=itoMachineUserGroup)(cn=yourmachinename-*)))
141 -```
142 -
143 -### `pam_access` Setup
144 -
145 -Für PAM-Autokonfiguration `/usr/share/pam-configs/ito-ldap` anlegen:
146 -
147 -```
148 148  Name: ITO LDAP group-based Authentication
149 149  Default: yes
150 150  Priority: 128
... ... @@ -172,12 +172,6 @@
172 172  %deine-ldap-gruppe ALL=(ALL) NOPASSWD: ALL
173 173  ```
174 174  
175 -Um zum beispiel den `lsadmin`-Nutzern aus dem `machine`-Eintrag `sudo`-Rechte zu geben:
176 -
177 -```
178 -%yourmachinename-admin ALL=(ALL) NOPASSWD: ALL
179 -```
180 -
181 181  ## SSH-Key Login aus StrukturDB
182 182  
183 183  Damit `ssh` automatisch ssh-keys von Nutzern aus der StrukturDB verwendet, muss man diese aus dem LDAP abholen. config für `ssh`:
... ... @@ -188,12 +188,3 @@
188 188  ```
189 189  
190 190  [[attach:ssh-ldap-key]]-programm zum download
191 -
192 -Login für lokale Nutzer
193 -
194 -Die pam_access erlaubt den Login nur für entsprechende Nutzer in den entsprechenden Gruppen.
195 -Für lokale Nutzer, die nicht in den LDAP Gruppen sind, ist die "login" Gruppe vorgesehen, diese muss ggf. noch erstellt werden.
196 -
197 - # groupadd -r login
198 -
199 - # usermod -aG login <user>