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 / 问题 / 35548
Accepted
Sergei
Sergei
Asked: 2009-07-04 05:44:19 +0800 CST2009-07-04 05:44:19 +0800 CST 2009-07-04 05:44:19 +0800 CST

控制台用户被锁定 - pam 问题?

  • 772

我正在尝试为 Debian 稳定服务器启用 AD 身份验证,以使用户能够通过针对 Windows AD 的 ssh 身份验证登录。一切正常,我可以使用我的 Windows 凭据通过 ssh 连接到服务器,但是当我以 root 身份登录时,我注意到远程 ssh 登录时出现此消息:

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 身份登录,哎呀,我不能。弹出同样的错误。这可能会让我在未来痛苦不堪。同时我为 RedfHat 尝试了相同的设置,我没有这个问题。我相信问题出在我的 pam 配置中,但看不到 where.googling for error 也不会让我到任何地方。

以下是 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    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 系统验证文件:

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
linux ssh pam
  • 1 1 个回答
  • 5043 Views

1 个回答

  • Voted
  1. Best Answer
    Avery Payne
    2009-07-04T08:18:02+08:002009-07-04T08:18:02+08:00

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

    考虑对单一服务进行试验,例如 SSH(假设您附近有控制台访问权限)。根据您的确切要求对服务进行原型化/配置后,不要立即将其应用于common-*文件,而是要考虑它对其他系统服务的影响。请记住,common-*作为大多数配置的“包罗万象”,这里的一个错误意味着访问救援 CD以使其再次解锁。一旦你很好地掌握了配置如何与依赖于系统默认值的不同服务交互,然后应用它。

    要考虑的另一点是,如果您进行此更改以common-*促进盒子上所有服务的 SSO,它不会捕获所有服务,某些服务有自己的身份验证设置,您还需要检查这些设置。

    就控制台消息而言,所发生的情况是 winbind 正在联系您的 AD 控制器,该控制器看到过多的失败登录尝试。经过 15 次尝试(我相信这是 MS 使用的开箱即用号码)后,该帐户将被锁定一段时间,除非管理员解锁该帐户。这就是为什么您在登录时收到“帐户锁定”消息的原因 - 堆栈的 winbind 部分未通过身份验证尝试,并且该过程“失败”到堆栈中的下一步。

    我会仔细查看您的 winbind 设置,以确定身份验证是否真正成功。如果您从 AD 控制器不喜欢的域成员提交凭据,则密码是否正确无关紧要 - 迟早,该帐户将被锁定,因为该请求源自被认为是非域成员。首先要检查的是 winbind 加入域,因为这会影响是否查看凭据。我还会看看你的管理帐户是如何被 winbind 处理的——我似乎记得有一个或两个额外的设置需要确保正确的行为(当我有它们时我会挖掘它们并重新编辑...... )

    我还建议在本地 linux 机器上设置一个二级密码,使用/etc/passwd,这样你就有“失败”的身份验证。如果 winbind 服务无法通过身份验证(在这种情况下是这样),/etc/passwd它将弥补这一缺陷并允许您进入。您仍然能够进入的事实似乎表明您已经通过设置本地来完成此操作密码与您使用的帐户的 AD 密码相同。

    还可以考虑以 sudo 条目的形式安装另一个安全阀,以便单个特定帐户允许您通过sudo su.

    • 3

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

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

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +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