Warning: unlink(/home/compulabs/public_html/blog/wp-content/wphb-cache/cache/compulabs.com.br/blog/reverse-ssh-tunnel-criamos-uma-aplicacao-para-tunelamento/c303b8e66383c3017f27c6970098de5f.php): Permission denied in /home/compulabs/public_html/blog/wp-content/plugins/hummingbird-performance/core/modules/class-page-cache.php on line 1571
Tunelamento SSH Reverso - Blog CompuLabs
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:
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.
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.
https://compulabs.com.br/blog/wp-content/uploads/2017/02/Tunelamento-SSH-Reverso.mp4
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 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.
Linux (Debian, CentOS, Ubuntu, etc) com SSH ativo.
256MB Memória RAM;
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.
Na maquina cliente instale o node.js versão LTS desse link: https://nodejs.org/en/
Instale ele apenas dando next;
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:
Salve o arquivo e reinicie o serviço de SSH, geralmente: service sshd restart
Baixe nossa aplicação no github oficial para a maquina cliente:
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;
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.
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.
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.