Ainda tenho dúvidas sobre isso (veja minha resposta anterior). Você não pode fazer proxies reversos aqui, a menos que você tenha um proxy reverso que entenda como fazer a autenticação ssh e, mesmo assim, seu proxy seja um ponto de extremidade para a conexão ssh, portanto, ele terá acesso aos dados e terá o chaves ssh para as conexões do usuário e conexões com os servidores por trás dele. Se alguém tiver acesso a esse sistema, é mais provável que o jogo acabe atrás de tudo.
Você pode evitar alguns desses riscos se estiver preparado para fazer com que os usuários façam login duas vezes, com a segunda conexão sendo sintonizada na primeira conexão ao host bastion, mas você disse que não é isso que está procurando.
Então, você realmente precisa bloquear seu host bastion.
Seu host bastion precisará ter várias contas de usuário, cada uma com chaves privadas ssh em suas pastas .ssh para fazer login nos hosts por trás delas. Eles também manterão as chaves públicas com as quais os usuários fazem login.
Você precisa ter certeza de que os usuários não podem executar nada no bastião, exceto o ssh, para o host na rede. Configure o comando ssh no arquivo ssh authorized_keys, portanto, o login com a chave pública executa automaticamente o comando ssh para se conectar ao host atrás do bastião. Veja a seção AUTHORIZED KEYS em man sshd
, particularmente o 'command =' bit.
- Mantenha ao mínimo o número de usuários que podem fazer qualquer coisa no bastião que não seja o comando ssh. Talvez apenas o acesso root. Talvez um usuário administrador ou dois.
- Certifique-se de que o usuário não possa adicionar argumentos ao comando ssh.
- Sem acesso por senha. Apenas chaves SSH.
- Desativar AllowTcpForwarding, PermitTunnel, X11Forwarding
- Tenha muito cuidado se você estiver configurando o encaminhamento do Agente SSH. Desativar se não for necessário.
- Considere configurar diretórios chroots por usuário com quase nada neles.