quais são as permissões mínimas de usuário necessárias para os arquivos scp em um servidor remoto?

2

Eu quero configurar um cron job para transferir dados de um host (A) para outro (B).

Meu entendimento até agora é que terei que criar um usuário na máquina B, para que o scp possa copiar os arquivos para uma pasta no diretório inicial dos usuários.

No entanto, não quero que o usuário recém-criado tenha permissões sobre o mínimo necessário para copiar os arquivos da máquina A para a B.

Eu acho que o usuário:

  1. precisa fazer login na máquina B
  2. não deve conseguir executar sudo ou su
  3. idealmente, não deve ser capaz de criar um cd acima de seu diretório inicial (parece um usuário com chroot, não sei se isso é possível)
  4. só deve ser capaz de gravar em um único arquivo (em seu diretório pessoal na máquina B) e nem ter permissão para executar nenhum processo ou script, etc.

O objetivo deste usuário é simplesmente poder transferir arquivos de vez em quando, da máquina A para a máquina B, sem comprometer a segurança da máquina B.

Eu gostaria de executar essa transferência como um trabalho agendado autônomo. Também gostaria de enviar o arquivo como compactado e criptografado, por isso preciso saber como ser capaz de:

  1. criptografado sem solicitar uma senha (para que possa ser usado em um script)
  2. como usar o scp sem ser solicitada uma senha

Qualquer ajuda sobre o assunto acima será apreciada

BTW, estou executando o Ubuntu 10.0.4 LTS e estou pensando em usar o gpg para criptografia, mas estou aberto a sugestões / recomendações

    
por user35402 05.08.2010 / 10:30

2 respostas

2

Você pode instalar rssh para isso: um Shell SSH restrito. Isso restringirá seu usuário a iniciar uma sessão "SFTP" ou SCP apenas. Quando o usuário tenta abrir uma sessão de terminal, o rssh rejeitará a solicitação.

O shell rssh pode ser ativado, atribuído como shell ao usuário. Isso pode ser feito em /etc/passwd , por exemplo.

Observe que o usuário ainda terá acesso para ler todos os arquivos regulares no disco. Isso pode ser resolvido com o SELinux / AppArmor / um chroot, mas essa é uma configuração relativamente complexa. Se você se preocupa com o acesso apenas a pastas específicas, sugiro executar um servidor FTPS dedicado.

    
por 05.08.2010 / 13:56
1

Posso recomendar que você não use o sftp? Bloquear uma conta de usuário em que as pessoas podem fazer login para que nada possa ser feito é bem difícil, e o sftp depende da autenticação normal do ssh.

Em vez disso, recomendo que você use ftps. Dessa forma, você obtém o túnel criptografado e pode usar certificados de cliente X.509 para autenticação, evitando senhas.

Consulte o link para obter mais informações sobre ftps.

    
por 05.08.2010 / 11:18