shellinabox

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Installation von Programmen

  2. Ein Terminal öffnen

  3. Root-Rechte erlangen

  4. Einen Editor öffnen

Inhaltsverzeichnis
  1. Installation
    1. Erster Test
  2. Benutzung
    1. Dienststeuerung
    2. Konfigurationsdateien
    3. SSL-Verschlüsselung
      1. Reverse Proxy
  3. Links

Wiki/Icons/terminal.png 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:

Paketliste zum Kopieren:

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:

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".