公司服务器突然访问缓慢,运维小李打开防火墙日志,发现大量来自某个IP段的连接请求。他迅速在规则中添加一条拒绝该IP段的策略,几分钟后系统恢复正常。这背后,正是网络日志与防火墙规则匹配在起作用。
网络日志记录了什么
防火墙每天会生成大量的网络日志,每条记录通常包含源IP、目标IP、端口、协议类型、动作(允许或拒绝)以及时间戳。这些数据不是摆设,而是排查异常流量、定位攻击来源的关键线索。比如某天销售部反馈无法访问官网,查看日志发现所有来自办公网段的80端口请求都被标记为“DROP”,这就指向了规则配置问题。
规则匹配是如何工作的
防火墙按照预设规则逐条比对经过的数据包。规则通常是有序的,一旦匹配成功就执行对应动作,后续规则不再检查。例如有这样一条规则:
iptables -A INPUT -s 192.168.10.5 -p tcp --dport 22 -j ACCEPT
它的意思是:在INPUT链中,如果数据包源IP是192.168.10.5,协议为TCP,目标端口为22,则允许通过。如果这条规则前面有一条更宽泛的DROP规则,那这条ACCEPT可能就不起作用了。
通过日志反推规则有效性
假设你在日志中看到大量类似下面的记录:
Dec 5 14:22:31 fw kernel: [UFW BLOCK] IN=eth0 OUT= MAC=... SRC=203.0.113.45 DST=198.51.100.10 PROTO=TCP SPT=50432 DPT=80
说明来自203.0.113.45的80端口访问被拦截。这时候你可以检查是否有明确放行该IP的规则。如果没有,而业务又需要它访问,就得调整规则顺序或新增例外。反过来,如果你发现本该被拦截的IP仍在通信,那可能是规则写得不够精确,或者被后面的ALLOW规则覆盖了。
常见匹配失误案例
某次内部系统升级后API调用失败,排查发现新服务用了随机高端口通信。但防火墙规则只放行了固定的几个端口,导致大量“SYN包被丢弃”出现在日志里。解决办法是修改规则,允许内网段之间特定协议的全端口通信,或者启用连接追踪:
iptables -A FORWARD -s 10.0.0.0/8 -d 10.0.0.0/8 -m state --state ESTABLISHED,RELATED -j ACCEPT
这样只要初始连接合法,返回流量就能自动通过,而不必为每个端口单独写规则。
日常维护中,定期翻看网络日志就像查监控录像,能发现那些没触发告警但确实存在的异常行为。结合防火墙规则的匹配逻辑,才能让防护真正落地见效。