Vsftpd:完全访问的匿名配置

Vsftpd:完全访问的匿名配置

我需要部署一个用于内网的 FTP 服务器(仅限匿名),我选择了 Vsftpd,它似乎很容易配置。这是我的配置:

listen=YES
local_enable=NO
write_enable=YES

anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
no_anon_password=YES

anon_root=/srv/ftp/anon

以及目录权限:

drwxr-xr-x  3 root root 4096 déc.  20 16:00 srv
r-xr-xr-x  3 root root 4096 déc.  20 16:03 ftp
dr-xr-xr-x 2 root root 4096 déc.  20 16:03 anon

通过此配置,我可以以匿名身份连接并进行咨询/srv/ftp/匿名内容,下载文件,但无法上传任何内容,创建文件夹或删除文件(错误 530 和 550)。Vsftpd 日志文件不是那么明确,没有帮助。我也尝试将匿名更改为 777,但结果如下500 OOPS:vsftpd:拒绝在 chroot() 内以可写 root 身份运行当我尝试连接到服务器时。

谢谢 :)

答案1

看起来,vsftpd 正在尝试 chroot 到 /srv/ftp/anon 目录。在这种情况下,它试图通过拒绝写入来阻止您自食其果(是的,他们知道他们在做什么以及为什么)。

因此,您最好设置一个目录结构,其中有一个只读目录,可写的目录在里面,例如,/srv/ftp只有 root 才可写入,这就是anon_root。再创建一个,比如说/srv/ftp/publicchown ftp /srv/ftp/public(或 vsftp 使用的任何用户)。我在类似场景中使用了更多指令:

allow_writeable_chroot=YES
nopriv_user=ftp
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

相关内容