我需要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不存在,所以确保它然后再试一次。