CentOS7登录安全修复——密码复杂度-登录限制-root限制登录

本文介绍了如何在CentOS7中加强登录安全性,包括设置密码复杂度策略,如最小长度、字符类型限制,通过编辑/etc/pam.d/system-auth文件并启用enforce_for_root选项限制root用户。同时,禁用root用户直接登录,通过创建普通用户并修改sshd_config文件实现。最后,设置登录失败限制,使用pam_tally2锁定账户。

一、密码复杂度设置

CentOS密码复杂度配置通过/etc/pam.d/system-auth文件中的pam_cracklib.so模块来实现。

首先查看/etc/pam.d/system-auth文件

可以看到当前并没有看到pam_cracklib.so模块

原因:

pam_pwquality.so是兼容pam_cracklib.so模块的,所以pam_cracklib.so的选项也适用于pam_pwquality.so

pam_cracklib.so支持的部分选项如下:

retry=N:定义登录/修改密码失败时,可以重试的次数

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用户输入旧密码,因此不会执行比较旧密码和新密码的检查

接下来修改system-auth文件,配置密码复杂度策略

在system-auth文件中 pam_pwquality.so后添加minlen=8 dcredit=-2 ucredit=-1 lcredit=-1 ocredit=-1

参数含义:密码长度最小为8位,数字出现的最少次数为2次,大写字母出现最少1次,小写字母出现最少1次,特殊字符出现最少1次

 保存退出后,进行测试密码复杂度配置是否生效

 

 新建一个test账户,使用root账户设置test账户的密码为test,密码修改成功。(证明root账户不受pam认证规则的限制

账号密码规则测试:

然后切换到test账户设置test账户的密码。这里尝试设置密码为Pw39@。

报错提示大写字母少于8位,说明minlen=8已经生效。

接下来尝试设置密码为Pwqwert@

 报错提示数字少于2位,说明dcredit=-2已经生效。

接下来尝试设置密码为pw12qwer@

报错提示大写字母少于1位,说明ucredit=-1已经生效。

passwd:Have exhausted maximum number of retries for service(passwd:已经用尽了最多可重试的服务次数),说明retry=3已经生效。

接下来重新设置密码,尝试设置密码为PW12QWER@

 报错提示小写字母少于1位,说明lcredit=-1已经生效。

接下来尝试设置密码为Pw12qwer

报错提示特殊字符少于1位,说明ocredit=-1已经生效。

限制root用户

vi etc/pam.d/system-auth

在sysstem-auth文件中pam_pwquality.so行添加enforce_for_root

然后测试是否root被限制,也要遵守密码复杂度策略

用root账户设置test账户密码为Pw12qwer

 报错提示特殊字符少于1位,说明root用户已经被限制,也要遵守pam认证规则。

 二、禁用root用户登录

注意:禁用root前必须要创建一个普通账户,并且验证用户可以正常登录

1、首先增加一个普通账号,别禁止root账号后没有其他账号登录系统了:

——增加用户:adduser xxxx

——设置密码:passwd xxxx

2、修改ssh配置:

——修改配置文件:vi /etc/ssh/sshd_config

——配置文件中增加一行:PermitRootLogin no 

——保存退出,重启ssh服务:service sshd restart

3、下次登录系统,root账号会被拒绝登录。

——可以先用xxxx登录,之后su root即可

三、限制用户登录失败次数并锁定用户

1. /etc/pam.d/login 修改
主要是这段代码, 放在第二行
auth required pam_tally2.so deny=5 lock_time=300 even_deny_root root_unlock_time=300
deny:连续错误次数
lock_time:锁定时间 单位秒
even_deny_root root_unlock_time=300 这2个是root用户的配置

#%PAM-1.0
###
auth      required  pam_tally2.so   deny=5  lock_time=300 even_deny_root root_unlock_time=300
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth       substack     system-auth
auth       include      postlogin


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值