Múltiplos encadeamentos SSH (tsocks, socksify, proxycommand, etc.)

3

link

Objetivo: você precisa acessar "Servidor B" do cliente "diretamente" com SSH, SCP.

"Servidor B" fica ao lado de "Servidor A". Por exemplo, eles estão na mesma sub-rede, mas apenas o "Servidor A" pode ser acessado pela Internet - > então "Servidor B" é apenas indiretamente acessível.


Eu sei usar tsocks:

instalar tsocks

yum install tsocks

configure-o [por padrão não há arquivo de configuração ..]

vim /etc/tsocks.conf
server = 127.0.0.1
server_port = 4000

crie o túnel ssh

ssh -v -fND localhost:4000 USERNAME@SERVER-A

verifique se isso foi criado por

ps aux | fgrep -i ssh
USER      8894  0.0  0.0   9780   708 ?        Ss   11:58   0:00 ssh -v -fND localhost:4000 USERNAME@SERVER-A
netstat -tulpn | fgrep -i ssh
tcp        0      0 127.0.0.1:4000              0.0.0.0:*                   LISTEN      8894/ssh

como usar tsocks

tsocks ssh root@SERVER-B

mate o túnel ssh

kill 'pgrep -f 'D localhost:4000''


A coisa toda é totalmente OK para mim. Bem.

A pergunta: Como posso usar vários túneis ssh com, por exemplo, tsocks?
Quero dizer, eu tenho que usar vários túneis ssh (em diferentes portos, é claro). Como posso definir, por exemplo, tsocks para "memorizar" vários túneis ssh (portas)?

O arquivo "/etc/tsocks.conf" só permite um servidor, tudo bem, pois se eu ssh tunnel para algum lugar eu tenho que passar por 127.0.0.1, mas preciso de mais portas, pois 1 port = 1 ssh tunnel. Vários túneis ssh não podem se ligar a uma porta.
Estou usando o Fedora 14 para "Desktop PC"

Obrigado!

    
por LanceBaynes 23.05.2011 / 15:33

1 resposta

4

tsocks permite vários serviços SOCKS, você os configura para usar um serviço SOCKS diferente (por exemplo, ssh -D diferente em uma porta diferente) para cada destino desejado. man tsocks.conf para mais detalhes.

assumindo /etc/tsocks.conf contendo:

path {
    server = localhost
    server_port = 1081
    reaches = <ip-address-of-server-b>/32
    }
path {
    server = localhost
    server_port = 1082
    reaches = <ip-address-of-server-d>/32
    }

Então você executaria

ssh -fND :1081 server-a & sleep 1 ; tsocks ssh server-b
ssh -fND :1082 server-c & sleep 1 ; tsocks ssh server-d
    
por 23.05.2011 / 17:15