Um usuário mal-intencionado pode ignorar um comando forçado ssh authorized_keys?

4

Usando o Linux e o Openssh:

Um usuário pode se conectar usando ssh a um servidor no qual sua chave está na lista authorized_keys. Sua chave pública é precedida por command="command..." , que força a execução de um comando específico (não-shell):

command="/path/to/somescript...",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-user-rc ssh-rsa AAAff...................

  • Existe alguma maneira de o usuário ignorar esse comando?
  • E quanto ao sftp? O sftp funciona ao usar um comando forçado (que não é um shell)?
por Weboide 21.07.2010 / 03:34

3 respostas

10

Se o conjunto de comandos permitido incluir o daemon sftp (ou interno-sftp), o SFTP será permitido. No entanto, se você estiver configurando o comando forçado no arquivo authorized_keys e o usuário tiver acesso sftp, sem trabalho adicional, eles poderão substituir o arquivo por um não restrito ao que você define. Isso, é claro, funcionaria com qualquer aplicativo que o usuário pudesse instruir para modificar esse arquivo (intencionalmente ou enganando-o). Uma opção melhor pode ser restringir por usuário ou grupo dentro do sshd_config principal, possivelmente com o ChrootDirectory.

    
por 21.07.2010 / 04:03
4

A ameaça mais comum vem de permitir que eles usem um comando capaz de fazer coisas que o administrador não tinha pensado. Por exemplo, o CVS e o SVN permitem que os scripts de pré / pós-commit sejam executados. Se um usuário puder modificar um script de pós-commit, ele poderá executar seus próprios comandos.

    
por 21.07.2010 / 03:44
2

você pode definir um atributo usando o chattr na pasta .ssh e no arquivo authorized_keys depois de ter feito as entradas necessárias no arquivo authorized_keys, para que assim ninguém possa fazer alterações ou mesmo sobrescrever a pasta .ssh ou até o arquivo authorized_keys.

você pode fazer um chattr recursivo:

chattr -R +i .ssh
    
por 26.01.2011 / 15:01

Tags