Linux Sniffer怎样监控网络攻击
小樊
45
2025-12-13 08:01:23
Linux Sniffer监控网络攻击的实用指南
一 核心思路与部署
- 明确目标与位置:在关键网段或服务器前部署嗅探点,优先选择能“看到”目标流量的位置,如核心交换机的镜像端口(SPAN/RSPAN),或在服务器上对本机入站/出站流量进行嗅探。对交换网络,镜像端口是获取全量流量的关键。
- 工具选型与分工:用tcpdump做快速抓包与落地分析,用Wireshark做深度协议解析与可视化,用Snort做基于规则的实时入侵检测(IDS)。
- 合法合规:仅在授权范围内抓包与分析,避免侵犯隐私或触犯法律。
二 快速上手 tcpdump 发现可疑流量
- 安装与基础抓包:在常见发行版安装 tcpdump,如 Ubuntu/Debian 执行 sudo apt-get install tcpdump;抓指定接口如 sudo tcpdump -i eth0。
- 保存以便取证:将流量写入文件,如 sudo tcpdump -i eth0 -w capture.pcap,后续用 Wireshark 打开分析。
- 精准过滤表达式(BPF):
- 扫描与连接异常:tcpdump -i eth0 ‘tcp[tcpflags] & (tcp-syn|tcp-fin) == tcp-syn’(SYN 洪泛特征)、‘tcp[tcpflags] & (tcp-syn|tcp-fin) == tcp-fin’(FIN 扫描)。
- Web 可疑行为:tcpdump -i eth0 -A -s 0 ‘tcp port 80 or 443’ | egrep -i “union.*select|sleep(|’ or 1=1|<|script|alert(”(检测 SQL 注入、XSS 等常见攻击载荷的明文特征)。
- ARP 欺骗排查:tcpdump -i eth0 -nn arp(异常 MAC/IP 对应关系)。
- 性能与稳定性:必要时缩短抓包时长或限制抓包规模,避免对系统与网络造成过大负载。
三 用 Wireshark 做深度分析与取证
- 打开 tcpdump 生成的 .pcap 文件,结合显示过滤器快速定位:
- http contains “select” or http contains “sleep(”(HTTP 明文注入特征)。
- dns.qry.name matches “.*.evil.com”(可疑域名查询)。
- tcp.flags.syn == 1 and tcp.flags.ack == 0(SYN 扫描)。
- 关注异常指标:突发的大流量、异常端口连接、畸形或碎片报文、重复重传、异常的 HTTP 状态码与重定向链等。
- 建议做法:先用 BPF 在 tcpdump 端收敛数据,再用 Wireshark 做细粒度协议与内容分析。
四 用 Snort 做实时入侵检测
- 工作模式:Snort 具备嗅探器、分组日志与入侵检测三种模式;启用检测需加载规则库(snort -c snort.conf)。
- 规则示例(本地规则文件 local.rules):
- 检测 HTTP 路径中的 SQL 注入特征:alert tcp any any -> any 80 (content:“’ or 1=1”; http_uri; msg:“Possible SQLi in URI”; sid:1000001;)
- 检测常见 XSS 脚本片段:alert tcp any any -> any 80 (content:“