AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 24706
Accepted
Thomas L Holaday
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 7 个回答
  • 7553 Views

7 个回答

  • Voted
  1. TheCleaner
    2009-06-13T04:46:25+08:002009-06-13T04:46:25+08:00

    这是我在 Windows IIS 环境中的操作方法。认为它会在未来帮助某人。

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

    而已。

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

    最后一点:任何拥有用户 ID 但没有同名虚拟目录的人将默认使用已更改为 DEADEND 的根目录。

    • 7
  2. 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
    
    • 6
  3. 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 。

    • 4
  4. 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中找到。

    • 2
  5. 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..
    
    • 1
  6. Toto
    2009-06-13T04:21:54+08:002009-06-13T04:21:54+08:00

    这可能意味着两件事:

    • 一个(或所有)用户/登录名仅限于他们的“主目录”,而不是拥有 FTP 层次结构的完整视图。这通常在应用程序级别的软件中实现(例如 FTP 服务器)。
    • 作为一种安全措施,FTP 进程被监禁在 chroot 类型的设置中。这对于允许匿名访问的服务器来说很常见。在过去,这是通过 chroot 系统调用完成的,尽管我觉得现在在某些操作系统上可能有更现代的方法来执行此操作。无论如何,这种类型的设置有点棘手,并且更多地依赖于操作系统(即使只是使用 chroot)。
    • 1
  7. 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 软件提供商是否及时提供补丁?”

    • 1

相关问题

  • 从服务器复制到服务器

  • 无法删除或编辑 ProFTPD 服务器上的文件

  • 如何在 Windows 中将 FTP 挂载到驱动器号?

  • 为什么我无法从我的win2008 NAT 后面连接到某些ftp 服务器?

  • 用于 Windows Server 的 FTP 服务?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve