Centos7安全实践之用户密码管理

Centos7安全实践之用户密码管理,第1张

本文主要内容设定系统密码的一般性原则,并按次原则在centos7上实践和测试。

这个需要修改两个文件

先在 /etc/pam.d/passwd 添加以下的内容,这样才能够使用pam_quality

然后在 /etc/security/pwquality.conf 中添加以下的内容

测试,当不满足4种类型的字符的要求时

先修改/etc/pam.d/system-auth 文件和闭袜/etc/pam.d/password-auth 文件中的 auth 区段,在两文件里分别添加以下的内容:

再在两文件的account区段分别添加以下的内容:

测试,当连续3次密码错误后,用户将被锁定10分钟,次时,如果root用户执行以下命令,将用以下的提示

可以查看用户自上次成功登录后,每个用户失败登的情况,

以上是针对非root用户的,如果希望对root也有效,则须在/轿吵激etc/pam.d/system-auth 文件和 /etc/pam.d/password-aut文件中的pam_faillock 条目里添加 even_deny_root 选项:

可以使用 chage 命令来指碰渣定期限,格式如下:

1) nginx反向代理缓存乎搏的目录为/usr/local/nginx/cache;

2) 缓存文件的key和其它信息放在一个10M的共享内存中枯滑,命名为one;

3) 缓存文件最大占用1G磁盘空间没顷腊;

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

示例文件内容如下:

auth required pam_securetty.so

auth required pam_unix.so shadow nullok

auth required pam_nologin.so

account required pam_unix.so

password required pam_cracklib.so retry=3

password required pam_unix.so shadow nullok use_authtok

session required pam_unix.so

三个auth都会用来进行登陆检查,即使第一个模块失败,用来防止用户知道在哪个过程失败,主要目的是防止攻击。

auth 组件:认证接口,要求并验证密码

account组件:检测是否允许访问。检测账唯衫户是否过期或则在末端时间内能否登陆。

password组件:设置并验证密码

session组件:配置和管理用前者户sesison。

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

requisite:该模块必须success才能使认证继续进行。

suffifient:如果失败则忽略。

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

auth required pam_securetty.so

确保如果用户尝试以 root 身份登录, 则用户登录的 tty 将列在/etc/securetty 文件中, 如果该文件存在的话。

auth required pam_unix.so shadow nullok

提示登陆用户输入密码然后根据/etc/passwd中保存的对应密码进行验证,如果/etc/shadow存在的话。pam_unis.so模块会自动检测并使用密码验证用户。

auth required pam_nologin.so

认证最后的步骤,验证/etc/nologin文件是否存在,如果nologin存在并且用户身份不是root,则认证失败。

account required pam_unix.so

该模块执行必要的账户检验。如果enable shadow passwords,pam_unix.so模块会检验账号是否已经过期或则在宽限的时间内改过密码。

password required pam_cracklib.so retry=3

如果密码过期,pam_cracklib.so要求一个新密码,如果新密码复杂度不满足不要,会在给用户两次机会重新输入密码强度够的密码。一共三次。pam_cracklib.so支持的选项如下:

minlen=N:新密码的最小长度

dcredit=N:当N>0时表示新密码中数字出现的指悔腔最多次数;当N<0时表示新密码中数字出现最少次数;

ucredit=N: 当N>0时表示新密码中大写字母出现的最多次数;当N<0时表示新密码中大写字母出现最少次数;

lcredit=N: 当N>0时表示新密码中小写字母出现的最多次数;当N<0时表示新密码中小写字母出现最少次数;

ocredit=N:当N>0时表示新密码中特殊字符出现的最多次数;当N<0时表示新密码中特殊字符出现最少次数;

maxrepeat=N:拒绝包含多于N个相同连续字符的密码。 默认值为0表示禁用此检查

maxsequence=N:拒绝包含长于N的单调字符序列的密码。默认值为0表示禁用此检查。实例是'12345'或'fedcb'。除非序列只是密码的一小部分,否则大多数此类密码都不会通过简单检查。

enforce_for_root: 如果用户更改密码是root,则模块将在失败检查时返回错误。默认情况下,此选项处于关闭状态,只打印有关失败检查的消息,但root仍可以更改密码。不要求root用户输入旧密码,因此不会执行比较旧密码和新密码的检查。

password required pam_unix.so shadow nullok use_authtok

如果需要更改用户的密码,则必须由pam_unix.so模块来 *** 作。

shadow标识:当更新用户密码的时候创建shadow passwords

nullok标识:用户可以从空密码更改他们的密码否则空密码视为账户锁定。

user_authok标识:禁用请求新密码。接受任何由前一个功能模块创建的密码,但是改密码必须交由pam_cracklib.so检测。

session required pam_unix.so

pam_unix.so session组件,在/var/log/messages当中记录用户名和服务类型


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12301616.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存