Original-URL des Artikels: https://www.golem.de/news/cockpit-angesehen-die-einfache-steuerzentrale-fuer-linux-server-1507-115035.html    Veröffentlicht: 09.07.2015 09:06    Kurz-URL: https://glm.io/115035

Cockpit angesehen

Die einfache Steuerzentrale für Linux-Server

Vier Mausklicks im Browser starten den abgestürzten Webserver neu, vier weitere schalten die Netzwerkschnittstellen des Fileservers per Bonding zusammen: Das Werkzeug Cockpit ermöglicht eine komfortable Steuerung von Linux-Servern. Im Gegenzug müssen Admins aber mit ein paar Einschränkungen leben.

Mit Cockpit lässt sich ein Linux-System bequem per Browser administrieren und fernsteuern. Admins können damit unter anderem einen Blick in das Systemd-Journal werfen, die Auslastung prüfen oder Dienste starten und stoppen. Dank Responsive Design passt sich die Benutzeroberfläche zudem automatisch unterschiedlichen Bildschirmgrößen an, was wiederum einen komfortablen Zugriff über Smartphones ermöglicht.

Zudem kann jederzeit auf die Kommandozeile gewechselt werden, etwa um Webserver zu starten und neue Benutzerkonten anzulegen, die anschließend in der Webanwendung auftauchen. Darüber können auch mehrere Linux-Systeme verwaltet werden, indem Cockpit lediglich auf die übrigen Server aufmerksam gemacht wird, auf denen die Software allerdings ebenfalls laufen muss.

Mit diesem Funktionsumfang ähnelt das von Red Hat entwickelte Cockpit dem bekannten Webmin. Die laut Eigenwerbung einfach zu benutzende und "sehr leichtgewichtige" Benutzeroberfläche spricht vor allem weniger Erfahrene an. Cockpit eignet sich aber auch, um einen Heimserver beziehungsweise kleinere Firmennetzwerke zu verwalten. Das unter der LGPL 2.1 stehende Tool sollten Nutzern übrigens nicht mit dem fast namensgleichen Open IT Cockpit verwechseln.

All inclusive

Red Hat arbeitet seit nicht einmal ganz zwei Jahren an Cockpit. Zwar findet die Arbeit daran mittlerweile offen auf Github statt, doch ist dem Projekt seine Nähe zu Red Hat weiterhin anzumerken, beispielsweise an der verwendeten Distribution. So installieren Fedora 21 Server, Centos Atomic und RHEL Atomic das Tool zur Serververwaltung bereits vor. Fertige Pakete gibt es lediglich noch für Fedora 21 Workstation und Arch Linux.

Unter Fedora 21 Workstation installiert der Befehl yum install cockpit die Steuerzentrale. Nutzer von Arch Linux spielen das Paket cockpit über das Arch-User-Repository (AUR) ein. Die Fedora 21 beiliegende Cockpit-Version ist noch die Version 0.27 vom Herbst 2014, aktuell ist jedoch bereits die Version 0.63. Außer im kosmetischen Bereich hat diese sich bislang allerdings nicht sonderlich verändert.

Wer eine andere Distribution verwendet, etwa Ubuntu oder Debian, muss den Quellcode selbst übersetzen. Da Cockpit jedoch stark auf Fedora und insbesondere Systemd aufsetzt, gerät die Inbetriebnahme zu einem kleinen Hürdenlauf. So müssen zunächst die zahlreichen Abhängigkeiten in der cockpit.spec-Datei zusammengesucht werden. Wie die Software für Ubuntu 15.04 übersetzt wird, ist im Folgendem beispielhaft für andere Distributionen beschrieben.

Installation in Vivid Vervet

Um Cockpit unter Ubuntu 15.04 zu installieren, müssen zunächst alle benötigten Pakete eingespielt werden:

sudo apt-get install xsltproc libglib2.0-dev libjson-glib-dev libpolkit-agent-1-dev libkrb5-dev liblvm2-dev libgudev-1.0-dev libssh-dev libpam0g-dev libkeyutils-dev libpcp3-dev libpcp-import1-dev libpcp-pmda3-dev intltool xmlto libsystemd-journal-dev libsystemd-daemon-dev libxslt1-dev npm nodejs selinux-policy-dev checkpolicy selinux-policy-doc libdbus-1-dev

