Linux命令:arptables

arptables 命令

基本介绍

arptables 是 Linux 系统中用于配置 ARP(Address Resolution Protocol)数据包过滤规则的工具,是 netfilter 框架的一部分。它允许系统管理员设置规则来过滤、修改和记录 ARP 数据包,用于保护网络免受 ARP 欺骗攻击和其他 ARP 相关的安全威胁。

资料合集:https://pan.quark.cn/s/6fe3007c3e95https://pan.quark.cn/s/561de99256a5https://pan.quark.cn/s/985f55b13d94https://pan.quark.cn/s/d0fb20abd19a

语法

复制代码
arptables [-t table] [-A|-D|-I|-R|-L|-F|-Z|-N|-X|-P] [链名] [规则] [-j 动作]

表(Table)

arptables 主要支持两个表:

表名 功能 包含的链
filter ARP 数据包过滤(默认表) INPUT, OUTPUT, FORWARD
mangle ARP 数据包修改 INPUT, OUTPUT, FORWARD

链(Chain)

链是规则的容器,ARP 数据包按照链的顺序依次匹配规则:

  • INPUT:进入本地系统的 ARP 数据包
  • OUTPUT:从本地系统发出的 ARP 数据包
  • FORWARD:经过系统转发的 ARP 数据包

命令选项

链管理命令

  • -N <chain>:创建新链
  • -X [<chain>]:删除指定链(默认删除所有空用户定义链)
  • -P <chain> <policy>:设置链的默认策略(ACCEPT/DROP)
  • -E <old-chain> <new-chain>:重命名链

规则管理命令

  • -A <chain>:在链末尾追加规则
  • -I <chain> [num]:在链指定位置插入规则(默认开头)
  • -D <chain> [num]:删除链中指定位置的规则
  • -R <chain> <num>:替换链中指定位置的规则
  • -F [<chain>]:清空链中的所有规则(默认清空所有链)
  • -Z [<chain>]:重置链的计数器

查看命令

  • -L [<chain>]:列出链中的规则
  • -S [<chain>]:以 arptables-save 格式显示规则
  • -v:详细输出(配合 -L 使用)
  • -n:数字格式显示地址
  • -x:显示精确的计数器值

规则匹配选项

基本匹配
  • -p <protocol>:匹配协议(arp)
  • -s <source>:匹配源 MAC 地址
  • -d <destination>:匹配目标 MAC 地址
  • -i <interface>:匹配进入的网络接口
  • -o <interface>:匹配输出的网络接口
ARP 操作码匹配
  • --opcode <value>:匹配 ARP 操作码(1=请求, 2=响应)
ARP 协议地址匹配
  • --source-ip <ip>:匹配源 IP 地址
  • --destination-ip <ip>:匹配目标 IP 地址
  • --source-mac <mac>:匹配源 MAC 地址
  • --destination-mac <mac>:匹配目标 MAC 地址

目标动作(Jump)

动作 说明
ACCEPT 允许 ARP 数据包通过
DROP 丢弃 ARP 数据包
LOG 记录日志(继续匹配后续规则)
RETURN 返回调用链继续匹配
<user-chain> 跳转到用户定义链

使用示例

1. 查看当前规则

bash 复制代码
arptables -L                    # 查看 filter 表所有规则
arptables -L -v                 # 详细输出
arptables -L -n                 # 数字格式显示

2. 设置默认策略

bash 复制代码
arptables -P INPUT ACCEPT       # 允许所有进入的 ARP 数据包
arptables -P FORWARD DROP       # 拒绝所有转发的 ARP 数据包
arptables -P OUTPUT ACCEPT      # 允许所有出站 ARP 数据包

3. 拒绝特定 MAC 地址的 ARP 请求

bash 复制代码
arptables -A INPUT -s 00:11:22:33:44:55 -j DROP

4. 允许特定 IP-MAC 绑定

bash 复制代码
arptables -A INPUT -s 192.168.1.100 --source-mac 00:11:22:33:44:55 -j ACCEPT

5. 阻止 ARP 欺骗攻击

bash 复制代码
# 只允许已知的 IP-MAC 配对
arptables -P INPUT DROP
arptables -A INPUT -s 192.168.1.1 --source-mac 00:11:22:33:44:01 -j ACCEPT
arptables -A INPUT -s 192.168.1.2 --source-mac 00:11:22:33:44:02 -j ACCEPT

6. 允许特定接口的 ARP 流量

bash 复制代码
arptables -A INPUT -i eth0 -j ACCEPT

7. 记录 ARP 日志

bash 复制代码
arptables -A INPUT -j LOG --log-prefix "ARP: "

8. 删除规则

bash 复制代码
arptables -D INPUT 1            # 删除 INPUT 链的第一条规则

9. 清空所有规则

