Como criar um encaminhamento de porta ssh dinâmico reverso

3

Estou tentando configurar um layout de túnel ssh onde:

  1. o cliente A (não habilitado para ssh-server) inicia a conexão ssh com o servidor S
  2. o servidor socks é aberto no servidor S: yyyy, que encapsula todos os dados via cliente A
  3. o cliente B conecta o servidor socks no servidor S e as rotas de dados tcp via cliente A para a Internet

Uma solução possível seria adicionar um servidor proxy no Cliente A (vinculado ao localhost: xxxx) e, em seguida, executar no cliente A ssh -R yyyy:localhost:xxxx Server . Isso alcançaria o objetivo. Mas isso não é tão limpo quanto usar apenas ssh.

É possível conseguir isso apenas com o cliente ssh em A e o ssh-server em S? é como forwarding de porta dinâmica reversa em ssh - criando ssh -D de A para S, e então de alguma forma configurado neste túnel um segundo túnel de ssh -D de S para A. Algo confuso, e não seguro se possível. / p>     

por azv 15.01.2015 / 15:29

3 respostas

5

Eu estava procurando por isso e me deparei com a mesma (ou semelhante) pergunta sobre o estouro de pilha .

No cliente A ssh -R \*:24680:localhost:12345 serverS e depois (ainda no cliente A) ssh -D 12345 localhost [1]

Você precisa do \* bit para vincular ao endereço IP público do servidor S e não apenas ao localhost.

Em seguida, no cliente B, basta conectar-se ao servidor de meias em serverS:24680

[1] EDIT: Acabei de perceber que isso não funcionará se o cliente A não tiver o SSH Server porque não pode ssh em si. Eu estava pensando em uma configuração em que o cliente A tinha um servidor SSH, mas não era acessível pelo servidor S. Mas uma configuração semelhante ainda poderia funcionar se você pudesse instalar um socks server no cliente A e abra-o na porta 12345.

    
por 29.04.2015 / 05:19
5

OpenSSH 7.6 introduziu o proxy dinâmico reverso como uma opção nativa. Ele é implementado inteiramente no cliente, portanto, o servidor não precisa ser atualizado.

ssh -R 1080 server
    
por 07.12.2017 / 18:39
0

Isto é bastante simples.

No lado local (Servidor S), inicie seu servidor de servidor openssh. Isto irá iniciar o servidor ssh por padrão na porta 22 - você pode alterar esta porta no arquivo / etc / ssh / sshd_config, se necessário.

 service ssh start

No lado remoto (Cliente A), inicie um proxy de meias E defina uma porta remota no lado local para se conectar ao proxy de meias.

 ssh -N -D 127.0.0.1:8888 -p 22 <server-s>
 ssh -N -R 2222:127.0.0.1:8888 -p 22 <server-s>

No lado local (Servidor S), use a configuração de proxy de meias na porta 2222 por meio de, por exemplo, para se conectar ao Google.

 curl --socks5 127.0.0.1:2222 https://www.google.com
    
por 06.11.2016 / 03:15