Como funciona um servidor vsftpd e como configurá-lo?

6

Fui solicitado a configurar um servidor FTP, com base no pacote vsftpd . O servidor está sendo executado em uma máquina remota à qual tenho acesso de privilégios de superusuário.

Como não estou familiarizado com a mecânica dos servidores FTP, tentei descobrir como as contas FTP do usuário estão configuradas. O mantenedor anterior usou um script de shell, que funciona em uma lista que mantemos para rastrear contas e senhas de usuários, para configurar as contas ftp. A partir da leitura do script, vejo que ele gera uma lista de nomes de usuários e senhas e, na verdade, cria uma conta de usuário na máquina Linux. Isso significa que para cada usuário que configuramos na lista, uma nova conta de usuário está sendo adicionada pelo comando adduser :

adduser --home /home/ftp --no-create-home $user

(mas sem um diretório /home/username privado - usando o /home/ftp instaed).

Cada um desses usuários pode fazer login em sua conta usando o comando ssh . Este fato parece um pouco estranho para mim, pois eu acho que a conta ftp deve ser dissociada das contas de usuário do Ubuntu.

Como outro efeito colateral, quando um usuário se conecta usando um navegador da Web, ele está conectado ao diretório /home/ftp . No entanto, ele pode usar o link " Up to a higher level directory " para subir e efetivamente ter acesso a todo o nosso sistema.

Então, as perguntas são:

  1. É realmente assim que o servidor FTP deveria funcionar em termos de configuração de contas ftp?

  2. Se não, como eu configuro o servidor vsftpd de uma maneira que eu tenho apenas a conta Ubuntu superusuário naquela máquina e toda conta ftp é ... apenas contas de usuário FTP? Além disso, essa conta de ftp deve ser configurada em termos de como e o que eles têm permissão para acessar.

por ysap 30.06.2012 / 01:08

3 respostas

3

Definitivamente, o administrador anterior não fez um bom trabalho.

Então, primeiro de tudo, se você adicionar as seguintes linhas no seu vsftpd.conf, você irá chroot usuários em seu diretório home.

chroot_list_enable=YES
chroot_local_user=YES

# a list of users which are NOT to be placed in a chroot() jail
chroot_list_file=/etc/vsftpd/chroot_list

Para gerenciar usuários, você pode criar um virtual (dê uma olhada aqui ), mas se você acha que a solução é muito complexa, use o módulo pam_listfile.so para negar aos usuários FTP o acesso ou uso ssh pam_shells.so . O que for mais fácil para você. Apenas tome cuidado para não bloquear o servidor ssh para usuários válidos:)

    
por 30.06.2012 / 04:19
1

Parece que você precisa de um servidor de FTP chroot'ed com usuários que não são do sistema, eu acho este wiki howto tem as respostas que você precisa.

    
por 30.06.2012 / 03:47
1

Você deve usar usuários virtuais como usuários de FTP.

Siga esta postagem: link

    
por 30.06.2012 / 13:11