功能描述

使用arptables命令可以进行ARP数据包的过滤。用来设置、维护和检查在Linux内核中的ARP数据包过滤规则表。arptables可以定义几个不同的表。每个表含有一些内置的链,也可以含有用户定义链。每条链是可匹配一组包的规则列表。每个规则指定如何处理数据包匹配。这就是所谓的“目标”,其可以是一个跳转到在同一表中的一个用户定义的链。

命令语法

arptables [-t table] -[AD] [链] [规则详述] [选项]

操作命令是执行arptables时所需的操作,比如添加、删除、插入、列出规则等。
 
操作命令
操作命令 描述
-D<链> rule-specification 删除所选择的链的一个或多个规则
-I<链><规则号><规则规范> 在所选链中以指定规则号插入一个或多个规则。如果规则号是1,则规则会被插入链的头部
-Z<链> 在指定链或所有链中清零包和字节计数器
-N<链> 创建一个新的用户自定义链
-X<链> 删除指定可选的用户自定义链
-P<链><目标> 为指定目标的链设置策略
-R<链><规则号><规则规范> 替换所选链中的规则。如果源和/或目的地名称解析为多个地址,该命令将失败。规则的编号从1开始
-L<链><规则规范> 列出所选链的所有规则
-A<链> 在所选择链的末端附加一个或多个规则
-F<链> 清除所选择的链(在表中的所有链如果没有指定)。这相当一个接一个地删除所有规则
-E<旧链名><新链名> 重命名用户指定的链
规则匹配器用于匹配数据包中的协议、IP地址、端口号、接口和硬件地址等。
 
规则匹配器
规则匹配器 描述
-s [!] address[/mask] 指定源,地址可以使用网络名称、主机名、网络IP地址或IP地址
-d [!] address[/mask] 指定目标
-a [!] length[/mask] 硬件地址长度
-z [!] address[/mask] 源硬件地址
-y [!] address[/mask] 目标硬件地址
-p [!] operation[/mask] ARP操作
-h [!] hrd[/mask] ARP硬件地址
-w [!] plem[/mask] ARP协议的地址格式
-i [!] input name[+] 入站网络接口名称
-n 地址和端口的数字输出
-o [!] output name[+] 出站网络接口名称
-v 详细模式
--line-numbers 列出时显示行号
-x 扩大数字,显示精确值
--modprobe=command 尝试使用指定命令来插入模块
-c PKTS BYTES 通过插入/追加设置计数器
 
内建目标
目标 描述
ACCEPT 接受软件包
DROP 丢弃软件包
QUEUE 把包传递到用户空间
RETURN. 返回到上一条链,接着执行上一条链跳转过来那条规则的下一个规则
 
描述
IN 用于处理目标为本机的包
OUT 处理本机发出去的软件包

列出所有的规则
[root@linuxlz.com~]# arptables -L

列出IN链的所有规则
[root@linuxlz.com~]# arptables -L IN

在IN链中清零包和字节计数器
[root@linuxlz.com~]# arptables -N IN

创建用户自定义链WWW
[root@linuxlz.com~]# arptables -N WWW

重命名用户自定义链www的名称为OOO
[root@linuxlz.com~]# arptables -E www OOO


清除用户自定义链WWW
[root@linuxlz.com~]# arptables -F WWW

删除用户自定义链WWW
[root@linuxlz.com~]# arptables -X WWW

在IN链中插入一个或多个规则
[root@linuxlz.com~]# arptables -I IN -s 192.168.0.5

删除IN链中的1号规则
[root@linuxlz.com~]# arptables -D IN 1


在IN链的末端附加一个规则
[root@linuxlz.com~]# arptables -A IN -s 192.168.0.5

在IN链的末端附加一个规则,将源不是192.168.0.2,目的是192.168.0.5的软件包丢弃。
[root@linuxlz.com~]# arptables -A IN ! -s  192.168.0.2 -d 192.168.0.5 -j DROP