(túnel ssh?) Acessar servidor remoto com IP privado através de um servidor * DIFFERENT * com IP público

4

Vamos supor os seguintes hosts:

  • localhost : meu laptop
  • remoteserver : um servidor com um IP público que executa um servidor SSH.
  • private.remoteserver : um servidor com um IP privado que só é acessível a partir de remoteserver .

Eu não tenho sudo acesso a remoteserver , por isso não posso fazer alterações com o usuário root.

A questão é : é possível acessar uma porta em private.remoteserver a partir de remoteserver , em um único comando?

Eu brinquei um pouco com túneis ssh sem sorte. Ele gostaria de criar um alias de SSH para private.remoteserver como descrito neste artigo .

Por exemplo, gostaria de executar a partir do localhost:

curl http://private.remoteserver:8080/

para conectar-se à porta 8080 no private.remoteserver. Isso é possível?

    
por David 14.08.2013 / 02:03

2 respostas

5

Você não nos mostrou o que tentou até agora, mas algo tão simples como isso deve funcionar:

ssh -L 8080:private.remoteserver:8080 remoteserver

O que permitiria que você executasse:

curl http://localhost:8080/

... que, devido ao encaminhamento de porta que acabamos de configurar, realmente se conectaria à porta 8080 on private.remoteserver .

Se você quiser acessar diretamente http://private.remoteserver:8080/ do seu cliente, você precisará (a) configurar algum tipo de proxy e (b) configurar o curl (ou outro software) para usar o proxy. Você pode configurar um proxy SOCKS5 com ssh usando a opção -D :

ssh -D 1080 remoteserver

E então você pode:

curl --socks5-hostname http://private.remoteserver:8080/

A maioria dos navegadores da web (Firefox, Chrome) também pode ser configurada para operar com um proxy SOCKS5 . Se você procurar por "encaminhamento dinâmico ssh", encontrará muita documentação boa, incluindo este artigo do Ubuntu .

    
por 14.08.2013 / 02:36
2

Na verdade, resolvi meu problema com sshuttle :

sshuttle --dns -HN -r user@remoteserver

Nenhuma outra configuração de proxy é necessária, então eu posso acessar todas as portas do IP privado:

curl http://private:8080/
    
por 14.08.2013 / 19:01