温馨提示×

Ubuntu Sniffer如何进行网络模拟

小樊
36
2025-12-19 21:35:04
栏目: 智能运维

在 Ubuntu 上做网络模拟的两条路径

  • 路径A:用**嗅探器(Sniffer)**观察与“伪造”流量,验证应用在网络异常或攻击场景下的表现(如丢包、延迟、ARP 欺骗、ICMP 伪造)。
  • 路径B:用网络模拟器/仿真器搭建虚拟拓扑(路由器、交换机、主机、链路),在可控环境里复现复杂网络与 SDN 场景。

路径A 嗅探与欺骗类模拟(验证型)

  • 工具与安装
    • 抓包与回放:tcpdump(系统通常自带,亦可 sudo apt-get install tcpdump)
    • 图形化分析:Wireshark/tshark(sudo apt-get install wireshark)
    • 协议级伪造与构造:scapy(Python,适合编程控制报文)
    • ARP 欺骗与图片嗅探:dsniff(含 arpspoof、driftnet;sudo apt-get install dsniff)
  • 快速上手
    • 抓取与过滤
      • 列出接口:ip link 或 tcpdump -D
      • 抓取示例:sudo tcpdump -i eth0 -n -v -c 10
      • 保存与回放:sudo tcpdump -i eth0 -w capture.pcap;后续用 Wireshark 或 sudo tcpdump -r capture.pcap -nn 分析
      • 常用过滤:host 192.168.1.100;tcp port 80;‘tcp[tcpflags] & (tcp-syn) != 0 and tcp[tcpflags] & (tcp-ack) = 0’(仅 SYN)
    • 欺骗与伪造
      • ARP 欺骗(双向投毒):
        • sudo arpspoof -i eth0 -t 目标IP 网关IP
        • sudo arpspoof -i eth0 -t 网关IP 目标IP
        • 注意网卡名可能为 ens33/eth0/wlan0,先用 ifconfig/ip link 确认
      • 图片流量观察:sudo driftnet(配合 arpspoof 可看到目标浏览的图片)
      • 编程伪造(ICMP/自定义报文):用 scapy 构造并发送报文,配合 Wireshark 验证往返与字段篡改
  • 典型用途
    • 验证应用在丢包/延迟/乱序下的容错;观察TCP 三次握手、重传、HTTP 状态码
    • 复现并防御ARP 欺骗ICMP 伪造等常见攻击面
  • 重要提示
    • 嗅探/伪造需要管理员权限;仅可在授权环境测试,避免侵犯隐私与违法风险。

路径B 网络模拟器与仿真器(拓扑型)

  • 轻量快速:用 Mininet 在单机上创建数百至上千虚拟节点与链路,适合SDN/控制器验证与教学
  • 图形与厂商镜像:用 GNS3/EVE-NG/UNetLab 运行真实路由器/交换机镜像(如 Cisco/Juniper),贴近生产
  • 研究级仿真:用 NS-3 进行离散事件仿真,可混合运行真实软件,适合可重复实验与学术研究
  • 其他选择:CORE/IMUNES(基于容器/网络命名空间)、Shadow(离散事件+真实应用混合)、Netkit(轻量用户态系统仿真)
  • 选型建议
    • 学习/教学与 SDN:优先 Mininet
    • 厂商设备与复杂实验:优先 GNS3/EVE-NG
    • 可重复科研与协议验证:优先 NS-3
    • 资源受限与快速原型:考虑 CORE/IMUNES/Netkit

路径C 主机内链路级异常模拟(TC Netem)

  • 适用场景
    • 单台 Ubuntu上给某网卡注入延迟、丢包、乱序、重复、带宽限制等,验证服务的容错与超时策略
  • 常用命令
    • 基本延迟:sudo tc qdisc add dev eth0 root netem delay 100ms
    • 延迟抖动与相关:sudo tc qdisc replace dev eth0 root netem delay 100ms 20ms 50%
    • 丢包:sudo tc qdisc replace dev eth0 root netem loss 5%
    • 乱序:sudo tc qdisc replace dev eth0 root netem delay 100ms reorder 25% 50%
    • 带宽限制(配合 HTB/限速):先用 HTB 做根队列,再在叶子加 netem/速率限制
    • 清除规则:sudo tc qdisc del dev eth0 root
  • 使用要点
    • 规则作用于指定网卡,会影响该网卡所有出站流量;建议在测试环境/虚拟机中执行
    • 可组合多项(如延迟+丢包+乱序)复现“劣化链路”。

合规与安全提示

  • 仅在自有网络/授权环境进行嗅探、欺骗与故障注入;避免对生产业务与未授权主机造成影响
  • 抓包与分析可能触及隐私与合规要求,务必做好最小化采集、脱敏与留存审计
  • 对网络与业务造成异常的风险由操作者自行承担

0