Webdienste extern freischalten

Zuletzt geändert von Clemens Dörfler am 2024/03/06 15:58

Getestete Versionen

Die Funktionalität wurde in folgenden Puppet-Versionen sichergestellt:

  • 7.0.4-7

Es muss somit unter LogoDIDACT 4.0 mindestens die Puppet-Version 7.0.4-7 am Server aufgespielt sein, um LDAPs im Internet freizuschalten.

Forwarder aktivieren

ssh puppeteer-g3
vi /etc/logodidact/hiera/custom.d/ldhost.yaml

Gemäß Manpage-Eintrag (man role.rev-proxy) muss die Forwarder-Komponente aktiviert werden, damit externe Anfragen an interne Dienste getunnelt werden können. Dazu folgende Zeile hinzufügen, falls noch nicht vorhanden.

ld_base::components: {forwarder: true}

Dadurch wird die Software HAProxy als Application-Proxy im ldhost hinzugefügt. Dies wird durch einen anschließenden prun dort ausgelöst.

Dienst extern im rproxy freischalten

Anschließend muss der Dienst mit dem vordefinierten Schlüsselwort "CONTAINERNAME" im LXC-Container rproxy-ext freigeschaltet werden. Dazu im selbigen Verzeichnis eine neue Datei anlegen oder aber falls bereits vorhanden, dieselbe nutzen & ergänzen. (Infos dazu in: man host.rproxy-ext und components.forwarder, sowie features.ldap)

ssh puppeteer-g3
vi /etc/logodidact/hiera/custom.d/rproxy-ext.yaml

ld_rproxy2::access: [CONTAINERNAME]   # weitere Dienste können kommagetrennt innerhalb der eckigen Klammern als Liste hinzugefügt werden

Hinweis:
Es ist auch möglich, anstatt der rproxy-ext.yaml eine allgemeingültige rev-proxy.yaml zu erstellen. Diese muss man allerdings mit demselben Inhalt im Verzeichnis /etc/logodidact/hiera/custom.d/role.d/ abspeichern.
Bei Verwendung der allgemeingültigen rev-proxy.yaml schaltet man die Dienste sowohl für den Zugriff vom lokalen Netzwerk als auch im Internet parallel frei. Dies ist üblicherweise bei Webdiensten sinnvoll, unter Umständen jedoch auch beim LDAPS-Zugriff auf den Server.

SSL-Zertifikat beantragen

Für eine gesicherte Verbindung wird natürlich auch ein Zertifikat benötigt. Das Tool 'acme.sh' zur Registrierung von Let's Encrypt Zertifikaten ist unter LD4.0 standardmäßig nicht aktiviert. Deshalb muss es zunächst aktiviert werden, falls noch nicht geschehen.

ssh puppeteer-g3
vi /etc/logodidact/hiera/custom.d/puppeteer-g3.yaml

ld_acme::client: 'acme.sh'
ld_acme::ensure: 'present'
ld_acme::mail: 'support@sbe.de'   # ggf. eine andere Mailadresse einsetzen, an die Benachrichtigungen von Let's Encrypt gesendet werden sollen

Danach die Änderungen mit git commiten und einen prun im Puppeteer starten, damit acme.sh installiert wird. Mittels 'sle' wechselt man nach erfolgreicher Installation in die Zertifikatsverwaltung und kann ein Zertifikat beantragen. 

issue CONTAINERNAME.[ShortName].logoip.de

Hinweis:
Falls die Beantragung des Zertifikates fehlschlägt, müssen unter Umständen noch die Webports 80/HTTP und 443/HTTPS in der Shorewall des ldhost geöffnet werden.
Dazu in der Shorewall-Konfigurationsdatei /etc/shorewall/rules ganz oben folgende beiden Einträge hinzufügen, falls noch nicht vorhanden:

HTTP(ACCEPT)  ext  $FW
HTTPS(ACCEPT)  ext  $FW

Danach das Kommando shorewall restart zum Laden der geänderten Einstellungen im ldhost absenden.
Außerdem vergewissern, dass diese beiden genannten TCP-Ports am vorgeschalteten Internetrouter auf die Schnittstelle p_extern des LogoDIDACT Servers weitergeleitet werden!