如何通过pam_krb5中的Kerberos拒绝对禁用的AD帐户的访问?


10

我有一个有效的AD / Linux / LDAP / KRB5目录和身份验证设置,但有一个小问题。禁用帐户后,SSH公钥身份验证仍允许用户登录。

显然,kerberos客户端可以识别禁用的帐户,因为kinit和kpasswd返回“客户端凭证已被撤消”,而无需进一步的密码/交互。

是否可以将PAM配置为sshd_config(在sshd_config中使用“ UsePAM yes”),以禁止登录已禁用帐户(通过公用密钥进行身份验证)?这似乎不起作用:

account     [default=bad success=ok user_unknown=ignore] pam_krb5.so

请不要在您的答案中引入winbind-我们不使用它。

Answers:


4

我在其他地方读过其他人的文章,要求SSH被“修复”,以使锁定的帐户无法通过SSH登录。(请参阅Debian错误219377)该请求被拒绝为补丁程序,“因为它破坏了用户的期望,这些用户过去习惯于仅使用passwd来口令-l。” (请参阅Debian错误389183),例如,某些人希望能够通过密码登录锁定帐户,但仍允许SSH密钥访问。

PAM不会拒绝对刚刚被锁定的帐户的SSH密钥身份验证(例如,由于无效的密码尝试,因为SSH密钥身份验证的目的是不关注通常用于锁定帐户的密码字段)。

我知道密码哈希条目是在pam_authenicate()时间而不是在pam_acct_mgmt()时间隐式检查的。pam_unix.so pam_sm_acct_mgmt()根本不检查密码哈希,并且在公用密钥身份验证期间不调用pam_authenticate()。

如果您希望能够集中禁用帐户登录,则还有其他可能的解决方法,包括:

更改登录外壳。

(重新)移动其authorized_keys文件。

拒绝访问的另一种选择是在sshd_config中使用DenyGroups或AllowGroups。(然后将用户添加到“ sshdeny”组,或将其从“ sshlogin”组中删除以禁止他们登录。)(请参阅:https ://help.ubuntu.com/8.04/serverguide/user-management .html

http://web.archiveorange.com/archive/v/67CtqEoe5MhDqkDmUMuL中 我读到:“问题是pam_unix仅检查影子条目的到期日期,而不是密码哈希字段的内容。” 如果是这样,您需要做的是使帐户过期而不是锁定帐户吗?

您问题的答案可能是“是的,如果要在密码字段以外的其他地方禁用它们”


4

多做一些功课,并回答我自己的问题。

在RedHat的pam_krb5(pam_krb5-2.3.14-1/src/acct.c)中,除非模块参与了身份验证阶段,否则pam_sm_acct_mgmt()函数将根据模块配置返回PAM_IGNORE或PAM_USER_UNKNOWN。因此,需要更改pam_krb5代码才能执行我想要的操作。

JohnGH的答案是一个不错的解决方法。使用“代理”属性传达相同的含义,例如破坏外壳或添加到“残疾用户”组。

另一个解决方法(已部分测试)是设置帐户的过去日期,并使用诸如pam_unix之类的模块使帐户检查失败。这使用LDAP,而不是KRB5,但是针对同一集中管理的用户目录进行查询。


2

基于SSH密钥的身份验证独立于PAM。您有以下解决方案:

  • 在sshd_config中禁用基于密钥的身份验证
  • 更改并重新编译sshd并添加一个挂钩,以便基于密钥的身份验证还将通过pam检查该帐户是否有效。

如果要通过kerberos使用无密码登录,则必须确保:

  • 您没有为sshd使用pam
  • 您已经正确配置了kerberos。例如,你可以做kinit -k host/server1.example.com@DOMAIN
  • 您将sshd配置为使用gssapi:

    KerberosAuthentication是GSSAPIAuthentication是GSSAPICleanupCredentials是UsePAM否

  • 您使用的是诸如PuTTY v0.61或更高版本的Kerberos化ssh客户端。


1
我不同意SSH公钥身份验证独立于PAM。添加account optional pam_echo.so file=/etc/redhat-release到/etc/pam.d/sshd会导致在使用基于密钥的身份验证登录(尝试)时打印文件内容。
菲尔(Phil)

我认为pam仅用于帐户(例如,创建主文件夹),而不用于身份验证。我正在检查这种情况。
Mircea Vutcovici 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.