允许匿名上传Vsftpd?

我需要Linux上的基本FTP服务器(CentOS 5.5),没有任何安全措施,因为服务器和客户端位于testing局域网上,没有连接到networking的其余部分,而networking本身使用NAT防火墙后面的非路由IP没有传入访问FTP。

有些人推荐使用PureFTPd或ProFTPd的 Vsftpd 。 无论我尝试什么,我都无法让一个匿名用户(即以“ftp”或“匿名”身份login并input任何string作为密码)上传文件:

# 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 

当我从客户端login时,下面是我得到的:

500 OOPS:无法更改目录:/ var / ftp / pub / incoming

我也试过“#chmod 777 / var / ftp / incoming /”,但得到相同的错误。

有人知道如何以最低的安全性configurationVsftpd吗?

谢谢。


编辑:SELinux被禁用,这里是文件权限:

 # 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 

编辑:最新的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 

编辑:从“chown_uploads”删除尾随空间,错误500解决,但匿名仍然无法正常工作:

 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 

在/ etc / passwd中列出的用户“ftp”将home目录设置为“/ var / ftp”,并将/ var / ftp的访问权限设置为“drwxr-xr-x”,并将/ var / ftp / incoming权限设置为“drwxrwxrwx” …可能是由于PAM可能吗? 我在/ var / log中找不到任何FTP日志文件进行调查。


编辑:这是一个工作configuration,让ftp /匿名连接并上传文件到/ var / ftp:

 listen=YES anonymous_enable=YES write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES 

你已经创build了一个名为pub / upload的目录:

 # mkdir /var/ftp/pub/upload 

但是,然后你configuration上传到发布/ 传入

 anon_root=/var/ftp/pub/incoming 

所以这是一个简单的path不匹配,其余的都好。

是SE Linux启用。 在那个论坛的人们能够通过禁用SE linux来解决这个问题。

http://rackerhacker.com/2007/06/14/500-oops-error-from-vsftpd/

您的conf文件中可能有userlist_deny=NO 。 将其更改为YES ,并确保您使用的用户名不在/etc/vsftpd/user_list/etc/vsftpd/ftpusers

您可能已启用SE Linux。 而不是禁用整个事情,你可以使用

/usr/sbin/setsebool -P ftp_home_dir 1

允许ftp正常工作。

编辑再看看这个,如果上面的命令是你真正input的/var/ftp/pub/incomming不存在,所以确保它然后再试一次。