A maneira como eu uso um host de bastiões está usando ProxyCommand
e o sinal -W
como neste exemplo:
ssh -o ProxyCommand='ssh -W %h:%p user@bastion' user@machine
Eu uso essa abordagem por motivos de segurança. A comunicação entre o cliente e a máquina de destino é criptografada e autenticada de ponta a ponta, o que significa que permanece protegida mesmo se o bastião estiver comprometido. Um host de bastiões comprometido não forneceria menos segurança do que usar o ssh de ponta a ponta sem um bastião.
Ele também elimina a necessidade de usar qualquer encaminhamento de agente. O cliente pode usar a autenticação baseada em chave primeiro para acessar o bastião e, em seguida, novamente para acessar o host de destino sem que nenhum deles tenha uma conexão de agente que possa ser usada para abusar da chave privada presente no cliente.
Também limita o código do qual eu dependo no host bastion. Eu não preciso executar nenhum comando no bastião. -W
implica o sinalizador sem comando, bem como um único encaminhamento de porta, este encaminhamento de porta é tudo que o host de bastiões precisa permitir.
Com essa abordagem em mente, minha recomendação seria bloquear o host de bastiões o máximo possível, permitindo que apenas os comandos da estrutura acima fossem usados.
O arquivo ~/.ssh/authorized_keys
no bastião pode ser de propriedade de root (assim como todos os diretórios no caminho da raiz do sistema de arquivos para ele), isso reduz o risco de ser modificado mesmo se alguém conseguir quebrar como usuário sem privilégios no host bastion.
Em authorized_keys
, os privilégios do cliente podem ser limitados usando as opções command
, no-agent-forwarding
, no-pty
, no-user-rc
, no-X11-forwarding
, além de usar permitopen
para limitar os reenvios de porta apenas permitir acesso à porta 22 no host ao qual esse usuário tem permissão de acesso.
Em princípio, essa abordagem seria segura mesmo que vários usuários compartilhem o mesmo nome de usuário no bastião. Mas você obtém um pouco mais de separação usando nomes de usuário separados no bastião.