目录
一、账号安全基本设施
1、系统账号清理
- 将非登录用户的shell设为/sbin/nologin
- 锁定长期不使用的账号
- 删除无用的账号
- 锁定账号文件passwd、shadow
1.1 将用户设置为无法登陆
[root@localhost ~]# tail /etc/passwd
#查看zhangsan的属性
[root@localhost ~]# chsh -s /sbin/nologin zhangsan
#修改zhangsan的shell属性
[root@localhost ~]# tail -1 /etc/passwd
#查看zhangsan的属性
1.2 锁定长期不使用的账号(锁定用户 )
锁定用户:
[root@localhost ~]# usermod -L li
#锁定用户li
[root@localhost ~]# passwd -S li
#查看用户li的状态
[root@localhost ~]# usermod -U li
#解锁用户li
[root@localhost ~]# passwd -S li
#查看用户li的状态
解锁用户:
[root@localhost ~]# passwd -l li
#锁定用户 li 的密码
[root@localhost ~]# passwd -u li
#解锁用户 li 的密码
1.3 删除无用的账号
[root@localhost ~]# ls /home
#查看home目录下所有账号
[root@localhost ~]# userdel lisi
#删除用户lisi 但家目录下的用户lisi 目录没有被删除,变成无主目录
[root@localhost ~]# ls /home
#查看home目录下所有账号,发现lisi目录没有被删除,变为无主目录
[root@localhost ~]# userdel -r lier
#删除用户lisi 并且用户目录也被删除
1.4 chattr 锁定配置文件
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow
#锁定配置文件,此时不能更改密码
[root@localhost ~]# lsattr /etc/passwd /etc/shadow
#查看配置文件状态属性
[root@localhost ~]# passwd zhangyi
更改zhangyi的密码,发现无法更改密码
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow
#解锁配置文件
[root@localhost ~]# lsattr /etc/passwd /etc/shadow
#查看配置文件状态属性
[root@localhost ~]# passwd zhangyi
更改zhangyi的密码,发现可以更改密码
2、密码安全控制
2.1 设置密码规则
对于新建用户,可以进入/etc/login.defs进行修改属性,设置密码规则,使得在下次创建用户时密码信息生效
举例:
新建用户并更改密码属性
[root@localhost ~]# cat /etc/shadow|tail -1
#查看配置文件shadow中最后一个用户的密码信息,可以发现最长有限期限为99999天(相当于永久)
[root@localhost ~]# vim /etc/login.defs
#进入login.defs修改密码信息
2.2 chage 对已创建用户密码管理
对于已有用户可以使用chage命令
格式:chage [选项] 用户名
选项 | 功能 |
---|---|
-m | 密码可更改的最小天数。为零时代表任何时候都可以更改密码。 |
-M | 密码保持有效的最大天数。 |
-w | 用户密码到期前,提前收到警告信息的天数。 |
-E | 帐号到期的日期。过了这天,此帐号将不可用。 |
-d | 上一次更改的日期。 |
-i | 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。 |
-l | 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。 |
举例:
将用户li的密码保持有效最大天数为30
[root@localhost ~]# cat /etc/shadow|tail -1
#查看最后一行的用户的信息
[root@localhost ~]# chage -M 30 li
#将用户li的密码保持有效最大天数为30
[root@localhost ~]# cat /etc/shadow|tail -1
#查看最后一行的用户的信息
下次登录一定要输入密码
输入当前密码
输入当前密码
输入新的密码
3、命令历史限制
Shell 环境的命令历史机制为用户提供了极大的便利,但另一方面也给用户带来了潜在 的风险。只要获得用户的命令历史文件,该用户的命令操作过程将会一览无余,如果曾经在 命令行输入明文的密码,则无意之中服务器的安全壁垒又多了一个缺口。 Bash 终端环境中,历史命令的记录条数由变量 HISTSIZE 控制,默认为 1000 条。通 过修改/etc/profile 文件中的 HISTSIZE 变量值,可以影响系统中的所有用户。例如,可以设 置最多只记录 200 条历史命令。
3.1 临时修改当前用户的历史命令条数
[root@localhost ~]# export HISTSIZE=200 //临时修改历史