Arptables-通过示例管理ARP数据包过滤规则
ARP代表地址解析协议,它是一种电信协议,用于将网络层地址解析为链路层地址,这是多址网络中的关键功能。
通常,ARP用于将IP地址转换为物理地址,例如以太网地址(也称为MAC地址)。
arptables与iptables类似,我们可以使用它在Linux内核中设置,维护和检查ARP数据包过滤规则表。
可以定义几个不同的表。
每个表包含许多内置链,也可能包含用户定义的链。
每个链都是可以匹配一组数据包的规则列表。
安装arptables
arptables在大多数Linux发行版的存储库中都可用,我们可以使用yum将其安装在CentOS/Fedora/RHEL上:
# yum install arptables
在Debian/Ubuntu上使用apt-get:
# apt-get install arptables
重要的arptables选项和参数
以下是最重要的arptables选项:
-A将一个或者多个规则添加到所选链的末尾。
-D从选定链中删除一个或者多个规则。
此命令有两种版本:规则可以指定为链中的数字(第一个规则从1开始)或者匹配的规则。
-L列出所选链中的所有规则。
请注意,它通常与-n方法一起使用,以避免长时间反向DNS查找。
-F刷新选定的链(如果未给出表中的所有链)。
这等效于删除所有规则。
-N通过给定名称创建一个新的用户定义链。
该名称必须已经没有目标。
-X删除指定的可选用户定义链。
-P将链的策略设置为给定的目标。
以及最重要的参数:
-s源规范。
地址可以是网络名称,网络IP地址或者纯IP地址。
-d目标规范(与-s相同的选项)。
--source-mac指定数据包的源硬件(MAC)地址。
hwaddr(和掩码,如果指定的话)必须由一个或者多个8位十六进制数字组成,并用':'字符分隔。
--destination-mac指定数据包的目标硬件(MAC)地址。
这类似于--source-mac选项(与--source-mac相同的选项)。
-i接口的名称,将通过该接口接收数据包(仅对于进入IN链的数据包)。
当在接口名称之前使用”!”参数的时候 ,含义相反。
-o要通过其发送数据包的接口的名称(对于进入OUT链的数据包)。
当在接口名称之前使用”!”参数的时候 ,含义相反。
-j这指定规则的目标;即,如果数据包匹配,该怎么办。
目标可以是用户定义的链(此规则所在的链除外),也可以是特殊的内置目标之一,这些目标可以立即确定数据包的命运。
与iptables不同,扩展尚未实现。
如果规则中省略了此选项,则与规则匹配不会影响数据包的命运,但规则上的计数器将增加。
Arptables示例
1.要阻止所有流量,除非它与表中的规则匹配:
# arptables -P INPUT DROP
2.阻止特定IP地址的所有arp流量:
# arptables -A INPUT -s 192.168.1.212 -j DROP
3.列出当前活动的所有规则:
# arptables --list -n
4.阻止特定的MAC地址
arptables -A INPUT --source-mac 00:0c:19:f9:ed:f2 -j DROP