Web 2 SSH

Pagina: 1
Acties:
  • 124 views sinds 30-01-2008
  • Reageer

  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 15-01 10:55
Zoals de topictitel aangeeft ben ik opzoek naar een manier om een linux server waar een webserver op draait (apache natuurlijk) via het web te benaderen met SSH.

Graag een interface alá Putty, maar een die dus zonder problemen ook vanachter een proxy kan worden benaderd, die alleen internet toegang toestaat en dan nog eens het meeste cached ook.

Ik heb zo'n vermoeden dat het niet mogelijk is om interactieve toepassingen te gebruiken op die manier, en dat het misschien op een PHP script uitkomt dat simpelweg wat commando's via SH of Bash uitvoert, en de output post?

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


  • Kippenijzer
  • Registratie: Juni 2001
  • Laatst online: 11-02 20:53

Kippenijzer

McFallafel, nu met paardevlees

mindterm is wat je zoekt (java ssh meen ik).

  • igmar
  • Registratie: April 2000
  • Laatst online: 31-01 23:50

igmar

ISO20022

Dat bestaat niet afaik, ssh kun je gebruiken via een socks proxy, maar niet via HTTP. Op zich valt alles wel over HTTP te tunnelen, maar dat vereist support aan de andere kant.

  • igmar
  • Registratie: April 2000
  • Laatst online: 31-01 23:50

igmar

ISO20022

Kippenijzer schreef op 25 augustus 2004 @ 11:09:
mindterm is wat je zoekt (java ssh meen ik).
JAVA is clientside, en dus kun je net zo goed een gewone SSH client gebruiken.

  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 15-01 10:55
igmar schreef op 25 augustus 2004 @ 11:10:
Dat bestaat niet afaik, ssh kun je gebruiken via een socks proxy, maar niet via HTTP. Op zich valt alles wel over HTTP te tunnelen, maar dat vereist support aan de andere kant.
Mindterm ken ik wel maar dat connect nog steeds naar een SSH poort toe.

Support aan 1 kant is mogelijk, maar op de client moet het kunnen zonder software installatie (--> zonder administrator rechten).

Edit: het gaat om de proxy server squid uit mijn hoofd, maar het moet op iedere locatie werken.

[ Voor 10% gewijzigd door pierre-oord op 25-08-2004 11:18 ]

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


Verwijderd

Moet zeker wel mogelijk zijn.
je zou eens moeten kijken naar sockets.
http://nl3.php.net/sockets

heb ooit wat qua server->client via ssh gedaan in python, en geloof wel dat je ergenst op een probleem stuit.
maar weet jammer genoeg niet meer hoe ik dat omzeilt had.

zal als ik thuis ben eens kijken of ik dat script ding nog ergenst had.

(de reden dat het relevant is is omdat de dingen die ik gebruikt had in dat python ding ook in php zitten)

  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 15-01 10:55
Verwijderd schreef op 25 augustus 2004 @ 11:33:
Moet zeker wel mogelijk zijn.
je zou eens moeten kijken naar sockets.
http://nl3.php.net/sockets

heb ooit wat qua server->client via ssh gedaan in python, en geloof wel dat je ergenst op een probleem stuit.
maar weet jammer genoeg niet meer hoe ik dat omzeilt had.

zal als ik thuis ben eens kijken of ik dat script ding nog ergenst had.

(de reden dat het relevant is is omdat de dingen die ik gebruikt had in dat python ding ook in php zitten)
Thx :)
Het zou leuk zijn als er al wat is gemaakt. PHP kan ik wel, alleen als het echt cryptisch gaat worden, tsja, dan moet ik straks heel de werking van het SSH protocol gaat uitzoeken?

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


Verwijderd

pierre-oord schreef op 25 augustus 2004 @ 11:42:
[...]


Thx :)
Het zou leuk zijn als er al wat is gemaakt. PHP kan ik wel, alleen als het echt cryptisch gaat worden, tsja, dan moet ik straks heel de werking van het SSH protocol gaat uitzoeken?
Toevallig ben ik ook met zoiets bezig, dan wel niet in PHP maar in Java maar het idee blijft hetzelfde. Als GUI een java applet die via https communiceert richting de server, op de server gaat het pas van http naar ssh.
Theoretisch is het allemaal vrij snel te bouwen, mindterm is open source (of iig bieden ze hun source aan) en daar wordt al een volwaardige gui bijgeleverd. Het enige wat gedaan hoeft te worden is het scheiden van de GUI en de ssh functionaliteit, daar http(s) tussen plakken en klaar. Het leven is in theorie zo simpel :)
Ik ben alleen niet echt ver met bouwen en veel prio heeft het ook niet..

  • bakkerl
  • Registratie: Augustus 2001
  • Laatst online: 20-01 20:59

