Linux设置密码复杂度

一、linux密码设置及登陆控制

密码设置及登陆控制文件位置:/etc/pam.d/system-auth

1. Linux中pam模块

Linux-PAM(linux可插入认证模块)是一套共享库,使本地系统管理员可以随意选择程序的认证方式。换句话说,不用重新编译一个包含PAM功能的应用程序,就可以改变它使用的认证机制。这种方式下,就算升级本地认证机制,也不用修改程序. PAM使用配置/etc/pam.d/下的文件,来管理对程序的认证方式.应用程序 调用相应的配置文件,从而调用本地的认证模块.模块放置在/lib/security下,以加载动态库的形式进,像我们使用su命令时,系统会提示你输入root用户的密码.这就是su命令通过调用PAM模块实现的。

1.1 PAM的模块类型

Linux-PAM有四种模块类型,分别代表四种不同的任务,它们是:
认证管理(auth),
账号管理(account),
会话管理(session)
密码(password)管理,
一个类型可能有多行,它们按顺序依次由PAM模块调用.

vi /etc/pam.d/system-auth

如下图:
Linux设置密码复杂度_第1张图片

配置分为基本分为四列:模块名称、控制、模块库文件和参数。

其中模块主要分四种,具体功能如下:

  • auth模块: 用来对用户的身份进行识别.如:提示用户输入密码,或判断用户是否为root等.
  • auth模块: 对帐号的各项属性进行检查.如:是否允许登录,是否达到最大用户数,或是root用户是否允许在这个终端登录等.
  • session模块: 这个模块用来定义用户登录前的,及用户退出后所要进行的操作.如:登录连接信息,用户数据的打开与关闭,挂载文件系统等.
  • password模块: 使用用户信息来更新.如:修改用户密码.

总结: auth、account、password、session,auth是一个标识符,说明要干的事情,auth处理登录时验证方面的事,account、password、session和登录时验证没啥关系,比如password是处理更改密码时的事情。

常用PAM模块

1.2 控制介绍

控制用来标记处理和判断各个模块的返回值。控制分为六种:

  • required 表示即使某个模块对用户的验证失败,也要等所有的模块都执行完毕后,PAM 才返回错误信息。

  • requisite 和required相似,但是如果这个模块返回失败,则立刻向应用程序返回失败,表示此类型失败.不再进行同类型后面的操作.

  • sufficient 表示如果一个用户通过这个模块的验证,PAM结构就立刻返回验证成功信息,把控制权交回应用程序。其后相关模块的所有控制都将会比忽略。

  • optional 只有当它是与此服务+类型相关联的配置项是中的唯一模块时,模块返回才有意义。

  • include 引入改项指定文件中的所有配置项。

  • substack 和include类似。不同之处在于,对子堆中的完成和失败的行为的评估不会导致跳过整个模块堆栈的其余部分,而只会跳过子模块。

2. LINUX设置密码复杂度

CentOS操作系统密码复杂度策略设置
参考URL: https://yuweidong.blog.csdn.net/article/details/107831661
CentOS7密码复杂度配置
参考URL: https://blog.csdn.net/longfeizzu/article/details/101377584
linux设置密码复杂程度
参考URL: https://blog.csdn.net/weixin_43226231/article/details/105963093

在大多数 Linux 系统中,我们可以用 PAM(可插拔认证模块pluggable authentication module)来加强密码策略。

在下面的路径可以找到这个文件。

在红帽系列的系统中,路径:/etc/pam.d/system-auth
Debian 系列的系统中,路径:/etc/pam.d/common-password
在CentOS 7上实现密码复杂度策略设置,主要是使用PAM pwquality模块完成

1、备份原有配置文件

cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak

2、设置复杂度策略

vim /etc/pam.d/system-auth

找到包含pam_pwquality.so模块的行,将原有行注释并修改为如下的新配置,密码长度最少12位,至少包含一个大写字母,一个小写字母,一个数字,一个特殊符号。

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=12 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root
  • minlen=12 密码最小长度为8个字符。
  • lcredit=-1 密码应包含的小写字母的至少一个
  • ucredit=-1 密码应包含的大写字母至少一个
  • dcredit=-1 将密码包含的数字至少为一个
  • ocredit=-1 设置其他符号的最小数量,例如@,#、! $%等,至少要有一个
  • enforce_for_root 确保即使是root用户设置密码,也应强制执行复杂性策略。
3. 用户不能使用su来进行切换用户

查看日志secure, 日志存放的为/var/log/secure
————————————————
版权声明:本文为CSDN博主「西京刀客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/inthat/article/details/117920671

你可能感兴趣的:(linux,服务器,java)