Aus Raspberry Pi Geek 02/2016

Shell-Zugriff per Webbrowser

© Gita Kulinica, 123RF

Zugriff aus der Ferne

Wolfgang Dautermann

PHP Shell und Shell in a Box erlauben es, Rechner ohne SSH-Zugang aus der Ferne zu verwalten – mit einer Shell im Webbrowser.

Das Verwalten eines externen Webservers gestaltet sich per Secure Shell einfach, dank X-Forwarding rufen Sie bei entsprechender Bandbreite sogar grafische Programme auf, deren Ausgabe am heimischen Rechner erscheint.

Gelegentlich steht aber zur Administration nur ein Rechnern bereit, auf dem die essentiellen Tools fehlen, Sie aber keine zusätzliche System-Software installieren dürfen. Dazu agiert meist die Firewall so restriktiv, dass außer HTTP(S) nichts hindurch kommt. Die Programme PHP Shell und Shell in a Box ermöglichen in diesem Fall trotzdem den Shell-Zugriff auf den Server.

PHP Shell

PHP Shell ermöglicht den Shell-Zugang zu Servern, wo die Firewall den Zugang blockiert oder Sie keine Software im Dateisystem installieren dürfen. Ein PHP-fähiger Webserver genügt, um Shell-Befehle auszuführen. Das setzt aber voraus, dass der Safe-Mode von PHP nicht aktiv ist.

Die Installation von PHP Shell funktioniert recht einfach: Sie laden die aktuelle Version von der Homepage [1] herunter und entpacken das ZIP-Archiv in ein Verzeichnis auf dem Webspace. Dann setzen Sie ein Passwort, wozu Sie die URL http://Server/phpshell/pwhash.php aufrufen.

In die Eingabefelder geben Sie die gewünschte Kombination von Benutzernamen und Passwort ein. Sie erhalten als Ausgabe eine Zeile, die Sie im Abschnitt [users] der Konfigurationsdatei config.php eintragen. Bei Bedarf legen Sie mehrere Benutzer an. Neben Benutzernamen und Passwort tragen Sie bei Bedarf in config.php noch Shell-Aliases sowie ein Home-Verzeichnis für PHP Shell ein.

TIPP

Das verschlüsselte Abspeichern des Passworts mithilfe von pwhash.php verhindert zwar unberechtigte Logins, falls einem Angreifer die Datei mit der Konfiguration in die Hände fällt. Sie sollten PHP Shell aber grundsätzlich über eine per SSL verschlüsselte Verbindung (HTTPS) aufrufen – andernfalls wäre ein Angreifer in der Lage, die eingegebenen Kommandos und Ausgaben im Klartext mitzulesen.

Nun steht PHP Shell zum Einsatz bereit. Sie rufen es über die URL https://Server/phpshell/phpshell.php auf, melden sich mit Benutzernamen und Passwort an – und die Sitzung im Webbrowser beginnt. Nun haben Sie die Möglichkeit, Kommandos in das Fenster einzugeben (Abbildung 1). Nach dem Betätigen von [Eingabe] oder einem Klick auf Execute Command führt die Software diese aus, und das Ergebnis erscheint wiederum im Shell-Fenster.

Abbildung 1: PHP Shell läuft auf einem beliebigen Webspace, allerdings sollten Sie HTTPS für die Kommunikation verwenden, weil die Kommandos – inklusive Passwörtern – sonst im Klartext über die Leitung geht.

Abbildung 1: PHP Shell läuft auf einem beliebigen Webspace, allerdings sollten Sie HTTPS für die Kommunikation verwenden, weil die Kommandos – inklusive Passwörtern – sonst im Klartext über die Leitung geht.

Die Kommandozeile, die PHP Shell im Browser bereit stellt, unterliegt dabei einigen Einschränkungen:

  • Jeder Befehl darf vom Benutzer keine weitere Eingabe abfragen, was interaktive Programme vom Einsatz ausschließt.
  • Jedes Kommando muss in eine Zeile passen. PHP Shell erkennt nicht, dass Sie ein Kommando fortsetzen möchten. So gelingt beispielsweise die Eingabe einer For-Schleife in mehreren Zeilen (wie in der normalen Shell) nicht.
  • Die Befehle müssen innerhalb einer bestimmten Zeitspanne abgearbeitet sein, üblicherweise binnen 30 Sekunden. Hier handelt es sich jedoch nicht um eine durch PHP Shell bedingte Einschränkung: Sowohl der Webserver (meist Apache) als auch PHP brechen nach einer gewissen Zeit das Verarbeiten ab. Sie konfigurieren die entsprechenden Limits in Apache über die Direktive Timeout-, in PHP mittels der Option max_execution_time in php.ini.

Das Programm führt die Kommandos unter der User- und Group-ID des Webservers aus, wie Sie mit dem Kommando id leicht überprüfen. Das ist zuweilen recht nützlich – etwa, wenn Sie ein Verzeichnis anlegen möchte, in das nur der Webserver schreiben darf.

Das klappt via FTP meist nicht, da Sie in diesem Fall unter einer anderen User-ID operieren und daher oft lediglich global beschreibbare Verzeichnisse anlegen dürfen. Mit PHP Shell klappt das dagegen problemlos.

PHP Shell bietet eine einfache History-Funktion, über die Sie mit den Cursor-Tasten in den zuletzt ausgeführten Kommandos vor- und zurückblättern. Umfangreichere History-Funktionen wie eine Suche unterstützt die Software jedoch nicht.

Die Größe des Fensters für die Kommandos ändern Sie gegebenenfalls via Size: rechts unterhalb des Bereichs für die Eingabe. Dort tragen Sie einfach die gewünschten Werte ein und führen dann den nächsten Befehl aus. PHP Shell beinhaltet zusätzlich einen einfachen Editor (editor Datei), mit dessen Hilfe Sie bei Bedarf Dateien ändern, auf die der Webserver schreiben zugreifen darf.

Shell in a Box

Das Programm Shell in a Box (Abbildung 2) eignet sich dann, wenn Sie zwar Shell-Zugang zum Server haben und dort eigene Programme einrichten dürfen, aber als Client einen Webbrowser verwenden wollen oder müssen.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben