Letzte Aktualisierung am 29.11.2020, 21:11:21 Uhr
Der ein oder andere kenn das Cockpit Project. Es handelt sich dabei um ein Tool um einen Linux Server über einen Browser verwalten (=administrieren). Unter anderen kann die Auslastung von Prozessor, Arbeitsspeicher, Festplatten und des Netzwerks angeschaut, Benutzer angelegt – geändert und gelöscht werden. Zudem können Dienste gestoppt und gestartet werden. Es können natürlich weitere Tools wie z.B. tuned installiert werden, um den Funktionsumfang zu erweitern. Des Weiteren kann über die Weboberfläche auch ein SSH Konsole zugegriffen werden. Damit ist jeder Zeit ein SSH Zugriff gewährleistet.
Da die Weboberfläche auch Responsive Design unterstützt, kann Cockpit auch problemlos von unterwegs auf einem Smartphone oder Tablet aufgerufen werden. Neben dem eigentlichen Server können natürlich auch weitere Server über eine Installation problemlos verwaltet werden.
Nachstehend eine Installations- und Konfigurationsanleitung für Cockpit unter Ubuntu 18.04 LTS.
Installation von Cockpit inkl. Plug-Ins
apt-get install -y cockpit cockpit-packagekit cockpit-pcp cockpit-storaged tuned
cockpit-packagekit: Cockpit verwendet das Package Kit D-Bus-API, um Informationen zu verfügbaren Paketaktualisierungen abzurufen und diese unabhängig vom Betriebssystem anzuwenden.
cockpit-pcp: Verwendet Cockpit das Performance Co-Pilot-Framework, um Metrik Daten über das System zu erfassen.
cockpit-storaged: Verwendet Cockpit Storaged zum Konfigurieren und Überwachen von Speicher, Festplatten, Mounts usw. auf dem System.
tuned: Tuned bietet eine Möglichkeit zum Anwenden von Systemen und anderen Optionen, um die Leistung, Akkulaufzeit, Datenträgerdurchsatz oder andere Leistungsprofile zu optimieren.
Konfiguration für Cockpit anlegen
cat > /etc/cockpit/cockpit.conf << EOF [WebService] #Origins = https://somedomain2.com:9090 #ProtocolHeader = X-Forwarded-Proto #LoginTitle LoginTo = false #RequireHost = false AllowUnencrypted = false EOF
Dienst neu starten
systemctl restart cockpit.socket
SSL-Zertifikat
Nach der Installation bzw. Start von Cockpit wird ein selbstsigniertes Zertifikat erzeugt und eingebunden. Das erkennt man sehr gut daran, dass beim Aufruf der Weboberfläche von Cockpit eine Sicherheitswarnung im Browser angezeigt wird. Abhilfe kann ein Zertifikat von Let’s Encrypt schaffen.
Installation von acme.sh
sudo su apt-get install -y git socat cd ~ git clone https://github.com/Neilpang/acme.sh.git cd acme.sh ./acme.sh --install --home /opt/acme.sh --config-home /etc/acme.sh --accountemail "name@domain.de" mkdir /etc/acme.sh/certs
Die Anwendung wird unter /opt/acme.sh abgelegt. Die Konfiguration(en) befinden sich unter /etc/acme.sh. An die Account E-Mailadresse werden Benachrichtigungen verschickt, wenn das Ablaufdatum des Zertifikats erreicht wird.
Installationsdateien löschen
cd .. rm -rf acme.sh
Abrufen eines Zertifikats
acme.sh --issue --force --keylength 4096 --domain fqdn --standalone --cert-file /etc/acme.sh/certs/fqdn.crt --key-file /etc/acme.sh/certs/fqdn.key --ca-file /etc/acme.sh/certs/fqdn.ca.crt --fullchain-file /etc/acme.sh/certs/fqdn.chain.pem --reloadcmd "cat /etc/acme.sh/certs/fqdn.chain.pem > /etc/cockpit/ws-certs.d/1-fqdn.cert ; cat /etc/acme.sh/certs/fqdn.key >> /etc/cockpit/ws-certs.d/1-fqdn.cert ; systemctl restart cockpit.socket"
fqdnFür einen Testlauf einfach nach dem Parameter --issue den Parameter --test hinzufügen. Die Variable
Zertifikat für Cockpit aufbereitet entspricht dem vollqualifizieren Hostname (z.B. cockpit-test.wydler.eu).
Über den Parameter --reloadcmd wird das und an der richtige Stelle abgelegt. Abschließend der Service Cockpit neu gestartet, damit das Zertifikat auch geladen ist.
SSL Version und Cihper Suites anpassen
Standardmäßig werden aktuell die Protokoll TLS 1.1 und 1.2 genutzt. Ein kurzer SSL Server Test bei Qualys zeigt allerdings ein mittelmäßiges Ergebnis.
Da ist meiner Meinung nach Luft nach oben. Zumal es in der Dokumentation von Cockpit genannt wird. Allerdings für meinen Geschmack ist das Thema leider nur ganz leicht angerissen. Um TLS 1.1 und diverse unsichere Cipher Suites zu deaktivieren, folgende Befehle ausführen:
echo "Environment=G_TLS_GNUTLS_PRIORITY=SECURE256:+SECURE128:-VERS-TLS-ALL:+VERS-TLS1.2:-RSA:-DHE-DSS:-CAMELLIA-128-CBC:-CAMELLIA-256-CBC:-SHA1" >> "/lib/systemd/system/cockpit.service" systemctl daemon-reload service cockpit restart
Ein erneuter Test liefert fast ein perfektes Ergebnis:
Um ein A+ zu erreichen ist inzwischen HTTP Strict Transport Security (HSTS) notwendig. Ich habe bis zum Schreiben des Artikels keine Dokumentation gefunden, um diese Technik unter Cockpit zu aktivieren. 🙁 Abhilfe könnte der Einsatz eines Reverse Proxy schaffen. Da die meisten Webserver HSTS unterstützen.
Ein Aufruf der Weboberfläche steht nun nichts mehr im Weg. Die Adresse lautet: https://qfdn:9090.
Falls ihr eine Firewall auf dem Linux Server aktiviert habt, ist natürlich für den Port 9090 noch die entsprechend Access Regel zu konfigurieren.
Viel Spaß beim Ausprobieren. 🙂
Hallo Daniel!
Vielen Dank für den interessanten Artikel. Cockpit habe ich auf einem UbuntuServer soweit installiert und läuft soweit. Nur habe ich keine Anwendungen zur Verfügung und auch der Klick auf den Aktualisieren-Button bringt danach keine Anwendungen. Woran könnte das liegen? Hab mich schon abendelang durchgeguglt, finde aber nichts dazu. Wäre schön, wenn einen Tipp hättest.
Schöne Grüße ins Schwobaländle (ich komme aus bay. Nordschwaben)
Erwin
Guten Abend Erwin,
standardmäßig werden keine Anwendungen der Cockpit installiert. Ich habe z.B. zusätzlich die Erweiterung Storage installiert (apt install cockpit-storaged). Danach taucht bei mir die gleichnamige Anwendung in der Cockpit auf. Ist dass das was du suchst?
Gruß,
Daniel
[…] habe in diesem Beitrag beschrieben, wie das Cockpit Project unter Linux Ubuntu installiert wird. Auf meinen virtuellen […]