bakkerl

Let there be light.

Je sshd op poort 443 laten luisteren op de server.
De laatste versie van putty heeft proxy support erin zitten

De meeste proxies staan namelijk CONNECT opdrachten wel toe als het naar een https poort (443) gaan. Dat daar dan weer sshd achterzit hebben de meeste proxies niets te maken.

Verwijderd

bakkerl schreef op 25 augustus 2004 @ 11:59:
Je sshd op poort 443 laten luisteren op de server.
De laatste versie van putty heeft proxy support erin zitten

De meeste proxies staan namelijk CONNECT opdrachten wel toe als het naar een https poort (443) gaan. Dat daar dan weer sshd achterzit hebben de meeste proxies niets te maken.
aha, vanavond eens checken of die irritante proxy hier dat toelaat...

  • lordgandalf
  • Registratie: Februari 2002
  • Laatst online: 13-02 15:00
dat ligt eraan wat voor proxy het is
als het een echte goede proxy is dan zal ie zien dat het geen ssl verkeer is en het gewoon bot weg weigeren
maar als het een proxy is die niet naar de inhoudt van de pakketjes kijkt dan kun je dat idee van bakker1 proberen

Steam: Profile / Socialclub: Profile / Uplay: minedwarf / Origin: lordgandalf3


Verwijderd

Misschien is httptunnel iets voor jou. Hier een simpele beschrijving hoe het werkt die ik eens heb gemaakt voor mijn FreeBSD systeem.
httptunnel is in the ports. Install and configure by:

cd /usr/ports/www/httptunnel
make install clean

ServerSide:
hts --forward-port localhost:22 80 # stuff incoming @ 80 goes to 22

ClientSide:
htc --forward-port 8888 \ # open this port on the localhost
--proxy proxy.network.org:1080 \ # when needed use a proxy..
--proxy-authorization username:password \ # you need proxy access.
IP ServerSide:80 # IP of the server

Now everthing is setup you could do (for example) on the client:
ssh -p 8888 localhost
Aan de client side dus vanaf je werk is er ook XP/NT client beschikbaar op de volgende website.

http://nocrew.org/software/httptunnel/

Hiermee kun je via poort 80 of 443 of om mijn part een andere poort die door de proxy wil heen en zo bij je eigen (Linux/FreeBSD) systeem komen. Je komt zoals in de quote als voorbeeld aangegeven binnen op poort 80 op je Linux computer en het wordt dan lokaal bijvoorbeeld doorgerouteerd naar poort 22.

Verwijderd

Verwijderd schreef op 25 augustus 2004 @ 15:12:
Misschien is httptunnel iets voor jou. Hier een simpele beschrijving hoe het werkt die ik eens heb gemaakt voor mijn FreeBSD systeem.

[...]

Aan de client side dus vanaf je werk is er ook XP/NT client beschikbaar op de volgende website.

http://nocrew.org/software/httptunnel/

Hiermee kun je via poort 80 of 443 of om mijn part een andere poort die door de proxy wil heen en zo bij je eigen (Linux/FreeBSD) systeem komen. Je komt zoals in de quote als voorbeeld aangegeven binnen op poort 80 op je Linux computer en het wordt dan lokaal bijvoorbeeld doorgerouteerd naar poort 22.
is dat niet hetzelfde als het draaien van m'n sshd op port 80/443 of wordt alle data in een http req/res gewrapped? wel jammer, uit de faq van httptunnel:
Q: My firewall requires HTTP user authentication (which is currently not supported by httptunnel). Do you plan to add something like that?
A: Yes.

en gok eens wat die proxy hier vereist..

  • lordgandalf
  • Registratie: Februari 2002
  • Laatst online: 13-02 15:00
Als je zo graag ssh wilt gebruiken waarom vraag je dan niet beleeft aan de systeembeheerder daar of hij jouw niet even poort 22 open gooit
als je daar een geldige reden voor hebt moet dat wel te regelen zijn lijkt me

