Simulando o SSH via WEB

Ao invés de se ter a porta 22 aberta no servidor Linux para disponibilizar o SSH, podemos tê-lo rodando via WEB. Neste artigo explicarei como programar um script em PHP para isso, daí fica a critério de cada um modificá-lo da forma que quiser.

[ Hits: 66.583 ]

Por: Eduardo Assis em 21/01/2004 | Blog: http://www.proredes.com.br


Programando o script



Bom, como configuramos o sudo para deixar o usuário "www" fazer o que quiser, não podemos deixar que essa página usada para executar comandos via WEB esteja aberta para todos.

Vamos criar um sistema de login e senha, sendo que para se ter acesso ao site tenha que digitar os mesmos.

Os comandos são:

<?
$comando = shell_exec("sudo $comando");

echo "<pre> $comando </pre>" ;
?>

No código abaixo apresento uma página minha:

<?
session_start();

if ($autorizado=="sim") {
?>
<html>
<head>
  <title>
       SSH - WEB
  </title>
<STYLE type=text/css>
A:link { text-decoration: none}
A:visited { text-decoration: none}
</STYLE>
</head>

<body>
<center><font face=arial size=5 color=red> Administração ssh via web </font></center>
<br>
<h2 align=right><font color=#0000f2 face=arial> tucs </font></h2>
<hr width=400 align=right>
<br><br>

<form method=post actiom=exec_comandos.php>
<input type=text name=comando size=40>
<input type=submit value=Executar>
</form>

</body>
</html>
<?
$comando = shell_exec("sudo $comando");

echo "<pre> $comando </pre>" ;
?>
<br><br>
<a href=entrada.php> Voltar </a>

<?
} else {
   header("Location: index.php");
}
?>

As partes que se referem a autenticação dos usuários são as listadas abaixo, caso não for usá-la, retire:

<?
session_start();

if ($autorizado=="sim") {
?>

<?
} else {
   header("Location: index.php");
}
?>
Página anterior     Próxima página

Páginas do artigo
   1. Configuração
   2. Programando o script
   3. Executando o comando
Outros artigos deste autor

Raid 1 em 5 minutos e descanso por 3 meses

Montando um Servidor de FTP

Autenticando usuários Windows no Linux (PDC)

Configurando um servidor de e-mail para pequenas redes

Servidor seguro com Bridge, Snort e Guardian

Leitura recomendada

Boleto Bancário em PHP ou ASP

Estatísticas para todos

Captive Portal Customizado

Aces Downz - Gerenciador de downloads e controle de tráfego

Enganando o proxy Squid (download de arquivos)

  
Comentários
[1] Comentário enviado por ragen em 21/01/2004 - 19:53h

if ($autorizado=="sim") ?

E se alguem simular uma sessão com a var $autorizado valendo "sim" como fica?

Não consegui entender...

[2] Comentário enviado por jllucca em 05/04/2005 - 15:55h

Olá,

no CVS do apache estão testando funções que serão capazes de requisitar o ssh. Acho que se funcionar será uma excelente alterantiva. :)

Mas, isso não tira a excelente idéia deste autor :D

[]'s
PS: Edit pra corrigir o que tinha dito...

[3] Comentário enviado por zero_bala em 25/10/2005 - 10:33h

ragen, se alguém fizer isso, então ele terá acesso. No php.ini tem uma diretiva chamada register_globals. Se ela estiver ON vc poderá "burlar" o sistema via query string.

http://localhost/index.php?autorizado=sim

Uma boa alternativa é usar .htaccess do Apache.

[4] Comentário enviado por scorpionbr em 28/03/2006 - 19:29h

Oi tenho um script de configuração que roda via shell para configurar servidor samba, squid, fw, e estou querendo fazer via web + php, como faria para ter uma base, tipo um exemplo, tenho um arquivo tipo fw.ini, que no modo shell configuro o que quero, nas regras, como faço para editar este arquivo via Web?

tem alguma dica sobre isto? a minha maior dúvida são os parâmetros, para editar, e depois que editar, quero fazer tipo um check box para selecionar o serviço para parar e iniciar. é muito complicado???

[5] Comentário enviado por fmascarenhas em 25/01/2007 - 11:47h

Concordo com o amigo zero_bala que utilizar .htaccess seria uma solução interessante, particularmente além da autenticação de usuário colocaria uma limitação para permitir acesso apenas para determinado IP.


AuthName "Meu servidor - Área restrita"
AuthType Basic
AuthUserFile /var/www/.htpasswd

require valid-user

Order deny,allow
Deny from all
Allow from xxx.xxx.xxx.xxx

[6] Comentário enviado por *simon em 26/03/2007 - 10:17h

Como simularia um tail -f com esse script.
Tpw tentei fazer isso e deu certo, porém agora nao consigo quebrar as linhas .

<meta http-equiv="refresh" content="1" />

<?
$comandos=shell_exec("sudo tail /var/log/apache2/access.log");
echo "<font face='verdana' size='2'>$comandos</font>";


?>

[7] Comentário enviado por chagalrpg em 11/09/2007 - 20:03h

Olá para todos, gostaria de usar o comando abaixo em qualquer estação de uma rede, isso via PHP do servidor.

O comando é: "dcop kdesktop KScreensaverIface lock".
Tentei várias maneiras de executá-lo, até mesmo localhost, mas não tive sucesso.
Alguém tem alguma idéia de como fazê-lo?

Se alguém puder ajudar, por favor, me mande e-mail.
evandro.chagal@gmail.com

Valeu!!

[8] Comentário enviado por comfaa em 28/10/2008 - 13:04h

muito legal !!!

[9] Comentário enviado por Journeyman em 24/04/2009 - 21:43h

Aqui um sisteminha pronto em perl pra mesma finalidade:

http://www.rohitab.com/cgiscripts/cgitelnet.html

Não desmerecendo o teu artigo qu ta excelente, mas normalmente os provedores cuidam muito a segurança do php, mas acabam esquecendo de cgi, perl , etc

Poucas chances do php funcionar em provedor.. mais garantido em cgi =D

Abraços.

[10] Comentário enviado por BlackMarik em 06/06/2009 - 19:02h

Também concordo com o zero_bala e com o fmascarenhas

Ter muita seguranca nesse tipo de pagina é muito mais que nescessario.

[11] Comentário enviado por clickbr em 18/08/2009 - 20:31h

Só entrei aqui agora pra agradecer o Journeyman. Realmente o cgitelnet é ótimo. Faltou um editor de texto vi. Mais os links de upload e download, é mais eficiente que um FTP, é só upar os arquivos do site compactado e depois descompactar dentro do host. Pontos pra vc, fazia tempo que procurava algo assim.

[12] Comentário enviado por vida486 em 14/06/2010 - 16:22h

Boa Tarde, Quem puder ma ajudar a configurar o Simulador SSH via web fico muito grato
meu contato e almeidamentz@gmail.com
desde ja abrigado


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts