公司刚做完一次内部网络攻防演练,安全团队发现攻击路径复杂,但翻查日志时却发现关键节点数据缺失。这种情况并不少见——攻防做得再漂亮,日志没留全,等于白忙一场。
为什么日志留存是攻防演练的“命门”?
想象一下,你家装了监控,结果小偷闯入那天硬盘刚好满了,录像自动覆盖。虽然事后知道丢了东西,但怎么进来的、走哪条路、长什么样,全靠猜。网络攻防也一样。攻击者可能通过钓鱼邮件进入内网,横向移动几台机器才发起真正攻击。如果没有完整的日志记录,根本没法还原整个过程。
很多单位只保留防火墙或杀毒软件的日志,忽略了服务器操作日志、登录记录、数据库访问行为等细节。一旦出事,只能看到“有异常”,却说不清“哪里异常”。
哪些日志必须留下来?
不是所有日志都值得长期保存,但以下几类在攻防演练中至关重要:
- 网络设备日志(如路由器、交换机的访问控制记录)
- 安全设备日志(防火墙、IDS/IPS、WAF 的告警和拦截信息)
- 主机系统日志(Windows 事件日志、Linux syslog)
- 应用系统日志(Web服务、数据库的操作记录)
- 身份认证日志(账号登录时间、IP、是否成功)
比如某次演练中,红队用一个弱密码登录了测试服务器,接着提权、扫描内网。如果只看防火墙日志,可能只看到一次普通连接;但结合主机登录日志和命令执行记录,就能清晰画出攻击链条。
日志要存多久?存到哪儿?
一般建议至少保留90天,重要系统可延长至180天甚至更久。有些行业监管要求明确规定留存周期,比如金融类系统通常不得少于6个月。
本地磁盘空间有限,容易被篡改或丢失,推荐集中存储到SIEM(安全信息与事件管理)平台。常见的做法是用Syslog协议将各设备日志统一发送到日志服务器。
## 配置Linux主机发送日志到远程日志服务器
*.* @@192.168.10.100:514
上面这行配置写在 /etc/rsyslog.conf 文件里,意思是把所有级别的日志都发往IP为192.168.10.100的服务器。注意使用@@表示TCP传输,比@(UDP)更可靠。
别让日志自己把自己坑了
见过太多单位花了大价钱部署日志系统,结果格式混乱、时间不同步、关键字段缺失。一台服务器时间快了5分钟,另一台慢了3分钟,拼接攻击时间线时直接乱套。
务必确保所有设备启用NTP时间同步,最好指向同一个内部时间源。同时检查日志格式是否规范,比如Apache的访问日志建议包含remote IP、timestamp、request method、status code等字段。
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
这个配置能输出完整的访问记录,方便后续分析。
还有个常见问题:日志太大怎么办?可以设置分级留存策略。高频访问的核心系统保留完整日志90天,其他系统保留30天摘要日志,既省空间又保重点。
攻防演练不是走过场,日志就是证据链。平时多一分准备,出事少十分慌乱。