Zuletzt geändert von Jonas Mayer am 2022/05/25 00:02

Von Version 53.1
bearbeitet von Jonas Mayer
am 2022/05/04 14:50
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 31.2
bearbeitet von David Haido
am 2022/05/02 18:14
Änderungskommentar: Update document after refactoring.

Zusammenfassung

Details

Seiteneigenschaften
Titel
... ... @@ -1,1 +1,1 @@
1 -Geändert: LDAP Admin-Benutzer und ReadOnly-Benutzer im logosrv
1 +Geändert: LDAP Admin-Benutzer und ReadOnly-Benutzer
Dokument-Autor
... ... @@ -1,1 +1,1 @@
1 -XWiki.jonasmayer@sbede
1 +XWiki.davidhaido@sbede
Inhalt
... ... @@ -1,47 +1,43 @@
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.
1 +(% style="color:#000000" %)Um externe oder interne Dienste über LDAPS einzubinden, gibt es nach wie vor den sogenannten LDAP-Admin und den seit der Umstellung auf LDAPS neu hinzugefügten ReadOnly-Benutzer.
2 2  
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.
3 +(% style="color:#000000" %)In diesem Artikel erfahren Sie, wo Sie die Benutzernamen & Kennwörter der zwei Benutzer finden und welche Nutzer sich für welches Vorhaben am besten eignen.
4 4  
5 -----
6 -
7 -{{toc start="2"/}}
8 -
9 -
10 10  (% style="color:#000000" %)[[image:Grafik für LDAp.png||height="331" width="622"]]
11 11  
7 +=== ===
12 12  
13 -== (% style="color:#000000" %)__**Übersicht der Benutzer**__(%%) ==
9 +=== (% style="color:#000000" %)__**LDAP-Admin Benutzer**__(%%) ===
14 14  
15 15  
16 -=== (% style="color:#000000" %)**LDAP-Admin Benutzer**(%%) ===
12 +=== (% style="color:#000000" %)__Nutzungsgebiet:__(%%) ===
17 17  
18 -(% style="color:#000000; font-size:20px" %)__Nutzungsgebiet:__
14 +(% 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.
19 19  
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.
16 +(% style="color:#000000" %)Sollten die Daten des Admins in unbefugte Hände gelangen, stellt dies ein massives datenschutz- und sicherheitstechnisches Problem dar. **__Von einem externen Gebrauch ist daher strengstens abzuraten!__**
21 21  
22 -(% style="color:#000000" %)Sollten die Daten des LDAP-Admins in unbefugte Hände gelangen, stellt dies ein massives datenschutz- und sicherheitstechnisches Problem dar. **__Von einem externen Gebrauch des Benutzerkontos ist daher strengstens abzuraten!__**
23 23  
19 +==== (% style="color:#000000" %)__Benutzername & Kennwort__(%%) ====
24 24  
25 -(% class="wikigeneratedid" id="HZugangsdaten:" %)
26 -(% style="color:#000000; font-size:20px" %)__Zugangsdaten:__
21 +====== ======
27 27  
28 -(% class="wikigeneratedid" id="HBenutzername" %)
29 -(% style="color:#000000" %)Der Benutzername des LDAP Admins lautet:
23 +====== (% style="color:#000000" %)__Benutzername__(%%) ======
30 30  
25 +(% style="color:#000000" %)Der Benutzername des LDAP Admins wäre:
26 +
31 31  {{code language="bash"}}
32 32  cn=ldap-admin
33 33  {{/code}}
34 34  
31 +====== ======
35 35  
36 -(% class="wikigeneratedid" id="HAttributedesBenutzernamens" %)
37 -(% style="color:#000000; font-size:16px" %)__Vollständiger Benutzername__
33 +====== (% style="color:#000000" %)__Attribute des Benutzernamens__(%%) ======
38 38  
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.
35 +(% style="color:#000000" %)Die Attribute des LDAP Namens sind über ein zusätzliches Programm auszulesen wie z.B. die Software LDAP Admin auszulesen. In diesem Beispiel wären die Attribute {{code language="bash"}}dc=schule,dc=local{{/code}}. Dies kann von Installation zu Installation abweichen und wird durch die Intern verwendete DNS Domain bestimmt.
40 40  
41 41  (% style="color:#000000" %)[[image:1651243652049-471.png]]
42 42  
43 43  
44 -(% style="color:#000000" %)In diesem Beispiel ergibt sich der vollständige Benutzername (sogenannter //Distinguished Name// des Benutzerkontos) durch Anfügen der BaseDN:
40 +(% style="color:#000000" %)In diesem Beispiel re der Benutzername durch die ausgelesenen Attribute nun:
45 45  
46 46  {{code language="bash"}}
47 47  cn=ldap-admin,dc=schule,dc=local
... ... @@ -48,8 +48,7 @@
48 48  {{/code}}
49 49  
50 50  
51 -(% class="wikigeneratedid" id="HKennwort" %)
52 -(% style="color:#000000; font-size:16px" %)__Kennwort__
47 +====== (% style="color:#000000" %)__Kennwort__(%%) ======
53 53  
54 54  (% style="color:#000000" %)Das Kennwort ist im logosrv unter folgendem Pfad einsehbar:
55 55  
... ... @@ -57,7 +57,7 @@
57 57  root@logosrv:~ # cat /etc/ldap.secret
58 58  {{/code}}
59 59  
60 -(% style="color:#000000" %)Optional kann man das Passwort (sowie die gültige BaseDN als Suffix des Benutzernamens) auch mit folgendem Befehl unter dem Punkt "Credentials" einsehen:
55 +(% style="color:#000000" %)Optional kann man das Passwort auch mit folgendem Befehl unter dem Punkt "Credentials" einsehen:
61 61  
62 62  {{code language="bash"}}
63 63  root@logosrv:~ # ldconf -o
... ... @@ -64,48 +64,44 @@
64 64  {{/code}}
65 65  
66 66  
67 -=== (% style="color:#000000" %)**LDAP-ReadOnly (ldap-ro) Benutzer**(%%) ===
62 +=== (% style="color:#000000" %)**__LDAP-ReadOnly (ldap-ro) Benutzer__**(%%) ===
68 68  
69 -(% class="wikigeneratedid" id="HNutzungsgebiet:" %)
70 -(% style="color:#000000; font-size:20px" %)__Nutzungsgebiet:__
71 71  
65 +==== (% style="color:#000000" %)__Nutzungsgebiet:__(%%) ====
66 +
72 72  (% style="color:#000000" %)Der LDAP-ReadOnly Benutzer ist für die Verwendung von externen Diensten/Anbindungen gedacht.
73 73  
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 LogoDIDACT-integrierte Benutzerdatenbank über das LDAP-Protokoll.
69 +(% style="color:#000000" %)Mögliche Nutzungsmöglichkeiten wären unteranderem die Nutzung und Einbindung  von einem extern gehosteten moodle, WebUntis oder einer Nextcloud.
75 75  
76 76  
72 +==== (% style="color:#000000" %)__Benutzername & Passwort:__(%%) ====
77 77  
78 -(% class="wikigeneratedid" id="HBenutzername26Passwort:" %)
79 -(% style="color:#000000; font-size:20px" %)__Zugangsdaten:__
80 80  
81 -(% class="wikigeneratedid" id="HBenutzername" %)
82 -(% style="color:#000000" %)Der Benutzername des LDAP ReadOnly Benutzers lautet:
75 +====== (% style="color:#000000" %)__Benutzername__(%%) ======
83 83  
77 +(% style="color:#000000" %)Relevant für den Zugriff von Außen wäre folgender Benutzername:
78 +
84 84  {{code language="bash"}}
85 85  cn=ldap-ro
86 86  {{/code}}
87 87  
88 -====== (% id="cke_bm_979S" style="color:#000000; display:none" %)__ __(%%) ======
83 +====== (% id="cke_bm_979S" style="color: rgb(0, 0, 0); display: none" %)__ __(%%) ======
89 89  
85 +====== (% style="color:#000000" %)__Attribute des Benutzernamens__(%%) ======
90 90  
87 +(% style="color:#000000" %)Die Attribute des LDAP Namens sind über ein zusätzliches Programm auszulesen wie z.B. die Software LDAP Admin auszulesen. In diesem Beispiel wären die Attribute {{code language="bash"}}dc=schule,dc=local{{/code}}. Dies kann von Installation zu Installation abweichen und wird durch die Intern verwendete DNS Domain bestimmt.
91 91  
92 -(% class="wikigeneratedid" id="HAttributedesBenutzernamens" %)
93 -(% style="color:#000000; font-size:16px" %)__Vollständiger Benutzername__
94 -
95 -(% 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.
96 -
97 97  (% style="color:#000000" %)[[image:1651243652049-471.png]]
98 98  
99 99  
100 -(% style="color:#000000" %)Im Unterschied zum vorherigen Benutzer steckt das Konto verschachtelt in der OU //services//. Dadurch ergibt sich nachfolgender, vollständiger Benutzername (sogenannter //Distinguished Name//):
92 +(% style="color:#000000" %)In diesem Beispiel re der Benutzername durch die ausgelesenen Attribute nun:
101 101  
102 102  {{code language="bash"}}
103 -cn=ldap-ro,ou=services,dc=schule,dc=local
95 +cn=ldap-ro,dc=schule,dc=local
104 104  {{/code}}
105 105  
106 106  
107 -(% class="wikigeneratedid" id="HKennwort" %)
108 -(% style="color:#000000; font-size:16px" %)__Kennwort__
99 +====== (% style="color:#000000" %)__Kennwort__(%%) ======
109 109  
110 110  (% style="color:#000000" %)Das Kennwort ist im logosrv unter folgendem Pfad einsehbar:
111 111  
... ... @@ -114,106 +114,10 @@
114 114  {{/code}}
115 115  
116 116  
117 -(% 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.
118 118  
109 +=== (% style="color:#000000" %)**__LDAP Attribute__**(%%) ===
119 119  
120 120  
121 -
122 -
123 -== __**Ports über Firewall an Rev-Proxy weiterleiten**__ ==
124 -
125 -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.
126 -
127 -
128 -Wechseln Sie vom ldhost aus in das Verzeichnis der Shorewall:
129 -
130 -{{code language="bash"}}
131 -root@ldhosts:~ # cd /etc/shorewall
132 -{{/code}}
133 -
134 -
135 -Öffnen Sie die Datei rules mit einem Editor ihrer Wahl:
136 -
137 -{{code language="bash"}}
138 -root@ldhost:/etc/shorewall # vim rules
139 -{{/code}}
140 -
141 -
142 -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.
143 -
144 -(% class="box" %)
145 -(((
146 -(% style="color:#16a085" %)###
147 -# Shorewall version 4.0##(%%)
148 -(% style="color:#16a085" %)#(%%)
149 -(% style="color:#8e44ad" %)##**DNAT ext dmz:172.28.29.3 tcp 636**##(%%)##
150 -DNAT ext dmz:172.28.29.3 tcp 80,443
151 -DNAT ext dmz:172.28.29.2 tcp 1:21
152 -DNAT ext dmz:172.28.29.2 tcp 23:2221
153 -DNAT ext dmz:172.28.29.2 tcp 2223:65535
154 -DNAT ext dmz:172.28.29.2 udp 1:65535##
155 -)))
156 -
157 -
158 -Starten Sie nun die Firewall des ldhost neu:
159 -
160 -{{code language="bash"}}
161 -root@ldhosts:~ # /etc/init.d/shorewall restart
162 -{{/code}}
163 -
164 -
165 -== __**Zertifikat für Rev-Proxy erstellen und prüfen**__ ==
166 -
167 -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.
168 -
169 -=== __acmetool__ ===
170 -
171 -Wechseln Sie in den puppeteer Container:
172 -
173 -{{code language="bash"}}
174 -root@ldhost:~ # lxc-ssh -n puppeteer
175 -{{/code}}
176 -
177 -Fordern Sie das Zertifikat mit folgendem Befehl an (Ersetzen Sie "SCHULKUERZEL" mit dem jeweiligen Shortname):
178 -
179 -{{code language="bash"}}
180 -root@puppeteer:~ # acmetool want kopano.SCHULKUERZEL.logoip.de
181 -{{/code}}
182 -
183 -=== __acme.sh__ ===
184 -
185 -Wechseln Sie in den puppeteer Container:
186 -
187 -{{code language="bash"}}
188 -root@ldhost:~ # lxc-ssh -n puppeteer
189 -{{/code}}
190 -
191 -
192 -Wechseln Sie im puppeteer Container in die Umgebung für das Verwalten der Zertifikate:
193 -
194 -{{code language="bash"}}
195 -root@puppeteer:~ # sle
196 -{{/code}}
197 -
198 -
199 -Beantragen Sie ein neues Zertifikat mit folgendem Befehl (Ersetzen Sie "SCHULKUERZEL" mit dem jeweiligen Shortname):
200 -
201 -{{code language="bash"}}
202 -le-acme@puppeteer:~ $ issue kopano.SCHULKUERZEL.logoip.de
203 -{{/code}}
204 -
205 -
206 -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:
207 -
208 -{{code language="bash"}}
209 -root@puppeteer:~ # prun
210 -
211 -root@rev-proxy:~ # prun
212 -{{/code}}
213 -
214 -
215 -== (% style="color:#000000" %)**__Weitere LDAP Attribute für ReadOnly-Benutzer freischalten__**(%%) ==
216 -
217 217  (% style="color:#000000" %)Standardmäßig werden folgende Attribute an die externe LDAP Schnittstelle weitergegeben:
218 218  
219 219  {{code language="bash"}}
... ... @@ -251,7 +251,7 @@
251 251  {{/code}}
252 252  
253 253  
254 -(% style="color:#000000" %)Die angepassten ACL-Änderungen können zur Kontrolle im logosrv in der Konfigurationsdatei slapd.puppet.conf angeschaut werden:
149 +(% style="color:#000000" %)Die angepassten Änderungen können nun logosrv in der slapd.puppet.conf angeschaut werden:
255 255  
256 256  {{code language="bash"}}
257 257  root@logosrv:~ # cat /etc/ldap/slapd.puppet.conf