É seguro usar / bin / cat como shell para um usuário restrito?

6

Eu preciso logar remotamente em algumas máquinas de povos para realizar tarefas de manutenção, mas às vezes as máquinas podem estar atrás de firewalls ou NATs.

A maneira como tenho feito isso é dar ao usuário conselhos sobre como efetuar login no meu sistema com SSH para que o tunelamento reverso seja ativado, como “use o comando ssh -R 12345:localhost:22 [email protected] e efetue login com a senha xyzzy ".

Agora, isso funciona bem, mas por motivos de segurança eu preciso desativar o login ssh para o usuário uremonte quando eu terminar, e lembre-se de reativá-lo quando precisar dele novamente, ou então alguém pode entrar em minha máquina frontend de administração indesejada, ou os usuários legitimados podem tentar mexer enquanto eu estou usando o túnel.

Pensei em definir o shell do usuário em /etc/passwd to /bin/cat , para que qualquer pessoa que faça login não tenha chance de fazer nada no shell, e ainda assim a conexão permanecerá ativa para o túnel reverso. Isto parece estar bem, mas gostaria de ter a certeza de que isto não perfura nenhum buraco no meu sistema.

Então, a questão é, isso é absolutamente seguro? Existe alguma maneira de alguém logar nesta conta poder romper com a armadilha de gatos?

    
por juice 29.07.2012 / 18:47

1 resposta

7

Este é um motivo bastante normal para alterar o shell. Normalmente, /bin/false ou outras camadas como /bin/cat são usadas.

Normalmente você não pode escapar de /bin/cat e é improvável que cat tenha um bug de segurança, mas outros métodos ainda podem funcionar, como criar um DoS ou ignorando as regras do Firewall.

Outro problema provavelmente mais grave é se você estiver usando o módulo internal-sftp para sftp . Isso permitiria que os usuários com /bin/cat como shell usem sftp para obter acesso ao seu sistema de arquivos e navegar em seu conteúdo.

Para o seu caso de uso específico, eu recomendaria usar túneis ou vpns em vez de fornecer acesso ssh aos seus clientes.

    
por 29.07.2012 / 20:00