我已经阅读了各种ftp守护进程和各种长线程的文档,讲述了在给予用户写权限时使用ftp服务器的chroot环境的安全隐患。 如果你仔细阅读了vsftpd文档,特别是这意味着使用chroot_local_user是一个安全隐患,而不使用它不是。 似乎没有涉及允许用户访问整个文件系统(如他们的用户和组成员资格所允许的)的涵义,也没有涉及这可能造成的混淆。
所以,我想了解在实践中使用什么是正确的方法。 如果一个具有authentication的写入访问用户的ftp服务器提供非chroot环境,chroot环境或其他选项? 考虑到Windows ftp守护进程没有使用chroot的选项,否则他们需要实现隔离。 有没有任何Unix的FTP守护进程做类似的事情?
您使用的正确方法取决于您使用的软件。
如果你知道所有的用户,那么我会说使用chroot并不是什么大问题。 如果你给你不信任的人账户,那么你可能不想。
你可能也想看看pureftpd,它是“chroot”选项:
除了“-a”标志之外,Pure-FTPd还有另一种微调chroot()规则的方法。 我们来看一个/ etc / passwd条目:
咪咪:X:501:100:咪咪:/首页/咪咪:/斌/ zsh的
没有任何特殊规则,mimi将能够login并检索文件系统中的任何公共可读文件。 现在,让我们改变一下它的主目录:
咪咪:X:501:100:咪咪:/家庭/咪咪/./:/斌/ zsh的
所以呢? Mimi的主目录仍然是一样的,常见的应用程序不应该注意到任何区别。 但是Pure-FTPd理解“chroot()直到/./”。 所以当mimi接下来执行FTPlogin时,只有/ home / mimi目录可以访问,而不是整个文件系统。 如果你不喜欢“-a”和它可信的gid,这是一个很好的方法,只有chroot()一些用户。
http://download.pureftpd.org/pub/pure-ftpd/doc/README
当然,请做你的安全问题的研究。 不要拿任何人的话来说。
您不需要使用chroot来实现隔离。 这只是使用户看起来很好,而无知的人会认为服务器上没有其他文件。 您也可以使用文件权限来防止用户窥探。 你也可以在VM中运行你的ftp守护进程,进一步降低风险。
使用vsftpd,“可能是类UNIX系统中最安全,最快速的FTP服务器”。 Yada Yada Yada(我从他们的网站上直接获得的,我也相信这是真实的)。我的东西vsftpd默认是最安全的unix ftp服务器….它是由漏洞研究者编写的。
http://vsftpd.beasts.org/它被devise为使用chroot,每个基本configuration。
所有这些FTP站点有什么共同点?