Zur Administration von Linux-Systemen stehen eine Reihe von grafischen Benutzeroberflächen zur Verfügung. In diesem Open-Source-Tipp werfen wir einen Blick auf das ebbasierte Tool Cockpit. Dieses erlaubt auch weniger erfahrenen Admins die umfassende Konfiguration eines Linux-Systems inklusive einer Vielzahl unterschiedlicher Applikationen.
Für einen leichten Einstieg in die Administration von Linux-Systemen bietet sich der Einsatz grafischer Administrationstools an. Diese stellen insbesondere für Admins von anderen Plattformen eine große Hilfe dar, wenn die technischen Kenntnisse zur neuen Plattform fehlen oder nur rudimentär ausgeprägt sind. Eines der bekanntesten Tools in diesem Bereich dürfe Webmin [1] sein. Die erste Version der Software erschien bereits im Jahr 1997, wird jedoch auch heute noch aktiv weiterentwickelt. Allerdings erfordert das Tool doch schon einige Kenntnisse im Umgang mit einem Linux-System und ist von daher nicht unbedingt für Neueinsteiger geeignet.
Cockpit
Cockpit [2] ist im Vergleich zu Webmin ein noch recht junges Projekt, das vor knapp zehn Jahren die erste Version veröffentlichte. Anders als Webmin bietet Cockpit ein sehr intuitives und modernes Webinterface an, das auf dem Designsystem Patternfly [3] basiert. Die Software lässt sich sowohl von absoluten Linux-Neulingen als auch erfahrenen Anwendern sehr gut bedienen. Neben reinen grafischen Designelementen steht ebenso ein Terminal zur textbasierten Konfiguration eines Systems zur Verfügung. Cockpit erlaubt mithilfe einer Bridge auch die Administration unterschiedlicher Systeme aus der primären Cockpit-Instanz heraus.
Anders als Webmin greift Cockpit für die Benutzerverwaltung auf die darunterliegende Plattform zurück. Auf einem Linux-System kommen hierfür die Pluggable Authentication Modules (PAM) zum Einsatz. Somit können Sie einen Benutzer-Account, der auf dem System existiert, auch für einen Login innerhalb von Cockpit verwenden. Dies eröffnet eine Vielzahl an Möglichkeiten für eine fein granulierte Zugriffskontrolle, da Sie hierfür ebenfalls auf vorhandene PAM-Module zurückgreifen können. Doch dazu später mehr.
Für einen leichten Einstieg in die Administration von Linux-Systemen bietet sich der Einsatz grafischer Administrationstools an. Diese stellen insbesondere für Admins von anderen Plattformen eine große Hilfe dar, wenn die technischen Kenntnisse zur neuen Plattform fehlen oder nur rudimentär ausgeprägt sind. Eines der bekanntesten Tools in diesem Bereich dürfe Webmin [1] sein. Die erste Version der Software erschien bereits im Jahr 1997, wird jedoch auch heute noch aktiv weiterentwickelt. Allerdings erfordert das Tool doch schon einige Kenntnisse im Umgang mit einem Linux-System und ist von daher nicht unbedingt für Neueinsteiger geeignet.
Cockpit
Cockpit [2] ist im Vergleich zu Webmin ein noch recht junges Projekt, das vor knapp zehn Jahren die erste Version veröffentlichte. Anders als Webmin bietet Cockpit ein sehr intuitives und modernes Webinterface an, das auf dem Designsystem Patternfly [3] basiert. Die Software lässt sich sowohl von absoluten Linux-Neulingen als auch erfahrenen Anwendern sehr gut bedienen. Neben reinen grafischen Designelementen steht ebenso ein Terminal zur textbasierten Konfiguration eines Systems zur Verfügung. Cockpit erlaubt mithilfe einer Bridge auch die Administration unterschiedlicher Systeme aus der primären Cockpit-Instanz heraus.
Anders als Webmin greift Cockpit für die Benutzerverwaltung auf die darunterliegende Plattform zurück. Auf einem Linux-System kommen hierfür die Pluggable Authentication Modules (PAM) zum Einsatz. Somit können Sie einen Benutzer-Account, der auf dem System existiert, auch für einen Login innerhalb von Cockpit verwenden. Dies eröffnet eine Vielzahl an Möglichkeiten für eine fein granulierte Zugriffskontrolle, da Sie hierfür ebenfalls auf vorhandene PAM-Module zurückgreifen können. Doch dazu später mehr.
Installation aus dem Repository
Cockpit wird von den allermeisten Linux-Distributionen untet, sodass eine Installation direkt aus dem Software-Repository der Distribution heraus möglich ist. In diesem Beispiel zeigen wir das Setup auf einem System mit Red Hat Enterprise Linux 9.2. Hier spielen Sie das Paket einfach mithilfe des Paketmanagers dnf ein:
dnf install cockpit
Im Anschluss an die Installation stellen Sie sicher, dass Cockpit startet, sobald Sie eine Anfrage auf Port 9090 senden. Hierzu aktivieren Sie die systemd Unit Datei für Cockpit wie folgt:
systemctl enable -now cockpit.socket
Created symlink /etc/systemd/system/sockets.target.wants/
Rufen Sie nun in einem Webbrowser die URL "https://hostname:9090" auf, startet eine Cockpit-Instanz für Ihre Benutzersession und Sie können sich mit Ihrem Account in die Cockpit-Sitzung einloggen. Hierbei sind jedoch einige wichtige Punkte zu beachten. Da für jede Benutzersession eine eigene "cockpit-ws"-Instanz startet, der Zugriff auf diese Instanzen jedoch über einen sicheren TLS-Kanal erfolgt, existiert mit "cockpit-tls" ein HTTP-Proxy, um die einzelnen TLS-Sessions dort terminieren zu können. Als serverseitiges X.509-Zertifikat sucht Cockpit im Verzeichnis "/etc/cockpit/ws-certs.d/" nach einer Zertifikatsdatei mit einem passenden privaten Schlüssel.
Sollten Sie dort kein Zertifikat abgelegt haben, erzeugt die Software ein selbstsigniertes für eine Certificate Authority (CA), die dann ein Zertifikat für den TLS-Proxy ausstellt (Listing-Kasten). Dies hat zur Folge, dass beim Zugriff auf die Cockpit-Instanz eine Fehlermeldung im Webbrowser erfolgt, da dieser das Zertifikat nicht validieren kann – schliesslich wurde es eben erst durch eine temporäre CA ausgestellt, die vom eingesetzten Webbrowser nicht als vertrauenswürdig eingestuft wird.
Um dieses Problem zu beheben, sollten Sie im Verzeichnis "/etc/cockpit/ws-certs.d/" ein X.509-Zertifikat hinterlegen, das von einer vertrauenswürdigen CA ausgestellt wurde. Wie Sie mithilfe des Tools certbot [4] ein kostenloses Zertifikat von Let's Encrypt [5] beziehen, haben wir im Open-Source-Tipp der Mai-Ausgabe 2021 besprochen. Welches Zertifikat nun tatsächlich zum Einsatz kommt, finden Sie mit folgendem Befehl heraus:
/usr/libexec/cockpit-certificate-ensure --check
Would use certificate /etc/cockpit/ws-certs.d/0-self-signed.cert
Sollten im Verzeichnis "/etc/cockpit/ws-certs.d/" mehrere Zertifikate vorhanden sein, verwendet Cockpit die Datei mit der höchsten Priorität. Hat dies soweit geklappt, ist Ihr Browser nun auch in der Lage, eine sichere Verbindung zur Cockpit-Instanz aufzubauen und das präsentierte X.509-Zertifikat korrekt zu verifizieren.
Webmin erlaubt die Administration vieler unterschiedlicher Unix-artiger Systeme. Das Webinterface wirkt allerdings etwas angestaubt.
Benutzerverwaltung
Wie eingangs erwähnt, setzt Cockpit auf Linux-Systemen auf die Pluggable-Authentication-Modules (PAM), um einen Benutzer bei der Anmeldung zu authentifizieren und einen Zugriff zu gewähren. Auch hier gilt es einige Sachen zu beachten. Möchten Sie beispielsweise bestimmte Benutzer vom Zugriff auf eine Cockpit-Instanz aussperren, können Sie dies mittels des PAM-Moduls "pam_listfile" sehr einfach umsetzen. Auf einem Red-Hat-Enterprise-Linux-System wird dieses Modul dazu verwendet, um eine Anmeldung als root-Benutzer zu unterbinden:
Die Datei "/etc/cockpit/disallowed-users" enthält all die Benutzer, die keinen Zugriff erhalten sollen (sense=deny):
cat /etc/cockpit/disallowed-users
root
Möchten Sie nur einigen wenigen Benutzern den Zugriff gestatten, erzeugen Sie einfach eine Datei "/etc/cockpit/allowed-users", führen die Benutzer in der Datei auf und ändern die Konfiguration des Moduls "pam_listfile" in der Datei "/etc/ pam.d/cockpit" wie folgt ab:
issuer=C = US, O = d8423057a57d45419222e2844a5d8996, OU = ca-5694750792995389350, CN = cloud-qe-18.example.com
subject=C = US, O = d8423057a57d45419222e2844a5d8996, CN = cloud-qe-18.example.com
notBefore=Oct 9 10:41:03 2023 GMT
notAfter=Nov 7 10:41:03 2024 GMT
sudo für Administratoren
Bedenken Sie des Weiteren, dass Sie bei einem Login mit Ihrem Benutzerkonto innerhalb von Cockpit die gleichen Rechte besitzen, wie wenn Sie mittels SSH oder Konsole auf das System zugreifen. Für einen administrativen Zugriff müssen Sie also über entsprechende sudo- oder auch Polkit-Berechtigungen verfügen.
Fazit
Cockpit bietet ein intuitiv zu bedienendes Webinterface zur Administration von Linux-Systemen. Um einen sicheren Zugang zu einer Cockpit-Instanz aufzubauen, empfiehlt sich der Einsatz eines X.509-Zertifikats, das vom Webbrowser als vertrauensvoll angesehen wird. Durch die Integration mit dem systemweiten PAM-Stack gestalten sich die Authentifizierung und Zugriffskontrolle sehr flexibel.