温馨提示×

怎样用Linux Sniffer识别异常流量

小樊
40
2025-10-04 17:52:16
栏目: 智能运维

一、准备工作:选择工具与授权确认
使用Linux Sniffer识别异常流量前,需先选择合适的工具并明确合法性。常用工具包括:

  • 命令行工具tcpdump(轻量高效,适合实时捕获)、iftop(实时带宽监控)、nload(网络接口流量统计);
  • 图形化工具Wireshark(功能全面,支持深度协议分析)、Etherape(可视化流量拓扑)。
    关键提醒:使用前必须获得网络管理员或相关方的合法授权,避免侵犯隐私或违反《网络安全法》等法律法规。

二、基础操作:捕获与过滤流量

  1. 开启混杂模式:Sniffer需工作在混杂模式下才能捕获所有经过网络接口的数据包(而不仅是本机收发的流量)。例如,使用tcpdump捕获eth0接口流量的命令:
    sudo tcpdump -i eth0 promisc 
  2. 实时捕获与过滤:通过过滤表达式缩小范围,提升效率。常见过滤场景:
    • 特定IP:sudo tcpdump host 192.168.1.100(捕获与该IP相关的所有流量);
    • 特定端口:sudo tcpdump port 80(捕获HTTP流量);
    • 特定协议:sudo tcpdump icmp(捕获ICMP流量,用于检测ping flood攻击)。
  3. 保存捕获文件:将流量保存为.pcap文件,便于后续用Wireshark等工具深度分析:
    sudo tcpdump -i eth0 -w capture.pcap port 80 

三、异常流量识别:技术与方法

1. 基准线建模与统计对比

  • 基准线建立:通过长期监控正常网络状态,记录关键指标的正常范围(如带宽利用率≤70%、SYN包占比≤5%、协议分布符合业务需求);
  • 异常判定:当指标偏离基准时触发警报。例如,带宽突然占满(>90%)、SYN包占比超过20%(可能为SYN Flood攻击),或非业务协议(如ICMP)流量激增。

2. 协议与端口异常分析

  • 异常协议:关注非业务必需的协议(如大量UDP流量用于HTTP服务)、协议版本异常(如SSLv2/v3,存在安全漏洞);
  • 异常端口:检测非业务端口的大量连接(如业务仅需80/443端口,却出现大量22/3306端口流量,可能为暴力破解或数据泄露)。

3. 常见攻击类型的特征识别

  • DDoS攻击:表现为突发高流量(如带宽瞬间占满)、大量SYN_RECV状态的半连接(netstat -antp | grep SYN_RECV显示数百个)、源IP地址分散(来自多个地区);
  • 挖矿病毒:CPU/GPU占用率持续100%,存在xmrigkworker等异常进程,向矿池地址(如pool.supportxmr.com)发送加密流量;
  • 暴力破解/var/log/secure(CentOS)或/var/log/auth.log(Ubuntu)中出现大量“failed login”记录,ss -antp | grep :22显示同一IP的多次SSH连接尝试;
  • SQL注入:网站日志中出现union selector 1=1等恶意语句,mysqld进程CPU占用飙升。

四、进阶技巧:工具组合与自动化

  • 组合工具:用iftop实时查看带宽占用排名,定位占用大量带宽的IP;用NetHogs查看进程级流量,找出异常进程(如某未知进程占用100MB/s上传);
  • 自动化警报:通过tcpdump-c参数设置捕获包数量阈值(如sudo tcpdump -i eth0 -c 1000 -w alert.pcap,捕获1000个包后保存并触发警报),或结合Zeek(原Bro)等网络分析框架,实现实时异常检测与告警。

五、注意事项

  • 性能优化:避免长时间全流量捕获(如tcpdump -i eth0),尽量使用过滤表达式减少数据量;
  • 数据安全:捕获的.pcap文件可能包含敏感信息(如密码、个人数据),需加密存储并限制访问权限;
  • 持续更新:定期更新Sniffer工具(如tcpdumpWireshark),修复安全漏洞并提升检测能力。

0