Changes for page LDAP-Benutzer unter Linux

Last modified by Jonas Jelten on 2025/02/25 12:14

From version 14.1
edited by Jonas Jelten
on 2025/01/07 12:53
Change comment: There is no comment for this version
To version 16.1
edited by Jonas Jelten
on 2025/02/25 12:14
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -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.
39 + # /etc/nslcd.conf
40 + # nslcd configuration file. See nslcd.conf(5)
41 + # for details.
43 43  
44 -# The user and group nslcd should run as.
45 -uid nslcd
46 -gid nslcd
43 + uid nslcd
44 + gid nslcd
47 47  
48 -# The location at which the LDAP server(s) should be reachable.
49 -uri ldaps://ldap.cit.tum.de
46 + 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
48 + 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 -```
50 + tls_reqcert demand
51 + 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,40 @@
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.
111 +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:
116 +Ob ein Nutzer sich einloggen kann (`ssh`, desktop login), wird global mit `pam_access` geprüft.
117 +Selbst erstellte lokale Nutzer müssen in der `login`-Gruppe sein.
138 138  
119 +Erlaube Gruppen (oder Nutzer) werden in `/etc/security/access.conf` eingetragen:
120 +
139 139  ```
122 +# login restriction for pam_access
123 +
124 +# StrukturDB machine's lsadmin and lsuser groups
125 ++:(yourmachinename-admin) (yourmachinename-user):ALL
126 +
127 +# allow local "root" user and members of local groups "root" and "login"
128 ++:root (login) (root):ALL
129 +
130 +# deny rest
131 +-:ALL:ALL
132 +```
133 +
134 +Um die `machinename-admin`/`machinename-user`-Gruppen zu sehen, muss ein zusätzlicher LDAP-Filter für Gruppen eingestellt sein.
135 +In der `nslcd.conf` wäre das:
136 +```
137 +filter group (|(objectClass=posixGroup)(&(objectClass=itoMachineUserGroup)(cn=yourmachinename-*)))
138 +```
139 +
140 +### `pam_access` Setup
141 +
142 +Für PAM-Autokonfiguration `/usr/share/pam-configs/ito-ldap` anlegen:
143 +
144 +```
140 140  Name: ITO LDAP group-based Authentication
141 141  Default: yes
142 142  Priority: 128
... ... @@ -164,6 +164,11 @@
164 164  %deine-ldap-gruppe ALL=(ALL) NOPASSWD: ALL
165 165  ```
166 166  
172 +Um zum beispiel den `lsadmin`-Nutzern aus dem `machine`-Eintrag `sudo`-Rechte zu geben:
173 +```
174 +%yourmachinename-admin ALL=(ALL) NOPASSWD: ALL
175 +```
176 +
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`: