shellinabox
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
shellinabox 🇬🇧 ist ein Terminal, das den Zugriff über einen Webbrowser ermöglicht. Diese Web-Shell ist daher besonders für Wartungszwecke an Servern geeignet, die über andere Protokolle nicht direkt erreichbar sind. shellinabox benötigt für den Betrieb weder SSH noch einen zusätzlichen Webserver wie Apache.
Das Programm unterstützt die SSL-Verschlüsselung der Verbindung. Unter der Verwendung dieses Terminals kann man beispielsweise den SSH-Server abschalten und an diesem arbeiten, ohne den Kontakt zum Server zu verlieren.
Ein JavaScript-fähiger Webbrowser ist für die Benutzung des Programms erforderlich.
Installation¶
Shellinabox ist Bestandteil der offiziellen Paketquellen und kann über folgendes Paket installiert werden:
shellinabox (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install shellinabox
Oder mit apturl installieren, Link: apt://shellinabox
Erster Test¶
War die Installation erfolgreich, ist shellinabox bereits jetzt über den Aufruf der URL https://localhost:4200
im Web-Browser erreichbar. Beim ersten Start des Dienstes erzeugt dieser ein eigenes selbstsigniertes Zertifikat, was in der Regel zu einer Warnmeldung im Webbrowser führt, die im Rahmen des Tests bestätigt werden muss.
Benutzung¶
Mit der Installation von shellinabox werden bereits sehr viele Anwendungsfälle erfüllt:
der automatisch eingerichtete Dienst lauscht auf allen IP-Adressen
die Verbindung zwischen Webbrowser und shellinabox-Host ist verschlüsselt
der Dienst läuft mit einem eigenen Benutzerkonto
Benutzer können sich via Webbrowser lokal anmelden
Die nachfolgenden Abschnitte sind eher als allgemeine Hinweise zu verstehen, um weitergehende Möglichkeiten darzustellen.
Dienststeuerung¶
Der Dienst zu shellinabox kommt in Form von Skripten für das Init-System SysVinit. Das derzeit von Ubuntu unterstützte systemd kann die Dienststeuerung (start, stop, status, etc.) mittels sogenannter Wrapper ausführen. Sollten jedoch Änderungen an der Dienstkonfiguration vorgenommen werden, ist bei Bedarf zu prüfen, ob der alte Dienst nicht besser aus dem Bootvorgang entfernt
sudo update-rc.d -f shellinabox remove
und dann eine neue Service Unit angelegt wird. Ein Vorteil hier wäre die einfachere Konfiguration, wenn mehrere Instanzen von shellinabox starten sollen.
Konfigurationsdateien¶
Bei Verwendung der im letzten Abschnitt beschriebenen SysV-Init-Skripte befindet sich die Konfiguration in der Datei /etc/default/shellinabox
sowie im eigentlichen Init-Skript /etc/init.d/shellinabox
. Die Funktion der einzelnen Variablen sollte dank der Kommentare selbsterklärend sein. Der unten zu findende Verweis auf die Manpage bietet Zugang zu detaillierteren Informationen.
SSL-Verschlüsselung¶
Achtung!
Das Abschalten der SSL-Verschlüsselung führt dazu, dass alle Ein- und Ausgaben (einschließlich Passwörter) unverschlüsselt zwischen Server und Client übertragen werden. Es sollte nur erfolgen, wenn andere Mittel zur Absicherung eingesetzt werden.
Shellinabox ist so programmiert, dass es immer versucht, eine verschlüsselte Verbindung aufzubauen, wenn dies nicht explizit über die Option --disable-ssl
ausgeschaltet wird. Das dabei selbst generierte Zertifikat führt in der Regel zur Warnungen in Webbrowsern, die nicht überall erwünscht sind. Um diese Warnungen zur vermeiden, kann ein gültiges Zertifikat bereitgelegt werden (in der Standardkonfiguration als Datei certificate.pem
im Verzeichnis /var/lib/shellinabox
).
Mehr Informationen zur Beschaffung von SSL-Zertifikaten bieten die Wikiseiten zu Zertifizierungsstellen und TLS-Zertifikaten. Darüber hinaus bietet auch die Manpage zu shellinabox-Option --cert
weitere Details zur Einbindung der Zertifikatsdateien.
Reverse Proxy¶
Ein Anwendungsfall, der es erlaubt, die SSL-Verschlüsselung in shellinabox selbst auszuschalten, ist die Verwendung eines auf demselben Host installieren Webservers mit Unterstützung für Reverse Proxying (z.B. Apache), der die Absicherung der Verbindung übernehmen kann. Weitere Informationen hierzu finden sich im unten verlinkten Artikel "5 Easy steps to Increase Shellinabox Security".
Links¶
Projektseite 🇬🇧
Manpage 🇬🇧 - Übersicht der Programmoptionen
Quellcode 🇬🇧
5 Easy steps to Increase Shellinabox Security 🇬🇧 - Blogbeitrag, 10/2012
Serverdienste Übersichtsartikel