Steam: Profile / Socialclub: Profile / Uplay: minedwarf / Origin: lordgandalf3


Verwijderd

lordgandalf schreef op 25 augustus 2004 @ 16:21:
Als je zo graag ssh wilt gebruiken waarom vraag je dan niet beleeft aan de systeembeheerder daar of hij jouw niet even poort 22 open gooit
als je daar een geldige reden voor hebt moet dat wel te regelen zijn lijkt me
neuh, bij een bank gebeurt dat niet

  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 15-01 10:55
lordgandalf schreef op 25 augustus 2004 @ 16:21:
Als je zo graag ssh wilt gebruiken waarom vraag je dan niet beleeft aan de systeembeheerder daar of hij jouw niet even poort 22 open gooit
als je daar een geldige reden voor hebt moet dat wel te regelen zijn lijkt me
Omdat zoiets vaak niet mogelijk is.

Hier in de buurt bijvoorbeeld: Wireless leiden, als iemand dat wat zegt. Je kunt via een proxy het internet op. Dus wil ik via proxy het internet op naar eeen SSH box.

Die tunnelsoftware klinkt leuk maar niet erg HTTP achtig, voor zover ik weet is het gewoon zo'n cached proxy ding. Mogelijk dat poort 443 wel werkt, want ja, hij moet niet m'n bankgegevens gaan cachen :+

edit:
Dat trucje met Putty en een Demon proxy werkt iig, alleen valt de connectie na een idle van een half minuutje weg geloof ik, eens kijken naar keep-alive ofzo :)

[ Voor 12% gewijzigd door pierre-oord op 25-08-2004 17:32 ]

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


  • ripperke
  • Registratie: Augustus 2003
  • Laatst online: 15-10-2025

ripperke

w00t!

volgens mij ben je hier naar opzoek ;-)

gewoon username, password & email wijzigen, uploaden op je server, en gaan met die commands >:)

best wel wat security adden, iets alla htaccess.

soz voor de layout van got, maar geen idee hoe ik hier een file attach en te lui om het na te kijken :>

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
<?php
/*
  **************************************************************
  *                        MyShell                             *
  **************************************************************
  $Id: shell.php,v 1.1.0 beta 2001/09/23 23:25:12 digitart Exp $

  An interactive PHP-page that will execute any command entered.
  See the files README and INSTALL or http://www.digitart.net  for
  further information.
  Copyright ©2001 Alejandro Vasquez <admin@digitart.com.mx>
  based on the original program phpShell by Martin Geisler

  This program is free software; you can redistribute it and/or
  modify it under the terms of the GNU General Public License
  as published by the Free Software Foundation; either version 2
  of the License, or (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You can get a copy of the GNU General Public License from this
  address: http://www.gnu.org/copyleft/gpl.html#SEC1
  You can also write to the Free Software Foundation, Inc., 59 Temple
  Place - Suite 330, Boston, MA  02111-1307, USA.
*/

#$selfSecure enables built-in authenticate feature. This must be 0 in order to
#use .htaccess file or other alternative method to control access to MyShell.
#Set up your user and password using $shellUser and $shellPswd.
#DO NOT TURN THIS OFF UNLESS YOU HAVE AN ALTERNATE METHOD TO PROTECT
#ACCESS TO THE SCRIPT.

$selfSecure = 0;
$shellUser  = "username";
$shellPswd  = "password";

#$adminEmail is the email address to send warning notifications in case
#someone tries to access the script and fails to provide correct user and
#password. This only works if you have $selfSecure enabeled.

$adminEmail = "admin@domain.be";

#$fromEmail is the email address warning messages are sended from.
#This defaults to the server admin, but you can change
#to any address you want i.e.: noreplay@yourdomain.com
#This only works if you have $selfSecure enabeled.

$fromEmail  = $HTTP_SERVER_VARS["SERVER_ADMIN"];

#$dirLimit is the top directory allowed to change when using cd command
#or the form selector. Any attempt to change to a directory up to this
#level bounces MyShell to this directory. i.e.: $dirLimit = "/home";
#It is a good practice to set it to $DOCUMENT_ROOT using:
#$dirLimit = $DOCUMENT_ROOT;
#If you want to have access to all server directories leave it blank.
#WARNING: Althought a user won't be able to snoop on directories above
#this level using MyShell, he/she will still be able to excecute
#commands on any directory where Webserver has permission,
#i.e.: mkdir /tmp/mydir or cat /home/otheruser/.htaccess.

