在 unix 上隔离 ftp 服务器用户的安全方法是什么?

djs*_*djs 5 security unix ftp chroot

我已经阅读了各种 ftp 守护进程和各种长线程的文档,了解在授予用户写访问权限时将 chroot 环境用于 ftp 服务器的安全隐患。如果您阅读了 vsftpd 文档,特别是它意味着使用 chroot_local_user 是一个安全隐患,而不使用它则不是。似乎没有涵盖允许用户访问整个文件系统的含义(在他们的用户和组成员资格允许的情况下),也没有涵盖这可能造成的混乱。

所以,我想了解在实践中使用的正确方法是什么。具有经过身份验证的写访问用户的 ftp 服务器是否应该提供非 chroot 环境、chroot 环境或其他一些选项?鉴于 Windows ftp 守护进程没有使用 chroot 的选项,否则它们需要实现隔离。是否有任何 unix ftp 守护进程做类似的事情?

d-_*_*_-b 1

您将使用的正确做法取决于您使用的软件。

如果您了解所有用户,那么我想说使用 chroot 并不是什么大问题。如果您将帐户提供给您不信任的人,那么您可能不想这样做。

您可能还想看看 pureftpd 及其“chroot”选项:

除了“-a”标志之外,Pure-FTPd 还有另一种方法来微调 chroot() 规则。让我们看一个 /etc/passwd 条目:

咪咪:x:501:100:咪咪:/home/mimi:/bin/zsh

没有任何特殊规则,mimi 将能够登录并检索文件系统中任何公共可读的文件。现在,让我们更改它的主目录:

咪咪:x:501:100:咪咪:/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 守护程序并进一步降低风险。