centos7的密码安全策略加固

centos7操作系统

在CentOS 7上实现密码复杂度策略设置

一.使用login.defs文件

解析:/etc/login.defs 是设置新建用户帐号限制的文件。该文件里的配置对root用户无效。/etc/login.defs 文件用于在Linux创建用户时,对用户的一些基本属性做默认设置,例如指定用户 UID 和 GID 的范围,用户的过期时间,密码的最大长度等

可用参数 

PASS_MAX_DAYS    
PASS_MIN_DAYS
PASS_MIN_LEN
PASS_WARN_AGE

UID_MIN
UID_MAX
GID_MIN
GID_MAX
CREATE_HOME
UMASK 077
USERGROUPS_ENAB
ENCRYPT_METHOD           

二./etc/security/pwquality.conf详解

可用参数

 1 retry=N:定义登录/修改密码失败时,可以重试的次数;
 2 Difok=N:定义新密码中必须有几个字符要与旧密码不同。但是如果新密码中有1/2以上的字符与旧密码不同时,该新密码将被接受
 3 minlen=N:定义用户密码的最小长度
 4 dcredit=N:定义用户密码中必须包含多少个数字
 5 ucredit=N:定义用户密码中必须包含多少个大写字母
 6 lcredit=N:定义用户密码中必须包含多少个小些字母
 7 ocredit=N:定义用户密码中必须包含多少个特殊字符(除数字、字母之外)
 8 minclass=N: 密码组成至少拥有的字符种类(数字,大写字母小写字母特殊字符)
 9 maxrepeat=N: 密码组成允许的最长连续字母长度
10 maxclassrepeat=N: the maximum number of allowed consecutive(连续)characters of the same class in the new password 
11 
12 其中 N=-1表示,至少有一个 |对于密码策略 <0表示最少要含有 >0表示最多
13 N=0 不检查
14 N=1 

 

三 使用PAM pwquality模块完成  关键词: /etc/pam.d/system-auth

linux对应的密码策略模块有:pam_passwdqc 和 pam_pwquality 。其中pam_passwdqc模块对应的是/etc/login.defs,pam_pwquality对应的是/etc/security/pwquality.conf

如果直接在system-auth文件修改的话可能要加一下参数 但是如果直接找到文件的话就可以直接修改文件对应参数的数字

1 vi /etc/pam.d/system-auth
#进入system-auth文件后源文件为

 由上面的pam模块文件内容看,可以将pam配置文件分为四列

  • 第一列代表模块类型
  • 第二列代表控制标记
  • 第三列代表模块路径
  • 第四列代表模块参数

文件解析 

第一列

1. auth组件:认证接口(authentication) 要求验证密码

2.account组件:检测用户是否允许访问.检测用户是否过期或则在末端时间内能否登陆

3.password组件:设置并验证密码

4.session组件:配置和管理用户sesison


第二列

1. required:该模块必须success才能进行继续。即使失败用户也不会立刻获知,直到所有相关模块完成

2.requisite:该模块必须success才能使认证继续进行. 如果模块失败则立刻停止执行

3.suffifient:如果失败则忽略

4.optinal:忽略结果,不管是否失败


 第三列

PAM模块 结合管理类型 说明
pam_unix.so

auth

提示用户输入密码,并与/etc/shadow文件相比对.匹配返回0

account 检查用户的账号信息(包括是否过期等).帐号可用时,返回0.
password 修改用户的密码. 将用户输入的密码,作为用户的新密码更新shadow文件
pam_shells.so

auth

account 

如果用户想登录系统,那么它的shell必须是在/etc/shells文件中之一的shell
pam_deny.so

account

auth

password

session

该模块可用于拒绝访问
pam_permit.so

auth

account

password

session

模块任何时候都返回成功.
pam_securetty.so auth 如果用户要以root登录时,则登录的tty必须在/etc/securetty之中.
pam_listfile.so

auth

account

password session

访问应用程的控制开关
pam_cracklib.so password

这个模块可以插入到一个程序的密码栈中,用于检查密码的强度.

pam_limits.so session 定义使用系统资源的上限,root用户也会受此限制,可以通过/etc/security/limits.conf或/etc/security/limits.d/*.conf来设定
posted @ 2023-02-28 10:46  lisenMiller  阅读(652)  评论(0编辑  收藏  举报