$dirLimit = "/home/";

#$autoErrorTrap Enable automatic error traping if command returns error.
#Bear in mind that MyShell executes the command a second time in order to
#trap the stderr. This shouldn't be a problem in most cases.
#If you turn it off, you'll have to select either to trap stderr or not for
#every command you excecute.

$autoErrorTrap = 1;

#$voidCommands is the list of commands that MyShell won't run by any means.
#It defaults to known problematic commands from a web interface like pico,
#top, xterm but also it can include specific commands you don't want to
#be excecuted from MyShell, i.e.: dig, ping, info, kill etc.

$voidCommands  = array("netscape");

#$TexEd Built-in Text Editor prefered name. This is the command you'll use
#to invoke MyShell's built in text editor.
# If you are used to type pico or vi for your fav text editor,
#change this to your please. i.e.:
#  $TexEd = "pico";
#will allow you to type 'pico config.php' to edit the file config.php
#MyShell's text editor do not support usual commands in pico, vi etc.
#Don't forget to take off this command from the $voidCommands list
$TexEd  = "edit";

#$editWrap selects to use or not wrap in the editor's textarea. Wrap OFF
#is usefull when you have to edit files with long lines, i.e.: in php code
#files, because otherwise it is no easy to distinguish a real new line (CR)
#from a wraped one. If you prefer to stick to the default wraped mode of
#TEXTAREA just leave this blank i.e.: $editWrap="".
$editWrap ="wrap='OFF'";

#Cosmetic defaults.

$termCols     = 80;            //Default width of the output text area
$termRows     = 20;            //Default heght of the output text area
$bgColor      = "#000000";     //background color
$bgInputColor = "#333333";     //color of the input field
$outColor     = "#00BB00";     //color of the text output from the server
$textColor    = "#009900";     //color of the hard texts of the terminal
$linkColor    = "#00FF00";     //color of the links

/************** No customize needed from this point *************/

$MyShellVersion = "MyShell 1.1.0 build 20010923";
if ($command&&get_magic_quotes_gpc())$command=stripslashes($command);
if($selfSecure){
    if (($PHP_AUTH_USER!=$shellUser)||($PHP_AUTH_PW!=$shellPswd)) {
       Header('WWW-Authenticate: Basic realm="MyShell"');
       Header('HTTP/1.0 401 Unauthorized');
       echo "<html>
         <head>
         <title>$MyShellVersion - Access Denied</title>
         </head>
         <h1>Access denied</h1>
         A warning message have been sended to the administrator
         <hr>
         <em>$MyShellVersion</em>";
       if(isset($PHP_AUTH_USER)){
          $warnMsg ="
 This is $MyShellVersion
 installed on: http://".$HTTP_SERVER_VARS["HTTP_HOST"]."$PHP_SELF
 just to let you know that somebody tryed to access
 the script using wrong username or password:
 
 Date: ".date("Y-m-d H:i:s")."
 IP: ".$HTTP_SERVER_VARS["REMOTE_ADDR"]."
 User Agent: ".$HTTP_SERVER_VARS["HTTP_USER_AGENT"]."
 username used: $PHP_AUTH_USER
 password used: $PHP_AUTH_PW
 
 If this is not the first time it happens,
 please consider either to remove MyShell
 from your system or change it's name or
 directory location on your server.
 
 Regards
 The MyShell dev team
       ";
          mail($adminEmail,"MyShell Warning - Unauthorized Access",$warnMsg,
          "From: $fromEmail\nX-Mailer:$MyShellVersion AutoWarn System");
       }
       exit;
    }
}
//Function that validate directories
function validate_dir($dir){
    GLOBAL $dirLimit;
    if($dirLimit){
        $cdPos = strpos($dir,$dirLimit);
        if ((string)$cdPos == "") {
            $dir = $dirLimit;
            $GLOBALS["shellOutput"] = "You are not allowed change to directories above $dirLimit\n";
        }
    }
    return $dir;
}

