服务器自动防卫需构建监控-审计-响应闭环:Fail2Ban联动auth日志封禁SSH暴力破解;auditd监控/etc/shadow并告警响应;定时巡检修复配置漂移;多节点日志聚合识别横向攻击并自动阻断。

要让服务器具备自动防卫能力,核心不是堆砌工具,而是把监控、审计、响应三个环节串成闭环——监控发现异常,审计确认行为,响应自动处置。这不是概念,是已在生产环境验证的实战路径。
实时认证日志监控 + Fail2Ban 自动封禁
SSH 是攻击入口,也是最易联动的突破口。关键不是“看日志”,而是让日志触发动作:
- 确保 /var/log/auth.log(Ubuntu/Debian)或 /var/log/secure(CentOS/RHEL)持续可读,权限为
600,仅 root 可访问 - 安装 Fail2Ban 后,启用默认的
sshdjail,并将maxretry = 3、bantime = 1h写入/etc/fail2ban/jail.local - 验证是否生效:用错误密码连续登录 3 次,再尝试第 4 次应直接被拒绝,且
fail2ban-client status sshd显示该 IP 已在 ban 列表中
auditd 审计规则 + 关键事件告警联动
auditd 不只是记录,它能捕获 root 权限变更、敏感文件修改等高危操作,配合脚本即可触发响应:
- 添加一条强约束规则,监控
/etc/shadow被读取或修改:-w /etc/shadow -p wa -k shadow_access,写入/etc/audit/rules.d/shadow.rules - 用
ausearch -k shadow_access实时检查匹配事件;若发现非预期访问(如非 root 用户调用 cat),可立即执行脚本:
→ 发送企业微信/钉钉告警
→ 记录当前登录会话w > /var/log/shadow_alert_$(date +%s).log
→ 自动锁定该用户usermod -L username - 注意避免过度审计:不建议对
openat等高频系统调用全量监控,否则日志爆炸、掩盖真正威胁
定时巡检 + 配置漂移自动修复
加固不是一次性的,配置可能被误改或恶意篡改,需周期性校验并回滚:
- 编写检查脚本,比对关键项:
→sshd_config中PasswordAuthentication no、PermitRootLogin no是否为 yes/no
→TMOUT=180是否存在于/etc/profile
→auditd服务是否 active - 用 cron 每 5 分钟执行一次:
*/5 * * * * root /usr/local/bin/audit_fix.sh > /dev/null 2>&1 - 脚本内逻辑:若检测到异常配置,先备份原文件,再用
sed或cp替换为加固模板,并重启对应服务(如systemctl reload sshd)
日志聚合 + 异常模式识别(进阶联动)
单台服务器的日志价值有限,但当多节点日志统一接入(如通过 rsyslog 或 filebeat 推送到 ELK 或 Loki),就能识别跨主机攻击模式:
- 例如:同一 IP 在 3 台不同服务器上均出现
Failed password+sudo: unknown user组合,即判定为横向扫描行为 - 此时可由中心化脚本自动下发防火墙规则:
iptables -I INPUT -s $ATTACKER_IP -j DROP到所有节点 - 该机制依赖标准化日志格式与统一时间同步(
chrony必须启用),否则关联分析失效

















