
Temos um cluster (atualmente 10 máquinas) atrás de um NAT. Existe um gateway/host de salto NAT entre a rede privada e a rede regular da empresa.
Os usuários podem ssh
acessar o host de salto e entrar em qualquer outra máquina atrás do NAT.
Eu gostaria de fornecer um script fácil que os ajude a encapsular interfaces da web por trás do NAT para suas máquinas locais.
Então, minhas primeiras sugestões foram: usar um proxy de meias SSH e encapsular as interfaces para seu host local.
Portanto, minha pergunta é: se eu criar esses dois túneis (um do computador local dos meus colegas de trabalho para o host de salto e outro do host de salto para a máquina correspondente atrás do NAT) - quão seguro é esse túnel ?
Imagine worker1
o que está fazendo isso:
ssh -t [email protected] -L 10001:localhost:33388 ssh -t hostxyz.behindnat.tld
Há uma porta aberta 33388 na máquina jump-host que está escutando na interface de loopback. Se worker2
apenas efetuar login no jump-host e usar a porta localhost 33388 também para a conexão já encapsulada, ele não deverá se autenticar novamente no hostxyz.behindnat.tld
, certo?
Isso me parece uma grande falha de segurança. Existe uma solução melhor?
Responder1
Presumo que seu cenário implique uma sessão ssh preexistente entre jumphost e hostxyz, que seria aberta a todos com acesso à porta de escuta do jumphost.
Você mencionou meias e túnel, que são tecnicamente duas coisas diferentes.
Configure o proxy meias do trabalhador1 assim:
ssh [email protected] -D 127.0.0.1:10001
Configure o navegador do trabalhador1 para usar meias localhost:10001
para navegar via jumphost.tld
Se você deseja fazer ssh diretamente do trabalhador1 para o hostxyz, você pode fazer algo como o seguinte.
ssh [email protected] -L localhost:10001:hostxyz:22
ssh user@localhost:10001
Isto é o que eu faço. Eu uso um arquivo .ssh/config para manter tudo organizado. Recomendo a leitura do seguinte para obter informações sobre o arquivo de configuração e o tunelamento.https://man.openbsd.org/ssh_configAssista Michael W Lucas falar no openssh para outra boa introdução.