SSH encaminhamento de porta local para um site

0

Eu estava atualizando minha memória hoje na configuração de túneis ssh e me deparei com várias fontes que descrevem o encaminhamento de uma porta local para um site. Por exemplo: link

“Abra uma janela de terminal em seu cliente e emita o comando:

ssh -L 8080: www.slashdot.org: 80 localhost

Você será solicitado a digitar sua senha de usuário para o computador cliente. Essencialmente, você está conectando, via SSH, de volta à sua máquina cliente, mas criando o túnel SSH necessário para o destino. Depois de autenticar com sucesso em sua conta local, abra um navegador e aponte para o link . Seu navegador deve redirecioná-lo automaticamente para o Slashdot. ”

Só que isso não funciona se você realmente tentar. Acabo com conexões com falha, 500 erros, erros 404, etc. Tentei outros sites, mesmo não https. Qual é o problema?

    
por zallik 01.08.2018 / 21:45

2 respostas

2

Essa técnica funciona, mas não é muito boa para acessar sites, pois você precisa encaminhar uma porta para cada um dos domínios acessados. Se você carregar o slashdot no chrome e usar as ferramentas do desenvolvedor, poderá ver que, ao carregar o slashdot, ele está realmente carregando conteúdo de pelo menos 21 domínios diferentes. Se você estiver encaminhando apenas um domínio, não verá todo o conteúdo.

Outro problema é que você está tunelando para a porta 80 em um site que está veiculando conteúdo na porta 443. Se você executar "curl -i slashdot.org", verá que ele exibe um redirecionamento 301 para HTTPS. Quando o navegador tenta seguir o redirecionamento para HTTPS, tudo falhará.

Seria melhor usar o ssh como proxy do SOCKS e configurar seu navegador para usá-lo. Você pode abrir um proxy de meias em uma porta local como esta:

ssh -D 8080 myhost.com

myhost.com pode ser "localhost" no seu caso, mas geralmente é um servidor remoto. Depois de abrir esta sessão, basta acessar as preferências do navegador e configurar o navegador para usar um proxy SOCKS v5 apontado na porta do host local 8080 (mais fácil de fazer no firefox do que no chrome imho). Uma vez feito isso, o navegador executará todo o tráfego através do túnel ssh.

Isso pode ser incrivelmente útil para acessar sites hospedados em redes privadas ou para criptografar seus dados em uma rede que você acha que não é segura.

    
por 01.08.2018 / 22:05
1

Jeff está absolutamente certo, mas gostaria de adicionar uma solução com o encaminhamento de porta local:

Como o site que você está tentando acessar está usando HTTPS, você precisa acessar a porta 443 .

$ ssh -L 8080:www.slashdot.org:443 localhost

Além disso, você precisa usar https:// no navegador, em vez de http:// , para acessar o seguinte URL no seu navegador: https://localhost:8080 . No firefox, isso me apresentou um aviso de "conexão não segura", pois obviamente o certificado SSL emitido para o site que você está tentando acessar não estava assinado para ser usado com o host local. No entanto, você pode ignorar esse aviso e prosseguir.

    
por 01.08.2018 / 22:40