1. 安装必要的Sniffer工具
在Ubuntu系统中,需先安装核心Sniffer工具(命令行/图形界面),覆盖不同场景需求:
sudo apt update && sudo apt install tcpdump wireshark iftop nethogs vnstat
安装Wireshark后,需将当前用户加入wireshark组以获取非root权限:
sudo usermod -aG wireshark $USER && newgrp wireshark
2. 启动Sniffer并捕获目标流量
根据需求选择工具捕获流量,通过过滤条件缩小范围(避免无关流量干扰):
eth0)的所有流量:sudo tcpdump -i eth0;.pcap文件(后续用Wireshark分析):sudo tcpdump -i eth0 -w capture.pcap;192.168.1.100的通信或HTTP端口80的流量):sudo tcpdump -i eth0 host 192.168.1.100 或 sudo tcpdump -i eth0 port 80。eth0),点击“开始捕获”,实时查看数据包的源/目的IP、端口、协议等信息,可通过顶部过滤栏输入条件(如ip.addr == 192.168.1.100或tcp.port == 80)。3. 识别可疑活动的核心指标与方法
通过分析流量特征,快速定位异常行为:
iftop查看实时带宽,若某IP流量远超正常水平(如超过100Mbps且持续增长);用tcpdump捕获并过滤SYN包:sudo tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn) != 0 and tcp[tcpflags] & (tcp-ack) = 0',若SYN包数量激增且无对应ACK包,则可能为SYN Flood攻击。3306)的流量,检查数据包内容是否包含恶意SQL语句(如' OR 1=1 --、UNION SELECT);tcp.flags.syn == 1(SYN包)且tcp.flags.ack == 0(无ACK)的流量,若短时间内出现大量不同端口的SYN包(如扫描1-1000端口),则为端口扫描行为。nethogs按进程监控带宽,若某未知可执行文件(如/tmp/malware)持续占用高带宽(如超过50Mbps),可能存在恶意程序(如挖矿软件、木马)。4. 建立基准线与自动化告警
vnstat记录正常流量数据(如每日/每小时带宽使用、协议占比),作为参考标准。初始化接口监控:sudo vnstat -u -i eth0,查看历史报告:vnstat -d -i eth0(每日)或vnstat -h -i eth0(每小时)。tcpdump的-c参数(捕获指定数量数据包)与shell脚本,当流量超过阈值时发送告警。例如,当1分钟内捕获到超过1000个SYN包时,发送邮件给管理员:sudo tcpdump -i eth0 -c 1000 'tcp[tcpflags] & (tcp-syn) != 0 and tcp[tcpflags] & (tcp-ack) = 0' | mail -s "SYN Flood Alert" admin@example.com
5. 注意事项
.pcap文件可能包含敏感信息(如密码、个人信息),需妥善存储(如加密)并定期清理。