CentOS/RedHat:设置密码质量要求

时间:2020-01-09 10:43:23  来源:igfitidea点击:

我有为每个用户创建了一个唯一的默认组,还使用Linux组来增强安全性。
此外,一个名为用户的组允许通过ssh登录。
但是,如何对所有用户强制执行密码质量控制。
如何在CentOS或者RHEL 5.x服务器操作系统上创建密码策略并强制其使用?

您可以使用PAM(可插入身份验证模块)为所有用户配置简单的密码强度检查和密码更改策略。

/etc/pam.d/system-auth提供了用于系统认证的重要设置。

  • pam_cracklib是用于PAM的简单密码强度检查模块。除了检查常规密码外,它还支持密码短语并可以提供随机生成的密码短语。
  • pam_passwdqc该模块仅为一个PAM管理组提供功能:密码更改。就模块类型参数而言,这是密码功能。
  • pam_chauthtok()服务功能可能会要求用户提供新密码,并验证其是否符合某些最低标准。如果选择的密码不令人满意,那么服务功能将返回PAM_AUTHTOK_ERR。

设置强度检查密码

默认的pam_cracklib PAM模块提供密码强度检查。
如果发现以下任何一种情况,它将拒绝密码:

  • Palindrome新密码是旧密码的回文吗?
  • "仅大小写更改"新密码是否仅是旧密码而仅更改大小写?
  • "类似"新密码是否与旧密码过于相似?
  • "简单"新密码是否太小?
  • Rotated新密码是旧密码的旋转版本吗?
  • 已经使用过过去使用过密码吗?先前使用的密码可在/etc/security/opasswd中找到。

了解如何使用pam_cracklib设置针对字典攻击的检查密码。

警告!如果执行这些示例,可能会导致计算机崩溃。
更改PAM配置文件时要小心。
确保首先使用沙盒环境测试所有选项。

如何使用pam_passwdqc密码质量控制PAM模块

编辑文件/etc/pam.d/system-auth:

# cp /etc/pam.d/system-auth /root/backup/system-auth
# vi /etc/pam.d/system-auth

找到这行:

password    requisite     pam_cracklib.so try_first_pass retry=3

并将其替换为以下行:

password    requisite    pam_passwdqc.so min=disabled,disabled,12,8,7 retry=3

其中:

  • min = N0,N1,N2,N3,N4`min = disabled,disabled,12,8,7'是密码策略。每个字段(N0,N1..N4)用于不同的目的。关键字disabled可用于禁止给定类型的密码,无论其长度如何。每个后续数字都不得大于前一个数字。 N0用于仅由一个字符类的字符组成的密码。字符类是数字,小写字母,大写字母和其他字符。
  • N1用于由不符合密码要求的两个字符类中的字符组成的密码。
  • N2用于密码短语。密码短语必须包含足够的单词(请参阅下面的密码短语选项)。
  • N3和N4用于分别由三个和四个字符类的字符组成的密码。
  • 在计算字符类别的数量时,不计算用作密码的第一个字符的大写字母和用作最后一个字符的数字。
  • 除了足够长之外,还要求密码包含足够多的不同字符以用于字符类以及已针对其进行检查的最小长度。
  • retry = 3如果用户未能提供足够强度的密码并第一次输入两次,模块将要求输入新密码的次数。

有关详细的配置选项,请参见帮助文件/usr/share/doc/pam_passwdqc-1.0.2/README和手册页pam_passwdqc。

如何锁定用户帐户?

您需要使用pam tally2 PAM模块,该模块提供了在多次尝试登录失败后锁定用户帐户的功能。