Isilon:OneFS 8.X 及更高版本:如何将 chroot jail-FTP 用户锁定到特定目录
Summary: 本文介绍如何使用 isi ftp 命令为使用 FTP 连接的用户配置对群集上目录的访问权限。
Instructions
将涵盖以下内容:
- 查看当前 FTP 设置
- 常调整设置的说明
- 默认行为
- 将用户路由到特定目录
- 将用户限制到目录树
查看当前 FTP 设置
sa8004-1# isi ftp view Accept Timeout: 1m Allow Anon Access: No Allow Anon Upload: Yes Allow Dirlists: Yes Allow Downloads: Yes Allow Local Access: Yes Allow Writes: Yes Always Chdir Homedir: Yes Anon Chown Username: root Anon Password List: - Anon Root Path: /ifs/home/ftp Anon Umask: 0077 Ascii Mode: off Chroot Exception List: - Chroot Local Mode: none Connect Timeout: 1m Data Timeout: 5m Denied User List: - Dirlist Localtime: No Dirlist Names: hide File Create Perm: 0666 Limit Anon Passwords: No Local Root Path: - Local Umask: 0077 Server To Server: No Session Support: Yes Session Timeout: 5m User Config Dir: - FTP Service Enabled: Yes
常调整设置
有一些设置与用户在登录时路由方式相关,这些设置通常会发生更改:
- Always Chdir(更改工作目录)Homedir(主目录)
isi ftp modify --always-chdir-homedir=[true|false]- 定义 Isilon 是否允许用户通过 FTP 进入其启动目录以外的目录
- Chroot Exception List
isi ftp modify --chroot-exception-list=["comma separated list of usernames"]- 定义谁可以绕过
Chroot Local Mode
- Chroot Local Mode
isi ftp modify --chroot-local-mode=['all','all-with-exceptions','none','none-with-exceptions']- 定义是否
chroot应用和应用方式- 全部 |用户访问权限仅限于
Local Root Path和儿童 - 所有例外 |除
Chroot Exception List仅限于Local Root Path和儿童 - 无 |用户访问权限不限于
Local Root Path - 无例外 |除 中的用户外,没有其他用户
Chroot Exception List仅限于Local Root Path和儿童
- 全部 |用户访问权限仅限于
- Local root path
isi ftp modify --local-root-path=['/ifs/ftp/path']- 这定义了在登录时路由 FTP 用户的位置。如果留空,则默认为用户 homedir
默认 FTP 行为
以下是默认情况下 FTP 服务的行为方式。
- Allow Anon Access: 否
- Always Chdir Homedir: 是
- Chroot Local Mode: none
- Local root Path: -
这意味着只有身份验证提供程序上存在的用户才能通过 FTP 访问群集。系统将始终通过将它们发送到其根目录来启动连接,然后允许它们随意浏览(基于权限评估)。因为 Local Root Path 如果未定义,用户将被路由到其用户配置文件中指定的路径。您可以通过以下命令进行检查 isi auth users $username | grep Home 其中有个数字 $username 替换为您正在检查的用户名。下面是本地用户的示例:
sa8004-1# isi auth users view xavier | grep Home Home Directory: /ifs/home/xavier
在默认配置中,上面的用户将连接到 Isilon,并路由到 /ifs/home/xavier (无论连接时设置的路径如何),然后可以将目录更改为 /ifs/home/ 因为 Chroot Local Mode 设置为无。
将用户路由到特定目录
默认情况下,连接到 OneFS FTP 服务的用户将被路由到其主目录。但是,客户通常认为 FTP 的工作更像一个 dropbox。在这种情况下,您只需编辑设置 Local Root Path。这将导致用户路由到该路径,而不是其主目录。如果将该值设置为 <空> ,则会将其重置为主目录。
下面是这些命令的示例:
# Routing to /ifs/ftp sa8004-1# isi ftp modify --local-root-path=/ifs/ftp # Restoring to default sa8004-1# isi ftp modify --local-root-path=''
将用户限制到目录树
默认情况下,连接到 OneFS FTP 服务的用户可以查看整个文件系统,并根据其权限进行导航(我们仍然检查用户名等),但许多客户希望其用户仅限于其文件系统与之相关的部分。这是通过设置 Chroot Local Mode。将该设置应用于用户时,他们将只能导航到或查看其下的文件 Root Path。默认情况下,此设置设为 none,但该设置有 4 个不同的应用程序。
使用以下命令调整此设置 isi ftp modify --chroot-local-mode=['all','all-with-exceptions','none','none-with-exceptions']
- 全部 |用户访问权限仅限于
Local Root Path和儿童 - 所有例外 |除
Chroot Exception List仅限于Local Root Path和儿童 - 无 |用户访问权限不限于
Local Root Path - 无例外 |除 中的用户外,没有其他用户
Chroot Exception List仅限于Local Root Path和儿童
使用以下命令添加例外 isi ftp modify --chroot-exception-list=["comma separated list of usernames"]
下面是一个将除一个用户外的所有用户限制为 /ifs/ftp。这一个用户仍将启动连接,但将能够看到 /ifs/
# Adding user to exception list sa8004-1# isi ftp modify --chroot-exception-list=xavier # Routing all logins to `/ifs/ftp` sa8004-1# isi ftp modify --local-root-path=/ifs/ftp # Limiting everyone by `xavier` to the Local Root Path sa8004-1# isi ftp modify --chroot-local-mode=all-with-exceptions
说明
命令参考:
- PowerScale OneFS CLI 管理指南
- 本管理员指南不定义所有命令的行为