Restrições de arquivos SFTP

3

É possível usar SFTP no Linux e restringir uma conta de usuário a UM diretório de forma que nenhuma outra listagem de diretório possa ser obtida? Sim, devo usar o SFTP, o FTP é usado apenas por pessoas que adoram ser hackeadas.

Por exemplo, eu quero que alguém modifique arquivos em / var / www / code /, mas eu não quero que eles possam modificar qualquer outra coisa. Eu nem quero que eles vejam o conteúdo / tmp /.

(Aceito uma solução "rápida e suja", desde que seja segura .

    
por Rook 13.02.2010 / 21:22

5 respostas

4

Do man-page do sshd_config:

ChrootDirectory
             Specifies a path to chroot(2) to after authentication.  This
             path, and all its components, must be root-owned directories that
             are not writable by any other user or group.  After the chroot,
             sshd(8) changes the working directory to the user's home directo-
             ry.

             The path may contain the following tokens that are expanded at
             runtime once the connecting user has been authenticated: %% is
             replaced by a literal '%', %h is replaced by the home directory
             of the user being authenticated, and %u is replaced by the user-
             name of that user.

             The ChrootDirectory must contain the necessary files and directo-
             ries to support the user's session.  For an interactive session
             this requires at least a shell, typically sh(1), and basic /dev
             nodes such as null(4), zero(4), stdin(4), stdout(4), stderr(4),
             arandom(4) and tty(4) devices.  For file transfer sessions using
             ''sftp'', no additional configuration of the environment is nec-
             essary if the in-process sftp server is used, though sessions
             which use logging do require /dev/log inside the chroot directory
             (see sftp-server(8) for details).

             The default is not to chroot(2).
    
por 13.02.2010 / 21:59
2

Outra alternativa também pode ser substituir seu shell pelo MySecureShell, que oferece recursos como o Chroot, limitação de largura de banda, limitação de conexão, etc. etc.

link

Usá-lo em um ambiente de webhosting no momento e deve dizer que funcionou muito bem.

    
por 13.02.2010 / 23:39
0

O SFTP NÃO é uma solução rica em recursos comparável a um servidor FTP como o vsftpd. Não suporta chroots; que é o que você está procurando. FTPS (não SFTP) seria a melhor solução, uma vez que suporta encriptação, chroots, etc. O vsftpd suporta isto e é fácil de configurar.

Além disso, certifique-se de aproveitar o módulo pam_listfile para declarar explicitamente quais usuários têm permissão para efetuar login via ftps.

    
por 13.02.2010 / 21:40
0
O

link permite que você configure o ssh restrito para que somente o SFTP / SCP seja executado; também ajuda a configurar o chroot.

Como CarpeNoctem aponta, o FTPS às vezes é uma solução melhor. ssh, SFTP, scp são muito "baixo nível", FTPS (como o FTP não seguro) são normalmente de nível superior (diretórios virtuais, usuários virtuais, etc.).

Eu acho que para o cenário que você descreve, ambas as abordagens funcionariam.

    
por 14.02.2010 / 13:11
0

Eu usaria essa configuração: link

Então, para a funcionalidade chroot: link

    
por 23.04.2010 / 23:15