Encaminhamento dinâmico inverso por SSH: criar um ouvinte SOCKS remoto
Crie um ouvinte SOCKS dinâmico inverso em um servidor SSH, com as conexões de destino abertas do lado do cliente.
Normalmente um túnel SSH SOCKS dá a um laptop a saída de rede do servidor. O encaminhamento dinâmico inverso inverte essa disposição: um programa na máquina remota pode usar a rede disponível ao seu cliente SSH.
Em um cliente OpenSSH compatível com encaminhamento remoto sem destino:
ssh -N -R 127.0.0.1:1080 [email protected]
O ouvinte SOCKS está em remote.example.net, vinculado ao seu endereço loopback. Os programas ali usam 127.0.0.1:1080. As conexões de destino voltam pelo SSH e são abertas do lado em que seu cliente roda.
Leia a direção antes do IP
A documentação de -R torna significativo o destino omitido. Uma especificação com port:host:hostport é, em vez disso, um encaminhamento fixo. Não presuma que um cliente antigo suporte a forma dinâmica curta.
O IP de saída é o que a rede do lado do cliente usa para essas conexões. Um laptop atrás de um roteador doméstico pode sair pelo endereço público traduzido do roteador. Não é automaticamente o IP do servidor SSH, nem um endereço atribuído diretamente ao laptop.
Mantenha o ouvinte remoto restrito. Uma vinculação curinga pode permitir que outras máquinas usem a rede do lado do cliente como saída, conforme a política do servidor. Até o loopback pode ficar disponível para outros processos elegíveis no host remoto; não é um segredo por processo.
Para um conjunto restrito de destinos, revise PermitRemoteOpen e a política de encaminhamento do servidor. A rota também depende de seu cliente permanecer online. Quando essa conexão fecha, o caminho do proxy remoto desaparece. O encaminhamento inverso muda de onde as conexões se originam; não fornece um proxy autônomo independente da sessão SSH.