[[Vorlage(Getestet, bionic, focal)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:sudo: Root-Rechte erlangen] [:Editor: Einen Editor öffnen] }}} [[Inhaltsverzeichnis()]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [googlecode:shellinabox:] {en} ist ein [:Terminal:], das den Zugriff über einen [:Internetanwendungen: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 [wikipedia:Transport_Layer_Security: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: {{{#!vorlage Paketinstallation shellinabox, universe }}} == 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 [:CA/#Selbstsignierte-Zertifikate: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 [:Dienste:Dienst] zu shellinabox kommt in Form von Skripten für das [:Dienste/#Init-Systeme:Init-System] [:Archiv/SysVinit: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 {{{#!vorlage Befehl sudo update-rc.d -f shellinabox remove }}} und dann eine neue [:systemd/Service_Units/: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 == {{{#!vorlage Warnung 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 [:CA:Zertifizierungsstellen] und [:TLS-Zertifikate: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 [:Serverdienste/#Webserver:Webservers] mit Unterstützung für [wikipedia:Reverse_Proxy: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 = * [github:shellinabox/shellinabox:Projektseite] {en} * [man:shellinaboxd:Manpage] {en} - Übersicht der Programmoptionen * [github:shellinabox/shellinabox:Quellcode] {en} * [https://www.smarthomebeginner.com/increase-shellinabox-security/ 5 Easy steps to Increase Shellinabox Security] {en} - Blogbeitrag, 10/2012 * [:Serverdienste:] {Übersicht} Übersichtsartikel # tag: Internet, Netzwerk, Server, System