Shell-Zugriff per Webbrowser

Not-Lösung

Eine Shell im Browser? PHP Shell und Shell in a Box machen es möglich und erleichtern damit das Verwalten von Webservern auch ohne SSH-Zugang – beispielsweise aus dem nächsten Internet-Café.
Wer sein System permanent überwacht, hat den Grundstein dafür gelegt Engpässe zu vermeiden und Fehler frühzeitig zu erkennen. Neben dem Platzhirsch Nagios ... (mehr)

Die Verwaltung eines externen Webservers gestaltet sich per Secure Shell einfach, dank X-Forwarding kann man bei entsprechender Netzanbindung sogar grafische Programme zur Verwaltung am heimischen Rechner bedienen. Oft steht aber zur Administration nur ein Rechner zur Verfügung, auf dem man keine zusätzliche Software installieren kann oder darf. Häufig agiert auch die Firewall so restriktiv, dass außer HTTP(S) nichts hindurchkommt. 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 können. Ein PHP-fähiger Webserver genügt, um Shell-Befehle auszuführen. Dazu darf der Safe-Mode von PHP nicht aktiviert sein, der dazu dient, PHP durch Einschränkungen gewisser Befehle sicher zu machen.

Die Installation von PHP Shell funktioniert recht einfach: Sie laden die aktuelle Version von der PHP-Shell-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. Dort 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 können Sie auch mehrere Benutzer anlegen. Neben Benutzernamen und Passwort lassen sich in »config.php« noch Shell-Aliases sowie ein Home-Verzeichnis für PHP Shell festlegen.

In Grenzen

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 Shell-Sitzung im Webbrowser kann beginnen. Sie geben nun Kommandos im PHP-Shell-Fenster ein (Abbildung  1). Nach dem Betätigen von [Eingabe] oder einem Klick auf »Execute Command« werden diese ausgeführt, das Ergebnis erscheint wiederum im Shell-Fenster.

Die Kommandozeile, die PHP Shell im Browser zur Verfügung stellt, unterliegt dabei einigen Einschränkungen:

  • Jeder Befehl muss ohne weitere Benutzereingabe auskommen, interaktive Programme lassen sich nicht bedienen.
  • Jedes Kommando muss in eine Zeile passen. PHP Shell erkennt nicht, dass ein Kommando noch fortgesetzt werden müsste. 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 die Verarbeitung ab. Sie konfigurieren die entsprechenden Limits in Apache über die »Timeout« -Direktive, in PHP mittels der Einstellung »max_execution_time« in »php.ini« .

PHP-Shell führt die Kommandos unter der User- und Group-ID des Webservers aus, wie sich unschwer mit dem »id« -Kommando überprüfen lässt. Das kann zuweilen recht nützlich sein – etwa, wenn man ein Verzeichnis anlegen möchte, in das nur der Webserver schreiben darf. Das klappt via FTP meist nicht, da man in diesem Fall unter einer anderen User-ID operiert und daher oft lediglich global beschreibbare Verzeichnisse anlegen kann. Mit PHP Shell klappt das dagegen problemlos.

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023