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