Cockpit Project unter KeyHelp einbinden

[Aktualisiert: 29.11.2019] Ich habe in diesem Beitrag beschrieben, wie das Cockpit Project unter Linux Ubuntu installiert wird. Auf meinen virtuellen Server nutze ich für das Management das kostenlose Tool Keyhelp, welches von Keyweb entwickelt wird. Standardmäßig verwendet das Tool Port 80/TCP und 443/TCP für den Webserver. Als Webserver nutzt Keyhelp den Apache2.

Somit gibt es zwei Möglichkeiten:

a) Im Keyhelp unter Sicherheit -> Firewall eine zusätzliche Regel anlegen, damit der Port 9090/TCP nicht mehr geblockt wird.

b) Die Konfiguration des Webservices von Cockpit anpassen, dass der Webserver von Keyhelp als Reverse Proxy fungiert.

Variante a)

Anmelden an der Weboberfläche von Keyhelp. Links in der Navigationsleiste den Eintrag Firewall unter dem Bereich Sicherheit anklicken. Danach Die Seite nach unten scrollen bis der Bereich Allow erscheint.

Die neue Regel per Drag & Drop über die Regel REJECT ziehen. Über den Bleistift die neue Regel bearbeiten.

Nun die einzelnen Optionen wie im Screenshot anlegen.

Die Regel über die Schaltfläche „Speichern“ sichern.

Danach wieder ganze nach oben Scrollen. Rechts oben die Aktion „Speichern & Anwenden (Anti-Lockout) auswählen und Ausführen. Die Anwendung der Änderung kann einige Sekunden in Anspruch nehmen. Da einfach nicht ungeduldig werden.

Falls der (virtueller) Server über eine IPv6-Adresse verfügt, müssen die obengenannten Schritte natürlich wiederholt werden. Der Regelsatz kann ebenfalls oben links entsprechend gewechselt werden.

Anschließend die neuen Firewall Regel nicht vergessen zu testen. Browser önffen, die Adresse von Keyhelp eingeben und den Port hinter der Adresse mit :9090 ergänzen.

Variante b)

Zuerst eine SSH-Verbindung zum entsprechenden (virtuellen) Server aufbauen und mit einem Benutzer anmelden, der Mitglied in der Grippe sudo ist. Denn damit Apache2 als Reverse Proxy fungieren kann, müssen folgende Module aktiviert werden.

a2enmod proxy proxy_wstunnel proxy_http ssl rewrite

Danach die Konfigurationsdatei (/etc/cockpit/cockpit.conf) von Cockpit mit einem beliebigen Editor (z.B. vi oder nano) öffnen. Folgende Parameter müssen gesetzt sein:

Origins = https://srv1.cokpit.domain.de:9090 http://127.0.0.1:9090
ProtocolHeader = X-Forwarded-Proto

Origins: Hier wird die Domain angegeben, unter der später in Keyhelp die Konfiguration von Apache erweitert wird. Der Eintrag für localhost muss bestehen bleiben, da später der Zugriff zwar über den Webserver Apache2 läuft, aber die Anfragen lokale vom Host selber an Cockpit weitergeleitet werden.

ProtocolHeader: Dieser Eintrag ist bei ReverseProxy notwendig.

Die Änderungen speichern und die Datei schließen. Nicht vergessen, den Dienst neu zu starten.

systemctl restart cockpit.socket

Nun in die Weboberfläche von Keyhelp wechseln. Wie man einen Benutzer bzw. eine Domain mit einem Zertifikat von Let’s Encrypt anlegt, gehe ich hier nicht näher drauf ein. Das ist meiner Meinung nach selbsterklärend. 😉

Um die zusätzlichen Apache Einstellungen zu setzen, die entsprechende Domain bearbeiten.

In den Reiter Apache-Einstellungen wechseln.

Dort in das Textfeld folgenden Zeilen 1:1 einfügen:

# allow for upgrading to websockets
RewriteEngine On

Rewritecond %{REQUEST_URI} !^/\.well-known
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*)           ws://127.0.0.1:9090/$1 [P,L]

Rewritecond %{REQUEST_URI} !^/\.well-known
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /(.*)           http://127.0.0.1:9090/$1 [P,L]

# Proxy to your local cockpit instance
ProxyPass /.well-known !

ProxyPass / http://127.0.0.1:9090/
ProxyPassReverse / http://127.0.0.1:9090/

ProxyPreserveHost On
ProxyRequests Off

Über die Schaltfläche „Speichern“ die Anweisungen speichern. Die Einstellungen werden aber nicht sofort wirksam. In der Übersicht der Domains in Keyhelp ist in der Zeile der bearbeiteten Domain ein Symbol des Schraubenschlüssels. D.h. die Änderung wird noch verarbeitet. Das kann bis zu einer Minute dauern. Wird ein Haken angezeigt sind die Änderungen erfolgreich verarbeitet.

Zum Test einen Browser öffnen und die Domain eingeben.

Es erscheint natürlich die Anmeldemaske des Cockpit Projects. 🙂

Abonnieren
Benachrichtige mich bei
6 Comments
neueste
älteste
Inline Feedbacks
View all comments
Alex Herdt
06.05.2020 13:42

Wow, vielen Dank für deinen hilfreichen Beitrag, Daniel! 🙂 Das Snippet deiner Apache-Einstellungen für Keyhelp hat mir bei diversen Projekten sehr gut weitergeholfen! Ich würde mich riesig freuen, wenn du mir evtl. eine kleine Frage beantworten könntest. Ich habe versucht Jitsi-meet auf meinem Server zu installieren und möchte auch hier gerne Reverse Proxy mit einer Subdomain einsetzen (da das certbot script von jitsi bei mir scheitert, aber keyhelp Zertiikate super funktionieren). Nun frage ich mich, wie man in einem solchen Fall die Apache Einstellungen festlegen muss, wenn Jitsi-meet standardmäßig für Port 443 konfiguriert wird. Dies führt in meinen Keyhelp-Domaineinstellungen leider… Weiterlesen »

widdow
Reply to  Daniel Wydler
21.05.2020 15:28

Gibt es da eine Lösung. Genau das wäre nämlich mein Problem :/

Alex Herdt
Reply to  Daniel Wydler
31.07.2020 10:49

Hi Daniel, vielen Dank für deine Rückmeldung! Korrekt, ich würde gerne Jitsii auf dem gleichen Server installieren, auf welchem parallel bereits Keyhelp mit Apache läuft. Wenn ich Jitsi auf einem „frischen / leeren“ Server installiere, funktioniert alles super mit dem Bash-script für die Zertifizierung von Jitsii: „sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh“ Sobald ich jedoch Keyhelp auf meinem Server installiere und im Anschluss Jitsii, dann funktioniert das oben genannte Script für die Zertifizierung nicht mehr. (Am Ende dieser Nachricht habe ich den Error-Log eingefügt). Die DNS Einstellungen sind jedoch korrekt. Daher suche ich nun nach einer Lösung, mit welcher ich Jitsii Meet in Verbindung… Weiterlesen »

Alex Herdt
Reply to  Daniel Wydler
04.08.2020 17:19

Hi Daniel,
entschuldige, ich hatte den Beitrag aus dem Forum zum besagten Zeitpunkt noch nicht entdeckt, da er relativ neu ist. Mit der Anleitung aus dem Forum hat alles perfekt funktioniert!
Vielen Dank für deine Hilfe! 🙂

Liebe Grüße

Alex