Permitir upload anônimo para o Vsftpd?

7

Eu preciso de um servidor FTP básico no Linux (CentOS 5.5) sem qualquer medida de segurança, já que o servidor e os clientes estão localizados em uma LAN de teste, não conectados ao resto da rede, que usa IPs não-roteáveis por trás um firewall NAT sem acesso de entrada ao FTP.

Algumas pessoas recomendam Vsftpd sobre PureFTPd ou ProFTPd . Não importa o que eu tente, não posso permitir que um usuário anônimo (ou seja, registrando como "ftp" ou "anônimo" e digitando qualquer string como senha) faça o upload de um arquivo:

# yum install vsftpd

# mkdir /var/ftp/pub/upload

# cat vsftpd.conf
listen=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES
xferlog_file=YES

#anonymous users are restricted (chrooted) to anon_root
#directory was created by root, hence owned by root.root
anon_root=/var/ftp/pub/incoming
anon_upload_enable=YES
anon_mkdir_write_enable=YES

#chroot_local_user=NO
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
chown_uploads=YES

Quando eu faço logon de um cliente, aqui está o que recebo:

500 OOPS: cannot change directory:/var/ftp/pub/incoming

Eu também tentei "# chmod 777 / var / ftp / incoming /", mas recebo o mesmo erro.

Alguém sabe como configurar o Vsftpd com segurança mínima?

Obrigado.

Editar: o SELinux está desabilitado e aqui estão as permissões do arquivo:

# cat /etc/sysconfig/selinux
SELINUX=disabled
SELINUXTYPE=targeted
SETLOCALDEFS=0

# sestatus
SELinux status:                 disabled
# getenforce
Disabled

# grep ftp /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

# ll /var/
drwxr-xr-x  4 root root 4096 Mar 14 10:53 ftp

# ll /var/ftp/
drwxrwxrwx 2 ftp ftp 4096 Mar 14 10:53 incoming
drwxr-xr-x 3 ftp ftp 4096 Mar 14 11:29 pub

Editar: mais recente vsftpd.conf:

listen=YES
local_enable=YES
write_enable=YES
xferlog_file=YES

#anonymous users are restricted (chrooted) to anon_root
anonymous_enable=YES
anon_root=/var/ftp/pub/incoming
anon_upload_enable=YES
anon_mkdir_write_enable=YES

#500 OOPS: bad bool value in config file for: chown_uploads
chown_uploads=YES
chown_username=ftp

Editar: com o espaço final removido de "chown_uploads", o erro 500 foi resolvido, mas o anônimo ainda não funciona:

client> ./ftp server
Connected to server.
220 (vsFTPd 2.0.5)
Name (server:root): ftp
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/var/ftp/pub/incoming
Login failed.
ftp> bye

Com o usuário "ftp" listado em / etc / passwd com o diretório home definido como "/ var / ftp" e os direitos de acesso a / var / ftp configurados como "drwxr-xr-x" e / var / ftp / incoming to "drwxrwxrwx" ... poderia ser devido ao PAM talvez? Eu não encontro nenhum arquivo de log FTP em / var / log para investigar.

Editar: Aqui está uma configuração funcional para permitir que o ftp / anonymous se conecte e envie arquivos para / var / ftp:

listen=YES
anonymous_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
    
por user15318 14.03.2011 / 12:14

5 respostas

6

Você criou um diretório chamado pub / upload :

# mkdir /var/ftp/pub/upload

Mas você configurou os envios para ir ao pub / de entrada :

anon_root=/var/ftp/pub/incoming

Portanto, é uma incompatibilidade de caminho simples, todo o resto parece OK.

    
por 17.10.2011 / 14:53
0

Você provavelmente tem userlist_deny=NO em seu arquivo conf. Altere-o para YES e certifique-se de que o nome de usuário que você está usando não esteja em /etc/vsftpd/user_list ou em /etc/vsftpd/ftpusers .

    
por 16.09.2011 / 19:02
0

Você provavelmente tem o SE linux habilitado. Em vez de desativar a coisa toda, você pode usar

/usr/sbin/setsebool -P ftp_home_dir 1

para permitir que o ftp funcione corretamente.

EDITAR Olhando novamente, se os comandos acima são o que você realmente digitou, então /var/ftp/pub/incomming não existe, então tenha certeza que tente novamente.

    
por 16.09.2011 / 19:21
0
  1. Para logins anônimos, altere o diretório pessoal dos usuários "ftp" em /etc/passwd .

    ftp:x:119:131:ftp daemon,,,:/var/ftp/pub/:/bin/false
    
  2. E adicione isso ao seu arquivo /etc/vsftpd.conf .

    allow_writeable_chroot=YES
    
  3. E certifique-se de que o usuário ftp tenha acesso ( chmod 755 ) para inserir todos os diretórios até o local /var/ftp/pub/

Eu estava lutando contra esse problema por horas. O vsftpd não fornece ajuda ou sugestões claras para erros.

    
por 29.08.2018 / 08:48
-1

O SE Linux está ativado. As pessoas nesse fórum foram capazes de resolver o problema, desabilitando o SE linux.

link

    
por 14.03.2011 / 12:22