文章目录
一、账号安全控制
- 用户账号,是计算机使用者的身份凭证或标识,每一个要访问系统资源的人,必须凭借其用户账号才能进入计算机
- 在 Linux 系统中,提供了多种机制来确保用户账号的正当、安全使用
1.基本安全措施
1.1 系统账号清理
- 在 Linux 系统中,除了用户手动创建的各种账号之外,还包括随系统或程序安装过程而生成的其他大量账号
- 除了超级用户 root 之外,其他大量账号只是用来维护系统运作、启动或保持服务器进程,一般是不允许登录的,因此也称为非登录用户
- 为了确保系统安全,这些系统的登录 shell 通常是 /sbin/nologin,表示禁止终端登录,应确保不被人为改动
grep "/sbin/nologin$" /etc/passwd
#查看
usermod -s /sbin/nologin 用户名
#将非登录用户的 shell 设为 /sbin/nologin
- 各种非登录用户中,还有相当一部分是很少用到的,这些账号可以视为冗余账号,直接删除即可
- 除此之外,还有一些随应用程序安装的用户账号,若程序卸载以后未能自动删除,则需要管理员手动进行清理
userdel -r 用户名
#删除用户及其宿主目录
- 对于 Linux 服务器中长期不用的用户账号,若无法确认是否应该删除,可以暂时将其锁定(passwd、usermod 命令皆可用来锁定、解锁账号)
usermod -L 用户名
#锁定用户账号
passwd -l 用户名
#锁定用户密码,锁定的用户将无法再登录系统
passwd -S 用户名
#查看账号状态(是否被锁定)
usermod -U 用户名
#解锁用户账号
- 如果服务器中的用户账号已经固定,不再更改,还可以采取锁定账号配置文件的方法
chattr +i /etc/passwd /etc/shadow
#锁定文件
lsattr /etc/passwd /etc/shadow
#查看为锁定的状态
chattr -i /etc/passwd /etc/shadpow
#解锁文件
lsattr /etc/passwd /etc/shadow
#查看为解锁的状态
注:在账号文件被锁定的情况下,其内容不允许变更,因此无法添加、删除账号,也不能更改用户的密码、登录 Shell、宿主目录等属性信息
1.2 密码安全控制
- 在不安全的网络环境中,为了降低密码被才出或被暴力破解的风险,用户应养成定期更改密码的习惯,避免长期使用同一个密码
- 管理员可以在服务器端限制用户密码的最大有效天数,对于密码已过期的用户,登录时被要求重新设置密码,否则将拒绝登录
- 执行以下操作可将密码的有效期设为 30 天(chage 命令用于设置密码时限)
vim /etc/login.defs
...
PASS_MAX_DAYS 30
#该设置方法适用于新建的用户
chage -M 日期 用户
#设置用户密码有效期
chage -E xxxx-xx-xx
#设置过期日期
例:
chage -M 30 xcf
#该设置方法适用于已存在的用户
- 在某些特殊情况下,如要求批量创建的用户初次登录时必须自设密码,根据安全规划统一要求所有用户更新密码等,可以由管理员执行强制策略,以便用户在下次登录时必须更改密码
- 执行以下操作可强制要求用户再下次登录时重设密码
chage -d 0 用户名
#强制在下次登录时修改密码
cat /etc/shadow | grep 用户名
#第三个字段会被修改为 0
1.3 命令历史限制
- Shell 环境的命令历史机制为用户提供了极大的便利,但另一方面也给用户带来了潜在的风险
- 只要获得用户的