允许 Vsftpd 匿名上传吗?

允许 Vsftpd 匿名上传吗?

我需要一个 Linux(CentOS 5.5)上没有任何安全措施的基本 FTP 服务器,因为服务器和客户端位于测试 LAN 上,未连接到网络的其余部分,网络本身使用 NAT 防火墙后面的不可路由 IP,没有对 FTP 的传入访问。

有些人推荐VSFTPD 的超过PureFTPd或者FTP 服务。无论我怎么尝试,我都无法允许匿名用户(即以“ftp”或“anonymous”身份登录并输入任何字符串作为密码)上传文件:

# 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

当我从客户端登录时,我得到以下信息:

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

我也尝试了“# chmod 777 /var/ftp/incoming/”,但出现同样的错误。

有人知道如何以最低安全性配置 Vsftpd 吗?

谢谢。


编辑: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”,主目录设置为“/var/ftp”,/var/ftp 的访问权限设置为“drwxr-xr-x”,/var/ftp/incoming 的访问权限设置为“drwxrwxrwx”...这可能是由于 PAM 造成的吗?我在 /var/log 中找不到任何 FTP 日志文件可供调查。


编辑:这是一个有效的配置,让 ftp/anonymous 连接并将文件上传到 /var/ftp:

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

答案1

您已创建一个名为 pub/ 的目录上传

# mkdir /var/ftp/pub/upload

但随后您将上传配置为转到 pub/传入

anon_root=/var/ftp/pub/incoming

所以这只是一个简单的路径不匹配,其余一切似乎都正常。

答案2

  1. 对于匿名登录,请更改中的“ftp”用户主目录/etc/passwd

    ftp:x:119:131:ftp daemon,,,:/var/ftp/pub/:/bin/false
    
  2. 并将其添加到您的/etc/vsftpd.conf文件中。

    allow_writeable_chroot=YES
    
  3. 并确保用户ftp有权限(chmod 755)进入到该位置的每个目录/var/ftp/pub/

我已经解决这个问题好几个小时了。vsftpd 没有提供明确的帮助或错误建议。

答案3

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

答案4

以下是对我有用的方法(他一边说,一边在精神上扼杀开发人员)

vsftpd.conf:

anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_root=/var/ftp/

创建/chown 目录

mkdir /var/ftp
chown nobody:nogroup /var/ftp
mkdir /var/ftp/uploads
chown ftp:ftp /var/ftp/uploads
#edit for good measure also (gave me grief with pure-ftpd)
chmod 777 /var/ftp/uploads

更改主目录

/etc/passwd:

    ftp:x:116:124:ftp daemon,,,:/var/ftp:/usr/sbin/nologin

(Debian 上的默认主目录是 /srv/ftp,因此坚持使用该目录可以让您的生活更轻松)

可以上传到 /var/ftp/uploads SElinux/Apparmor 在此系统上被禁用,debian 10.3

笔记:如果初始主目录直接对 /var/ftp 具有 rw 权限(又名 chown ftp:ftp),则 vsftp 将抛出错误消息

编辑注:怀着一丝希望,整个文本还是可以理解的。克劳斯

相关内容