Linux 安全自动化核心是构建可重复、可验证、可回滚的流程,涵盖 Ansible 策略下发、CIS 基线校验、inotifywait 配置监控和 systemd timer 自愈机制四层闭环。

Linux 系统防护自动化,核心在于把安全策略从手动配置变成可重复、可验证、可回滚的自动流程。关键不是堆 工具,而是理清“谁在管什么、策略怎么生效、异常如何发现”这三层逻辑。
用 Ansible 统一下发基础安全策略
Ansible 无需目标主机装客户端,适合批量加固。重点不是写复杂 playbook,而是聚焦高频刚需项:
- 禁用 root 远程 SSH 登录:修改
/etc/ssh/sshd_config中PermitRootLogin no,并systemctl restart sshd - 强制密码复杂度:通过
pam_pwquality模块配置/etc/pam.d/common-password,要求最小长度、大小写字母、数字、特殊字符各至少 1 位 - 关闭非必要服务:用
systemctl disable --now avahi-daemon bluetooth cups等命令停用默认开启但业务不用的服务 - 设置基础 防火墙 规则:用
firewalld仅开放 22(SSH)、80/443(Web)等真实需要的 端口,其余全部拒绝
所有操作都应封装为独立 task,带 when 条件判断(如只在 CentOS 7 上执行某条命令),避免误操作。
用 CIS Benchmark 做合规基线校验
CIS 发布的 Linux 基准是业界公认的安全起点。别只当检查清单看,要把它变成自动校验动作:
- 下载对应版本的 CIS Benchmark 文档(如 CIS Ubuntu 22.04 Level 1)
- 用开源工具 OpenSCAP 加载对应 OVAL 定义文件,运行
oscap xccdf eval --profile xccdf_org.cisecurity.benchmarks_profile_Level_1_Server --report report.html /usr/share/xml/scap/ssg/content/ssg-ubuntu2204-ds.xml - 将扫描结果解析为 JSON,用脚本提取
notchecked和fail项,自动触发修复 playbook
每周定时扫描 + 邮件告警,比人工抽查更可靠。
用 inotifywai t 实时监控关键 配置文件 变动
策略下发不是一劳永逸。攻击者或误操作可能改回不安全配置。需对敏感文件做变更感知:
- 监控
/etc/ssh/sshd_config、/etc/passwd、/etc/shadow、/etc/sudoers等文件 - 用
inotifywait -m -e modify,attrib /etc/ssh/sshd_config监听,一旦变化立即触发校验脚本 - 校验脚本比对当前配置与 Ansible 模板 SHA256 值,不一致则自动恢复,并记录日志到
/var/log/security/audit.log
配合 rsyslog 将该日志转发至 SIEM 平台,形成闭环审计线索。
用 systemd timer 替代 crontab 做策略自愈
传统 crontab 难管理、无依赖、无日志追踪。用 systemd timer 更可控:
- 写一个
security-autoheal.service:执行配置校验 + 修复脚本 - 配套
security-autoheal.timer:设为每天凌晨 2:15 触发,且确保上次任务完成才启动下一次 - 启用:
systemctl daemon-reload && systemctl enable --now security-autoheal.timer - 查状态:
systemctl list-timers --all,失败时自动记录 journal 日志,可用journalctl -u security-autoheal.service排查
所有 timer 和服务都放在 /etc/systemd/system/ 下,随系统启动自动加载,无需额外守护进程。
安全策略自动下发不是追求一步到位,而是让每次变更可追溯、每次检查有反馈、每次异常能自愈。工具只是载体,真正起作用的是策略定义是否清晰、触发条件是否合理、恢复路径是否明确。