• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

kommandozeile über webscript

Ich will ich eine web-bash programmieren (ich habs so genannt), damit soll eine ssh session über einen normalen internet browser laufen können. Du gehts einfach auf die entsprechende website und musst nicht unbedingt einen ssh clienten haben, was auf nicht-linux maschinen durchaus mal vorkommen könnte. Num zur Umsetzung:

"die einzige sprache die in den meisten browser korrekt interpretiert wird ist javascript.
auf dem server ist egal was laeuft schoen waere ein sshd mit http erweiterung. um mit diesem zu kommunizieren wuerde ich den xml-http-request empfehlen.
jetzt viel spass openssh nach javascript zu portierenl"

Das is das einzige, was ich zu dem Tema gefunden habe! Ich finde im Netz nichts, wie ich das Problem programm-technisch umsetzen kann. Gibt es eine "mod_ssh" Erweiterung für apache oder irgendwas vergleichbares, wo mit ich linux- befehle an dem webserver schicken kann, der die dann auch ausführt?

Danke schon mal für jeden Hinweiß ...
 

panamajo

Guru
darthdungeon schrieb:
Gibt es eine "mod_ssh" Erweiterung für apache
Was bitte sollte mod_ssh denn genau implementieren?

darthdungeon schrieb:
oder irgendwas vergleichbares, wo mit ich linux- befehle an dem webserver schicken kann, der die dann auch ausführt?

So wie du das formulierst kann es nicht gehen. Man kann keine (Linux-) Befehle an einen HTTP Server schicken. Der HTTP Server hat maximal Zugriff auf die auf dem Server vorhandenen Befehle.

Mit Server-seitigen Skriptsprachen (z.B. PHP) ist es sehr einfach eine Shell Emulation zu implementieren:
1) Befehlszeile wird an den HTTP Server geschickt
2) Der Befehl wird auf dem Server in einer Shell ausgeführt
3) Die Ausgabe des Befehls als Antwort auf die Anfrage an den Client gesendet.

Aber: genau dies wird man bei der Konfiguration des HTTP Servers vermeiden wollen, da sich auf diese Art Sicherheitsmechanismen des Servers umgehen lassen (z.B. Schutz von Verzeichnissen durch .htaccess usw.).
Weiter wird man nur im Kontext des HTTP Servers (nicht in dem eines Users bei einer interaktiven ssh Sitzung) arbeiten können, welcher ebenfalls so restriktiv wie möglich konfiguriert werden sein sollte.

Kurz: das Ganze ergibt keinen Sinn.
Wozu sich eine mögliche Rechteeskalation einhandeln um ein vollkommen anders konzipiertes Protokoll zu emulieren, wenn man wesentlich einfacher einen echten ssh Client herunterladen und installieren könnte?
 
OP
D

darthdungeon

Newbie
könnte man es nicht so hand haben, dass die befehle an den httpd geschickt werden und der die über eine ssh session an denn ssh server schickt, welche dann von ihn angeführt werden?

btw, wie wird dann das mit dem anyterm gemacht??? Das ist doch (fast)genau das, was ich will!
 

panamajo

Guru
darthdungeon schrieb:
könnte man es nicht so hand haben, dass die befehle an den httpd geschickt werden und der die über eine ssh session an denn ssh server schickt, welche dann von ihn angeführt werden?

Tolle Idee. Dann hast du eine verschlüsselte Kommunikation zwischen httpd und sshd. Nur: was bringt das?

Der Witz bei einer ssh Verbindung ist die Verschlüsselung der Verbindung zwischen Client und Server. Was du mit obiger Geschichte machst ist eine verschlüsselte Kommunikation zwischen 2 Prozessen auf dem Server.

Um die Daten zwischen Client und HTTP Server zu verschlüsseln könnte man SSL verwenden, bleiben aber immer noch die Probleme bzgl. Sicherheit und der Protokolleigenschaften von HTTP: zustandslos, also für interaktive Kommunikation genau nicht geeignet.
 
panamajo schrieb:
Mit Server-seitigen Skriptsprachen (z.B. PHP) ist es sehr einfach eine Shell Emulation zu implementieren:
1) Befehlszeile wird an den HTTP Server geschickt
2) Der Befehl wird auf dem Server in einer Shell ausgeführt
3) Die Ausgabe des Befehls als Antwort auf die Anfrage an den Client gesendet.
(1) Die Shell ist bei den meisten naiven Implementationen nicht persistent, vergisst also Variablen, etc.
(2) Klappt gar nicht so toll mit interaktiven Anwendungen, insb. bei naiven Implementationen, die statt einem SuperDuperApplet nur eine <input>-Textzeile haben -- hier ginge Cursornavigation nicht.
 
OP
D

darthdungeon

Newbie
KÖNNTE man es denn technisch umsetzen und im rahmen dieser möglichkeit, wie würde man es am besten machen?
 
Schau dir doch anyterm an. (Das habe ich selbst nicht gemacht, aber die Screenshots sagen so ziemlich alles.)
 
OP
D

darthdungeon

Newbie
und wie habn die die sicherheitsprobleme gelöst? ich mein, die habs ja auch irgendwie in den griff bekommen, oder?
 
darthdungeon schrieb:
und wie habn die die sicherheitsprobleme gelöst? ich mein, die habs ja auch irgendwie in den griff bekommen, oder?
Entweder mit HTTPS, oder eben Verschlüsselung in Java/JavaScript. Oder gar nichts eben -- was erwartest du schon von Webzugängen, die nur Port 80 erlauben...
 
OP
D

darthdungeon

Newbie
wenn, wollte ich das sowieso über port 443 laufen lassen! Damit würde es einen verschlüselten https-tunnel nutzen, wäre somit eigentlich vergeleichbar abgesichert wie ssh, oder?! so könnte ich das sicher durchs internet jagen, wir gehts nur darum, wie ich das implementieren kann?!
 
Oben