SSH & SOCKS dentro de um túnel criptografado HTTPS usando um servidor Apache do Windows ou o quê?

1

Eu passei horas revisando o Super / Stack e outros sites e ainda não encontrei a resposta. Então, vou dar uma chance para perguntar aqui novamente. Gostaria de apontar algumas respostas parciais que encontrei nos links, mas elas são tão complicadas ou parcialmente respondidas. Acho que isso pode piorar as coisas para qualquer um que ler isso.

Até agora, consegui configurar um servidor Apache em execução no meu PC local com um certificado autoassinado. Eu tenho a porta do meu roteador encaminhando 443 para este servidor. Eu também tenho o OpenSSH rodando na porta 22 no meu PC local. Meu objetivo é:

  1. Eu quero poder conectar do Putty / WinSCP ao meu PC na porta 22, encapsulamento através da conexão SSL 443, e navegar via SOCKS como se eu estivesse no referido PC.
  2. Eu poderia tentar o Stunnel, SSHL, HTTPProxy, Httptunnel, o lado do cliente do Corkscrew ou qualquer coisa que alguém possa explicar claramente como fazer (ou linkar para um guia), mas ele deve ser executado no Windows.
  3. Minha preferência seria configurar o servidor Apache (mod_proxy / proxy pass?) para (por conta própria?) encaminhar o 443 de entrada para a porta 22 para o OpenSSH pegar a conexão e o SOCKS para navegação.

    NOTA: Aqui está uma descrição do fluxo. Eu não posso usar uma VPN (já em um) e não posso usar 443 no SSH porque o FW da camada 7 vê o protocolo SSH e o bloqueia. O PC cliente já está em VPN, portanto, nenhuma VPN pode ser usada.

Win PcA > Win ServerB running something (Apache/Nginx?) {SSL}

Em seguida, enquanto o HTTPS estiver ativo e criptografado, envie:

Win PcA > Win ServerB running OpenSSH {SSH} via WinSCP or Putty for SFTP

e

Win PcA > Win ServerB running OpenSSH {SSH} via Putty for SOCKS via Browser

Isto é para fins de conhecimento principalmente, mas eu percebo que é para o FW também. Como são todos os meus computadores, posso instalar software no lado do cliente, se necessário, mas o melhor seria não ter nenhum software, exceto o Putty / WinSCP & um navegador eu posso mudar a porta do proxy no lado do cliente. Dessa forma, se eu tiver que executar isso de um computador que não possuo, provavelmente poderei usar putty / WinSCP sem precisar de sinalizadores ou precisar de direitos de administrador.

Eu ouvi falar sobre o Squid e Ngnix para o servidor como servidores proxy, mas atualmente eu tenho o Apache 2.4 em execução. Eu poderia mudar isso, eu acho. Basicamente eu quero criar uma espécie de navegação Inet (via proxy SOCKS) e endpoint de transferência de arquivos (via 22 totalmente oculta em SSL) que eu poderia alcançar de qualquer lugar, o que não seria bloqueado, desde que a rede que eu estou permite conexões SSL .

Os guias que estão por aí para configurar o Apache e um certificado auto-assinado chegaram até aqui ... agora estou com muitas opções. Obrigado pela leitura.

Edit: Há perguntas como esta lá fora sem respostas e com respostas confusas. Mas nada completo para mim. Além disso, não tenho certeza se minha pergunta está formatada corretamente. Novidade por aqui.

    
por DjIns1ght 04.09.2016 / 10:38

2 respostas

1

O SSH já está usando SSL para criptografar o tráfego. Para usar a (muitas vezes) porta TCP / 443 permitida para se conectar ao seu servidor SSH, você só precisa configurar tanto o cliente SSH quanto o servidor SSH para usar a porta tcp / 443. WinSCP como um cliente permite isso. Dependendo do software usado para o servidor SSH, isso também deve ser possível, assim como instalar seu próprio certificado SSL.

Você não precisaria ter o Apache instalado para isso. De fato, como o Apache encerraria a conexão SSL, o tráfego criptografado de lá para um servidor SSH local não seria possível (mas, por exemplo, telnet não criptografado).

Se você precisar evitar o reconhecimento de aplicativos, pode-se pensar em criar um túnel VPN SSL sobre o qual você iniciaria um túnel SSH ... parte da qual você menciona com o Apache + OpenSSH. Você precisaria de um software adicional para o servidor SSL VPN, como o (?) OpenVPN, que não fará parte do Apache.

    
por 04.09.2016 / 18:02
0

Eu não sei muito sobre as VMs, supondo que você possa lidar com os sistemas VM. Este guia deve ajudar .

Você configurará um servidor stunnel4 como no guia (altere a conexão para 127.0.0.1:22 e aceite para 443) e, em seguida, torne o servidor ssh como normal.

Depois de acessar o download do cliente e o Cliente Stunnel , clique com o botão direito do mouse no ícone da bandeja e vá para < strong> Editar configuração copie isso (altere o ip):

[ssh]
client = yes
accept = 127.0.0.1:22
connect = [ip address of the server]:443

Agora, volte ao menu e clique em Recarregar configuração . E você está feito; você deve se conectar ao ssh, mas usando 127.0.0.1:22.

    
por 08.09.2016 / 21:47