// Set working directory.
if (isset($work_dir)) {
  //A workdir has been asked for - we chdir to that dir.
  $work_dir = validate_dir($work_dir);
  @chdir($work_dir) or
      ($shellOutput = "MyShell: can't change directory. Permission denied\nSwitching back to $DOCUMENT_ROOT\n");
  $work_dir = exec("pwd");
}
else{
  // No work_dir - we chdir to $DOCUMENT_ROOT
  $work_dir = validate_dir($DOCUMENT_ROOT);
  chdir($work_dir);
  $work_dir = exec("pwd");
}

//Now we handle files if we are in Edit Mode
if($editMode && ($command||$editCancel))$editMode=false;
if($editMode){
    if($editSave ||$editSaveExit){
        if(function_exists(ini_set))ini_set("track_errors","1");
        if($fp=@fopen($file,"w")){
           if(get_magic_quotes_gpc())$shellOut=stripslashes($shellOut);
           fputs($fp,$shellOut);
           fclose($fp);
           $command = $TexEd." ".$file;
           if($editSaveExit) {
               $command="";
               $shellOutput="MyShell: $file: saved";
               $editMode=false;
           }
       }
       else {
           $command="";
           $shellOutput="MyShell: Error while saving $file:\n$php_errormsg\nUse back button to recover your changes.";
           $errorSave=true;
       }
    }
}

//Separate command(s) and arguments to analize first command
$input=explode(" ",$command);

while (list ($key, $val) = each ($voidCommands)) {
    if($input[0]==$val){
        $voidCmd = $input[0];
        $input[0]="void";
    }
}
switch($input[0]){
    case "cd":
       $path=$input[1];
       if ($path==".."){
         $work_dir=strrev(substr(strstr(strrev($work_dir), "/"), 1));
         if ($work_dir == "") $work_dir = "/";
       }
       elseif (substr($path,0,1)=="/")$work_dir=$path;
       else $work_dir=$work_dir."/".$path;
       $work_dir = validate_dir($work_dir);
       @chdir($work_dir) or ($shellOutput = "MyShell: can't change directory.\n$work_dir: does not exist or permission denied");
       $work_dir = exec("pwd");
       $commandBk = $command;
       $command = "";
       break;
    case "man":
       exec($command,$man);
       if($man){
           $codes = ".".chr(8);
           $manual = implode("\n",$man);
           $shellOutput = ereg_replace($codes,"",$manual);
           $commandBk = $command;
           $command = "";
       }
       else $stderr=1;
       break;
    case "cat":
       exec($command,$cat);
       if($cat){
           $text = implode("\n",$cat);
           $shellOutput = htmlspecialchars($text);
           $commandBk = $command;
           $command = "";
       }
       else $stderr=1;
       break;
    case "more":
       exec($command,$cat);
       if($cat){
           $text = implode("\n",$cat);
           $shellOutput = htmlspecialchars($text);
           $commandBk = $command;
           $command = "";
       }
       else $stderr=1;
       break;
    case $TexEd:
       if(file_exists($input[1])){
           exec("cat ".$input[1],$cat);
           $text = implode("\n",$cat);
           $shellOutput = htmlspecialchars($text);
           $fileOwner = posix_getpwuid(fileowner($input[1]));
           $filePerms = sprintf("%o", (fileperms($input[1])) & 0777);
           $fileEditInfo = "  :::::::  Owner: <font color=$linkColor>".$fileOwner["name"]."</font> Permissions: <font color=$linkColor>$filePerms</font>";
       }
       else $fileEditInfo = "  :::::::  <font color=$linkColor>NEW FILE</font>";
       $currFile = $input[1];
       $editMode = true;
       $command = "";
       break;
    case "void":
       $shellOutput = "MyShell: $voidCmd: void command for MyShell";
       $commandBk = $command;
       $command = "";
}

