我读过各种 ftp 守护进程的文档和各种长帖,这些文档和帖文都提到了在为用户提供写访问权限时使用 ftp 服务器的 chroot 环境会带来的安全隐患。特别是,如果你读过 vsftpd 文档,你会发现它暗示使用 chroot_local_user 会带来安全隐患,而不使用它则不会。似乎没有提到允许用户访问整个文件系统(根据其用户和组成员身份允许)会带来的隐患,也没有提到这可能造成的混乱。
因此,我想了解在实践中应使用什么方法。具有经过身份验证的写访问用户的 ftp 服务器是否应提供非 chroot 环境、chroot 环境或其他选项?鉴于 Windows ftp 守护程序没有使用 chroot 的选项,因此它们需要实现隔离。是否有任何 unix ftp 守护程序执行类似操作?
答案1
您将采用的正确做法取决于您使用的软件。
如果你了解所有用户,那么我认为使用 chroot 没什么大不了的。如果你将帐户交给你不信任的人,那么你可能不想这样做。
您可能还想看看 pureftpd 及其“chroot”选项:
除了“-a”标志之外,Pure-FTPd 还有另一种方法来微调 chroot() 规则。让我们以 /etc/passwd 条目为例:
mimi:x:501:100:Mimi:/home/mimi:/bin/zsh
无需任何特殊规则,mimi 将能够登录并检索文件系统中任何公共可读文件。现在,让我们对其主目录进行一些更改:
mimi:x:501:100:Mimi:/home/mimi/./:/bin/zsh
那又怎么样?Mimi 的主目录仍然相同,常见应用程序不会注意到任何差异。但 Pure-FTPd 理解“chroot() 直到 /./”。因此,当 mimi 下次执行 FTP 登录时,只有 /home/mimi 目录可访问,而不是整个文件系统。如果您不喜欢“-a”及其受信任的 gid,这是一种仅 chroot() 某些用户的好方法。
http://download.pureftpd.org/pub/pure-ftpd/doc/README
当然,请对安全问题进行研究。不要轻信任何人的言论。
您不需要使用 chroot 来实现隔离。这只会让用户觉得很好,无知的人会认为服务器上没有其他文件。您还可以使用文件权限来阻止用户窥探。您还可以在虚拟机中运行 ftp 守护程序,进一步降低风险。
答案2
使用 vsftpd,“可能是类 UNIX 系统最安全、速度最快的 FTP 服务器。”Yada Yada Yada,(这是我从他们的网站上直接获得的,我也相信这是真的。)我认为 vsftpd 默认是最安全的 unix ftp 服务器...它是由漏洞研究人员编写的。
http://vsftpd.beasts.org/ 它被设计为根据基本配置使用 chroot。
所有这些 ftp 站点有哪些共同点?
- ftp.redhat.com
- ftp.suse.com
- ftp.debian.org
- ftp.openbsd.org
- FTP 网站
- ftp.gnu.org
- gnome.org 网站
- ftp.kde.org
- ftp.kernel.org