控制台用户locking – 帕姆问题?

我正在尝试启用Debian稳定服务器的AD身份validation,以使用户能够通过ssh进行身份validation和Windows ADlogin。 这一切工作正常,我可以ssh到服务器使用我的Windows凭据,但我已经注意到这个消息在远程SSHlogin作为rootlogin时:

Your account has been locked. Please contact your System administrator Your account has been locked. Please contact your System administrator Your account has been locked. Please contact your System administrator Last login: Sat Jun 13 14:15:14 2009 from workstation1 server1:~# 

我已经检查,如果我可以通过本地控制台以root身份login和哎呀,我不能。 同样的错误popup。 这可能会在未来痛苦地踢我。 在同一时间我已经尝试了RedfHat相同的设置,我没有这个问题。 我相信问题是在我的PAMconfiguration的某个地方,但无法看到哪里。错误的googling不让我在任何地方。

以下是Debian和redhat上相应的pam文件的详细信息。


Debian版本

共同账户

 account sufficient pam_winbind.so require_membership_of=S-1-5-21-602162358-1844823847-725345543-XXXXXX account sufficient pam_winbind.so require_membership_of=S-1-5-21-602162358-1844823847-725345543-XXXXXX account sufficient pam_winbind.so require_membership_of=S-1-5-21-602162358-1844823847-725345543-XXXXXX account required pam_unix.so 

共AUTH

 auth sufficient pam_winbind.so require_membership_of=S-1-5-21-602162358-1844823847-725345543-XXXXXX auth sufficient pam_winbind.so require_membership_of=S-1-5-21-602162358-1844823847-725345543-XXXXXX auth sufficient pam_winbind.so require_membership_of=S-1-5-21-602162358-1844823847-725345543-XXXXXX auth required pam_unix.so nullok_secure 

普通会话

 session required pam_mkhomedir.so skel=/etc/skel/ umask=0022 session sufficient pam_winbind.so require_membership_of=S-1-5-21-602162358-1844823847-725345543-XXXXXX session sufficient pam_winbind.so require_membership_of=S-1-5-21-602162358-1844823847-725345543-XXXXXX session sufficient pam_winbind.so require_membership_of=S-1-5-21-602162358-1844823847-725345543-XXXXX session required pam_unix.so 

RedHat system-auth文件:

 auth required pam_env.so auth sufficient pam_unix.so nullok try_first_pass auth sufficient pam_winbind.so use_first_pass auth requisite pam_succeed_if.so uid >= 500 quiet auth required pam_deny.so account required pam_unix.so account sufficient pam_succeed_if.so uid < 500 quiet account sufficient pam_winbind.so use_first_pass account required pam_permit.so password requisite pam_cracklib.so try_first_pass retry=3 password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok password sufficient pam_winbind.so use_first_pass password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so session required pam_winbind.so use_first_pass session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so session optional pam_mkhomedir.so skel=etc/skel/ umask=0027 

上将/etc/pam.d/sshd

 # PAM configuration for the Secure Shell service # Read environment variables from /etc/environment and # /etc/security/pam_env.conf. auth required pam_env.so # [1] # In Debian 4.0 (etch), locale-related environment variables were moved to # /etc/default/locale, so read that as well. auth required pam_env.so envfile=/etc/default/locale # Standard Un*x authentication. @include common-auth # Disallow non-root logins when /etc/nologin exists. account required pam_nologin.so # Uncomment and edit /etc/security/access.conf if you need to set complex # access limits that are hard to express in sshd_config. # account required pam_access.so # Standard Un*x authorization. @include common-account # Standard Un*x session setup and teardown. @include common-session # Print the message of the day upon successful login. session optional pam_motd.so # [1] # Print the status of the user's mailbox upon successful login. session optional pam_mail.so standard noenv # [1] # Set up user limits from /etc/security/limits.conf. session required pam_limits.so # Set up SELinux capabilities (need modified pam) # session required pam_selinux.so multiple # Standard Un*x password updating. @include common-password 

对于$ {Diety}的爱,在尝试新的身份validation设置时,不要调整PAM堆栈的common-*部分。 这是自己打洞的最快,最简单的方法 。 由于鸡与鸡蛋的情况,您可能会永久性地将自己locking在系统之外:您被locking在系统之外,但是您需要login系统进行所需的更改以防止被locking。

考虑尝试一个单一的服务,如SSH(假设你有附近的控制台访问)。 一旦你的服务原型/configuration满足你的具体要求,不要马上应用到common-*文件,而是考虑它会对其他系统服务产生什么影响。 请记住, common-*对大多数configuration来说都是“全能”,这里的一个错误意味着访问救援CD来重新解锁。 一旦你很好的掌握了configuration如何与依赖于系统默认值的不同服务交互,那就应用它。

还有一点需要考虑的是,如果你正在对common-*做出这样的改变来促进SSO的所有服务,那么它将不会捕获所有的服务,有些服务会有自己的身份validation设置,你还需要检查它们。

就控制台消息而言,发生了什么事是winbind正在联系你的AD控制器,这是看到过度失败的login尝试。 经过15次尝试(我相信这是MS使用的开箱即用的号码),帐户locking一段时间,除非pipe理员解锁帐户。 这就是为什么当你login时你会收到“账户locking”信息 – 你的堆栈的winbind部分失败了authentication尝试,并且进程“跌入”到栈中的下一个步骤。

我会努力看看你的winbind设置,以确定身份validation是真正成功的第一位。 如果您提交AD控制器不喜欢的域成员提交的凭据,则密码是否正确无关紧要 – 因为请求源自于被认为是非域名成员。 首先要检查的是winbind连接到域,因为如果甚至查看证书,这将会影响。 我还会看看你的pipe理帐户是如何处理的,我似乎记得有一个或两个额外的设置,以确保正确的行为(我会挖出来,并重新编辑,当我有他们… … )

我还build议使用/etc/passwd在本地linux机器上设置一个二级密码,这样就可以进行“fail-though”authentication。 如果winbind服务无法validation(在这种情况下), /etc/passwd将会提取冗余并允许你进入。事实上,你仍然能够进入似乎表明你已经完成了通过设置本地密码与您使用的帐户的AD密码相同。

另外考虑以sudo入口的forms安装另一个安全阀,这样一个单一的,特定的帐户将允许您通过sudo su切换到根。