Wiki-Quellcode von samba4 direkt im Internet freigeben (ohne Stream im rev-proxy)
Version 11.1 von jonasmayer@sbede am 2022/05/19 19:19
Verstecke letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
![]() |
10.1 | 1 | (% style="color:#e74c3c; font-size:18px" %)**__Wichtig__**(%%) |
2 | (% style="color:#e74c3c; font-size:16px" %)**Diese Art der Verzeichnisdienst-Freigabe wird von SBE nicht empfohlen, da hier die Freischaltung ohne zertifikatsgesicherte Transportverschlüsselung erfolgt. | ||
3 | Wir empfehlen Ihnen stattdessen, dieser **(% style="font-size:16px" %)**[[(% style="font-size: 16px; color: rgb(41, 128, 185); font-size: 16px" %)Anleitung>>doc:Main.LD Server.Puppet-Version.1\.3\.22\.14.Geändert\: LDAP Admin-Benutzer und ReadOnly-Benutzer im logosrv.WebHome||target="_blank"]](%%)**(% style="color:#e74c3c; font-size:16px" %)**[[ >>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.1 | 4 | |
5 | |||
![]() |
10.1 | 6 | ---- |
![]() |
2.1 | 7 | |
![]() |
4.1 | 8 | |
![]() |
10.1 | 9 | (% style="color:#000000" %)Wenn Sie den Verzeichnisdienst des Samba4-Containers direkt (und nicht über einen Tunnel via rev-proxy / nginx) im Internet freigeben wollen, folgen Sie bitte dieser Anleitung. |
![]() |
4.1 | 10 | |
![]() |
10.1 | 11 | {{toc start="4" numbered="true"/}} |
![]() |
4.1 | 12 | |
![]() |
10.1 | 13 | |
14 | ==== (% style="color:#000000" %)Schritte im Container (% style="color:#2980b9" %)ldhost(%%) ==== | ||
15 | |||
16 | |||
17 | (% 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. | ||
![]() |
8.1 | 18 | Da der Port 636 intern schon vergeben ist wird mit diesem Eintrag der Port intern auf einen anderen Port umgemappt. |
![]() |
4.1 | 19 | |
![]() |
2.1 | 20 | (% class="box" %) |
21 | ((( | ||
![]() |
4.1 | 22 | (% style="color:#000000" %)##DNAT ext dmz:172.28.29.2:1636 tcp 636## |
![]() |
2.1 | 23 | ))) |
24 | |||
![]() |
10.1 | 25 | (% style="color:#000000" %)Im Anschluß daran starten Sie mit folgendem Befehl die Shorewall neu: |
![]() |
4.1 | 26 | |
![]() |
2.1 | 27 | (% class="box" %) |
28 | ((( | ||
29 | (% style="color:#000000" %)##shorewall restart## | ||
30 | ))) | ||
31 | |||
32 | |||
![]() |
10.1 | 33 | ==== (% style="color:#000000" %)Schritte im Container (% style="color:#2980b9" %)logosrv(%%) ==== |
![]() |
2.1 | 34 | |
![]() |
4.1 | 35 | |
![]() |
10.1 | 36 | (% style="color:#000000" %)Erstellen Sie die Datei {{box}}/usr/sbin/ldfirewall.custom{{/box}} mit einem Editor Ihrer Wahl. |
37 | Sollte die Datei schon mit anderweitigen Regeln existieren, bearbeiten Sie stattdessen den Inhalt in geeigneter Form. | ||
![]() |
4.1 | 38 | |
![]() |
2.1 | 39 | (% class="box" %) |
40 | ((( | ||
41 | (% style="color:#000000" %)##nano /usr/sbin/ldfirewall.custom## | ||
42 | ))) | ||
43 | |||
44 | |||
![]() |
8.1 | 45 | (% style="color:#000000" %)Kopieren Sie nun folgenden Text in die Datei. Wichtig sollte sich schon Inhalt in der Datei befinden fügen sie folgenden Text hinzu. |
![]() |
10.1 | 46 | Wie Sie dem Abschnitt unter// ipaddr// sehen können wird, hier der Port auf 636 zurückgemappt: |
![]() |
4.1 | 47 | |
![]() |
2.1 | 48 | (% class="box" %) |
49 | ((( | ||
50 | (% style="color:#000000" %)###!/bin/bash | ||
51 | \\DRYRUN=no | ||
52 | VERBOSE=no | ||
53 | ipt=do_iptables | ||
54 | PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/bin:/usr/local/bin/support" | ||
55 | \\do_iptables() | ||
56 | { | ||
57 | run iptables "$@" | ||
58 | } | ||
59 | run() | ||
60 | { | ||
61 | if [ "$VERBOSE" = "yes" ]; then | ||
62 | echo "$@" | ||
63 | fi | ||
64 | if [ "$DRYRUN" = "no" ]; then | ||
65 | "$@" | ||
66 | fi | ||
67 | } | ||
68 | \\case "$1" in | ||
69 | start|restart) | ||
70 | # Zugelassene externe IP-Adressen | ||
71 | # (falls mehrere IP-Adressen nötig, diese per Leerzeichen trennen) | ||
72 | # ~-~-~-~-~-~-- | ||
73 | # - BelWue-Moodle-Server IPs: 129.143.69.1 129.143.232.18 129.143.255.2 | ||
74 | # - Webuntis Server in Österreich IP: 213.208.138.146 | ||
![]() |
4.1 | 75 | ##(% style="color:#e74c3c" %)## SOURCEIP="213.23.76.144 213.23.76.123 195.34.83.83 87.130.28.26" |
![]() |
2.1 | 76 | IP_LOGOSRV_DMZ=172.28.29.2 |
![]() |
5.1 | 77 | IP_SAMBA4_SERVERNET=172.28.28.30##(%%) |
78 | \\(% style="color:#000000" %)## for ipaddr in $SOURCEIP | ||
![]() |
2.1 | 79 | do |
80 | echo -n "Adding custom rules to allow ldaps connections (tcp/1636) from host '${ipaddr}' and redirect to 'samba4-ad:636'... " | ||
81 | $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 | ||
82 | $ipt -t mangle -I mark_from_internet_check_ports -p tcp -s ${ipaddr} -d ${IP_LOGOSRV_DMZ} ~-~-dport 1636 -g mark_from_internet_allowed | ||
83 | echo "OK" | ||
84 | done | ||
85 | ;; | ||
86 | stop) | ||
87 | ;; | ||
88 | *) | ||
89 | echo "Benutzung: $0 {start|restart}" | ||
90 | exit 1 | ||
91 | ;; | ||
![]() |
5.1 | 92 | esac## |
![]() |
2.1 | 93 | ))) |
94 | |||
95 | |||
![]() |
4.1 | 96 | (% style="color:#000000" %)Hier müssen nun folgende Werte angepasst werden: |
97 | |||
![]() |
2.1 | 98 | (% class="box" %) |
99 | ((( | ||
![]() |
11.1 | 100 | (% style="color:#000000" %)##SOURCEIP="87.130.28.26" ##(% style="color:#e74c3c" %)### <- Öffentliche IP(s), von denen aus Verbindungen erlaubt werden. In der Regel handelt es sich um IPv4-Adressen von Webservern, z.B. ein extern gehostete Moodle-Instanz##(%%) |
![]() |
10.1 | 101 | (% style="color:#000000" %)##IP_LOGOSRV_DMZ=172.28.29.2 ##(% style="color:#e74c3c" %)### <- ifconfig im logosrv und IP-Adresse der Schnittstelle "dmz" anschauen##(%%) |
102 | (% style="color:#000000" %)##IP_SAMBA4_SERVERNET=172.28.28.30 ##(% style="color:#e74c3c" %)## # <- ifconfig im Samba4-ad Container und IP-Adresse der Schnittstelle "servernet" anschauen## | ||
![]() |
2.1 | 103 | ))) |
104 | |||
105 | |||
![]() |
10.1 | 106 | (% style="color:#000000" %)Danach müssen Sie das Skript ausführbar machen, damit sie im Zuge eines Firewall-Restarts automatisch verarbeitet wird: |
![]() |
4.1 | 107 | |
![]() |
2.1 | 108 | (% class="box" %) |
109 | ((( | ||
![]() |
10.1 | 110 | (% style="color:#000000" %)##chmod +x /usr/sbin/ldfirewall.custom## |
![]() |
2.1 | 111 | ))) |
112 | |||
![]() |
4.1 | 113 | |
![]() |
10.1 | 114 | (% style="color:#000000" %)Führen Sie nun das Skript einmal aus und stellen Sie sicher, dass keine Fehlermeldungen an der Konsole ausgegeben werden (Syntaxkontrolle): |
![]() |
4.1 | 115 | |
![]() |
2.1 | 116 | (% class="box" %) |
117 | ((( | ||
![]() |
10.1 | 118 | (% style="color:#000000" %)##bash /usr/sbin/ldfirewall.custom## |
![]() |
4.1 | 119 | ))) |
120 | |||
121 | |||
122 | (% style="color:#000000" %)Im nächsten Schritt öffnen Sie mit einem Editor Ihrer Wahl die //internet.conf// | ||
123 | |||
124 | (% class="box" %) | ||
125 | ((( | ||
![]() |
2.1 | 126 | (% style="color:#000000" %)##nano /etc/logodidact/internet.conf## |
127 | ))) | ||
128 | |||
129 | |||
![]() |
10.1 | 130 | (% style="color:#000000" %)Hier fügen Sie nun den Port 1636 im Abschnitt //FromInternetAllowTCP// hinzu |
![]() |
4.1 | 131 | |
![]() |
2.1 | 132 | (% class="box" %) |
133 | ((( | ||
![]() |
10.1 | 134 | (% style="color:#000000" %)FromInternetAllowTCP 1636 |
![]() |
4.1 | 135 | ))) |
136 | |||
137 | |||
138 | (% style="color:#000000" %)Im Anschluß daran starten Sie die Firewall neu | ||
139 | |||
140 | (% class="box" %) | ||
141 | ((( | ||
![]() |
2.1 | 142 | (% style="color:#000000" %)##ldfirewall restart## |
143 | ))) | ||
144 | |||
145 | |||
![]() |
10.1 | 146 | (% style="color:#000000" %)Damit die Freigabe des Samba4-LDAP funktioniert, ist es außerdem noch wichtig, die Portfreigabe (TCP-Port 636) am vorgeschalteten Router nicht zu vergessen: |
![]() |
4.1 | 147 | |
![]() |
8.1 | 148 | (% style="color:#000000" %)[[image:Port_Router.png]] |
![]() |
10.1 | 149 | |
150 | |||
151 | (% class="box successmessage" %) | ||
152 | ((( | ||
![]() |
11.1 | 153 | (% style="color:#000000" %)**__Hinweise:__**(%%) |
154 | (% 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(%%) | ||
155 | - (% style="color:#000000" %)Neben dem Port 636 (LDAP-Freigabe als Thema dieses Artikels) werden hier außerdem noch die Ports 80+443 zur Freischaltung von Webdiensten durch den Router weitergeleitet | ||
![]() |
10.1 | 156 | ))) |