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 / 问题 / 1034260
Accepted
Daichi42
Daichi42
Asked: 2020-09-18 06:14:27 +0800 CST2020-09-18 06:14:27 +0800 CST 2020-09-18 06:14:27 +0800 CST

OpenSSH + Active Directory:允许一个组的 sftp,同时禁止其他所有人

  • 772

我的目标是允许给定的 Active Directory 组成员在 chroot 中使用 OpenSSH SFTP,并拒绝他们和所有其他不属于该组成员的 SSH 访问,同时仍然允许本地(非 AD)系统帐户。
我已经配置sshd_config为使用 Kerberos 来获取 Active Directory 信息,并且该部分已经在工作。

问题是:虽然它适用于我希望授予访问权限的组(允许 sftp,拒绝 ssh),但所有其他 AD 帐户都可以打开 SSH shell 和非 chroot SFTP,这当然是不希望的。

总结一下,我需要:

  • 授予对 Active Directory 组的 chroot'ed SFTP 访问权限;拒绝他们的 SSH。
  • 拒绝该组的非成员的 SFTP 和 SSH。
  • 保留对本地系统帐户的访问权限。

我正在使用带有 OpenSSH_8.3p1 的 Fedora 32,我的配置如下(未注释掉的行)。

/etc/ssh/sshd_config:

Include /etc/ssh/sshd_config.d/*.conf
HostbasedAuthentication no
KerberosAuthentication yes
Subsystem       sftp   internal-sftp
Match Group sftp_users
        ChrootDirectory /sftp/%u
        ForceCommand internal-sftp
        X11Forwarding no
        AllowTcpForwarding no
        PermitTTY no

/etc/ssh/sshd_config.d/50-redhat.conf:

PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials no
UsePAM yes
X11Forwarding yes
PrintMotd no

提前致谢!

active-directory ssh sftp chroot kerberos
  • 2 2 个回答
  • 1927 Views

2 个回答

  • Voted
  1. tinkertwain
    2020-09-18T11:05:10+08:002020-09-18T11:05:10+08:00

    您需要在 SSSD 中使用 ad_access_filter 来过滤哪些 AD 用户可以访问服务器。语法类似于:

    ad_access_filter=(&(memberof=cn=sftp_user,ou=groups,dc=example,dc=com)(其他会员标准))

    • 0
  2. Best Answer
    Daichi42
    2020-09-18T12:53:54+08:002020-09-18T12:53:54+08:00

    经过一些试验和错误,我可能已经找到了我自己问题的答案。我只是想从你们那里知道这个解决方案是否会产生任何已知的影响。

    所以,我变成sshd_config了这样(省略其余部分):

    Match Group !wheel,*
            ChrootDirectory /sftp/%u
            ForceCommand internal-sftp
            X11Forwarding no
            AllowTcpForwarding no
            PermitTTY no
            AllowGroups sftp_users
    
    Match Group wheel
    

    第一个Match块强制不匹配组轮(使用!),并使用 * 匹配任何其他组。然后AllowGroups定义允许使用 SFTP 的组的空格分隔列表。这些组的成员将无权访问 SSH shell。在我的测试中,我可以看到它们已成功 chroot。

    然后在第二个Match块中,组轮通过在块中放置任何其他内容来定义默认的 sshd 选项。因此,wheel成员将可以不受限制地访问 SSH 和 SFTP。他们没有落入chroot。

    我选择了组轮,因为它是基于 Fedora 的系统上的 sudoers 组,所以对我来说这些本地系统用户就足够了(记住root用户不属于它;注意不要把自己锁在外面!)。

    然后我可以看到只有所需的 AD 组成员才能登录 SFTP。非成员会生成如下日志:

    User john from 192.168.1.11 not allowed because none of user's groups are listed in AllowGroups
    

    我没有测试的(只是因为它不是我的情况):

    • 属于允许组和不允许组的用户会发生什么。
    • 相同的系统名称和 Active Directory 名称会发生​​什么(我猜nsswitch.conf顺序会在这里起作用)。
    • 0

相关问题

  • 如果以域用户身份远程登录,PC 速度极慢

  • 如何在 Windows 2003 的 ou 级别应用策略

  • 允许用户更改其 Active Directory 密码的 Web 界面

  • MOSS 2007 无法使用 ActiveDirectoryMembershipProvider 配置表单身份验证

  • 通过 VPN 更改 Active Directory 密码

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +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