FTP Jailing是什么意思,服务器操作系统需要什么function才能启用它?

我对“ftp jailing”这个词有一个模糊的概念,但是在权限和安全方面,模糊是不明智的。 它是什么? 它是如何实现的? 它主要是ftp服务器的能力,还是从底层操作系统如何执行权限出现?

ftp中的“Jailing”意味着将ftp会话locking到文件系统的特定子集。 通常它是这样设置的,如果一个特定的用户login,他们只能ftp到他们自己的目录空间。

ftp服务器通常会有一个选项,当用户连接时,chroot用户,这意味着就用户而言,universe的根是整个可用文件系统的特定部分。

'vsftp'在vsftpd有一个非常明确的解释和方法。

其他一些例子包括惠普/ ux上的 proftp和ftp 。

这是我在Windows IIS环境下的工作方式 。 它将在未来帮助某人。

  1. 为每个“用户/客户端”在计算机上设置本地用户帐户
  2. 在资源pipe理器中设置NTFS结构,以便您有一个“根”文件夹,并在该文件夹中有每个客户端/等的文件夹。
  3. 设置NTFS权限,以便每个用户(您可以使用一个称为FTP用户的组,并将它们全部添加到该组)具有对根文件夹的“列表”权限。 然后给他们每个“家”文件夹(读/写/无论)的具体权利。
  4. 在用于FTP站点的IIS中,创build与您创build的用户帐户完全相同的虚拟目录,并将每个虚拟目录指向正确的主文件夹。 即。 BOBJONES的虚拟目录指向d:\ ftpsite \ BOBJONES
  5. 返回到资源pipe理器,并在ROOT文件夹所在的文件夹中创build一个新文件夹,并将其命名为DEADEND
  6. 给FTP用户列表/读取权限到DEADEND文件夹
  7. 回到IIS,将FTP站点的“根文件夹”设置为DEADEND文件夹

而已。

现在,当BOBJONESlogin到FTP站点时,他在BOBJONES目录中。 如果他狡猾,试图做一个cd ..去父母/根,他会被撞到DEADEND文件夹,并不会看到其他人的家庭文件夹等列表(注:他可以得到回到他的家庭文件夹仍然键入CD BOBJONES)

一个最后的注意:任何有一个用户名,但没有虚拟目录命名相同将默认为已经改变为DEADEND的根目录。

FTP jailing意味着用户中的loggend将他的根目录视为您定义的根目录。 他不能再往树上走,因为FTP客户端将他的目录视为根目录。

假设你有以下几点:

/home/ben_linus/ /home/ben_linus/data /home/ben_linus/progs 

您将根设置为/ home / ben_linus /

他会看到的

 / /data /progs 

我不明白为什么它应该是操作系统的依赖。 没有什么让你编码一个FTP服务器,将返回/一些随机目录后,使用cd ..往往没有实际在Unix /或在Windows中的顶级驱动器。

关于权限,很大程度上取决于你如何configuration你的FTP服务器,一些FTP服务器可以映射到/到任何用户,这意味着你可以configuration一个FTP服务器,需要“正常”的身份validation,但是当文件写入主机上的操作系统权限将被映射到您configuration的某个用户。

有关chroot的讨论(以及后续链接)可以在ProFTPd FAQ中find。

这是ftp服务器的function(对于大多数),例如vsftpd,你可以通过configuration“监禁”用户到他们的homedir

 chroot_local_user=YES 

ftp服务器不会让用户下到该目录下。

 User homedir: /home/ftp User can access: /home/ftp, /home/ftp/pub User can not access: /home, /etc, /, /root etc.. 

这可能意味着两件事情:

  • 一个(或全部)用户/login被限制到他们的“主目录”,而不是具有完整的FTP层次结构。 这通常是在应用程序级别的软件中实现的(例如,FTP服务器)。
  • 作为一种安全措施,FTP进程被监禁在chroottypes的设置中。 这对于允许匿名访问的服务器来说很常见。 在过去,这是通过chroot系统调用来完成的,尽pipe我有一种感觉,现在在一些操作系统上可能有更现代的方法来做到这一点。 无论如何,这种types的设置比较棘手,而且更依赖于操作系统(即使简单地使用chroot)。

在UNIX系统的旧版本中,将用户注册到某个目录非常麻烦,容易出错,并且可能导致问题。 例如,你必须为ls和cd之类的东西编译特殊的静态链接二进制文件,并把它们移动到监狱里。 如果你的操作系统/软件需要这个 – 注意明智的,这是有问题的。 我更喜欢不需要这种方法的较新的FTP服务器。

在IIS上,我觉得被监禁的FTP很难做到 – 尽pipe上面有一些关于FTP的描述,但并不完全一样。 虽然这样做的荣誉,我已经尝试了很多次来find类似的东西。 我在Windows上使用Filezilla,它有一个相当优雅的解决scheme,如预期的监狱问题。 没有我知道的安全后果,Filezilla似乎很快修复漏洞。

现代的UNIX FTP实现似乎使监狱更容易,可能更安全。 大部分安全问题依然存在; 一旦您认为您可以授予您的用户访问低于监禁点的任何内容,那么问题是“我的供应商/ FOSS软件提供商是否及时提供补丁?