ARP 欺騙利用協議無認證、信任首次應答缺陷,攻擊者發送偽造 ARP 回應污染受害者緩存,導致IP/MAC 衝突彈窗、網關流量劫持、中間人攻擊、全網癱瘓。本文提出「事前綁定、事中檢測、事後溯源」三階段防禦體系,結合 Linux 網關實戰命令,構建高可用防 ARP 攻擊架構。
# dhcpd.conf 片段\nhost pc-01 { hardware ethernet 00:11:22:33:44:55; fixed-address 192.168.10.10; }arp -f /etc/ethers (文件格式: 192.168.2.32 08:00:4E:B0:24:47)arp 192.168.10.10 0011.2233.4455 ARPAarp static 192.168.10.10 0011-2233-4455 vlan 10echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore (配合 arp_filter/arp_announce)no ip arp inspection trust (配合 DAI)| 檢測點 | 技術手段 | 告警閾值示例 |
|---|---|---|
| 網關/核心交換機 | 動態 ARP 檢測 (DAI) + DHCP Snooping 綁定表 | 單位時間 ARP 速率 > 30pps/端口 → 錯誤禁用/告警 |
| 交換機端口 | Port Security 限制 MAC 數量 + 靜態綁定 | 學習到非授權 MAC → 關閉端口/發送 Trap |
| 主機端 | ARP 防火牆 (360/AntiARP/Comodo) / 內核模塊 arpwatch | 檢測到網關 MAC 變更/衝突 → 彈窗/日志/自動恢復靜態綁定 |
| 流量鏡像/NDR | 捕獲 ARP 廣播風暴 / 幀頭源 MAC 與負載發送者 MAC 不符 | 流量分析平台規則匹配告警 |
show ip arp / show mac address-table 定位攻擊者真實 MAC/端口arp -d * (Win) / ip neigh flush all (Linux)#!/bin/bash
# 生成 /etc/ethers 從 CMDB 導出
# 格式: IP MAC
arp -f /etc/ethers
# 關閉動態 ARP 學習 (需內核支持)
sysctl -w net.ipv4.conf.all.arp_ignore=1
sysctl -w net.ipv4.conf.all.arp_announce=2
sysctl -w net.ipv4.conf.all.arp_filter=1
# 持久化
echo 'net.ipv4.conf.all.arp_ignore=1' >> /etc/sysctl.conf
echo 'net.ipv4.conf.all.arp_announce=2' >> /etc/sysctl.conf
echo 'net.ipv4.conf.all.arp_filter=1' >> /etc/sysctl.conf