Túneis para o mesmo número de porta

3

Eu tenho um aplicativo que se conecta a vários hosts na mesma porta:

a.protected:123
b.protected:123

Eu não tenho acesso direto a nenhum deles, mas posso fazer um túnel ssh (através de x.accessible ).

Se as portas foram distintas, eu poderia ter feito o túnel para o mesmo número de porta:

ssh -f [email protected] -L 123:a.protected:123 -N

E então eu teria adicionado a.protegido como um alias para localhost, em /etc/hosts

Mas, dado que mais hosts usam o mesmo número de porta, quais são minhas opções? Como posso usar túneis para fazer com que o aplicativo se conecte a eles, sem alterar o aplicativo?

    
por Cos64 17.01.2014 / 12:02

2 respostas

5

Você tem duas opções. Use endereços de origem diferentes ou use um proxy de meias.

Diferentes endereços de origem

Sua interface lo está configurada como 127.0.0.1/8 , ou seja, todos os endereços iniciados por 127 pertencem ao host atual.

A sintaxe do seu túnel é

-L [bind_address:] port:host:hostport

Portanto, você pode usar algo como:

ssh -L 127.1.0.1:123:a.protected:123 -L 127.1.0.2:123:b.protected:123

Agora vamos resolver a.protected para 127.1.0.1:123 e a resolução b.protected para 127.1.0.2.

Usando um proxy de meias

ssh -D 1080 

Isso iniciará um proxy de meias local na porta 1080 . Toda a conexão será resolvida e conectada na outra extremidade do túnel.

Se o aplicativo suportar proxies de meias, basta configurá-lo. Caso contrário, você pode usar tsocks para usar o proxy mesmo assim.

    
por 17.01.2014 / 13:33
0

Não há uma maneira fácil e transparente de usar uma porta para duas conexões simultaneamente.

Do meu ponto de maneira fácil e correta é criar túneis em diferentes portas locais:

ssh -f [email protected] -L 123:a.protected:123 -N
ssh -f [email protected] -L 123:a.protected:124 -N

Assim, a primeira conexão estará disponível pela porta 123 e a segunda pela porta 124.

ps. lembre-se, você precisa de permissões de root para usar a porta em 1024.

    
por 17.01.2014 / 12:30