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 是构建安全网络环境的重要工具之一。

相关推荐
看到代码头都是大的2 小时前
Windows环境下绿色版nginx 1.30使用
运维·nginx
IT研究所2 小时前
AI 时代下的知识管理:从 Claude 的“复盘”能力看生成式 AI价值
大数据·运维·数据库·人工智能·科技·低代码·自然语言处理
仙柒4152 小时前
管理网络安全
linux·运维·服务器
云边云科技_云网融合2 小时前
企业出海的 “数字丝绸之路“:SD-WAN 如何重构全球网络竞争力
大数据·运维·网络·人工智能
JZC_xiaozhong2 小时前
2026年深圳企业如何统一管理ERP、MES、OA权限?身份识别与访问管理高效方案
大数据·运维·自动化·企业数据安全·数据集成与应用集成·权限治理·多系统权限管理
福尔摩斯·柯南3 小时前
Ubuntu 14.04/16.04/18.04/20.04/22.04/24.04/26.04全系列LTS长期支持版镜像IOS分享
linux·运维·ubuntu
xiaoming00183 小时前
JAVA项目打包部署运维全流程(多服务、批量)
java·linux·运维
浪客灿心4 小时前
Linux五种IO模型与非阻塞IO
linux·网络
洋哥网络科技4 小时前
centos7 升级openssh-10.2
linux·运维·服务器·系统安全