samba4 direkt im Internet freigeben (ohne Stream im rev-proxy)
Wichtig
Diese Art der Verzeichnisdienst-Freigabe wird von SBE nicht empfohlen, da hier die Freischaltung ohne zertifikatsgesicherte Transportverschlüsselung erfolgt.
Wir empfehlen Ihnen stattdessen, dieser Anleitung zu folgen, um den LDAP-Dienst auf sichere Art mit Lets' Encrypt SSL-Zertifikaten freizugeben!
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.
Schritte im Container ldhost
Öffnen Sie die die Datei /etc/nano/shorewall/rules mit einem Editor Ihrer Wahl und fügen Sie am Anfang folgende Zeile hinzu.
Da der Port 636 intern schon vergeben ist wird mit diesem Eintrag der Port intern auf einen anderen Port umgemappt.
DNAT ext dmz:172.28.29.2:1636 tcp 636
Im Anschluß daran starten Sie mit folgendem Befehl die Shorewall neu:
shorewall restart
Schritte im Container logosrv
Erstellen Sie die Datei /usr/sbin/ldfirewall.custom mit einem Editor Ihrer Wahl.
Sollte die Datei schon mit anderweitigen Regeln existieren, bearbeiten Sie stattdessen den Inhalt in geeigneter Form.
nano /usr/sbin/ldfirewall.custom
Kopieren Sie nun folgenden Text in die Datei. Wichtig sollte sich schon Inhalt in der Datei befinden fügen sie folgenden Text hinzu.
Wie Sie dem Abschnitt unter ipaddr sehen können wird, hier der Port auf 636 zurückgemappt:
#!/bin/bash
DRYRUN=no
VERBOSE=no
ipt=do_iptables
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/bin:/usr/local/bin/support"
do_iptables()
{
run iptables "$@"
}
run()
{
if [ "$VERBOSE" = "yes" ]; then
echo "$@"
fi
if [ "$DRYRUN" = "no" ]; then
"$@"
fi
}
case "$1" in
start|restart)
# Zugelassene externe IP-Adressen
# (falls mehrere IP-Adressen nötig, diese per Leerzeichen trennen)
# -------
# - BelWue-Moodle-Server IPs: 129.143.69.1 129.143.232.18 129.143.255.2
# - Webuntis Server in Österreich IP: 213.208.138.146
SOURCEIP="213.23.76.144 213.23.76.123 195.34.83.83 87.130.28.26"
IP_LOGOSRV_DMZ=172.28.29.2
IP_SAMBA4_SERVERNET=172.28.28.30
for ipaddr in $SOURCEIP
do
echo -n "Adding custom rules to allow ldaps connections (tcp/1636) from host '${ipaddr}' and redirect to 'samba4-ad:636'... "
$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
$ipt -t mangle -I mark_from_internet_check_ports -p tcp -s ${ipaddr} -d ${IP_LOGOSRV_DMZ} --dport 1636 -g mark_from_internet_allowed
echo "OK"
done
;;
stop)
;;
*)
echo "Benutzung: $0 {start|restart}"
exit 1
;;
esac
Hier müssen nun folgende Werte angepasst werden:
SOURCEIP="87.130.28.26" # <- Ö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
IP_LOGOSRV_DMZ=172.28.29.2 # <- ifconfig im logosrv und IP-Adresse der Schnittstelle "dmz" anschauen
IP_SAMBA4_SERVERNET=172.28.28.30 # <- ifconfig im Samba4-ad Container und IP-Adresse der Schnittstelle "servernet" anschauen
Danach müssen Sie das Skript ausführbar machen, damit sie im Zuge eines Firewall-Restarts automatisch verarbeitet wird:
chmod +x /usr/sbin/ldfirewall.custom
Führen Sie nun das Skript einmal aus und stellen Sie sicher, dass keine Fehlermeldungen an der Konsole ausgegeben werden (Syntaxkontrolle):
bash /usr/sbin/ldfirewall.custom
Im nächsten Schritt öffnen Sie mit einem Editor Ihrer Wahl die internet.conf
nano /etc/logodidact/internet.conf
Hier fügen Sie nun den Port 1636 im Abschnitt FromInternetAllowTCP hinzu
FromInternetAllowTCP 1636
Im Anschluß daran starten Sie die Firewall neu
ldfirewall restart
Damit die Freigabe des Samba4-LDAP funktioniert, ist es außerdem noch wichtig, die Portfreigabe (TCP-Port 636) am vorgeschalteten Router nicht zu vergessen: