我需要为多个用户提供FTPlogin,一些能够写入,一些只能读取到一个FTP根目录。 我非常想限制访问,以便他们不能看到该目录上的文件系统。 search后,我将user_localconfiguration选项定义为根目录,并使用chroot_local_users选项或chroot jail将用户限制在该目录中。 这基本上工作。
读起来,我发现在这个安全环境中使用chroot监狱可能是有问题的:
Chroot jail是不安全的,因为它只修改一个进程及其subprocess的path名查找,所以任何对起始path的引用都将有效地将新的根作为单个parameter passing到path上, “当前工作目录保持不变,并且相对path仍然可以引用新根之外的文件”。
来源http://lwn.net/Articles/252794/
现在,只有当cwd高于通过vsftpd的Local_Rootconfiguration参数分配给FTP用户的FTP根目录时,此问题似乎就成了问题。 CWD会为FTP守护进程做些什么? 这是我分配给Local_Root吗? 那么我认为chroot不是问题,那么在我的使用情况中呢?
此外,我发现,如果难以实施,那么有更好的解决办法,即引用Linux内核开发人员Alan Cox的话,“chroot并不是一种安全工具,人们已经根据但是扩展的性能(BSD jail,Linux vserver)却大不相同。你也可以自己写一个LSM模块来做到这一点。
这种方法,强化监狱的概念,一个标准的专业方法,或做有能力的Linuxpipe理员只是使用chroot监狱? 还是别的,完全?
这个问题已经在互联网上问过了,但是我没有发现任何东西比我在这个问题中提供的更多。 因此,我们发现FTP下载站点是最好的,从各种Linux发行版本到内核维护者本身。 如何限制FTP用户实际上安全地完成?