instalação vsftpd não está funcionando no servidor virtual a partir de 14.04

6

O processo que usei para instalar o vsftpd desde 12.04 não funciona mais. Eu recebo o erro stop: Unknown instance ao reiniciar o serviço. Acredito que isso significa que a configuração está errada, mas não consigo rastrear o problema. Estou tendo este problema em um servidor virtual.

Além disso, executar sudo vsftpd resulta em 500 OOPS: munmap , conforme observado por @ Beltran.

  1. Adquira privilégios de root

    sudo -s
    
  2. Instale o vsftpd e o libpam-pwdfile

    apt-get install vsftpd libpam-pwdfile
    
  3. Edite o vsftpd.conf

    mv /etc/vsftpd.conf /etc/vsftpd.conf.bak
    vim /etc/vsftpd.conf
    

    Copie e cole as seguintes linhas.

    allow_writeable_chroot=YES
    anonymous_enable=NO
    chroot_list_enable=YES
    chroot_local_user=YES
    guest_enable=YES
    guest_username=vsftpd
    hide_ids=YES
    listen=YES
    local_enable=YES
    local_umask=022
    local_root=/var/clients/$USER
    nopriv_user=vsftpd
    pasv_address=127.0.0.1
    pasv_enable=YES
    pasv_min_port=65000
    pasv_max_port=65100
    port_enable=YES
    user_sub_token=$USER
    seccomp_sandbox=NO
    virtual_use_local_privs=YES
    write_enable=YES
    
  4. Registre o administrador virtual

    apt-get install apache2-utils
    mkdir /etc/vsftpd
    htpasswd -cd /etc/vsftpd/ftpd.passwd admin
    vim /etc/vsftpd.chroot_list
    

    Adicione 1 linha para o usuário admin

    admin
    
  5. Configurar o PAM

    mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
    vim /etc/pam.d/vsftpd
    

    Copie e cole estas duas linhas.

    auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
    account required pam_permit.so
    
  6. Crie um usuário local sem acesso ao shell

    useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
    
  7. Crie um diretório raiz e dê acesso adequado ao usuário local.

    mkdir /var/clients
    chmod -R 755 /var/clients
    chown -R vsftpd:nogroup /var/clients
    
  8. Registre usuários virtuais presos (inicialmente, pulo este passo)

    htpasswd -d /etc/vsftpd/ftpd.passwd {user_name}
    mkdir /var/clients/{user_name}
    
  9. Reinicie o serviço

    service vsftpd restart
    
por roydukkey 23.04.2014 / 18:15

5 respostas

2

Se você estiver recebendo esse problema em uma instância do AWS EC2, tente criar a instância com a virtualização do HVM em vez do Paravirtual.

Se você ainda deseja uma instância paravirtual, não há como saber quando o bug será corrigido, pois é um bug no kenal do Xen, que é usado para executar a virtualização para a AWS.

Aqui está o tópico do bug que aborda este problema em mais detalhes: link

    
por roydukkey 14.07.2014 / 23:03
3

O Ubuntu 14.04 usa sessões de usuário que foram ausente em 12.04, então service está olhando para a sessão do usuário, não para a sessão do sistema, e seu usuário não está executando o vstfpd (root is). Portanto, você precisará especificar --system quando usar service para iniciar, parar ou verificar o status de um serviço.

O vsftpd é um link flexível para o upstart, então você não poderá executá-lo como um usuário sem privilégios, você precisará ser root para iniciar ou parar ou verificar o status de tal processo.

Fazendo um ls -l on /etc/init.d/vsftpd revela:

lrwxrwxrwx 1 root root 21 May 16  2013 /etc/init.d/vsftpd -> /lib/init/upstart-job*

que é semelhante a cron , resolvconf e mais alguns, que são todos trabalhos iniciantes e precisam ser root para serem iniciados ou interrompidos.

  

Upstart é um substituto baseado em eventos para o daemon / sbin / init, que lida com o início de tarefas e serviços durante a inicialização, parando-os durante o desligamento e supervisionando-os enquanto o sistema está em execução.

Esses serviços geralmente são iniciados na inicialização. Veja aqui mais sobre upstart:

Indique página man do upstart se você quiser ainda mais!

Portanto, para resumir, para começar, parar, verificar o status, você precisa ser root. Você pode fazer isso da seguinte maneira:

sudo service vsftpd {start|stop|status|restart}

e digite sua senha ou use:

service vsftpd {start|stop|status|restart} --system
    
por jobin 25.04.2014 / 20:39
3

Ative fielmente propostas em suas fontes de software e reinstale o vsftpd. Estou checando se isso passa.

Se você não deseja ativar o proposto em suas fontes, o vsftpd source e as compilações estão disponíveis nesta página. link

    
por Elder Geek 30.04.2014 / 21:38
1

Ainda novo no Ubuntu. Ele estava trabalhando no Ubuntu 12.4 sem problemas, mas no Ubuntu 14.04, foi o que eu fiz:

no arquivo /etc/vsftpd.conf , adicione estas duas linhas:

allow_writeable_chroot = YES
seccomp_sandbox = NO

Altere o valor de pam_service_name para ftp .

Espero que isso ajude alguém

    
por isecure 22.05.2014 / 10:56
0

Isso funcionou para mim no Ubuntu 14.04. Se o usuário for preso dentro do diretório /var/www/html/kofi_site , simplesmente execute:

sudo chmod ugo-w /var/www/html/kofi_site

    
por nastycrow 26.05.2014 / 21:23