为什么无密码帐户在 PAM 中会过期?

问题描述 投票:0回答:4

我们在 PAM 中设置了帐户策略,以遵循 RHEL7 STIG 指南 http://rhel7stig.readthedocs.io/en/latest/。我们确实有一些密码为空的服务帐户,并使用 SSH 密钥登录。 60 天后,服务帐户密码将过期并被禁用。这不是我对无密码帐户所期望的行为,我认为密码过期不会适用于无密码帐户。如何告诉 PAM 不要使无密码帐户过期?

在login.defs中

PASS_MIN_DAYS     1
PASS_MAX_DAYS     60
PASS_WARN_AGE     7
FAIL_DELAY        4

在/etc/default/useradd中

INACTIVE=0
linux pam rhel7
4个回答
1
投票

因为系统并不关心这些帐户是否有密码。您必须将 PASS_MAX_DAYS 设置为 99999 或任何看起来适合这些帐户的值。


1
投票

看起来我需要将这些帐户创建为系统帐户。从 useradd 手册页...

将在 /etc/shadow 中创建没有老化信息的系统用户 - https://linux.die.net/man/8/useradd

命令示例。

useradd testuser --system

如果您使用 Ansible,您可以在用户模块中指定系统。

- user:
    name: testuser
    group: testuser
    system: yes

结果在/etc/shadow中可见。请注意,测试用户没有输入密码最长期限。

[root@localhost ~]# useradd testuser --system
[root@localhost ~]# grep testuser /etc/shadow
testuser:!!:17417::::::

[root@localhost ~]# grep ryan /etc/shadow
ryan:*:18976:1:60:7:0::

1
投票

PAM 解决方案提供安全、简化的授权和监控方式 所有相关系统的所有特权用户。

为了方便起见,IT 团队通常共享 root、Windows 管理员和许多其他特权凭据,以便可以根据需要无缝共享工作负载和职责。现在,由于多人共享相同的帐户密码,会产生安全性、可审核性和合规性问题。特权帐户和凭据可能会在不同的组织孤岛中以不同的方式进行管理,从而导致最佳实践的执行不一致。应用程序和服务帐户经常默认拥有过多的特权访问权限,并且还存在其他严重的安全缺陷。

  • 解决方案可以是:“UsePAM no”
  • 解决方案可以是:将用户密码设置为永不过期
  • 您可能不想更改 PAM 或 sshd_config 以确保合规性 原因。
  • 您可能在 sshd_config 中使用密码验证 no
  • 您可能有随机密码。
  • 您甚至可能已经实施了 CIS 合规性。

如果您的用户收到提示,那么 root 可以调整密码更改日期:

for user in `grep ":x:[0-9]\{4\}" /etc/passwd|cut -d: -f1`; do chage -d today $user;

附上一些参考资料:

最后的想法:

我认为,我们需要对我们的帐户进行身份验证,以避免任何第三方或其他不相关的用户访问我们的数据和信息,因为我们可能希望保护这些机密数据免受网络上不同人的关注。

另外,如果您需要我的答案的另一个角度,您可以看看这个答案(https://stackoverflow.com/a/46120833/18154805


-1
投票

Infisign 使您能够实现零信任,确保用户身份验证和验证而不依赖于密码。您的身份成为密钥,无需管理复杂的密码。借助 Infisign,用户可以从任何设备安全地访问其帐户,无需担心未经授权的访问、网络钓鱼攻击、蜜罐或撞库。

© www.soinside.com 2019 - 2024. All rights reserved.