//Now we prepare the webpage
if(!$oCols)$oCols=$termCols;
if(!$oRows)$oRows=$termRows;
if($editMode)$focus="shellOut.focus()";
else $focus="command.select()";
//WhoamI
if(!$whoami)$whoami=exec("whoami");
?>
<html>
<head>
<title><?echo $MyShellVersion?></title>
<style>
body{
    background-color: <?echo $bgColor ?>;
    font-family : sans-serif;
    font-size : 10px;
    scrollbar-face-color: #666666;
    scrollbar-shadow-color:  <?echo $bgColor ?>;
    scrollbar-highlight-color: #999999;
    scrollbar-3dlight-color:  <?echo $bgColor ?>;
    scrollbar-darkshadow-color:  <?echo $bgColor ?>;
    scrollbar-track-color:  <?echo $bgInputColor ?>;
    scrollbar-arrow-color:  <?echo $textColor ?>;
}
input,select,option{
    background-color: <?echo $bgInputColor ?>;
    color : <?echo $outColor ?>;
    border-style : none;
    font-size : 10px;
}
textarea{
    background-color: <?echo $bgColor ?>;
    color : <?echo $outColor ?>;
    border-style : none;
}
</style>
</head>
<body <?echo "bgcolor=$bgColor TEXT=$textColor LINK=$linkColor VLINK=$linkColor onload=document.shell.$focus"?>>
<form name="shell" method="post">
Current User: <a href="#" style="text-decoration:none"><?echo $whoami?></a>
<input type="hidden" name=whoami value=<?echo $whoami?>>
  :::::::  
<?
if($editMode){
    echo "<font color=$linkColor><b>MyShell file editor</font> File:<font color=$linkColor>$work_dir/$currFile </font></b>$fileEditInfo\n";
}
else{
    echo "Current working directory: <b>\n";
    $work_dir_splitted = explode("/", substr($work_dir, 1));
    echo "<a href=\"$PHP_SELF?work_dir=" . urlencode($url) . "/&command=" . urlencode($command) . "\">Root</a>/";
    if ($work_dir_splitted[0] == "") {
       $work_dir = "/";  /* Root directory. */
    }
    else{
        for ($i = 0; $i < count($work_dir_splitted); $i++) {
            $url .= "/".$work_dir_splitted[$i];
            echo "<a href=\"$PHP_SELF?work_dir=" . urlencode($url) . "&command=" . urlencode($command) . "\">$work_dir_splitted[$i]</a>/</b>";
        }
    }
}
?>
<br>
<textarea name="shellOut" cols="<? echo $oCols ?>" rows="<? echo $oRows."\""; if(!$editMode)echo "readonly";else echo $editWrap?> >
<?
echo $shellOutput;
if ($command) {
  if ($stderr) {
    system($command . " 1> /tmp/output.txt 2>&1; cat /tmp/output.txt; rm /tmp/output.txt");
  }
  else {
    $ok = system($command,$status);
    if($ok==false &&$status && $autoErrorTrap)system($command . " 1> /tmp/output.txt 2>&1; cat /tmp/output.txt; rm /tmp/output.txt");
  }
}
if ($commandBk) $command = $commandBk;
?>
</textarea>
<br>
<?
if($editMode) echo"
                   
 <input type='submit' name='editSave' value='     Save     '>   
 <input type='submit' name='editSaveExit' value=' Save and Exit '>   
 <input type='reset' value=' Restore original '>   
 <input type='submit' name='editCancel' value=' Cancel/Exit '>   
 <input type='hidden' name='editMode' value='true'>
<br>";
?>
<br>
Command:
<input type="text" name="command" size="80"
<? if ($command && $echoCommand) {
     echo "value=`$command`";
   }
?> > <input name="submit_btn" type="submit" value="Go!">
      
<?
if ($autoErrorTrap) echo "Auto error traping enabled";
else echo "<input type=\"checkbox\" name=\"stderr\">stderr-traping ";

if($editMode){
    echo "<input type='hidden' name='work_dir' value='$work_dir'>
    <br>Save file as: <input type='text' name='file' value='$currFile'>";
}
else{
    echo "<br>Working directory: <select name=\"work_dir\" onChange=\"this.form.submit()\">";
    // List of directories.
    $dir_handle = opendir($work_dir);
    while ($dir = readdir($dir_handle)) {
      if (is_dir($dir)) {
        if ($dir == ".")
          echo "<option value=\"$work_dir\" selected>Current Directory</option>\n";
        elseif ($dir == "..") {
          // Parent Dir. This might be server's root directory
          if (strlen($work_dir) == 1) {
            // work_dir is only 1 charecter - it can only be / so don't output anything
          }
          elseif (strrpos($work_dir, "/") == 0) {  // we have a top-level directory eg. /bin or /home etc...
            echo "<option value=\"/\">Parent Directory</option>\n";
          }
          else {   // String-manipulation to find the parent directory... Trust me - it works :-)
            echo "<option value=\"". strrev(substr(strstr(strrev($work_dir), "/"), 1)) ."\">Parent Directory</option>\n";
          }
        }
        else {
          if ($work_dir == "/")
            echo "<option value=\"$work_dir$dir\">$dir</option>\n";
          else
            echo "<option value=\"$work_dir/$dir\">$dir</option>\n";
        }
      }
    }
    closedir($dir_handle);
    echo "</select>";
}
?>
  |  <input type="checkbox" name="echoCommand"<?if($echoCommand)echo " checked"?>>Echo commands
  |  Cols:<input type="text" name="oCols" size=3 value=<?echo $oCols?>>
 Rows:<input type="text" name="oRows" size=2 value=<?echo $oRows?>>
 | :::::::::: <a href="http://www.digitart.net" target="_blank" style="text-decoration:none"><b>MyShell</b> ©2001 Digitart Producciones</a>
