Zuletzt geändert von Jonas Mayer am 2022/05/23 10:48

Von Version 3.14
bearbeitet von michaelecer@sbede
am 2022/03/24 20:41
Änderungskommentar: Update document after refactoring.
Auf Version 18.1
bearbeitet von jonasmayer@sbede
am 2022/05/23 10:30
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Titel
... ... @@ -1,1 +1,1 @@
1 -OpenLDAP direkt im Internet freigeben (ohne Stream im rev-proxy)
1 +Samba4 Verzeichnisdienst direkt im Internet freigeben (ohne Stream via rev-proxy)
Dokument-Autor
... ... @@ -1,1 +1,1 @@
1 -XWiki.michaelecer@sbede
1 +XWiki.jonasmayer@sbede
Inhalt
... ... @@ -1,11 +1,33 @@
1 -(% style="color:#2980b9" %)ldhost
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 +)))
2 2  
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 +
3 3  (% class="box" %)
4 4  (((
5 -(% style="color:#000000" %)##nano /etc/shorewall/rules
6 -DNAT ext dmz:172.28.29.2:1636 tcp 636##
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##
7 7  )))
8 8  
29 +(% style="color:#000000" %)Im Anschluß daran starten Sie mit folgendem Befehl die Shorewall neu:
30 +
9 9  (% class="box" %)
10 10  (((
11 11  (% style="color:#000000" %)##shorewall restart##
... ... @@ -12,15 +12,25 @@
12 12  )))
13 13  
14 14  
15 -(% style="color:#2980b9" %)logosrv
37 +==== (% style="color:#000000" %)Schritte im Container (% style="color:#2980b9" %)logosrv(%%) ====
16 16  
39 +
40 +(% style="color:#000000" %)Erstellen Sie die Datei {{box}}/usr/sbin/ldfirewall.custom{{/box}} mit einem Editor Ihrer Wahl.
41 +
17 17  (% class="box" %)
18 18  (((
19 19  (% style="color:#000000" %)##nano /usr/sbin/ldfirewall.custom##
20 20  )))
21 21  
22 -(% style="color:#000000" %)folgenden Text pasten und bearbeiten:
23 23  
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 +
24 24  (% class="box" %)
25 25  (((
26 26  (% style="color:#000000" %)###!/bin/bash
... ... @@ -34,70 +34,101 @@
34 34  }
35 35  run()
36 36  {
37 - if [ "$VERBOSE" = "yes" ]; then
38 - echo "$@"
39 - fi
40 - if [ "$DRYRUN" = "no" ]; then
41 - "$@"
42 - fi
69 + if [ "$VERBOSE" = "yes" ]; then
70 + echo "$@"
71 + fi
72 + if [ "$DRYRUN" = "no" ]; then
73 + "$@"
74 + fi
43 43  }
44 44  \\case "$1" in
45 - start|restart)
46 - # Zugelassene externe IP-Adressen
47 - # (falls mehrere IP-Adressen nötig, diese per Leerzeichen trennen)
48 - # ~-~-~-~-~-~--
49 - # - BelWue-Moodle-Server IPs: 129.143.69.1 129.143.232.18 129.143.255.2
50 - # - Webuntis Server in Österreich IP: 213.208.138.146
51 - SOURCEIP="213.23.76.144 213.23.76.123 195.34.83.83 87.130.28.26"
52 - IP_LOGOSRV_DMZ=172.28.29.2
53 - IP_SAMBA4_SERVERNET=172.28.28.30
54 -\\ for ipaddr in $SOURCEIP
55 - do
56 - echo -n "Adding custom rules to allow ldaps connections (tcp/1636) from host '${ipaddr}' and redirect to 'samba4-ad:636'... "
57 - $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
58 - $ipt -t mangle -I mark_from_internet_check_ports -p tcp -s ${ipaddr} -d ${IP_LOGOSRV_DMZ} ~-~-dport 1636 -g mark_from_internet_allowed
59 - echo "OK"
60 - done
61 - ;;
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" %)## ;;
62 62   stop)
63 63   ;;
64 64   *)
65 - echo "Benutzung: $0 {start|restart}"
66 - exit 1
97 + echo "Benutzung: $0 {start|restart}"
98 + exit 1
67 67   ;;
68 68  esac##
69 69  )))
70 70  
71 -(% style="color:#000000" %)folgendes muss hier angepasst werden:
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.
72 72  
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 +
73 73  (% class="box" %)
74 74  (((
75 -(% style="color:#000000" %)##SOURCEIP=" 87.130.28.26"  <- SBE IP, da wird eine zutzliche gewhitelistet, die öffentliche ip der moodle Instanz
76 -IP_LOGOSRV_DMZ=172.28.29.2  <- (ifconfig in logosrv und Eintrag "DMZ" anschauen
77 -IP_SAMBA4_SERVERNET=172.28.28.30    <- ifconfig in Sambacontainer und Eintrag "servernet" anschauen##
110 +(% style="color:#e74c3c" %)##SOURCEIP="87.130.28.26"##(% 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##
78 78  )))
79 79  
80 -(% style="color:#000000" %)Das Skript muss für den Cronjob ausführbar gemacht werden und einmalig ausgeführt werden
81 81  
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 +
82 82  (% class="box" %)
83 83  (((
84 -(% style="color:#000000" %)##chmod +x ldfirewall.custom
85 -bash ldfirewall.custom##
120 +(% style="color:#000000" %)##chmod +x /usr/sbin/ldfirewall.custom##
86 86  )))
87 87  
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 +
88 88  (% class="box" %)
89 89  (((
128 +(% style="color:#000000" %)##bash /usr/sbin/ldfirewall.custom restart##
129 +)))
130 +
131 +
132 +(% style="color:#000000" %)Im nächsten Schritt öffnen Sie mit einem Editor Ihrer Wahl die //internet.conf//
133 +
134 +(% class="box" %)
135 +(((
90 90  (% style="color:#000000" %)##nano /etc/logodidact/internet.conf##
91 91  )))
92 92  
93 -(% style="color:#000000" %)FromInternetAllowTCP 636 als Port freigeben in der Internet.conf
94 94  
140 +(% style="color:#000000" %)Hier fügen Sie nun den Port 1636 im Abschnitt //FromInternetAllowTCP// hinzu
141 +
95 95  (% class="box" %)
96 96  (((
144 +(% style="color:#000000" %)##FromInternetAllowTCP 1636##
145 +)))
146 +
147 +
148 +(% style="color:#000000" %)Im Anschluß daran starten Sie die Firewall neu
149 +
150 +(% class="box" %)
151 +(((
97 97  (% style="color:#000000" %)##ldfirewall restart##
98 98  )))
99 99  
100 -(% style="color:#000000" %)Portfreischalten auf dem Router nicht vergessen!
101 101  
102 -(% style="color:#000000" %)[[image:1597240262579-305.png]]
156 +(% 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:
103 103  
158 +[[image:1653294111427-417.png||class="img-thumbnail"]]
159 +
160 +
161 +(% class="box successmessage" %)
162 +(((
163 +(% style="color:#000000" %)**__Hinweise:__**(%%)
164 +(% 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(%%)
165 +- (% 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
166 +)))
1653294111427-417.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.jonasmayer@sbede
Größe
... ... @@ -1,0 +1,1 @@
1 +27.9 KB
Inhalt
Port_Router.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.aku@sbede
Größe
... ... @@ -1,0 +1,1 @@
1 +21.5 KB
Inhalt