Version 21.1 von jonasmayer@sbede am 2022/05/23 10:40

Zeige letzte Bearbeiter
1 (% class="box warningmessage" %)
2 (((
3 (% style="font-size:16px" %)__**Wichtig**__(%%)
4 Diese Art der Verzeichnisdienst-Freigabe wird von SBE nicht empfohlen, da hier die Freischaltung ohne zertifikatsgesicherte Transportverschlüsselung erfolgt.
5 Wir empfehlen Ihnen stattdessen, dieser [[Anleitung >>doc:Main.LD Server.Puppet-Version.1\.3\.22\.14.Geändert\: LDAP Admin-Benutzer und ReadOnly-Benutzer im logosrv.WebHome||target="_blank"]]zu folgen, um den LDAP-Dienst auf sichere Art mit Lets' Encrypt SSL-Zertifikaten freizugeben!
6 )))
7
8
9 ----
10
11
12 (% style="color:#000000" %)Wenn Sie den Verzeichnisdienst des Samba4-Containers direkt (d.h. nicht über einen Tunnel via (% style="color:#2980b9" %)**rev-proxy**(% style="color:#000000" %) / (% style="color:#27ae60" %)**nginx**(% style="color:#000000" %)) im Internet freigeben wollen, folgen Sie bitte dieser Anleitung.
13
14 {{toc start="4" numbered="true"/}}
15
16
17 ==== (% style="color:#000000" %)Schritte im Container (% style="color:#2980b9" %)ldhost(%%) ====
18
19
20 (% style="color:#000000" %)Öffnen Sie die die Datei {{box}}/etc/nano/shorewall/rules{{/box}} mit einem Editor Ihrer Wahl und fügen Sie am Anfang folgende Zeile hinzu.
21 Da der LDAPS Port 636  schon durch den OpenLDAP-Dienst belegt ist, wird mit nachfolgendem Shorewall-Eintrag der Port serverintern zunächst auf einen anderen Port umgemappt.
22
23 (% class="box" %)
24 (((
25 (% style="color:#16a085" %)### TCP-Port 636 vom Internet-Router entgegennehmen und auf benutzerdefiniertem Port 1636 zum LXC-Container logosrv weiterleiten##(%%)
26 (% style="color:#000000" %)##DNAT ext dmz:172.28.29.2:1636 tcp 636##
27 )))
28
29 (% style="color:#000000" %)Im Anschluß daran starten Sie mit folgendem Befehl die Shorewall neu:
30
31 (% class="box" %)
32 (((
33 (% style="color:#000000" %)##shorewall restart##
34 )))
35
36
37 ==== (% style="color:#000000" %)Schritte im Container (% style="color:#2980b9" %)logosrv(%%) ====
38
39
40 (% style="color:#000000" %)Erstellen Sie die Datei {{box}}/usr/sbin/ldfirewall.custom{{/box}} mit einem Editor Ihrer Wahl.
41
42 (% class="box" %)
43 (((
44 (% style="color:#000000" %)##nano /usr/sbin/ldfirewall.custom##
45 )))
46
47
48 (% style="color:#000000" %)Kopieren Sie nun folgenden Text in die Datei.
49
50 (% class="box infomessage" %)
51 (((
52 (% style="color:#000000; font-size:12px" %)**Hinweis:** Sollte die Datei schon mit anderweitigen Regeln existieren, bearbeiten Sie stattdessen den Inhalt in geeigneter Form und fügen Sie die relevanten Regeln darin ein. Es handelt sich um die rot & orange markierten Zeilen.
53 )))
54
55
56 (% class="box" %)
57 (((
58 (% style="color:#000000" %)###!/bin/bash
59 \\DRYRUN=no
60 VERBOSE=no
61 ipt=do_iptables
62 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/bin:/usr/local/bin/support"
63 \\do_iptables()
64 {
65 run iptables "$@"
66 }
67 run()
68 {
69 if [ "$VERBOSE" = "yes" ]; then
70 echo "$@"
71 fi
72 if [ "$DRYRUN" = "no" ]; then
73 "$@"
74 fi
75 }
76 \\case "$1" in
77 start|restart)##(%%)
78 (% style="color:#16a085" %)## # Zugelassene externe IP-Adressen (falls mehrere IP-Adressen nötig, diese per Leerzeichen trennen)
79 # ~-~-~-~-~-~--
80 # Beispiele:
81 # * BelWue-Moodle-Server IPs: 129.143.69.1 129.143.232.18 129.143.255.2
82 # * Webuntis Server in Österreich IP: 213.208.138.146##(%%)
83 (% style="color:#e74c3c" %)## SOURCEIP="129.143.69.1 129.143.232.18 129.143.255.2 213.208.138.146"
84 IP_LOGOSRV_DMZ=172.28.29.2
85 IP_SAMBA4_SERVERNET=172.28.28.30##(%%)
86 \\(% style="color:#e67e22" %)## for ipaddr in $SOURCEIP
87 do
88 echo -n "Adding custom rules to allow ldaps connections (tcp/1636) from host '${ipaddr}' and redirect to 'samba4-ad:636'... "
89 $ipt -t nat -I PREROUTING -i dmz -p tcp -s ${ipaddr} -d ${IP_LOGOSRV_DMZ} ~-~-dport 1636 -j DNAT ~-~-to-destination ${IP_SAMBA4_SERVERNET}:636
90 $ipt -t mangle -I mf_internet_cp -p tcp -s ${ipaddr} -d ${IP_LOGOSRV_DMZ} ~-~-dport 1636 -g mark_from_internet_allowed
91 echo "OK"
92 done##(%%)
93 (% style="color:#000000" %)## ;;
94 stop)
95 ;;
96 *)
97 echo "Benutzung: $0 {start|restart}"
98 exit 1
99 ;;
100 esac##
101 )))
102
103 (% style="color:#000000; font-size:12px" %)**Info:** Durch die letzte iptables-Regel wird der temporär verwendete, benutzerdefinierte TCP-Port 1636 serverintern wieder auf Port 636 zurückgemappt, bevor die Verbindung zum LXC-Container samba4-ad weitergeleitet wird. An diesen Port ist der Samba4 Verzeichnisdienst gebunden.
104
105
106 (% style="color:#000000" %)In der Datei {{box}}/usr/sbin/ldfirewall.custom{{/box}} müssen nun folgende Werte an die eigene Umgebung angepasst werden:
107
108 (% class="box" %)
109 (((
110 (% style="color:#e74c3c" %)##SOURCEIP="213.208.138.146"##(% style="color:#16a085" %)##  #  <- Öffentliche IP(s), von denen aus Verbindungen erlaubt werden. In der Regel handelt es sich um IPv4-Adressen von Webservern, z.B. eine extern gehostete Moodle-Instanz##(%%)
111 (% style="color:#e74c3c" %)##IP_LOGOSRV_DMZ=172.28.29.2##(% style="color:#16a085" %)##            #  <- ifconfig im logosrv aufrufen, dort die IP-Adresse der Schnittstelle "dmz" anschauen und hier in der Variable eintragen##(%%)
112 (% style="color:#e74c3c" %)##IP_SAMBA4_SERVERNET=172.28.28.30##(% style="color:#16a085" %)##   #  <- ifconfig im samba4-ad Container aufrufen, dort die IP-Adresse der Schnittstelle "servernet" anschauen und hier in der Variable eintragen##
113 )))
114
115
116 (% style="color:#000000" %)Danach müssen Sie das Skript noch ausführbar machen, damit sie im Zuge eines Firewall-Restarts automatisch verarbeitet wird:
117
118 (% class="box" %)
119 (((
120 (% style="color:#000000" %)##chmod +x /usr/sbin/ldfirewall.custom##
121 )))
122
123
124 (% style="color:#000000" %)Führen Sie nun das Skript einmal im Vordergrund aus und stellen Sie sicher, dass keine Fehlermeldungen an der Konsole ausgegeben werden (Syntaxkontrolle):
125
126 (% class="box" %)
127 (((
128 (% style="color:#000000" %)##bash /usr/sbin/ldfirewall.custom restart##
129 )))
130
131
132 (% style="color:#000000" %)Im Anschluß daran starten Sie die Firewall komplett neu, um die Regeln zu laden:
133
134 (% class="box" %)
135 (((
136 (% style="color:#000000" %)##ldfirewall restart##
137 )))
138
139
140 ==== (% style="color:#000000" %)Schritte am vorgeschalteten Router für den Internetzugriff(%%) ====
141
142
143 (% style="color:#000000" %)Damit die Freigabe des Samba4-LDAP im Internet funktioniert, ist es außerdem noch wichtig, die Portfreigabe (TCP-Port 636) am vorgeschalteten Router zum LogoDIDACT Server hinzuzufügen:
144
145 [[image:1653294111427-417.png||class="img-thumbnail"]]
146
147
148 (% class="box successmessage" %)
149 (((
150 (% style="color:#000000" %)**__Hinweise:__**(%%)
151 (% style="color:#000000" %)- Bei der IP-Adresse 192.168.1.254 in der Abbildung handelt es sich um die Schnittstelle p_extern des LogoDIDACT Servers(%%)
152 - (% style="color:#000000" %)Neben dem Port 636 (LDAP-Freigabe wie im Artikel hier beschrieben) werden hier in der Abbildung außerdem noch die Ports 80+443 zur Freischaltung von LogoDIDACT Webdiensten durch den Router weitergeleitet
153 )))