一、异常用户检测
1. 加固说明
检查当前系统是否存在无用账户、可疑账户,以便及时对异常账户进行禁用或者删除,可防止系统被黑客所创建的账户登录。
2. 加固准备
在Unix和Linux系统中/etc/shadow
用于存放本地系统帐户加密的密码信息,/etc/passwd
文件用于存储本地系统帐户信息。/etc/passwd
文件每一行代表一个用户账户,并由冒号(:)分隔的七个字段组成。以下是各字段的详细说明:
- 用户名(Username)
这是用户的登录名,用于登录系统。它是唯一的,不能有两个用户拥有相同的用户名。 - 密码(Password)
在早期的Unix系统中,这个字段实际上包含加密的密码。然而,出于安全考虑,现代系统通常将这个字段设置为x,实际的加密密码存储在/etc/shadow文件中。使用x是因为/etc/shadow提供了更多的密码管理和安全性选项。 - 用户ID(User ID, UID)
这是一个唯一的数字,用于在系统内部标识用户。通常,系统用户(如daemon、sys等)的UID小于1000,而普通用户的UID大于1000。但这并不是硬性的规则,可以根据需要进行配置。 - 组ID(Group ID, GID)
这是用户主组的唯一数字标识。用户可以属于多个组,但这个字段表示用户的主组。 - 用户全名或注释 (User Full Name or Comment)
这个字段通常包含用户的全名或描述。它并不用于身份验证,但可以为管理员或其他用户提供有关该账户的信息。某些程序和服务也可能使用这个字段来存储额外的配置信息。 - 家目录(Home Directory)
这是用户登录后所在的默认目录。例如,对于kylin用户,其家目录可能是/home/kylin。当用户登录时,他们的shell通常会启动并位于这个目录中。 - 默认Shell(Default Shell)
这是用户登录时运行的程序,通常是shell(如/bin/bash、/bin/sh等)。如果这个字段为空,用户将无法使用shell登录。
3. 加固建议
查看系统中所有用户信息:sudo more /etc/passwd
请对照各个字段,根据命令结果查看是否存在异常账户,例如除root用户外还有其他UID为0的账户,以及非系统或用户自己创建的可疑账户,对于可疑账户可使用命令进行删除或锁定。
账户删除命令:sudo userdel -r 用户名
锁定账户命令:sudo usermod -L 用户名
解锁账户命令:sudo usermod -U 用户名
检查否存在空口令的账户:sudo awk -F ":" ‘($2=="") {print $1}' /etc/shadow
该命令执行后没有输出证明系统中没有空口令的账户,如果有空口令的账户,请使用passwd命令给用户设置密码。
设置账户密码:sudo passwd 用户名
4. 操作示范
查看系统中的所有用户信息:sudo more /etc/passwd
检查否存在空口令的账户:sudo awk -F ":" '($2=="") {print $1}' /etc/shadow
设置账户密码,以kylin用户为例:sudo passwd kylin
可疑用户锁定:sudo usermod -L test
可疑用户解锁:sudo usermod -U test
可疑用户删除:sudo userdel -r test