Finalmente consegui fazer isso ssh
apenas:
- inicie um proxy SOCKS local em sua máquina cliente (usando
ssh -D
)
- conecte-se ao servidor remoto e configure um encaminhamento de porta reversa (
ssh -R
) para o proxy SOCKS local
- configurar o software do servidor para usar o proxy encaminhado
1. Inicie o proxy de meias locais em segundo plano
Conecte-se ao localhost via SSH e abra o proxy SOCKS na porta 54321.
$ ssh -f -N -D 54321 localhost
-f
executa o SSH em segundo plano.
Nota: Se você fechar o terminal onde iniciou o comando, o processo de proxy será interrompido. Lembre-se também de se limpar, fechando a janela do terminal quando terminar ou matando o processo!
2. conecte ao servidor remoto e configure o encaminhamento de porta reversa
Ligue a porta remota 6666 à porta local 54321. Isso disponibiliza o proxy de meias locais para o site remoto na porta 6666.
$ ssh root@target -R6666:localhost:54321
3. configure o software do servidor para usar o proxy encaminhado
Basta configurar o yum, apt, curl, wget ou qualquer outra ferramenta que suporte o SOCKS para usar o proxy 127.0.0.1:6666
.
Voilá! Feliz tunelamento!
4. opcional: configure o software do servidor para usar o proxy encaminhado
Eu descobri que a instalação proxychains
no servidor de destino facilita muito as coisas.
Ele permite que qualquer software use o proxy SOCKS (par telnet
), usando um LD_PRELOAD
truque para redirecionar solicitações TCP e DNS de comandos arbitrários para um proxy.
Configure /etc/proxychains.conf
para usar o proxy de meias encaminhadas:
[ProxyList]
# SSH reverse proxy
socks5 127.0.0.1 6666
Ferramentas arbitrárias de túnel (que usam TCP) com proxychains
:
$ proxychains telnet google.com 80
$ proxychains yum update
$ proxychains apt-get update