什么是在Unix上隔离FTP服务器用户的安全方式?

我已经阅读了各种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站点有什么共同点?

  1. http://ftp.redhat.com
  2. http://ftp.suse.com
  3. http://ftp.debian.org
  4. http://ftp.openbsd.org
  5. http://ftp.freebsd.org
  6. http://ftp.gnu.org
  7. http://ftp.gnome.org
  8. http://ftp.kde.org
  9. http://ftp.kernel.org