允许 SFTP 访问,但不允许使用 Active Directory 组进行 SSH 访问(非本地登录)

允许 SFTP 访问,但不允许使用 Active Directory 组进行 SSH 访问(非本地登录)

因此,我正在构建一个 CentOS 7 服务器,专门用于将其用作 SFTP 服务器。

我们正在迁移虚拟机,并且正在重建 SFTP 服务器。因此,我们已经有一个名为 ftpusers 的 Active Directory 安全组,我们希望使用它来访问该虚拟机上的 SFTP 服务器。但是,我们不希望这些用户被允许通过 SSH 连接到虚拟机,除非他们是 AD 安全组 LinuxAdmins 的一部分。那么我需要的是如何让ftpusers组的成员只能使用SFTP端而不能使用SSH。我能找到的所有文档都讨论了本地用户执行此操作的情况,但是我有近 1000 个已经具有访问权限的用户,并且不想在新的 Linux 服务器上手动设置它们。

答案1

我假设您已经在 CentOS 系统上进行了 AD 设置,以允许 ftpusers 和 LinuxAdmins 组登录并填充适当的组。如果没有,请告诉我。

您也许可以在 /etc/ssh/sshd_config 中执行类似的操作:

Match Group ftpusers
    ForceCommand internal-sftp
    PermitTunnel no
    AllowAgentForwarding no
    AllowTcpForwarding no
    X11Forwarding no
    ChrootDirectory /path/to/sftp/space

如果您想强制他们使用 Chrooted 环境,我还包括了 ChrootDirectory,大部分文档也建议这样做。重要的部分是 ForceCommand,这意味着即使他们只是通过 ssh 登录,它也只会将他们连接到 SFTP 后端而不是 shell。其他设置只是关闭ssh的所有其他功能。

相关内容