将 vsftpd 上传限制为给定的一组文件名

将 vsftpd 上传限制为给定的一组文件名

我需要配置一个具有上传功能的匿名 FTP。考虑到这个要求,我尝试将此服务器锁定到最低限度。

我希望施加的限制之一是仅允许上传给定的一组文件名。

我尝试禁止对上传文件夹的写权限,并在其中放入一些具有写权限的空文件:

/var/ftp/         [root.root] [drwxr-xr-x]
|-- upload/       [root.root] [drwxr-xr-x]
|   |-- upfile1   [ftp.ftp]   [--w-------]
|   `-- upfile2   [ftp.ftp]   [--w-------]
`-- download/     [root.root] [drwxr-xr-x]
    `-- ...

但是这种方法不起作用,因为当我尝试上传时upfile1,它会尝试删除并在其位置创建一个新文件,而没有这样做的权限。

有没有办法让它发挥作用,或者也许使用不同的方法,比如滥用选项deny_file

答案1

好的,我已经解决了这个问题:

添加/etc/vsftpd/vsftpd.conf以下行:

anon_other_write_enable=YES

man vsftpd.conf (5)

anon_other_write_enable 

如果设置为 YES,匿名用户将被允许执行除上传和创建目录之外的写入操作,例如删除和重命名。通常不建议这样做,但为了完整性还是包括了。

默认:NO

然后,ftp 文件布局应该是:

/var/ftp/         [root.root]   [drwxr-xr-x]
|-- upload/       [root.root]   [drwxr-x--x]
|   |-- upfile1   [ftp.users]   [--w-r-----]
|   `-- upfile2   [ftp.users]   [--w-r-----]
...

--x目录的其他权限upload/在这里是关键:

  • r- 将允许列出目录内容
  • w- 允许创建和删除文件
  • x- 将允许读取/写入现有文件。

最后,ftp所有者-w-文件权限不允许匿名用户下载该文件,但本地用户r--可以读取该文件。


如果我在这里透露了一些我错过的攻击媒介,请在下面评论。

相关内容