为什么vsftpd的chroot_local_user不安全?


20

我在VPS上设置了vsftpd,但我不希望允许用户离开他们的ftp主目录。我使用的是local_user ftp,而不是匿名的,因此我添加了:

chroot_local_user =是

我在很多论坛上都读过,这是不安全的。

  1. 为什么这样不安全?
  2. 如果由于使用ssh也加入我的VPS而导致不安全,那么我可以将这些用户从sshd中锁定,对吗?
  3. 还有其他选择可以实现vsftpd的这种行为吗?(我不想删除系统上“世界”的所有文件夹/文件的读取权限)

Answers:


20

在此处查看VSFTPD的常见问题,以获取所需的答案。以下是重要摘要,我认为它将回答您的问题。

问)帮助!“ chroot_local_user”选项中提到的安全含义是什么?

A)首先,请注意其他ftp守护程序具有相同的含义。这是一个普遍的问题。问题不是很严重,但是它是这样的:有些人拥有不信任的FTP用户帐户,无法拥有完整的Shell访问权限。如果这些帐户也可以上传文件,则风险很小。现在,错误的用户可以控制文件系统根目录(即其主目录)。ftp守护程序可能会导致一些配置文件被读取-例如/ etc / some_file。使用chroot(),此文件现在处于用户的控制之下。vsftpd在这方面非常小心。但是,系统的libc可能要打开区域设置配置文件或其他设置...


谢谢,我自己还不知道所有这些。学到了东西!+1
Yanick Girouard

4
实际上,我是在阅读FAQ之后来到这里的,因为我不明白这个令人担忧的陈述:“ ftp守护程序可能会导致读取某些配置文件-例如/ etc / some_file。使用chroot(),此文件现在处于用户。”。大概只有vsftpd在存在安全漏洞(缓冲区溢出)的情况下才是这种情况?vsftpd与用户chroot到其主目录一起运行如何使这种情况更可能发生?请解释...
sxc731

4

问题在于,您既不能使用本地帐户,也不能从Shell登录中禁用这些帐户。如果将他们的登录shell设置为/ bin / nologin,则也将不允许您使用vsftpd登录。

更好,更安全的FTP守护程序是Pure-ftpd。查找它,可以从EPEL存储库中获得它,并允许创建虚拟用户。服务器使用通用用户/组设置用户主文件夹的所有权限,并在登录时将虚拟用户“映射”到该用户。这样更安全,并且您不必处理openssh登录安全性。

Pure-ftpd还支持很多功能,例如配额,比率等。比vsftpd好得多。

这是有关如何安装和配置基本虚拟用户的简单教程:http : //blog.namran.net/2011/05/04/how-to-setup-virtual-ftp-server-using-pure-ftpd- incentos /

如果您阅读了完整的文档(应该阅读),您将知道在创建虚拟用户时-d开关是该用户对该目录的自动chroot。


AllowUsers user1 user2在sshd_config中使用了指令,在该指令中,我不允许ftp_user1使用ssh登录,但用户ftp_user1仍然可以使用ftp登录。因此,它按预期工作,但是我的主要问题仍然悬而未决,为什么它不安全?
p1100i 2012年

4
是的,它会!您只需要在/ etc / shells中添加“ non-shell”即可。在许多系统上,/ etc / shells中都存在/ bin / false或/ bin / nologin。如果有外壳,vsftpd确实可以让您登录,同时启用chroot_local_user。
汉斯·

1
那我就纠正了。感谢您指出!
Yanick Girouard '02
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.