Thomas L Holaday Asked: 2009-06-13 04:08:13 +0800 CST2009-06-13 04:08:13 +0800 CST 2009-06-13 04:08:13 +0800 CST FTP Jailing 是什么意思,服务器操作系统需要哪些功能才能启用它? 772 我对“ftp 监禁”一词的含义有一个模糊的概念,但是当涉及到权限和安全性时,模糊是不谨慎的。它是什么?它是如何实施的?它主要是 ftp 服务器的一种功能,还是来自底层操作系统的权限? ftp 7 个回答 Voted TheCleaner 2009-06-13T04:46:25+08:002009-06-13T04:46:25+08:00 这是我在 Windows IIS 环境中的操作方法。认为它会在未来帮助某人。 在计算机上为每个“用户/客户端”设置本地用户帐户 在资源管理器中设置 NTFS 结构,以便您有一个“根”文件夹,并且在该文件夹中,您有每个客户端/等的文件夹。 设置 NTFS 权限,以便每个用户(您可以使用称为 FTP 用户的组,并将他们全部添加到该组)对根文件夹具有“列表”权限。然后赋予他们对每个“主”文件夹的特定权限(读/写/其他)。 在 FTP 站点的 IIS 中,创建名称与您创建的用户帐户完全相同的虚拟目录,并将每个目录指向正确的主文件夹。IE。BOBJONES 的虚拟目录指向 d:\ftpsite\BOBJONES 返回资源管理器并在与 ROOT 文件夹相同的文件夹中创建一个新文件夹并将其命名为 DEADEND 授予 FTP 用户对 DEADEND 文件夹的列表/读取权限 回到 IIS 中,将 FTP 站点的“根文件夹”设置为 DEADEND 文件夹 而已。 现在,当 BOBJONES 登录 FTP 站点时,他位于 BOBJONES 目录中。如果他变得狡猾并试图做一个 cd .. 到父/根目录,他将被撞到 DEADEND 文件夹,并且不会看到其他人的主文件夹列表等。(注意:他可以得到仍然键入 cd BOBJONES 回到他的主文件夹) 最后一点:任何拥有用户 ID 但没有同名虚拟目录的人将默认使用已更改为 DEADEND 的根目录。 Dax 2009-06-13T04:23:18+08:002009-06-13T04:23:18+08:00 FTP 监禁意味着登录用户将他的根目录视为您定义的目录。他不能再往上爬,因为 FTP 客户端将他的 dir 视为根目录。 假设您有以下内容: /home/ben_linus/ /home/ben_linus/data /home/ben_linus/progs 您将根设置为 /home/ben_linus/ 他会看到 / /data /progs Best Answer lavinio 2009-06-13T04:19:58+08:002009-06-13T04:19:58+08:00 ftp 中的“Jailing”意味着将 ftp 会话锁定到文件系统的特定子集。通常是这样设置的,如果一个特定的用户登录,他们只能ftp到他们自己的目录空间。 ftp 服务器通常有一个选项,当用户连接时,chroot 用户,这意味着就该用户而言,Universe 的根是整个可用文件系统的某个特定部分。 'vsftp' 在vsftpd有一个非常清晰的解释和操作方法。 其他一些示例包括hp/ux 上的proftp和ftp 。 Martin M. 2009-06-13T04:25:26+08:002009-06-13T04:25:26+08:00 我看不出它应该依赖于操作系统的原因。没有什么能阻止您编写一个 FTP 服务器,该服务器将在cd ..经常使用后返回某个随机目录的 /,而实际上并没有真正位于 Unix 上的 / 或 Windows 的顶级驱动器中。 关于权限,这在很大程度上取决于您如何配置 FTP 服务器,一些 FTP 服务器可以映射到/映射到任何用户,这意味着您可以配置需要“正常”身份验证的 FTP 服务器,但在将文件写入主机上的操作系统时权限将映射到您配置的某个用户。 一些关于 chroot 的讨论(以及后续链接)可以在ProFTPd FAQ中找到。 rkthkr 2009-06-13T04:19:21+08:002009-06-13T04:19:21+08:00 这是 ftp 服务器的一个特性(对于大多数服务器来说),例如使用 vsftpd 您可以使用配置将用户“监禁”到他们的 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.. Toto 2009-06-13T04:21:54+08:002009-06-13T04:21:54+08:00 这可能意味着两件事: 一个(或所有)用户/登录名仅限于他们的“主目录”,而不是拥有 FTP 层次结构的完整视图。这通常在应用程序级别的软件中实现(例如 FTP 服务器)。 作为一种安全措施,FTP 进程被监禁在 chroot 类型的设置中。这对于允许匿名访问的服务器来说很常见。在过去,这是通过 chroot 系统调用完成的,尽管我觉得现在在某些操作系统上可能有更现代的方法来执行此操作。无论如何,这种类型的设置有点棘手,并且更多地依赖于操作系统(即使只是使用 chroot)。 Kyle 2009-06-13T07:27:43+08:002009-06-13T07:27:43+08:00 在过去的 UNIX 系统中,将用户囚禁到某个目录是很麻烦的、容易出错的,并且可能会导致问题。例如,您必须为 ls 和 cd 之类的东西编译特殊的静态链接二进制文件并将它们移入监狱。如果您的操作系统/软件需要这个 - 请注意,这是有问题的。我更喜欢不需要这种方法的较新的 FTP 服务器。 在 IIS 上,我发现很难执行被监禁的 FTP - 尽管上面有一个关于某些内容的描述,但它并不完全顺利。这样做的荣誉,我已经尝试了很多次来找到类似的东西。我在 Windows 上使用 Filezilla,它对监狱问题有一个相当优雅的解决方案,可以按预期工作。据我所知,没有安全后果,Filezilla 似乎可以快速修复漏洞。 现代 UNIX FTP 实现似乎使监禁更容易,而且可能更安全。剩下的大部分安全问题;一旦您假设您可以授予您的用户访问监狱点以下的任何内容,那么问题是“我的供应商/FOSS 软件提供商是否及时提供补丁?”
这是我在 Windows IIS 环境中的操作方法。认为它会在未来帮助某人。
FTP 监禁意味着登录用户将他的根目录视为您定义的目录。他不能再往上爬,因为 FTP 客户端将他的 dir 视为根目录。
假设您有以下内容:
您将根设置为 /home/ben_linus/
他会看到
ftp 中的“Jailing”意味着将 ftp 会话锁定到文件系统的特定子集。通常是这样设置的,如果一个特定的用户登录,他们只能ftp到他们自己的目录空间。
ftp 服务器通常有一个选项,当用户连接时,chroot 用户,这意味着就该用户而言,Universe 的根是整个可用文件系统的某个特定部分。
'vsftp' 在vsftpd有一个非常清晰的解释和操作方法。
其他一些示例包括hp/ux 上的proftp和ftp 。
我看不出它应该依赖于操作系统的原因。没有什么能阻止您编写一个 FTP 服务器,该服务器将在
cd ..
经常使用后返回某个随机目录的 /,而实际上并没有真正位于 Unix 上的 / 或 Windows 的顶级驱动器中。关于权限,这在很大程度上取决于您如何配置 FTP 服务器,一些 FTP 服务器可以映射到/映射到任何用户,这意味着您可以配置需要“正常”身份验证的 FTP 服务器,但在将文件写入主机上的操作系统时权限将映射到您配置的某个用户。
一些关于 chroot 的讨论(以及后续链接)可以在ProFTPd FAQ中找到。
这是 ftp 服务器的一个特性(对于大多数服务器来说),例如使用 vsftpd 您可以使用配置将用户“监禁”到他们的 homedir
ftp 服务器不会让用户进入该目录之下。
这可能意味着两件事:
在过去的 UNIX 系统中,将用户囚禁到某个目录是很麻烦的、容易出错的,并且可能会导致问题。例如,您必须为 ls 和 cd 之类的东西编译特殊的静态链接二进制文件并将它们移入监狱。如果您的操作系统/软件需要这个 - 请注意,这是有问题的。我更喜欢不需要这种方法的较新的 FTP 服务器。
在 IIS 上,我发现很难执行被监禁的 FTP - 尽管上面有一个关于某些内容的描述,但它并不完全顺利。这样做的荣誉,我已经尝试了很多次来找到类似的东西。我在 Windows 上使用 Filezilla,它对监狱问题有一个相当优雅的解决方案,可以按预期工作。据我所知,没有安全后果,Filezilla 似乎可以快速修复漏洞。
现代 UNIX FTP 实现似乎使监禁更容易,而且可能更安全。剩下的大部分安全问题;一旦您假设您可以授予您的用户访问监狱点以下的任何内容,那么问题是“我的供应商/FOSS 软件提供商是否及时提供补丁?”