明确你的监控目标
在动手之前,先想清楚你想从网络分析中得到什么。是排查异常流量?还是监控员工上网行为?比如公司最近总有电脑变慢,你怀疑是有人在后台传大文件,这时候就需要一个能抓包并统计应用层协议流量的平台。
选择合适的分析工具
市面上常见的开源平台有Zeek(原Bro)、Suricata、ELK组合(Elasticsearch + Logstash + Kibana),商业方案像Darktrace、Cisco Stealthwatch也各有优势。如果预算有限又想快速上手,用Suricata配合Elastic Stack是个不错的选择,支持实时检测还能自定义规则。
部署采集节点
在网络关键路径上设置镜像端口(SPAN port),把交换机的流量复制一份给分析服务器。比如在核心交换机上配置端口镜像,源是财务部所在VLAN,目标是你部署的分析主机网卡。确保这张网卡是混杂模式,能收到所有经过的数据帧。
配置数据摄入
以Suricata为例,修改suricata.yaml中的af-packet接口名,指向实际监听网卡:
af-packet:
- interface: eth1
cluster-id: 99
cluster-type: cluster_flow启动服务后,日志默认输出到/var/log/suricata/目录下的JSON格式文件。
对接可视化系统
用Filebeat将Suricata生成的JSON日志推送到Logstash,再导入Elasticsearch。配置Filebeat的filebeat.yml如下:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/suricata/eve.json
json.keys_under_root: true
json.add_error_key: true
output.logstash:
hosts: ["logstash-server:5044"]接着在Kibana里导入预设仪表板模板,就能看到实时连接数、Top应用协议、可疑告警等图表。
设置告警与响应机制
在Logstash或Elasticsearch Watcher中定义触发条件。比如检测到单IP每分钟发出超过50个DNS请求,就判定可能遭遇DNS隧道攻击,并通过邮件或企业微信机器人通知管理员。
定期校准与优化
刚上线时可能会收到大量误报,比如正常备份任务被当成横向扫描。这时候要回溯日志,调整检测阈值或添加白名单规则。每隔两周检查一次索引增长情况,避免磁盘爆满导致服务中断。