Änderungen von Dokument LDAP Admin-Benutzer und ReadOnly-Benutzer im logosrv
Zuletzt geändert von Jonas Mayer am 2022/05/25 00:02
Von Version 20.1
bearbeitet von Jens Gruber
am 2022/04/28 13:38
am 2022/04/28 13:38
Änderungskommentar:
Neuen Anhang Grafik für LDAp.png hochladen
Auf Version 60.2
bearbeitet von Jens Gruber
am 2022/05/05 12:51
am 2022/05/05 12:51
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
-
Seiteneigenschaften (2 geändert, 0 hinzugefügt, 0 gelöscht)
-
Anhänge (0 geändert, 1 hinzugefügt, 0 gelöscht)
Details
- Seiteneigenschaften
-
- Titel
-
... ... @@ -1,1 +1,1 @@ 1 -LDAP Admin-Benutzer und ReadOnly-Benutzer 1 +LDAP Admin-Benutzer und ReadOnly-Benutzer im logosrv - Inhalt
-
... ... @@ -1,42 +1,56 @@ 1 -(% style="color:#000000" %)Um externe oder interne Dienste über LDAPS einzubinden, gibt es nach wievorden sogenannten LDAP-Adminunddenseit der Umstellungauf LDAPSneu hinzugefügten ReadOnly-Benutzer.1 +(% style="color:#000000" %)Um externe oder interne Dienste über das LDAPS-Protokoll einzubinden, gibt es seit Puppet-Version 1.3.22 neben dem sogenannten LDAP-Admin Konto einen neu hinzugefügten ReadOnly-Benutzer zur Anmeldung am integrierten OpenLDAP-Verzeichnisdienst. 2 2 3 -(% style="color:#000000" %)In diesem Artikel erfahren Sie, wo Sie die Benutzernamen & Kennwörter der zwei Benutzer finden und welche Nutzersich für welches Vorhaben am besten eignen.3 +(% style="color:#000000" %)In diesem Artikel erfahren Sie, wo Sie die Benutzernamen & Kennwörter der zwei Benutzer finden und welches Konto sich für welches Vorhaben am besten eignen. 4 4 5 +---- 5 5 6 - === (% style="color:#000000"%)__**LDAP-Admin Benutzer**__(%%)===7 +{{toc start="2"/}} 7 7 8 8 9 - ===(% style="color:#000000" %)__Nutzungsgebiet:__(%%)===10 +(% style="color:#000000" %)[[image:Grafik für LDAp.png||height="331" width="622"]] 10 10 11 -(% style="color:#000000" %)Der LDAP-Admin Benutzer ist mit äußerster Vorsicht einzusetzen, da dieser einen beinahe uneingeschränkten Zugriff auf das Abrufen und Bearbeiten der Nutzerattribute des Servers besitzt. Daher sollte der Benutzer nur möglichst Intern eingesetzt werden. 12 12 13 -(% style="color:#000000" %) Sollten die Daten des Admins in unbefugte Hände gelangen,stellt dies ein massives Datenschutz-undSicherheitstechnischesProblem dar. **__Voneinem externen Gebrauch istdaherstrengstens abgeraten!__**13 +== (% style="color:#000000" %)__**Übersicht der Benutzer**__(%%) == 14 14 15 15 16 -=== =(% style="color:#000000" %)__Benutzername & Kennwort__(%%) ====16 +=== (% style="color:#000000" %)**LDAP-Admin Benutzer**(%%) === 17 17 18 -= ===========18 +(% style="color:#000000; font-size:20px" %)__Nutzungsgebiet:__ 19 19 20 -= =====__Benutzername__======20 +(% style="color:#000000" %)Der LDAP-Admin Benutzer ist mit äußerster Vorsicht einzusetzen, da dieser einen beinahe uneingeschränkten (Schreib-)Zugriff auf den Inhalt des OpenLDAP-Verzeichnisdienst sowie die Nutzerattribute besitzt. Daher sollte der Benutzer möglichst nur intern durch LogoDIDACT-integrierte Dienste zum Einsatz kommen. 21 21 22 -(% style="color:#000000" %)De rBenutzername mitdenjeweiligenAttributen:22 +(% style="color:#000000" %)Sollten die Daten des LDAP-Admins in unbefugte Hände gelangen, stellt dies ein massives datenschutz- und sicherheitsrelevantes Problem dar. **__Von einem externen Gebrauch des Benutzerkontos ist daher strikt abzuraten!__** 23 23 24 + 25 +(% class="wikigeneratedid" id="HZugangsdaten:" %) 26 +(% style="color:#000000; font-size:20px" %)__Zugangsdaten:__ 27 + 28 +(% class="wikigeneratedid" id="HBenutzername" %) 29 +(% style="color:#000000" %)Der Benutzername des LDAP Admins lautet: 30 + 24 24 {{code language="bash"}} 25 25 cn=ldap-admin 26 26 {{/code}} 27 27 28 -====== ====== 29 29 30 -====== __Attribute des Benutzernamens__ ====== 36 +(% class="wikigeneratedid" id="HAttributedesBenutzernamens" %) 37 +(% style="color:#000000; font-size:16px" %)__Vollständiger Benutzername__ 31 31 32 -Die AttributedesLDAPNamenssindüber ein zusätzliches Programm auszulesenie z.B.dieSoftware LDAP Adminauszulesen. In diesem BeispielwärendieAttributeIntern verwendete DNS Domain bestimmt.39 +(% style="color:#000000" %)Die BaseDN als Einstiegspunkt zum LDAP-Verzeichnisdienst kann über ein zusätzliches Programm ausgelesen werden, z.B. über das freie Tool LDAP Admin. In diesem Beispiel lautet die BaseDN {{code language="bash"}}dc=schule,dc=local{{/code}}. Dies kann von Installation zu Installation abweichen und wird durch die intern verwendete DNS Domain bestimmt, hier im Beispiel handelt es sich um den Standardwert. 33 33 34 -[[image:1651 127320035-296.png]]41 +(% style="color:#000000" %)[[image:1651243652049-471.png]] 35 35 36 -====== ====== 37 37 38 -= =====__Kennwort__======44 +(% style="color:#000000" %)In diesem Beispiel ergibt sich der vollständige Benutzername (sogenannter //Distinguished Name// des Benutzerkontos) durch Anfügen der BaseDN: 39 39 46 +{{code language="bash"}} 47 +cn=ldap-admin,dc=schule,dc=local 48 +{{/code}} 49 + 50 + 51 +(% class="wikigeneratedid" id="HKennwort" %) 52 +(% style="color:#000000; font-size:16px" %)__Kennwort__ 53 + 40 40 (% style="color:#000000" %)Das Kennwort ist im logosrv unter folgendem Pfad einsehbar: 41 41 42 42 {{code language="bash"}} ... ... @@ -43,7 +43,7 @@ 43 43 root@logosrv:~ # cat /etc/ldap.secret 44 44 {{/code}} 45 45 46 -Optional kann man das Passwort auch mit folgendem Befehl u nterdemPunkt "Credentials" einsehen:60 +(% style="color:#000000" %)Optional kann man das Passwort (sowie die gültige BaseDN des Servers als Teil des Benutzernamens) auch mit folgendem Befehl aus dem Abschnitt "Credentials" entnehmen: 47 47 48 48 {{code language="bash"}} 49 49 root@logosrv:~ # ldconf -o ... ... @@ -50,38 +50,44 @@ 50 50 {{/code}} 51 51 52 52 53 -=== (% style="color:#000000" %)** __LDAP-ReadOnly (ldap-ro) Benutzer__**(%%) ===67 +=== (% style="color:#000000" %)**LDAP-ReadOnly (ldap-ro) Benutzer**(%%) === 54 54 69 +(% class="wikigeneratedid" id="HNutzungsgebiet:" %) 70 +(% style="color:#000000; font-size:20px" %)__Nutzungsgebiet:__ 55 55 56 - ====(% style="color:#000000" %)__Nutzungsgebiet:__(%%)====72 +(% style="color:#000000" %)Der LDAP-ReadOnly Benutzer ist für die Verwendung in externen Diensten vorgesehen. 57 57 58 -(% style="color:#000000" %) DerLDAP-ReadOnlyBenutzerist für dieVerwendung von externenDiensten/Anbindungengedacht.74 +(% style="color:#000000" %)Mögliche Nutzungsszenarien wären unter anderem die Anbindung von extern gehosteten Webdiensten (z.B. Moodle, WebUntis oder Nextcloud) an die Benutzerdatenbank des LogoDIDACT Servers per LDAP-Protokoll. 59 59 60 -(% style="color:#000000" %)Mögliche Nutzungsmöglichkeiten wären unteranderem die Nutzung und Einbindung von einem extern gehosteten moodle, WebUntis oder einer HPI Schul-Cloud. 61 61 77 +(% class="wikigeneratedid" id="HBenutzername26Passwort:" %) 78 +(% style="color:#000000; font-size:20px" %)__Zugangsdaten:__ 62 62 63 -==== (% style="color:#000000" %)__Benutzername & Passwort:__(%%) ==== 80 +(% class="wikigeneratedid" id="HBenutzername" %) 81 +(% style="color:#000000" %)Der Benutzername des LDAP ReadOnly Benutzers lautet: 64 64 65 - 66 -====== __Benutzername__ ====== 67 - 68 -(% style="color:#000000" %)Relevant für den Zugriff von Außen wäre folgender Benutzername: 69 - 70 70 {{code language="bash"}} 71 71 cn=ldap-ro 72 72 {{/code}} 73 73 74 -====== (% id="cke_bm_979S" style="display:none" %)__ __(%%) ====== 75 75 76 - ======__Attribute desBenutzernamens__======88 +(% style="color:#000000; font-size:16px" %)__Vollständiger Benutzername__ 77 77 78 -Die AttributedesLDAPNamenssindüber ein zusätzliches Programm auszulesenie z.B.dieSoftware LDAP Adminauszulesen. In diesem BeispielwärendieAttribute {{code language="bash"}}dc=schule,dc=local{{/code}}. Dies kann von Installation zu Installation abweichen und wird durch dieIntern verwendete DNS Domain bestimmt.90 +(% style="color:#000000" %)Die BaseDN als Einstiegspunkt zum LDAP-Verzeichnisdienst kann über ein zusätzliches Programm ausgelesen werden, z.B. über das freie Tool LDAP Admin. In diesem Beispiel lautet die BaseDN {{code language="bash"}}dc=schule,dc=local{{/code}}. Dies kann von Installation zu Installation abweichen und wird durch die intern verwendete DNS Domain bestimmt, hier im Beispiel handelt es sich um den Standardwert. 79 79 80 -[[image:1651 127322559-640.png]]92 +(% style="color:#000000" %)[[image:1651243652049-471.png]] 81 81 82 82 83 -= =====__Kennwort__======95 +(% style="color:#000000" %)Im Unterschied zum vorherigen Benutzer steckt das Konto verschachtelt in dem Unterobjekt //OU=services//. Dadurch ergibt sich nachfolgender, vollständiger Benutzername (sogenannter //Distinguished Name//): 84 84 97 +{{code language="bash"}} 98 +cn=ldap-ro,ou=services,dc=schule,dc=local 99 +{{/code}} 100 + 101 + 102 +(% class="wikigeneratedid" id="HKennwort" %) 103 +(% style="color:#000000; font-size:16px" %)__Kennwort__ 104 + 85 85 (% style="color:#000000" %)Das Kennwort ist im logosrv unter folgendem Pfad einsehbar: 86 86 87 87 {{code language="bash"}} ... ... @@ -89,12 +89,189 @@ 89 89 {{/code}} 90 90 91 91 112 +(% style="color:#000000" %)Im Zuge der Anbindung externer Dienste sollte stets darauf geachtet werden, die verschlüsselte Form des LDAP-Protokolls (d.h. LDAPS auf TCP-Port 636) zu verwenden, damit sensible Information wie Benutzer-Zugangsdaten prinzipiell per SSL-Transportverschlüsselung versendet werden. Zur Nutzung der SSL-Transportverschlüsselung ist es wiederum wichtig, ein gültiges Let's Encrypt Zertifikat zu beantragen, damit die Verbindungssicherheit zwischen zwei Servern gewährleistet werden kann. 92 92 93 -=== **__LDAP Attribute__** === 94 94 115 +== (% id="cke_bm_200S" style="display:none" %)__** **__(%%)__**Konfiguration für LDAP im Rev-Proxy**__ == 95 95 96 - (%style="color:#000000"%)StandardmäßigkönnenfolgendeAttribute117 +Nun müssen Sie im Puppeteer Container eine rev-proxy.yaml anlegen. Sollte diese bereits vorhanden sein, muss diese bearbeitet werden. 97 97 119 + 120 +Wechseln Sie in das Verzeichnis /etc/logodidact/hiera/custom.d/ im Puppeteer Container: 121 + 98 98 {{code language="bash"}} 123 +root@puppeteer:~ # cd /etc/logodidact/hiera/custom.d/ 124 +{{/code}} 125 + 126 + 127 +Erstellen Sie die rev-proxy.yaml: 128 + 129 +{{code language="bash"}} 130 +root@puppeteer:/etc/logodidact/hiera/custom.d # vim rev-proxy.yaml 131 +{{/code}} 132 + 133 + 134 +Fügen Sie folgende Einstellungen der yaml hinzu und ersetzen **musterstadt-gym** durch den Shortname der Schule: 135 + 136 +{{code language="bash"}} 137 +ld_rproxy::hosts: 138 + ldap.musterstadt-gym.logoip.de: 139 + type: stream 140 + template: ldap 141 + ensure: present 142 +{{/code}} 143 + 144 + 145 +Übernehmen Sie die Änderungen ins git: 146 + 147 +{{code language="bash"}} 148 +root@puppeteer:~ # cd /etc/logodidact/ 149 +root@puppeteer:/etc/logodidact # git add . 150 +root@puppeteer:/etc/logodidact # git coomit -am "rev-proxy.yaml angelegt." 151 +{{/code}} 152 + 153 + 154 +Führen Sie einen prun im rev-proxy Container aus: 155 + 156 +{{code language="bash"}} 157 +root@rev-proxy:~ # prun 158 +{{/code}} 159 + 160 + 161 +== __**Ports über Firewall an Rev-Proxy weiterleiten**__ == 162 + 163 +Damit externe LDAPS-Verbindungen zum Server möglich werden, muss der TCP-Port 636 vom vorgeschalteten Router auf die externe IP-Adresse des LogoDIDACT Servers weitergeleitet werden. Vom ldhost wird die Verbindung dann entgegengenommen und abermals an den Rev-Proxy LXC-Container weitergeleitet. Die Einrichtung der zugehörige Poerweiterleitungs-Regel wird nachfolgend beschrieben. 164 + 165 + 166 +Wechseln Sie vom ldhost aus in das Verzeichnis der Shorewall: 167 + 168 +{{code language="bash"}} 169 +root@ldhosts:~ # cd /etc/shorewall 170 +{{/code}} 171 + 172 + 173 +Öffnen Sie die Datei rules mit einem Editor ihrer Wahl: 174 + 175 +{{code language="bash"}} 176 +root@ldhost:/etc/shorewall # vim rules 177 +{{/code}} 178 + 179 + 180 +Ergänzen Sie die Liste innerhalb der Datei um den obersten DNAT-Eintrag (lila eingefärbte Zeile). Dadurch werden externe Verbindungsanfragen auf Port 636 (LDAPS) vom ldhost zum rev-proxy LXC-Container weitergeleitet, so wie im Schaubild am Anfang des Artikels abgebildet. Falls diese Regel bereits vorhanden ist, können Sie den Schritt überspringen. 181 + 182 +(% class="box" %) 183 +((( 184 +(% style="color:#16a085" %)### 185 +# Shorewall version 4.0##(%%) 186 +(% style="color:#16a085" %)#(%%) 187 +(% style="color:#8e44ad" %)##**DNAT ext dmz:172.28.29.3 tcp 636**##(%%) 188 +##DNAT ext dmz:172.28.29.3 tcp 80,443 189 +DNAT ext dmz:172.28.29.2 tcp 1:21 190 +DNAT ext dmz:172.28.29.2 tcp 23:2221 191 +DNAT ext dmz:172.28.29.2 tcp 2223:65535 192 +DNAT ext dmz:172.28.29.2 udp 1:65535## 193 +))) 194 + 195 + 196 +Starten Sie nun die Firewall des ldhost neu: 197 + 198 +{{code language="bash"}} 199 +root@ldhosts:~ # /etc/init.d/shorewall restart 200 +{{/code}} 201 + 202 + 203 +== __**Zertifikat für Rev-Proxy erstellen und prüfen**__ == 204 + 205 +Damit die Verbindung gesichert werden kann, wird ein Let's Encrypt Zertifikat benötigt. Dieses können Sie - abhängig vom zu Grunde liegenden Tool - mit den folgenden Kommandos im Puppeteer-Container erstellen. 206 + 207 +=== __acmetool__ === 208 + 209 +Wechseln Sie in den puppeteer Container: 210 + 211 +{{code language="bash"}} 212 +root@ldhost:~ # lxc-ssh -n puppeteer 213 +{{/code}} 214 + 215 +Fordern Sie das Zertifikat mit folgendem Befehl an (Ersetzen Sie "SCHULKUERZEL" mit dem jeweiligen Shortname): 216 + 217 +{{code language="bash"}} 218 +root@puppeteer:~ # acmetool want kopano.SCHULKUERZEL.logoip.de 219 +{{/code}} 220 + 221 +=== __acme.sh__ === 222 + 223 +Wechseln Sie in den puppeteer Container: 224 + 225 +{{code language="bash"}} 226 +root@ldhost:~ # lxc-ssh -n puppeteer 227 +{{/code}} 228 + 229 + 230 +Wechseln Sie im puppeteer Container in die Umgebung für das Verwalten der Zertifikate: 231 + 232 +{{code language="bash"}} 233 +root@puppeteer:~ # sle 234 +{{/code}} 235 + 236 + 237 +Beantragen Sie ein neues Zertifikat mit folgendem Befehl (Ersetzen Sie "SCHULKUERZEL" mit dem jeweiligen Shortname): 238 + 239 +{{code language="bash"}} 240 +le-acme@puppeteer:~ $ issue kopano.SCHULKUERZEL.logoip.de 241 +{{/code}} 242 + 243 + 244 +Um das Verteilen der Zertifikate zu beschleunigen, können Sie einen gezielten 'prun' im puppeteer Container gefolgt von einen weiteren 'prun' im rev-proxy Container durchführen: 245 + 246 +{{code language="bash"}} 247 +root@puppeteer:~ # prun 248 + 249 +root@rev-proxy:~ # prun 250 +{{/code}} 251 + 252 + 253 + 254 +== (% style="color:#000000" %)**__Weitere LDAP Attribute für ReadOnly-Benutzer freischalten__**(%%) == 255 + 256 +(% style="color:#000000" %)Standardmäßig werden folgende Attribute an die externe LDAP Schnittstelle weitergegeben: 257 + 258 +{{code language="bash"}} 99 99 entry, cn, displayName, gidnumber, givenName, mail, member, memberOf, memberUid, o, objectClass, ou, sn, title, uid, uidnumber, uniqueMember, ldObjectType, ldRole 100 100 {{/code}} 261 + 262 + 263 +(% style="color:#000000" %)Sollen zusätzliche Attribute an die externe Schnittstelle weitergegeben werden, so müssen Sie diese in folgender Datei im Puppeteer Container wie folgt abändern/erstellen: 264 + 265 +{{code language="bash"}} 266 +root@puppeteer:~ # vim /etc/logodidact/hiera/custom.d/ldhost.yaml 267 + 268 +#Ist die Datei nicht vorhanden bitte wie folgt anpassen (Im Beispiel werden die Attribute ldBirthday & ldGender hinzugefügt): 269 + 270 +--- 271 +ld_legacy::ldap::ldap_ro_atts: 272 + - ldBirtday 273 + - ldGender 274 +{{/code}} 275 + 276 + 277 +(% style="color:#000000" %)Danach müssen Sie die Änderungen ins Git übernehmen: 278 + 279 +{{code language="bash"}} 280 +root@puppeteer:~ # cd /etc/logodidact/ 281 +root@puppeteer:/etc/logodidact # git add . 282 +root@puppeteer:/etc/logodidact # git coomit -am "LDAP Attribute in der ldhost.yaml hinzugefügt" 283 +{{/code}} 284 + 285 + 286 +(% style="color:#000000" %)Um den Prozess zu beschleunigen bietet sich ein prun im ldhost an. Damit werden die Änderungen sofort an den logosrv weitergeleitet: 287 + 288 +{{code language="bash"}} 289 +root@ldhost:~ # prun 290 +{{/code}} 291 + 292 + 293 +(% style="color:#000000" %)Die angepassten ACL-Änderungen können zur Kontrolle im logosrv in der Konfigurationsdatei slapd.puppet.conf angeschaut werden: 294 + 295 +{{code language="bash"}} 296 +root@logosrv:~ # cat /etc/ldap/slapd.puppet.conf 297 +{{/code}}
- 1651243652049-471.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.JensGruber@sbede - Größe
-
... ... @@ -1,0 +1,1 @@ 1 +16.3 KB - Inhalt