SFTP 文件限制

SFTP 文件限制

是否可以在 Linux 上使用 SFTP 并将用户帐户限制在一个目录中,以便无法获取其他目录列表?是的,我必须使用 SFTP,只有喜欢被黑客攻击的人才会使用 FTP。

例如,我希望有人修改 /var/www/code/ 中的文件,但不希望他们能够修改其他任何内容。我甚至不希望他们看到 /tmp/ 的内容。

(我会接受“快速而肮脏”的解决方案,只要它安全的

答案1

来自 sshd_config 手册页:

Chroot目录
             指定认证后 chroot(2) 的路径。这
             路径及其所有组件必须属于根目录,并且
             任何其他用户或组都无法写入。chroot 之后,
             sshd(8) 将工作目录更改为用户的主目录 -
             瑞。

             该路径可能包含以下标记,这些标记在
             一旦连接用户通过了身份验证,运行时:%% 是
             替换为文字“%”,%h 替换为主目录
             正在验证的用户,并且 %u 被替换为用户
             该用户的名称。

             ChrootDirectory 必须包含必要的文件和目录
             为用户会话提供支持。对于交互式会话
             这至少需要一个 shell,通常是 sh(1),以及基本的 /dev
             节点如 null(4)、zero(4)、stdin(4)、stdout(4)、stderr(4)、
             arandom(4) 和 tty(4) 设备。对于使用
             “sftp”,不需要对环境进行额外的配置
             如果使用进程内 sftp 服务器,则必不可少,尽管会话
             使用日志记录确实需要 chroot 目录中的 /dev/log
             (有关详细信息,请参阅 sftp-server(8))。

             默认不是 chroot(2)。

答案2

另一种选择是将其 shell 替换为 MySecureShell,这可以为您提供 Chroot、带宽限制、连接限制等功能。

http://mysecureshell.sourceforge.net/

目前正在网络托管环境中使用它,必须说它运行得相当好。

答案3

SFTP 并非功能丰富的解决方案,无法与 vsftpd 等 FTP 服务器相媲美。它不支持 chroot;而这正是您所需要的。FTPS(而非 SFTP)将是最佳解决方案,因为它支持加密、chroot 等。vsftpd 支持此功能,并且易于设置。

此外,请务必利用 pam_listfile 模块明确说明哪些用户可以通过 ftps 登录。

答案4

相关内容