Linux系统加固核心是“最小权限+收敛暴露面+关键行为可审计”:禁用root远程登录、强制强密码/密钥认证、清理无用账户;停用非必要服务与端口;收紧文件权限及目录属性;启用rsyslog与auditd实现登录、sudo及配置变更的全程审计。

Linux系统加固不是堆砌安全工具,而是建立一套有重点、可落地、易维护的防护逻辑。核心思路是:最小权限原则 + 及时收敛暴露面 + 关键行为可审计。
账户与认证加固
默认账户和弱密码是入侵第一跳板。必须禁用或锁定root远程登录,改用普通用户+sudo;所有用户强制使用强密码策略(或密钥登录);删除或禁用无用账户(如games、lp、sync等)。
- 执行 passwd -l root 锁定root密码(同时确保一个普通用户已配置sudo权限)
- 编辑 /etc/ssh/sshd_config,设置 PermitRootLogin no 和 PasswordAuthentication no(启用密钥后)
- 用 chage -M 90 -W 7 username 强制90天密码过期、提前7天提醒
- 运行 awk -F: '$3 == 0 {print $1}' /etc/passwd 检查UID为0的非root账户,及时清理
服务与端口最小化
不运行的服务=不暴露的攻击面。系统装完后,默认开启的sshd、chronyd等未必都必要;尤其要关闭telnet、ftp、rsh等明文协议服务。
- 用 systemctl list-unit-files --type=service | grep enabled 查看开机自启服务,逐个确认用途
- 停用并禁用无关服务:systemctl stop firewalld && systemctl disable firewalld(若用iptables/ufw则关firewalld)
- 用 ss -tlnp 或 netstat -tuln 查监听端口,结合 lsof -i :端口号 定位进程,非必要一律关闭
- Web服务器若只对内网提供服务,绑定到 127.0.0.1 或内网IP,而非0.0.0.0
文件系统与权限收紧
敏感配置文件被篡改常是提权起点。/etc/shadow必须仅root可读写;sudoers必须用visudo修改;关键目录如/boot、/etc应禁止普通用户写入。
- 执行 chmod 600 /etc/shadow /etc/gshadow、chmod 644 /etc/passwd /etc/group
- 检查 /etc/sudoers 权限是否为 440,内容中避免出现 ALL=(ALL) NOPASSWD: ALL 这类宽泛授权
- 给关键目录加不可变属性(需root):chattr +i /boot/grub2/grub.cfg(更新内核后需临时移除再重设)
- 用 mount | grep nodev,nosuid,noexec 确认/tmp、/var/tmp等挂载选项是否启用安全标志
日志与审计不能少
没有日志的安全等于没安全。至少要保证登录、sudo、关键配置变更可追溯;建议开启auditd对敏感路径做细粒度监控。
- 确保 rsyslog 正常运行,配置远程日志(发送至专用日志服务器),防止本地日志被删
- 启用auditd:systemctl enable auditd && systemctl start auditd
- 添加审计规则示例(记录/etc/passwd修改):auditctl -w /etc/passwd -p wa -k identity_change
- 定期检查 ausearch -m USER_LOGIN -ts today 和 ausearch -m EXECVE -ts yesterday
基本上就这些。不复杂但容易忽略——真正有效的加固,不在装多少工具,而在每一步是否清楚“我为什么开这个、关那个”。










