Jail usuário Linux para o diretório de login FTP

1

Estou planejando usar vsftpd para atuar como um servidor FTP seguro, mas estou tendo dificuldade em controlar os usuários linux que serão usados como logins de ftp.

Os usuários devem ser "encarcerados" em um diretório específico (e subdiretórios) e ter acesso total de leitura / gravação.

Requisitos:  - A conta de usuário "admin_ftp" deve ser encarcerada no diretório / var / www.  - Outras contas serão adicionadas conforme necessário, para cada site ... por exemplo:  - A conta de usuário "picturegallery_ftp" deve ser presa no diretório /var/www/picturegallery.com.

Eu tentei o seguinte, mas sem sucesso:

# Group to store all ftp accounts in.
groupadd ftp_accounts
# Group for single user, with the same name as the username.
groupadd admin_ftp

useradd -g admin_ftp -G ftp_accounts admin_ftp
chgrp -R ftp_accounts /var/www
chmod -R g+w /var/www

Quando faço login no FTP usando a conta admin_ftp, recebo a mensagem de erro:

500 OOPS: cannot change directory:/home/admin_ftp

Mas não especifiquei o diretório inicial?

Internets extras para um guia como fazer isso especificamente para o vsftpd:)

    
por Greg 01.02.2011 / 15:06

4 respostas

1

Minha primeira resposta é simples:

Não use o FTP, a menos que seja absolutamente necessário. Não é seguro, e não há motivo para usar esse conteúdo neste dia.

Em vez disso, use SSH e / ou SCP e / ou SFTP (todos os protocolos semelhantes e relacionados).

Quanto a como fazê-lo, há um bom número deles. Vou vincular a alguns resultados de pesquisa do Google (não comprovar nada disso):

Existem muito mais, apenas pesquise ...

    
por 01.02.2011 / 16:01
1

Especificamente para o vsftpd, eh? Ok:

No vsftpd.conf, adicione:

user_config_dir=/etc/vsftpd/user_conf

Então, em / etc / vsftpd / user_conf / admin_ftp, coloque:

anon_root=/var/www
local_root=/var/www

... e assim por diante para cada outra conta.

Agora, vale ressaltar que prender pessoas assim, na ausência de outras salvaguardas, pode ser inútil; afinal de contas, uma vez que ele está dentro de um DocRoot, eles podem apenas fazer o upload de um arquivo PHP, e então acessar esse arquivo PHP através do navegador da Web, ponto em que eles não estão mais presos. Portanto, lembre-se de considerar cuidadosamente todo o ambiente de segurança como um todo.

Quanto à segurança da conversação do FTP em si (preocupação do ircmaxell), basta configurar o FTPS. É bastante trivial fazê-lo no vsftpd, e se você usar FTPES, você pode se conectar de qualquer maneira.

    
por 01.02.2011 / 16:32
0

Que tal configurar a casa local para essas contas de acordo e usar o chroot com as opções de configuração chroot_local_user ou chroot_list_enable?

    
por 01.02.2011 / 15:14
0

quando você criou o usuário admin_ftp, você não especificou que deseja que a página inicial desse usuário seja diferente de / home / admin_ftp. então o servidor ftp está tentando entrar no / home / admin_ftp porque é isso que ele vê no arquivo passwd. você deve mudar o diretório home do admin_ftp para / var / www / se você quer que seja o diretório em que você está quando usa o FTP:

usermod -d /var/www admin_ftp

Eu não sei qual distribuição você usa, mas o Arch linux tem uma boa página wiki sobre a configuração do vsftp: Daemon FTP muito seguro

    
por 01.02.2011 / 16:25