加固Linux防火墙与审计日志,需实现“默认拒绝+精准放行”和“内核级全程审计+防篡改留存”。用nftables设drop策略、限SSH连接、禁IPv6;启用auditd监控关键文件与系统调用,保留180天日志并防删改;联动测试与告警闭环验证有效性。

加固Linux系统的防火墙与审计日志,本质是把“谁可以进来”和“进来后干了什么”这两件事真正管住。不是开个ufw、装个rsyslog就完事,而是让防火墙有策略、有节制,让日志有源头、可追溯、防篡改——两者合起来,才构成纵深防御中网络层与监控层的硬支撑。
防火墙:默认拒绝 + 精准放行 + 连接管控
现代生产环境推荐使用 nftables(取代iptables),它规则更清晰、性能更好、原生支持连接追踪和速率限制。
- 确认默认策略为 drop:
nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; },所有 accept 规则必须显式写在 drop 之前 - 只开放业务必需端口,且绑定地址严格限定:用
ss -tlnp检查监听项,数据库(如MySQL)必须是127.0.0.1:3306,绝不能是0.0.0.0:3306 - 对SSH端口加连接速率限制:在input链中插入规则,例如每分钟最多5个新连接,超限丢弃并记录:
nft add rule inet filter input tcp dport 5022 ct state new limit rate 5/minute counter drop - 禁用IPv6若未使用:在
/etc/default/grub中添加ipv6.disable=1,避免因IPv6配置疏漏导致防火墙规则失效
审计日志:从内核事件到用户操作全程捕获
系统自带的rsyslog只能记录服务日志,真正要实现攻击溯源,必须启用auditd——它是Linux内核级审计框架,能记录系统调用、文件访问、权限变更等底层行为。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- 安装并启用auditd:
yum install -y audit audit-libs && systemctl enable --now auditd - 关键规则示例(写入
/etc/audit/rules.d/critical.rules):-w /etc/passwd -p wa -k identity-w /etc/shadow -p wa -k identity-a always,exit -F arch=b64 -S execve -k exec-a always,exit -F auid!=-1 -F perm=x -k program_exec - 日志保留至少180天:修改
/etc/audit/auditd.conf中max_log_file_action = rotate、num_logs = 10、max_log_file = 50(单位MB),并确保磁盘空间充足 - 防止日志被删改:将
/var/log/audit/挂载为只读或使用chattr +a设置追加属性,普通用户无法删除或覆盖
联动验证:让防火墙和日志形成闭环
光有规则不验证,等于没设防。真正的纵深体现在“拦得住、看得见、能回溯”。
- 模拟扫描行为测试防火墙:用
nc -zv target_ip 22或nmap -sS target_ip确认仅开放端口可见,其他端口应显示filtered或无响应 - 触发审计规则并验证日志:执行
sudo cat /etc/shadow后,立即运行aureport -m -ts recent,应看到对应identity标签的记录;再用ausearch -k identity | aureport -f -i查看完整上下文 - 检查日志完整性:定期运行
auditctl -s | grep "enabled"确认auditd运行中,并用systemctl status rsyslog auditd确保两个服务都处于active状态 - 异常登录自动告警:在rsyslog中配置
/etc/rsyslog.d/20-ssh-alert.conf,匹配sshd.*Failed password并转发至企业微信/钉钉机器人,实现秒级响应
防火墙是门锁,审计日志是门后的摄像头和记事本。锁得再牢,没人看录像、没人翻记录,也挡不住里应外合。把这两者配齐、配准、配活,才算真正扎紧了纵深防御的第二道和第三道篱笆。