bash 复制代码
arptables -F                    # 清空 filter 表

10. 保存和恢复规则

bash 复制代码
arptables-save > /etc/arptables/rules   # 保存规则
arptables-restore < /etc/arptables/rules # 恢复规则

典型 ARP 防火墙配置示例

ARP 欺骗防护配置

bash 复制代码
# 设置默认策略为拒绝
arptables -P INPUT DROP
arptables -P OUTPUT DROP
arptables -P FORWARD DROP

# 允许回环接口
arptables -A INPUT -i lo -j ACCEPT
arptables -A OUTPUT -o lo -j ACCEPT

# 允许已知的 IP-MAC 配对
arptables -A INPUT -s 192.168.1.1 --source-mac 00:11:22:33:44:01 -j ACCEPT
arptables -A INPUT -s 192.168.1.2 --source-mac 00:11:22:33:44:02 -j ACCEPT
arptables -A INPUT -s 192.168.1.100 --source-mac 00:11:22:33:44:64 -j ACCEPT

# 允许响应我们发起的 ARP 请求
arptables -A INPUT --opcode 2 -j ACCEPT

# 允许我们发送 ARP 请求和响应
arptables -A OUTPUT --opcode 1 -j ACCEPT
arptables -A OUTPUT --opcode 2 -j ACCEPT

保存和恢复规则

Debian/Ubuntu

bash 复制代码
# 保存规则
arptables-save > /etc/arptables/rules

# 开机自动加载(需要安装 arptables-persistent 包)
apt-get install arptables-persistent

CentOS/RHEL

bash 复制代码
# 保存规则
arptables-save > /etc/sysconfig/arptables

# 开机自动加载
systemctl enable arptables

ARP 操作码说明

操作码 名称 说明
1 ARP Request ARP 请求(询问某个 IP 地址对应的 MAC 地址)
2 ARP Reply ARP 响应(告知某个 IP 地址对应的 MAC 地址)
3 RARP Request RARP 请求
4 RARP Reply RARP 响应

相关命令

  • iptables:IPv4 防火墙工具
  • ip6tables:IPv6 防火墙工具
  • ebtables:以太网桥接过滤工具
  • arp:查看和修改 ARP 缓存
  • ip:现代网络配置工具
  • arptables-save:保存 arptables 规则
  • arptables-restore:恢复 arptables 规则

注意事项

  1. 权限要求 :所有 arptables 命令需要 root 权限
  2. 规则顺序:规则按照添加顺序匹配,一旦匹配成功就执行相应动作
  3. 默认策略:建议将默认策略设置为 DROP,然后显式允许需要的 ARP 流量
  4. 规则持久化:重启后规则会丢失,需要保存到配置文件
  5. 内核模块 :确保加载了必要的内核模块(如 arptables_filter
  6. ARP 欺骗防护arptables 可以用于防止 ARP 欺骗,但需要配合静态 ARP 绑定使用

总结

arptables 是 Linux 系统中配置 ARP 数据包过滤规则的工具,主要用于保护网络免受 ARP 欺骗攻击。通过设置规则,可以过滤、记录和修改 ARP 数据包,确保只有合法的 ARP 流量能够通过网络。arptables 是构建安全网络环境的重要工具之一。

相关推荐
腾渊信息科技公司4 小时前
工业数据运维痛点根治方案:基于AI Agent的产线自动化台账系统落地
运维·人工智能·自动化·个人开发·ai编程
Dxy12393102164 小时前
Proxy Protocol v2 详解
运维
踏月的造梦星球4 小时前
DMDPC 学习:架构、部署、运维与调优
运维·数据库·学习·架构
潘正翔5 小时前
docker核心概念
linux·运维·服务器·docker·容器·centos·运维开发
weigangwin5 小时前
agent-workspace-linux 不是远程桌面:Linux AI 工作区的隔离边界验收
linux·xvfb·mcp·桌面隔离·权限边界·bubblewrap·agent-workspace
renhongxia15 小时前
世界模型,是“空中楼阁”还是AGI的“最后一块拼图”?
运维·服务器·数据库·人工智能·算法·agi
Dovis(誓平步青云)7 小时前
远程办公软件文件传输实测:6 款工具的速度、稳定性和办公体验对比
linux·运维·服务器·后端·生成对抗网络
Java小白笔记7 小时前
Docker 安装配置完全指南:MacOS 、Windows、Linux环境下的安装、配置与验证
linux·macos·docker
csdn_aspnet8 小时前
GitHub Actions自动化运维实战,用CI/CD流水线实现测试、部署、安全扫描一体化
运维·安全·ci/cd·自动化·github
Inhand陈工9 小时前
数据中心UPS无功补偿与智能化监控方案:基于IG502的Modbus RTU转IEC61850实战
运维·人工智能·物联网·信息与通信