Vários túneis SSH reversos usando uma única porta

7

Eu posso aceitar conexões SSH reversas de vários sistemas remotos em um único servidor usando uma porta para cada conexão:

Remote A: ssh -fN -R5000:localhost:22 user@server-ip -p22
Remote B: ssh -fN -R5001:localhost:22 user@server-ip -p22
Remote C: ssh -fN -R5002:localhost:22 user@server-ip -p22

Eu posso acessar esses sistemas do meu cliente local conforme necessário:

Access Remote A: ssh root@server-ip -p5000
Access Remote B: ssh root@server-ip -p5001

Isso requer o encaminhamento de uma porta por sistema remoto no servidor. Quando mais de 100 controles remotos se conectam, eu tenho outras opções além de abrir mais de 100 portas no firewall do servidor e atribuir estaticamente cada controle remoto a uma porta como acima? Meu objetivo é permitir que vários controles remotos criem túneis on demand, onde posso consultar quem está conectado.

Eu descobri que sslh é um multiplexador que pode diferenciar o tráfego em uma única porta com base no protocolo, mas isso só se aplica a diferentes protocolos, por exemplo. ssl / ssh. Existe uma solução que permite vários túneis em uma única porta?

Exemplo:

Remote A: ssh -fN -R5000:localhost:22 user@server-ip -p22 -identifier abc123
Remote B: ssh -fN -R5000:localhost:22 user@server-ip -p22 -identifier def456
access Remote A: ssh root@server-ip -p5000 -identifier abc123
access Remote B: ssh root@server-ip -p5000 -identifier def456
    
por BCCode 20.06.2014 / 09:10

1 resposta

3

Eu tenho o mesmo problema que você e, no momento, só cheguei a uma resposta possível. Meu cenário é um pouco diferente do seu, pois só preciso de um túnel ssh ativo, mas todos os clientes devem estar prontos para se conectar, se necessário.

Eu acho que se poderia criar um protocolo simples cliente / servidor para lidar com todos os clientes e criar uma lista de algum tipo. O usuário poderia então escolher um dos clientes para criar o túnel reverso. Isso exigiria outra porta aberta em vez do servidor ssh, mas, usando um servidor encadeado, era possível escutar () vários clientes na mesma porta desse protocolo secundário.

Ainda estou trabalhando em uma solução (provavelmente implementarei o que acabei de escrever), mas lembre-se de que, no seu caso, você deve decidir o número máximo de clientes conectados em uma única vez e configurar essa quantidade de portas. Como o meu é apenas um pequeno "suporte" Linux para dispositivos embarcados, eu só posso trabalhar em um dispositivo de cada vez, então eu só preciso de um dispositivo.

Uma idéia mais inteligente seria informar o cliente sobre o protocolo auxiliar em qual porta do servidor para anexar o túnel reverso.

    
por 28.06.2016 / 02:37