
Eu tenho o seguinte cenário
Local Network | Global Network
|
|
|
|
|
|
|
+------------+ +-----------+ | +----------+ +----------------+
| client A | -----------> | server A | <--------------------> | server B | ---------------> | Global Network |
+------------+ +-----------+ | +----------+ +----------------+
|
|
O desafio que temos pela frente:
Transfira todo o tráfego de server A
para server B
. Como todos os protocolos de túnel são fechados server A
, achei que o ssh reverso é uma boa opção.
Eu uso o seguinte comando para fazer ssh reverso:
ssh -fNT -R 4000:localhost:22 [email protected] -i <private-key>
Agora server A
posso ver que a porta 4000
está aberta. mas não sei como transferir o tráfego como um todo paraserver B
Responder1
Meu pensamento imediato é criar uma interface tun e configurar o roteamento adequadamente. Como você pode ver abaixo em ssh man, o seguinte argumento de linha de comando está disponível.
-w local_tun[:remote_tun] Solicita encaminhamento de dispositivo de túnel com os dispositivos tun(4) especificados entre >o cliente (local_tun) e o servidor (remote_tun). Os dispositivos podem ser especificados por ID numérico ou pela palavra-chave “qualquer”, que utiliza o próximo dispositivo de túnel disponível. Se remote_tun não for especificado, o padrão é “qualquer”. Veja também as diretivas Tunnel e TunnelDevice em >ssh_config(5).
Se a diretiva Tunnel não estiver definida, ela será definida para o modo túnel padrão, que é “ponto a ponto”. Se for desejado um modo de encaminhamento de túnel diferente, ele deverá ser especificado antes de -w.
Esta resposta fornece mais detalhes.
https://unix.stackexchange.com/questions/525217/create-network-interface-from-ssh-tunnel