Adicione uma rota válida para seus destinos e uma rota mais genérica para null. Então, apenas as rotas definidas para seus destinos estarão disponíveis para os usuários. O problema é que isso está disponível para todos os usuários
Um dos nossos servidores ssh funciona como jumphost. Os usuários devem continuar apenas em determinados hosts de destino. Isso pode ser feito com iptables , mas no momento não é a solução desejada.
Eu verifiquei man ssh_config
para ver se esse cenário pode ser configurado dentro de todo o sistema ssh_config
, mas não encontrei dica.
Alguma idéia além do iptables para conseguir isso?
Adicione uma rota válida para seus destinos e uma rota mais genérica para null. Então, apenas as rotas definidas para seus destinos estarão disponíveis para os usuários. O problema é que isso está disponível para todos os usuários
Você pode usar algo assim
#! /bin/sh
MSG='********************************
1 = host1
2 = anotherhost
3 = host3
0 = exit
********************************'
host=none
while test none = "$host"
do
echo "$MSG"
echo -n 'your choice: '
read choice
case "$choice" in
1) host=host1.domain.com;;
2) host=anotherhost.xy.de;;
3) host=just.go.here;;
0) exit;;
esac
done
ssh $host
como o shell de login de seus usuários ssh no jumphost. Se você salvar como / usr / bin / ssh-choice, não esqueça de adicionar / usr / bin / ssh-choice a / etc / shells.
TomTomTom
Não tenho certeza sobre a configuração, mas talvez desabilitar o login do shell no host de salto e permitir o encaminhamento de porta para hosts específicos apenas para usuários específicos e, em seguida, exercitar a opção -J (ProxyJump) do openssh poderia ser uma solução aqui? A diretiva Match do sshd_config pode ajudar aqui.
Respondendo a um comentário anterior:
Se você precisar de acesso ao shell, provavelmente precisará de .ssh / config imutável e vazio nos diretórios home dos usuários, todos os hosts permitidos listados em / etc / ssh / ssh_config e capturar toda a diretiva Host que redireciona para um ProxyCommand sempre com falha (que também pode imprimir a mensagem de coaching para stderr, para que o usuário possa vê-la).
Algo ao longo das linhas:
Host host1 host1.example.com
<whatever directives may be needed here if any>
Host host2 host2.example.net
<whatever directives may be needed here if any>
Host *
ProxyCommand /bin/false
Remova tudo exceto o jumphost da tabela de roteamento do host ou coloque o firewall que impede conexões em algum outro lugar que não seja o próprio host.
Você pode hospedar.allow e / ou hosts.deny nas máquinas de destino.