一、账号安全:从基础配置到策略管控
账号是系统访问的第一道门户,精细化的账号配置能有效降低未授权访问风险。
1. 账号与密码基础管理
-
账号锁定与解锁 :通过
usermod命令可快速管控账号状态,锁定账号禁止登录:bash
运行
usermod -L zhangsan # 锁定账号 passwd -S zhangsan # 查看账号状态解锁账号则使用
usermod -U zhangsan,配合passwd命令可重置密码并设置过期策略。 -
密码文件权限加固 :
/etc/passwd与/etc/shadow是核心密码存储文件,需严格限制权限:bash
运行
chattr +i /etc/passwd /etc/shadow # 锁定文件防止篡改 lsattr /etc/passwd /etc/shadow # 验证文件属性若需修改配置,先执行
chattr -i解锁,修改后重新锁定。
2. 密码安全策略与自动注销
-
密码有效期管控 :通过
chage命令设置密码最大使用天数,强制用户定期更换:bash
运行
chage -M 30 lisi # 设置lisi用户密码30天后过期 chage -d 0 zhangsan # 强制用户下次登录时修改密码 -
会话自动注销 :修改
/etc/profile或~/.bash_logout配置TMOUT环境变量,实现闲置会话自动注销:bash
运行
echo "export TMOUT=300" >> /etc/profile # 5分钟无操作自动注销 source /etc/profile
二、权限管理:su 与 sudo 的安全实践
避免直接使用root账号操作是 Linux 安全的基本原则,通过su和sudo可实现权限最小化分配。
1. su 命令:切换用户的基础工具
su命令用于快速切换用户身份,su -会加载目标用户的环境变量,更贴近真实登录场景:
bash
运行
su - root # 切换至root并加载环境变量
su jerry # 切换至jerry用户,保留当前环境
但su命令需要知道目标用户密码,不利于权限隔离,因此生产环境更推荐sudo。
2. sudo 命令:精细化权限分配
sudo允许管理员授权普通用户执行特定命令,无需共享root密码,核心配置文件为/etc/sudoers。
-
基础授权配置 :
bash
运行
visudo # 编辑sudoers文件(推荐使用visudo避免语法错误) # 配置示例:允许jerry用户在所有主机执行ls命令 jerry ALL=(ALL) /usr/bin/ls -
分组授权与日志审计 :将用户加入
wheel组并配置组授权,同时开启sudo日志记录操作行为:bash
运行
echo "Defaults logfile=/var/log/sudo.log" >> /etc/sudoers # 开启sudo日志 gpasswd -a tom wheel # 将tom加入wheel组配合
PAM认证模块,可进一步实现二次认证、密码复杂度校验等增强策略。
三、系统日志与审计:追溯安全事件
日志是安全事件溯源的核心依据,Linux 通过rsyslog和journald实现日志收集与管理。
1. 核心日志文件解读
-
系统日志 :
/var/log/messages记录系统核心运行信息,包括服务启动、硬件故障等。 -
安全日志 :
/var/log/secure记录用户登录、sudo操作等安全相关事件,是排查未授权访问的关键文件。 -
日志轮转 :通过
logrotate配置日志切割,避免日志文件无限膨胀:bash
运行
cat /etc/logrotate.d/syslog # 查看系统日志轮转策略
2. 日志分析与审计
结合grep、awk等工具可快速筛选安全事件,例如排查失败登录:
bash
运行
grep "Failed password" /var/log/secure # 筛选暴力破解尝试
awk '{print $11}' /var/log/secure | sort | uniq -c # 统计各IP登录尝试次数
对于关键业务,可部署auditd工具实现文件访问、系统调用的细粒度审计。
四、总结
Linux 系统安全是一个持续迭代的过程,从账号锁定、权限最小化到日志审计,每一步都在构建纵深防御体系。本文介绍的命令与配置是基础安全实践,实际生产环境中还需结合防火墙、SELinux、入侵检测系统等工具,形成完整的安全防护闭环。
后续可进一步探索firewalld端口管控、OpenSSH安全加固等进阶内容,持续提升系统抗风险能力。