Skip to content

Ciccotti/ssh-tunnel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Solução de Acesso Remoto a Redes Privadas Utilizando Túnel SSH Reverso

Este repositório apresenta uma solução de TCC desenvolvida na Universidade Federal de Uberlândia (UFU) para acesso remoto seguro a redes privadas, utilizando túneis SSH reversos.

Visão Geral do Projeto

O projeto implementa uma aplicação web para gerenciamento de túneis SSH reversos, permitindo que usuários autenticados possam abrir e fechar conexões seguras com máquinas clientes (Windows ou Linux), mesmo em redes protegidas. A aplicação foi desenvolvida em Laravel, e o script do cliente em Python consulta um endpoint para verificar solicitações de conexão pendentes, estabelecendo o túnel reverso para a interface web.

Ilustração da Solução:

                             +----------------+
                             |     Usuário    |
                             |                |
                             +----------------+
                                     |
                                     |
                            Acesso via web (site)
                                     |
                                     |
                                     v
                       +---------------------------+
                       |        Servidor Web       |
                       |                           |
                       | (Painel de gerenciamento) |
                       |                           |
                       | Linux, Laravel, PHP,      |
                       | Nginx e SSH               |
                       +---------------------------+
                          ^                 ^
                          |                 |
                          |                 |
                          |                 |
                          Túneis SSH Reversos
                          |                 |
                          |                 |
                          |                 |
                          |                 |
              +-------------------+   +-------------------+
              |    Cliente 1      |   |     Cliente 2     |
              |                   |   |                   |
              |(Atrás de firewall)|   |(Atrás de firewall)|
              |                   |   |                   |
              |    Rodando RDP    |   |  Rodando Cockpit  |
              |   na porta 3389   |   |   na porta 9090   |
              +-------------------+   +-------------------+

Estrutura do Repositório

  • scripts/script_cliente.py: Script Python para execução nas máquinas clientes, que monitora o servidor em busca de solicitações de túnel e, caso existam, estabelece o túnel SSH reverso.
  • requirements-windows.txt: Lista de dependências para o script cliente em sistemas Windows.
  • requirements-linux.txt: Lista de dependências para o script cliente em sistemas Linux.

Instalação das Dependências

  1. Para Windows: Execute o seguinte comando no terminal:

    pip install -r requirements-windows.txt
  2. Para Linux: Execute o seguinte comando no terminal:

    pip install -r requirements-linux.txt

Configuração e Execução

1. Gerar e Configurar a Chave Privada

  • Gere uma chave privada SSH para a autenticação segura e coloque-a no diretório do script cliente (scripts/script_cliente.py).
  • Ao iniciar o script, as permissões da chave privada serão ajustadas automaticamente para garantir segurança.

2. Executar o Script Cliente

Após configurar as dependências e a chave privada, execute o script cliente:

python script_cliente.py

3. Cadastro do Hardware ID

Durante a primeira execução do script cliente, será gerado um Hardware ID único para a máquina. Este identificador deve ser cadastrado na dashboard da interface web para que o servidor possa autenticar a máquina e permitir o estabelecimento dos túneis SSH. Este passo é essencial para garantir que apenas máquinas autorizadas acessem a rede.

4. Gerenciamento via Interface Web

Na aplicação web, usuários podem gerenciar conexões e verificar o status dos túneis. A interface permite configurar portas de redirecionamento, visualizar logs e monitorar os túneis ativos, garantindo controle e segurança.

Objetivo do Projeto

Este projeto oferece uma alternativa para profissionais de TI que buscam um método seguro e eficaz de acesso remoto, evitando as dificuldades de configuração de rede em ambientes restritos. As soluções propostas incluem autenticação segura, uso de hardware IDs únicos, e implementação de túneis reversos para manter a integridade dos dados.

Palavras-chave

Acesso remoto, SSH, Aplicação web, Segurança da informação, Túnel reverso, Firewall.

Este projeto utiliza as seguintes versões de software:

  • Laravel Framework: 11.24.1
  • PHP: 8.3.6
  • Zend Engine: v4.3.6
  • MySQL: 8.0.39
  • Nginx: 1.24.0
  • Python: 3.12.6

About

projeto de tcc - tunel ssh

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published