Linux arptables 命令超全详解:ARP 防火墙 / 防欺骗看这一篇就够了

Linux arptables 命令超全详解:ARP 防火墙 / 防欺骗看这一篇就够了
1. 命令简介arptables 是 Linux 系统中用于配置内核 ARPAddress Resolution Protocol包过滤规则表的命令行工具。它允许系统管理员设置、维护和检查针对 ARP 请求和应答包的过滤规则常用于构建 ARP 防火墙、防止 ARP 欺骗攻击、或进行网络调试和流量控制。其功能类似于 iptables但专门作用于 ARP 层OSI 模型的数据链路层。2. 语法格式plaintextarptables [-t table] -[AD] chain rule-specification [options] arptables [-t table] -I chain [rulenum] rule-specification [options] arptables [-t table] -R chain rulenum rule-specification [options] arptables [-t table] -D chain rulenum [options] arptables [-t table] -[LFZ] [chain] [options] arptables [-t table] -N chain arptables [-t table] -X [chain] arptables [-t table] -P chain target [options] arptables [-t table] -E old-chain-name new-chain-name主要参数结构-t table指定要操作的表。默认为 filter 表。可用的表包括filter默认表用于过滤 ARP 包。nat用于 ARP 地址转换较少使用。命令Command指定对规则链的操作如 -A追加、-D删除等。链Chain指定规则链。内置链包括INPUT处理目标为本机的 ARP 包。OUTPUT处理由本机产生的 ARP 包。FORWARD处理经过本机转发的 ARP 包。规则匹配Rule Specification定义匹配规则的条件如源 / 目的 IP、MAC 地址等。目标Target指定当包匹配规则时的动作如 ACCEPT、DROP 等。3. 常用选项及说明表操作命令表格选项全称说明-t table--table table指定要操作的表默认为 filter。-L--list列出指定链中的所有规则。若未指定链则列出所有链。-F--flush清空指定链中的所有规则。若未指定链则清空所有链。-Z--zero将指定链中所有规则的计数器清零。-N--new-chain创建新的用户自定义链。-X--delete-chain删除指定的空用户自定义链。若未指定链则删除所有空用户自定义链。-P--policy设置链的默认策略target如 ACCEPT、DROP。-E--rename-chain重命名用户自定义链。规则管理命令表格选项全称说明-A--append在指定链的末尾追加一条新规则。-D--delete从指定链中删除一条规则。可通过规则编号或完整规则描述指定。-I--insert在指定链的指定位置默认为第 1 条插入一条新规则。-R--replace替换指定链中的一条规则。-S--list-rules以可执行格式列出规则便于保存和恢复。规则匹配条件表格选项全称说明-s--source-ip匹配 ARP 包的源 IP 地址。--src-ip同上同上。-d--destination-ip匹配 ARP 包的目的 IP 地址。--dst-ip同上同上。--source-mac--src-mac匹配 ARP 包的源 MAC 地址。--destination-mac--dst-mac匹配 ARP 包的目的 MAC 地址。-i--in-interface指定接收 ARP 包的输入网络接口。-o--out-interface指定发送 ARP 包的输出网络接口。--opcode--arp-opcode匹配 ARP 操作码如 1 为请求2 为应答。--h-length--arp-hlen匹配硬件地址长度通常为 6。--proto-type--arp-ptype匹配协议类型通常为 0x0800 表示 IPv4。目标Target动作表格目标说明ACCEPT允许 ARP 包通过。DROP丢弃 ARP 包不发送任何响应。RETURN从当前链返回继续执行调用链中的下一条规则。MIRROR实验性目标交换源和目的地址后返回包用于 ARP 欺骗模拟慎用。用户自定义链跳转到用户自定义链继续匹配。其他选项表格选项全称说明-v--verbose与 -L 一起使用时显示详细信息如计数器、接口等。-n--numeric以数字形式显示 IP 地址和端口不进行反向域名解析。--line-numbers与 -L 一起使用时显示规则的行号。-h--help显示帮助信息。-V--version显示版本信息。4. 示例用法查看当前规则列出 filter 表所有链的规则plaintextarptables -L以详细模式并显示行号列出规则plaintextarptables -L -v --line-numbers防止 ARP 欺骗静态 ARP 绑定只接受来自 IP 地址为 192.168.1.1 且 MAC 地址为 00:11:22:33:44:55 的 ARP 响应包plaintextarptables -A INPUT --source-ip 192.168.1.1 --source-mac 00:11:22:33:44:55 -j ACCEPT arptables -A INPUT --source-ip 192.168.1.1 -j DROP限制本机 ARP 响应只允许本机对特定 IP 网段如 192.168.1.0/24的 ARP 请求进行响应plaintextarptables -A OUTPUT --destination-ip 192.168.1.0/24 -j ACCEPT arptables -P OUTPUT DROP创建并使用自定义链创建一个名为 TRUSTED_ARP 的自定义链将规则组织在其中plaintextarptables -N TRUSTED_ARP arptables -A TRUSTED_ARP --source-ip 192.168.1.100 --source-mac aa:bb:cc:dd:ee:ff -j ACCEPT arptables -A INPUT -j TRUSTED_ARP保存与恢复规则将当前规则保存到文件plaintextarptables-save /etc/arptables.rules从文件恢复规则plaintextarptables-restore /etc/arptables.rules5. 注意事项arptables 规则是临时的重启后失效。若需持久化通常需要使用 arptables-save 和 arptables-restore 工具并结合系统启动脚本如 rc.local 或 systemd service或网络管理器配置。错误的 ARP 过滤规则可能导致网络连接中断尤其在设置默认策略为 DROP 时。建议在测试前通过计划任务或 at 命令设置一个定时恢复规则。MIRROR 目标是实验性的用于调试或特殊目的在生产环境中不当使用会造成网络问题。与 iptables 不同arptables 的 nat 表功能有限且较少使用。规则匹配顺序至关重要规则会从上到下依次匹配直到遇到一个决定包命运的目标如 ACCEPT, DROP。