Anschließend wird der Code der letzten stabilen Cockpit-Version aus dem Github-Repository als .tar.bz«-Archiv heruntergeladen, entpackt und wie gewohnt übersetzt:

./configure
make
make install


Um sich später bei Cockpit anzumelden, muss abschließend noch der Root-Benutzer ein Passwort erhalten:

sudo passwd root

Auf Distributionen ohne Systemd lässt sich Cockpit aber gar nicht erst in Betrieb nehmen. Das betrifft neben früheren Ubuntu-Versionen auch Debian-Systeme bis einschließlich Version 7. Wer Cockpit per Hand installiert hat, muss es abschließend noch über das Systemd-Tool systemctl starten:

systemctl enable cockpit.socket
systemctl start cockpit.socket

Unter Fedora 21 Server, Centos Atomic und RHEL Atomic geschieht dies bereits automatisch.

Verschlüsselter Zugriff auf bunte Oberfläche

Cockpit lässt sich via HTTPS über den Browser auf TCP-Port 9090 erreichen. Besitzt der Server beispielsweise die IP-Adresse 192.168.100.11, muss die URL https://192.168.100.11:9090 aufgerufen werden. Unter Umständen muss noch die Firewall für den Dienst geöffnet werden. Unter Fedora 21 Workstation übernehmen das die beiden Befehle:

firewall-cmd --reload
firewall-cmd --add-service=cockpit

Die Firewall in Fedora 21 Server akzeptiert bereits von Haus aus Verbindungen auf Port 9090. Das sollten Admins insbesondere dann beachten, wenn der Zugriff auf Cockpit verboten werden soll. Wer einen anderen Port bevorzugt, muss die Einstellung ListenStream in der für Systemd bestimmten Konfigurationsdatei cockpit.socket anpassen. Diese Datei liegt normalerweise im Ordner /usr/lib/systemd/system/, anschließend muss Systemd die Änderungen übernehmen:

systemctl daemon-reload
systemctl restart cockpit.socket

Cockpit erzwingt eine gesicherte Verbindung via HTTPS und leitet HTTP-Anfragen automatisch um. Dabei kommt ein selbst signiertes Zertifikat zum Einsatz, das der Betreiber beim ersten Zugriff auf Cockpit im Browser akzeptieren muss. Eine Ausnahme bildet der Zugriff auf den Server selbst über http://localhost:9090. Hierbei erlaubt Cockpit auch unverschlüsselte Verbindungen.

Wer ein eigenes Zertifikat nutzen möchte, muss es als cert-Datei mit eben dieser Endung im Verzeichnis /etc/cockpit/ws-certs.d ablegen. Lagern dort mehrere Zertifikate, verwendet Cockpit immer die erste Datei in alphabetischer Sortierung. Das Zertifikat a.cert erhält folglich den Vorzug vor z.cert. Sofern im besagten Verzeichnis kein Zertifikat liegt, erstellt Cockpit automatisch selbst eines. Fedora 21 liegt bereits ein selbst signiertes Zertifikat /etc/cockpit/ws-certs.d/~self-signed.cert bei.

Die Kommunikation mit dem Browser verschlüsselt Cockpit via TLS und aktuellen Verschlüsselungsverfahren. Die als unsicher geltenden Standards SSLv3.0 und RC4 sind deaktiviert.

Klickibunti

Die gleiche Kombination aus Benutzername und Passwort, die auch für ein direktes Login auf dem Server genutzt wird, wird zum Anmelden bei Cockpit eingesetzt. Verbietet das verwaltete Linux-System beispielsweise, ein Benutzerkonto einzurichten, blockiert Cockpit diese Aktion ebenfalls. Für den vollen Zugriff auf das System müssen Systemverwalter folglich als Root-Benutzer mit Cockpit arbeiten.

Am Steuerknüppel

Auf seiner Startseite bietet Cockpit zunächst alle ihm bekannten Server zur Auswahl an. Direkt nach der Installation ist dies nur der Server, auf dem Cockpit selbst läuft. Neuere Cockpit-Versionen präsentieren an dieser Stelle hingegen stets Informationen über den Server.