</form>
</body>
</html>

[ Voor 15% gewijzigd door crisp op 01-09-2005 10:23 ]

If TCP/IP handshaking was less formal, perhaps SYN/ACK would be YO/WASSUP


  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 15-01 10:55
Je scriptje werkt hier niet, ik bekijk het wel even, maar het lijkt erop op zoiets als ik zie: Een php exec functie die wat doet en output post, dat is helaas niet zo interactief: Even met midnight commander werken kan bijvoorbeeld niet.

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


  • Polichism
  • Registratie: Maart 2002
  • Niet online

Polichism

MOEHOE

(overleden)
webmin werk in dit geval ook.. zit ook zp'n interface in.. en je hebt nog veel meer mogelijkheden dan alleen SSH :)

{02:31:10} (splinkie): ik hoor net van iemand dat ze nu met een fietsband moest naaien omdat ze geen condooms meer kon betalen || {02:34:44} (Asjemenou): beter met een lange tijd met goodyear dan een korte tijd met firestone en in de problemen komen


  • bolke
  • Registratie: Oktober 2000
  • Laatst online: 06-10-2024

bolke

Klikt nu met een 50D.

bakkerl schreef op 25 augustus 2004 @ 11:59:
Je sshd op poort 443 laten luisteren op de server.
De laatste versie van putty heeft proxy support erin zitten

De meeste proxies staan namelijk CONNECT opdrachten wel toe als het naar een https poort (443) gaan. Dat daar dan weer sshd achterzit hebben de meeste proxies niets te maken.
Heb ik ook eens geprobeerd. Maar de proxy van mijn werk laat dat ook niet toe.
Polichism schreef op 25 augustus 2004 @ 21:39:
webmin werk in dit geval ook.. zit ook zp'n interface in.. en je hebt nog veel meer mogelijkheden dan alleen SSH :)
Die SSH client die in WebMin zit draait op Java en connect vanaf de client naar poort 22. Zonder de proxyserver te benaderen.
Verder is WebMin goed. Maar let op. Als je het op een niet SSL poort (standaard poort 10000) draait en je zet SSL aan in Webmin dan heb je waarschijnlijk ook weer het probleem dat het niet werkt. (bij mij). Ik moet Webmin op een SSL poort draaien en er is op mjijn werk maar een SSL poort (denk ik) open. en poort 443 gebruik ik al voor mijn webmail. Dus ik draai voorlopig maar zonder SSL op poort 8080 want die poort kan ik bereiken vanaf mijn werkplek.
Misschien heb je geluk en staat poort 563 ook aan voor SSL verbindingen.

[ Voor 51% gewijzigd door bolke op 26-08-2004 08:26 ]

http://www.hroling.nl


  • bolluserectus
  • Registratie: November 2001
  • Laatst online: 25-04-2025
