Desabilitando todos os comandos pelo SSH

1

Suponha que o uso possa fazer o ssh para o servidor e executar o FTP e conectar-se a outras fontes, baixar um vírus e executá-lo.

É possível forçar o usuário a executar apenas alguns comandos conhecidos?

    
por user24912 16.04.2010 / 23:13

3 respostas

2

de man sshd_config :

ForceCommand

Forces the execution of the command specified by ForceCommand ignoring any command supplied by the client and ~/.ssh/rc if present. The command is invoked by using the user's login shell with the -c option. This applies to shell, command, or subsystem execution. It is most useful inside a Match block. The command originally supplied by the client is available in the SSH_ORIGINAL_COMMAND environment variable. Specifying a command of “internal-sftp” will force the use of an in-process sftp server that requires no support files when used with ChrootDirectory

isso permite que você use um wrapper de shell que permite fazer apenas coisas específicas. Um exemplo é o rssh .

Se você quiser apenas essa restrição para usuários específicos, use a opção command=cmd no arquivo known_hosts (documentado em man sshd )

    
por 16.04.2010 / 23:26
0

Talvez a configuração de um ambiente chroot para seus usuários possa ajudar. Veja Como posso chroot conexões ssh?

    
por 16.04.2010 / 23:57
0

Um método, embora não seja perfeito, seria criar uma partição separada para os diretórios iniciais dos usuários em qualquer local em que eles tenham acesso de gravação. Basta montar essas partições noexec .

A configuração adequada das permissões do sistema de arquivos geralmente será muito eficaz para limitar os danos que podem ser causados.

Se os usuários não forem confiáveis, talvez seja uma má idéia dar acesso SSH a eles. Talvez você precise configurar VMs para eles e confinar cada um ao seu próprio ambiente.

    
por 16.04.2010 / 23:18