Die Server-Auswahl versteckt sich dabei hinter dem Dashboard. Per Add Host - oder bei neueren Varianten über das Plus-Symbol - können weitere Maschinen hinzugefügt werden. Cockpit benötigt dazu lediglich die IP-Adresse oder den Hostnamen des Servers sowie den Benutzernamen und das Passwort des Admins. Die Software meldet sich dann mit diesen Daten auf der neuen Maschine an und befragt sie nach den benötigten Informationen. Tritt dabei ein Fehler auf, gibt es allerdings keine Fehlermeldung, der Server fehlt dann schlicht in der Liste.

Der zu steuernde Server kann mit einem Klick auf die entsprechende Zeile ausgewählt werden, zum Beispiel mit einem Klick auf localhost. Cockpit liefert jetzt sekündlich aktualisierte Informationen über die Auslastung der wichtigsten Hardwarekomponenten. Das Menü auf der linken Seite erlaubt den Zugriff auf alle wichtigen Funktionen und Aktionen. Beispielsweise gewährt ein Klick auf Journal Einblick in das Systemd-Journal, während unter User Accounts beziehungsweise Tools | Administrator Accounts die Benutzerkonten verwaltet werden.

In der schwarzen Leiste am oberen Seitenrand führt Cockpit eine Brotkrumen-Leiste: Ein Klick auf einen der Punkte führt wieder zurück zur entsprechenden Seite. Hinter Hosts beziehungsweise Dashboard wartet dabei die Liste mit allen Servern.

Funktionsstau, Rettungsanker und Fazit

Die Benutzeroberfläche macht nicht immer deutlich, welche Elemente sich anklicken lassen. Wird etwa der Eintrag Networking aufgerufen, so scheint sich dort nur über die entsprechenden Buttons ein Bonding, eine Bridge oder ein neues VLAN anlegen zu lassen.

Die restlichen Anzeigen geben Auskunft über die empfangenen und übertragenen Pakete sowie den Status der einzelnen Netzwerkschnittstellen. Die lassen sich jedoch ebenfalls in der Liste Interfaces anklicken. Dort kann diese dann unter anderem deaktiviert werden sowie die IPv4- und IPv6-Adressen eingerichtet werden.

Die Einstellungen erklären sich allesamt von selbst, die möglichen Aktionen sind zudem stark limitiert. So dürfen Administratoren beispielsweise weder die Benutzergruppen einsehen noch Benutzerkonten gezielt Gruppen zuweisen. Inkonsequenterweise kann in solchen Fällen jedoch auf das Terminal ausgewichen werden. Alle dort unternommenen Wartungsarbeiten schlagen sich umgehend in Cockpit nieder. Ein per adduser angelegtes Benutzerkonto taucht kurz danach hinter dem Eintrag User Accounts auf.

Soll der Server herunterfahren oder neu gestartet werden, muss unter Fedora 21 der Punkt Hosts aufgerufen werden, unter einer aktuellen Cockpit-Version hingegen muss über das Dashboard der entsprechende Server ausgewählt werden. In jedem Fall findet sich dort eine Dropdown-Box - bei Fedora 21 auf der rechten Seite, unter aktuellen Cockpit-Versionen neben Power Options.

Rettungsanker

Bei Fedora 21 lässt sich zudem ein Rescue Terminal öffnen. Unter aktuellen Cockpit-Versionen muss dazu Tools | Terminal aufgerufen werden. Cockpit öffnet dann innerhalb seiner eigenen Benutzeroberfläche eine Shell, über die direkt Zugriff auf den Server ermöglicht wird.

Unter der Haube

Cockpit selbst besteht aus mehreren Komponenten, die zentrale stellt der von Systemd gestartete Dienst cockpit-ws bereit. Die Abkürzung ws steht dabei für Webserver. Dieser liefert die Webanwendung an die Browser aus und steuert die übrigen Tools. Dabei läuft cockpit-ws jedoch nicht einfach dauerhaft im Hintergrund mit, vielmehr lauscht Systemd an Port 9090 und aktiviert den Webserver erst bei einem Verbindungsversuch automatisch.

Sobald sich der Administrator anmeldet, startet der Webserver den Dienst cockpit-bridge. Dieser wiederum kommuniziert über die Dbus-Schnittstelle mit Systemd, dem Networkmanager und anderen Systemkomponenten. Eine Ausnahme bilden Docker und Kubernetes, die Cockpit per REST ansteuert.