Ik heb hier ook lang naar gezocht, en heb vele http-tunnels geprobeerd..
Na 2 dagen stond een oplettende sysadmin aan mijn buro, of ik dat even wilde deinstalleren, bijna een officiele waarschuwing. :(

Nu doe ik het al een tijd leuker en heb nog geen commentaar gehad.
Thuis op me Windows bak remotelyanywhere geinstalleerd, daar kom ik wel op vanachter de proxy! Geen idee waarom, maar het werkt vlot en soepel.
En vanaf daar kan ik lekker putty-en!

Actions speak louder than words


  • Kippenijzer
  • Registratie: Juni 2001
  • Laatst online: 11-02 20:53

Kippenijzer

McFallafel, nu met paardevlees

Als je 2 seconden naar het hierboven genoemde script kijkt, zie je dat het voor php3 geschreven is, en dus onder php4/5 hetzij register_globals=on moet hebben, hetzij even alle variabelen aanpassen naar de nieuwe notatie ( $_SERVER['item'] voornamelijk in dit geval ).

Verwijderd

pierre-oord schreef op 25 augustus 2004 @ 17:18:
[...]

edit:
Dat trucje met Putty en een Demon proxy werkt iig, alleen valt de connectie na een idle van een half minuutje weg geloof ik, eens kijken naar keep-alive ofzo :)
verbazingwekkend werkt het hier ook echter zit ik met hetzelfde probleem. voor keep-alive zit in putty onder de connection config de optie 'sending of null packets to keep session active',

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Kun je in plaats van bovenstaand script niet beter het originele, up-to-date programma downloaden?
PhpShell tries to give you a shell wrapped in a PHP script. It's a tool you can use to execute commands on your remote webserver, even if you don't have normal telnet or SSH access. The latest version of PHP Shell is version 2.0, released on March 27th 2004

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 15-01 10:55
Ik nog eens naar dat PHPshell kijken, maar wilde even zeggen dat het probleem al is opgelost. Verbinding maken via putty naar poort 443 (HTTPS) gaat prima, en de proxy blijft er netjes vanaf. Ik gebruik nu 1 bak als doorgangsluik, om alle andere machines wel normaal te benaderen (nou ja normaal, ik verzet m'n SSH poort altijd naar een andere poort, scheelt weer mensen die known ports aan het scannen zijn :) )

edit:
PHPshell is een leuk tooltje, maar niet even handig:
1) Voor dezelfde SSH veiligheid moet het op een HTTPS server draaien
2) INteractieve programma's zoals mijn geliefde Midnight Commander werken niet
3) En compilatie processen volgen door de regels heen kan ook niet.

Mijn putty doet het prima! Dat ik niet zelf op dat idee van een HTTPS poort kwam :)

[ Voor 32% gewijzigd door pierre-oord op 26-08-2004 18:31 ]

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


Verwijderd

igmar schreef op 25 augustus 2004 @ 11:10:
Dat bestaat niet afaik, ssh kun je gebruiken via een socks proxy, maar niet via HTTP. Op zich valt alles wel over HTTP te tunnelen, maar dat vereist support aan de andere kant.
Grote truk. Config een sshd (met -p 8080) op poort 8080 van je server. Download putty.exe - een van de beste windows ssh clients - stel de proxy settings goed in en het werkt geheid.... Een van de redenen waarom ik altijd een sshd ook op poort 8080 heb draaien...

En over die proxies. De meeste sysadmins zijn zo slim om te denken als je poort 22 dichtzet dat er nooit een ssh door de firewall komt. Net alsof poorten protocol afhankelijk zijn. Overigens zijn de meeste proxies domme dingen die echt heel erg weinig screenen. Dus meestal komt een ssh er wel door.

btw, net2ftp - php package - is ook een leuk ding om je site te maintainen.

[ Voor 27% gewijzigd door Verwijderd op 26-08-2004 20:40 ]


  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 15-01 10:55
Verwijderd schreef op 26 augustus 2004 @ 20:36:
[...]


Grote truk. Config een sshd (met -p 8080) op poort 8080 van je server. Download putty.exe - een van de beste windows ssh clients - stel de proxy settings goed in en het werkt geheid.... Een van de redenen waarom ik altijd een sshd ook op poort 8080 heb draaien...

En over die proxies. De meeste sysadmins zijn zo slim om te denken als je poort 22 dichtzet dat er nooit een ssh door de firewall komt. Net alsof poorten protocol afhankelijk zijn. Overigens zijn de meeste proxies domme dingen die echt heel erg weinig screenen. Dus meestal komt een ssh er wel door.

btw, net2ftp - php package - is ook een leuk ding om je site te maintainen.
Die online FTp dingen ken ik al :)

Mijn proxy is wel zo'n caching ding, maar aangezien die niet een SSL verbinding gaat cachen (ik zou het knap vind als die de key weet) kan het iig over poort 443 en lijkt me dat safer :) iemand hier zei alleen dat sommige proxy's de "connect' optie niet toestaan. Ik gebruikte overigens een HTTP proxy, wat prima werkte met putty.

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)

Pagina: 1