我需要配置一个匿名 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
选项?
好的,我已经解决了这个问题:
在
/etc/vsftpd/vsftpd.conf
添加行:来自
man vsftpd.conf (5)
:那么,ftp文件的布局应该是:
目录的其他
--x
权限upload/
是这里的关键:r
- 将允许列出目录内容w
- 将允许创建和删除文件x
- 将允许读/写现有文件。最后,
ftp
所有者-w-
文件权限不允许匿名用户下载该文件,而本地用户r--
可以读取该文件。如果我在这里向我错过的一些攻击向量敞开心扉,请在下面发表评论。