Während der Webserver mit Rootrechten arbeitet, läuft die Bridge mit normalen Nutzerrechten. In älteren Cockpit-Versionen kam anstelle der Bridge der Dienst cockpitd zum Einsatz. Das gilt insbesondere auch noch für die Version 0.27, die Fedora 21 beiliegt.

Neben Webserver und Bridge gibt es noch einige weitere Hilfsprogramme. So nutzt Cockpit etwa cockpit-session und PAM, um Benutzer zu authentifizieren und eine entsprechende Session zu starten.

Wird in der Weboberfläche ein weiterer Server angemeldet, nimmt der Webserver mit diesem per SSH Kontakt auf. Über die gesicherte SSH-Verbindung dirigiert dann cockpit-ws die auf dem anderen Server laufende Bridge. Diese Arbeitsweise bedingt aber, dass auf jedem Server nicht nur Cockpit installiert ist, sondern stets ein SSH-Daemon auf Port 22 horcht.

Nach zehn Minuten Inaktivität beendet sich der Webserver automatisch. Erfolgt anschließend ein erneuter Zugriff auf Port 9090, startet Systemd die Webanwendung erneut. Alternativ können Admins Cockpit auch manuell aufrufen, unter Fedora 21 über /usr/libexec/cockpit-ws.

Des Weiteren existiert ein passender Systemd-Dienst namens cockpit.service. Über ihn lässt sich Cockpit kontrolliert herunterfahren oder neu starten. Wird der Dienst gestoppt, sollte auch der Socket geschlossen werden, andernfalls würde Systemd bei einem (versehentlichen) Verbindungsaufbau automatisch Cockpit wieder hochfahren:

systemctl stop cockpit.socket cockpit

Wer tiefer in den Aufbau von Cockpit einsteigen und etwa die Benutzeroberfläche um weitere Funktionen ergänzen möchte, sollte sich den Developer Guide vornehmen. Eine aktualisierte Version liegt dem Quellcode im Unterverzeichnis doc bei.

Fazit

Mit Cockpit verwalten Administratoren kinderleicht einen oder mehrere Server. Wer mit den Systemeinstellungen von Gnome umgehen kann, findet sich auch in Cockpit zurecht. Im Gegensatz zum Konkurrenten Webmin konzentriert sich Cockpit jedoch auf Linux-Systeme. Zusätzliche Anwendungen, etwa einen Apache-Webserver, müssen Administratoren weiterhin per Hand einrichten.

Zudem ist Cockpit derzeit stark auf Fedora und insbesondere Systemd zugeschnitten. Wer es nutzen möchte, sollte sich folglich mit dem Initsystem und dessen Konzepten zumindest oberflächlich auskennen. Durch die Konzentration auf wenige Systemkomponenten kann Cockpit jedoch auch zuverlässiger arbeiten und vor allem mit einer konsistenten, aufgeräumten Benutzeroberfläche glänzen. Wie jede Webanwendung öffnet Cockpit allerdings einen neuen Port auf dem Server, was prinzipiell ein Sicherheitsrisiko darstellt.

Dringend aktualisieren und erweitern sollten die Entwickler auf jeden Fall die Dokumentation: Diese besteht gerade mal aus einer lückenhaften Referenz und drei kargen Manpages.

Dieser Artikel erschien in der Ausgabe 07/15 des Linux Magazins, das seit September 2014 wie Golem.de zum Verlag Computec Media gehört. In dem Heft werden unter anderem verschiedene Verwendungsmöglichkeiten für LDAP beschrieben und die Insolvenzfestigkeit von Open Source Lizenzen in Deutschland geprüft.  (tsm)


Verwandte Artikel:
Cockpit: Piloten warnen vor angreifbaren Bordcomputern   
(14.07.2014, https://glm.io/107857 )
Satellite 6: Red Hat überarbeitet eigene Systemverwaltung komplett   
(11.09.2014, https://glm.io/109192 )
Administrationswerkzeug: HPs Oneview wird auf Racks, Tower und Netzwerk erweitert   
(28.08.2014, https://glm.io/108882 )
Flugzeug: AMDs Adelaar-Radeons fliegen bei Boeing mit   
(14.05.2014, https://glm.io/106472 )
Mobile Endgeräte: FAA will Betrieb von mobilen Geräten im Flugzeug prüfen   
(19.03.2012, https://glm.io/90604 )

© 1997–2019 Golem.de, https://www.golem.de/