Reverse SSH Tunnel – Criamos uma aplicação para tunelamento

Reverse SSH Tunnel ou Tunelamento SSH Reverso, consiste em uma conexão criptografada entre duas maquinas, geralmente (sempre) entre o servidor (que mantém o SSH em forma de servidor ativo em suas dependências) e o cliente (que também mantém o SSH, mas este, em forma de cliente).

O que é tunelamento SSH?

O Túnel convencional redireciona o tráfego da maquina cliente para o servidor e do servidor para o destino, de modo que a maquina cliente fique “invisível” mas que receba todas as informações como se ela fosse o servidor, na imagem abaixo você encontra uma explicação mais facilitada do que estou tentando explicar:

Explicação de tunelamento SSH

Em outras palavras o servidor é o “laranja” da história (não os malwares, mas o intermediador). Mas como eu faria para transmitir um serviço que só pode ser acessado localmente (127.0.0.1) na maquina cliente (um servidor web em localhost por exemplo)? É ai que entra o Tunelamento SSH Reverso, que serve tanto para o convencional como para o reverso.

A nossa ferramenta

Você pode pesquisar sobre o assunto na internet e tentar encontrar como fazer esse tal do tunelamento funcionar, entretanto, se você não for bom em inglês e em servidores Linux. Pensando nisso, desenvolvemos uma ferramenta em node.js (python e javascript) que roda na maquina do cliente e cria um tunelamento com o servidor.

Para que essa ferramenta funcione perfeitamente suas maquinas irão precisar das seguintes informações, lembrando que o cliente pode ser qualquer OS (Windows, Linux ou Mac) e o servidor apenas distros Linux com SSH ativo.

O lado do cliente

O cliente é o cara que possui o serviço rodando em suas dependências e que vai fazer um túnel com o servidor. O cliente precisa:

  • Windows, Linux ou Mac;
  • Conexão aberta com o servidor (liberação no firewall ou router para conexões externas);
  • Node.js instalado, versão LTS que pode ser encontrada nesse link: https://nodejs.org/en/
  • Serviço pronto para ser transmitido.

O lado do servidor

  • Linux (Debian, CentOS, Ubuntu, etc) com SSH ativo.
  • 256MB Memória RAM;

Instalando e configurando

Agora vamos aprender a instalar e a configurar essa aplicação, o que não é uma tarefa difícil, mas requer um pouco de atenção.

  1. Na maquina cliente instale o node.js versão LTS desse link: https://nodejs.org/en/
  2. Instale ele apenas dando next;
  3. Agora no seu servidor de SSH ative a opção GatewayPorts. Para fazer isso, edite o arquivo /etc/ssh/sshd_config e no final do arquivo insira:
    GatewayPorts yes
  4. Salve o arquivo e reinicie o serviço de SSH, geralmente: service sshd restart
  5. Baixe nossa aplicação no github oficial para a maquina cliente:
    Reverse SSH Tunnel
  6. Abra o CMD nessa pasta navegando pelo comando cd ou simplesmente abrindo a pasta, aperte shit e clique com o botão direito do mouse e selecione a opção: Abrir janela de comando aqui;
  7. node index.js IPSSH PORTASSH root SENHAROOT DNSOUIPDOSSH PORTADOSERVIDOR DESTINO PORTADESTINO ATIVARLOGS
    IPSSH: IP do seu servidor de SSH;
    PORTASSH: Porta do seu SSH, geralmente 22;
    root: Usuário do SSH, você pode criar um exclusivamente para isso;
    SENHAROOT: Isso mesmo, a senha do usuário acima;
    DNSOUIPDOSSH: IP ou DNS do servidor do SSH, caso você tenha mais de 1 IP na maquina aqui você pode configurá-lo, caso tenha só um, uso o padrão;
    PORTADOSERVIDOR: é a nova porta do seu serviço quando for transmitido para o servidor, coloque 0 para selecionar uma não utilizada aleatóriamente;
    DESTINO: A maioria das vezes é 127.0.0.1;
    PORTADESTINO: é a porta do serviço rodando na maquina do cliente;
    ATIVARLOGS: coloque true, caso ocorram erros durante as conexões troque para false.
  8. E dê enter, pronto serviço rodando

OBS.: A primeira configuração na linha de comando da aplicação é obrigatória, as demais vezes serão feitas automáticas.

Utilidade do sistema

  • Proteção DDoS remota;
  • Esconder IP de destino;
  • Esconder porta de destino;
  • Acessar localhost externamente sem abrir portas no firewall ou roteador;
  • Alteração de portas fixas;
  • E outras coisas que sua criatividade mandar

Problemas, dúvidas e sugestões?

Estamos totalmente abertos para sugestões e prontos para ajudar você com quaisquer problemas ou dúvidas que surgirem.

Serviços criados a partir desse projeto (proteção DDoS remota, redirecionamento de portas) podem ser comercializados sem problemas, mas a venda da aplicação é totalmente proibida.

Façam bom uso do projeto, mantenham os créditos.

Até a próxima.


2 Comentários

Em 18/02/2017 às 19:37 Rafael Burjack disse:

show curti bastante.

Comentar

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Dúvidas?

Podemos ajudar você
© 2014-2019 CompuLabs - Todos os direitos reservados.