Changes for page LDAP-Benutzer unter Linux

Last modified by Martin Uhl on 2025/05/07 12:27

From version 13.1
edited by Jonas Jelten
on 2024/12/12 16:12
Change comment: There is no comment for this version
To version 17.1
edited by Martin Uhl
on 2025/05/07 12:27
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.jelten
1 +XWiki.uhl
Content
... ... @@ -1,8 +1,10 @@
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**!
4 4  
5 -**Relevant für: **Alle Maschinen, auf denen CIT-Benutzer (alle aus der StrukturDB) am Rechner verfügbar sein sollen - z.B. damit Nutzer sich über SSH mit ihrem CIT-Account anmelden können
7 +**Relevant für**: Alle Maschinen, auf denen CIT-Benutzer (alle aus der StrukturDB) am Rechner verfügbar sein sollen - z.B. damit Nutzer sich über SSH mit ihrem CIT-Account anmelden können, und man die Zugriffe zentral in der StrukturDB verwalten möchte.
6 6  
7 7  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.
8 8  
... ... @@ -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`: