博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
arp工具简介_arptables_arpwatch
阅读量:2436 次
发布时间:2019-05-10

本文共 4997 字,大约阅读时间需要 16 分钟。

当主机上的需要发送一个数据到一个目的IP时,设备驱动程序并不能理解这个IP地址.

系统需要将IP地址转换为网络地址,再传递给设备驱动程序发送出去.
ARP(地址解析协议)就是这样的一种网络协议.用于将高层协议地址(IP地址)转换为物理
网络地址.
linux内核中保存有一个ARP表,里面保存有IP地址和MAC地址的对应关系.使用arp命令
可以查看主机的ARP表.

# arp -am1 (192.168.0.1) at 00:E0:4C:FF:D7:31 [ether] on eth0

arptables是用户空间工具,用来管理 linux内核中的ARP规则表.这些规则用来

检查ARP帧.arptables类似于iptables,但没有那么复杂.iptables工作于ip层,
用于对ip包进行管理.arptables工作与arp协议层,用于对arp数据帧进行管理.
arptables可以像iptables那样对arp数据帧进行各种规则设置,可以ACCEPT,
DROP等.

Turbolinux 10.5和11版本中,已经集成有arptables命令.

你也可以从源码进行安装:

# wget -c http://jaist.dl.sourceforge.net/sourceforge/ebtables/arptables-v0.0.3-3.tar.gz# tar zxvf arptables-v0.0.3-3.tar.gz# cd arptables-v0.0.3-3# make# make install

arptables [-t table] -[AD] chain rule-specification [options]       arptables [-t table] -[RI] chain rulenum rule-specification [options]       arptables [-t table] -D chain rulenum [options]       arptables [-t table] -[LFZ] [chain] [options]       arptables [-t table] -[NX] chain       arptables [-t table] -E old-chain-name new-chain-name       arptables [-t table] -P chain target [options]

链(chain)

kernel表是用来区分不同设置的不同功能.规则的每个设置叫做一个”链”.每个链
是有一个排序了的规则列表,用来于ARP帧相匹配.如果一个规则与一个ARP帧
相匹配,一个”操作说明”会提供需要进行哪些操作.操作说明叫做”目标”.然而,
如果帧与当前链中的当前规则不匹配,则继续与链中的下一条规则进行检查.用
户可以建立一个新的链,作为规则的”目标”来使用.
目标(target)
包含有一个ARP帧与一个帧处理说明的防火墙规则说明叫做一个”目标”.当一个
帧与一个规则相匹配时,则kernel按”目标”的定义进行下一步操作.“目标”可以是:
ACCEPT,DROP.CONTINUE,RETURN,扩展定义或用户指定规则.
ACCEPT表示允许这个帧通过.DROP表示这个帧将被丢弃.CONTINUE表示继续
进行下一条规则.这样可以很方便的计算,有多少帧经过了某个规则.RETURN表示
不在这个链中继续进行匹配,返回到上一条链的下一条规则.
表(table)
在kernel中只有一个ARP表.这个表是一个过滤器.你可以在arptables命令中使用
’-t filter’参数.使用时,-t参数必须是arptables命令的第一个参数.
-t,–table
是一个过滤器,在kernel中仅有这一个表,它包含2个(2.4.x内核)或3个(2.6.x内核)内建规则:
INPUT(发送帧的源主机),OUTPUT(本地产生的帧),FORWARD(由桥代码转发的帧).
2.4.X内核中没有FORWARD规则.
arptables命令参数
命令行参数分为几个部分:命令部分,杂项部分,规则说明,匹配扩展,监视器扩展.
命令(command)
arptables命令参数用于指定在使用-t参数定义的表中的执行动作.如果你没有使用
-t参数指定一个表名,则命令将应用于默认的过滤表.使用-Z命令时,命令行每次只能
使用一个命令.
-A,–append
在指定的链结尾添加一个规则.
-D,–delete
从指定的链中删除规则.这个命令有2种用法:
1.指定要删除规则的序号,语法是: start_nr[:end_nr],可以使用负数.
2.指定要删除规则的详细内容.
-I,–insert
按序号,在指定的链中插入规则.如当前的序号为N,则可以使用-N到N+1
作为插入序号.序号0表示表示在最后一条规则后插入新规则,等同于-A参数.
-R,–replace
替换链中指定的规则.如果当前的序号是N,则指定的序号可以是1到N之间的
数字.
-P,–policy
在链中设置指定目标的策略,可以为:ACCEPT,DROP或RETURN.
-F,–flush
清空指定的链.如果没有指定链,则所有的链都将被清空.清空链不会改变链的
策略.
-Z,–zero
将指定链的计数器置0.如果没有指定链,则所有计数器都将置0.-Z命令可以与
-L命令结合使用.当同时使用-Z,-L命令时,计数器的值会先被打印出来,然后置0.
-L,–list
输出指定链中的规则.如果没有指定链,所有将输出所有链中的规则.
-N,–new-chain
建立新的用户链.用户链的数量没有限制,但用户链的名称最多可以有31个字符.
-X,–delete-chain
删除指定的用户链.用户链中必须为空.如果没有指定用户链,则所有为空的用户链
将被删除.
-E,–rename-chain
重命名指定链.你可以重命名一个用户链,也可以重命名一个标准链名.
<其他命令>
-V,–version
显示arptables程序的版本号.
-h,–help
输出语法帮助信息.
-j,–jump 目标
规则的目标.可以是:ACCEPT,DROP,CONTINUE,RETURN,目标扩展或用户
定义链名.
<规则说明>
-s,–source-ip [!] IP地址[/掩码]
源IP地址
-d,–destination-ip [!] IP地址[/掩码]
目的IP地址
–source-mac [!] MAC地址[/掩码]
源MAC地址
–destination-mac [!] MAC地址[/掩码]
目的MAC地址.
-i,–in-interface [!] 设备名
用于接收帧的接口(应用于INPUT,FORWARD链).–in-if是这个选项的别名.
-o,–out-interface [!] 设备名
用于发送帧的接口(应用于OUTPUT,FORWARD链).–out-if是这个选项的别名.
-l,–h-length 长度[/掩码]
硬件长度(单位字节).
–opcode 代码[/掩码]
操作码(2字节).可以使用:1=请求,2=回复,3=反解析请求,4=反解析回复,
5=动态反解析请求,6=动态反解析回复,7=动态反解析错误,8=逆向ARP请求,
9=ARP_NAK
–h-type 类型[/掩码]
硬件类型(2字节,十六进制).可以使用:1=Ethernet.
–proto-type 类型[/mask]
协议类型(2字节).可以使用:0×800=IPv4

# arp -am1 (192.168.0.1) at 00:E0:4C:FF:D7:31 [ether] on eth0显示当前ARP表信息当前ARP表中保存有一个主机的arp信息,m1主机,ip地址192.168.0.1# arptables  -D INPUT -s 192.168.0.1 -j DROP设置arp规则,将所有192.168.0.1的arp包全部丢弃.# arp -d 192.168.0.1 -i eth0使用arp命令,删除arp表中的192.168.0.1的记录.# arp -am1 (192.168.0.1) at 
on eth0arp表中已没有m1主机的信息.# ping 192.168.0.1PING m1 (192.168.0.1) 56(84) bytes of data.From m2 (192.168.0.2) icmp_seq=2 Destination Host UnreachableFrom m2 (192.168.0.2) icmp_seq=3 Destination Host UnreachableFrom m2 (192.168.0.2) icmp_seq=4 Destination Host Unreachable由于无法获得m1主机MAC信息,所以,无法与m1主机进行通信.# arptables -D INPUT -s 192.168.0.1 -j DROP删除arptables规则.# arp -am1 (192.168.0.1) at 00:E0:4C:FF:D7:31 [ether] on eth0arp表中重新记录了m1的MAC信息.# ping 192.168.0.1PING m1 (192.168.0.1) 56(84) bytes of data.64 bytes from m1 (192.168.0.1): icmp_seq=1 ttl=64 time=0.315 ms

arpwatch用来监听网络中的ARP数据包并进行记录,同时将监听到的

变化通过E-mail来报告给系统管理员.
arpwatch使用pcap(3)来监听本地以太接口的arp数据包.

Turbolinux 10.5和11版本中,已经集成有arpwatch.

你也可以从源码安装:

# wget -c ftp://ftp.ee.lbl.gov/arpwatch.tar.gz# cd arpwatch-2.1a15# ./configure# make# make install

arpwatch [ -dN ]               [ -f datafile ]               [ -i interface ]               [ -n net[/width ]]               [ -r file ]               [ -s sendmail_path ]               [ -p ]               [ -a ]               [ -m addr ]               [ -u username ]               [ -R seconds ]               [ -Q ]               [ -z ignorenet/ignoremask ]

-d 标记用来启用调试模式.

-f 标记用来设置使用的数据库名,默认是arp.dat.
-i 用来指定网络接口.
-n 用于说明本地网络.
-r 指定读取一个由tcpdump或pcapture生成信息文件,而不从网络接口中

读取.//

-s 用于指定sendmail程序的路径.

-p 指定禁用”混合模式”.网络接口不是”混合模式”时,ARP广播也可以通过.
-a 默认情况下,arpwatch仅记录默认网络接口上,第一个IP地址子网的arp
信息.使用-a参数,则记录网络接口上所有IP地址子网的arp信息.
-m 指定一个用于接收变更信息的邮件地址.

# arpwatch -i eth0 -s root@localhost.localdomain监听eth0接口,并将arp的变更信息,发送到本地的root用户邮箱中.

转载地址:http://xlqmb.baihongyu.com/

你可能感兴趣的文章
移动通信的主要测量指标及注意事项(转)
查看>>
无盘网络正确网络配置建议-减少卡机蓝屏关键(转)
查看>>
如何在Delphi中调用oracle的存储过程返回数据集(转)
查看>>
ASP指南:ADO/SQL(数据存取) (转)
查看>>
微软将在HEC上发布Windows 2003 64-bit(转)
查看>>
保护SQL Server数据库的十大绝招(转)
查看>>
百度搜索引擎使用指南(转)
查看>>
专家观点:安全成交换机的基本功能(转)
查看>>
树型结构在ASP中的简单解决(转)
查看>>
解决玩游戏时显卡卡屏现象(转)
查看>>
移动通信概要(转)
查看>>
CMD命令全集(转)
查看>>
深度探索C++对象模型 ( 第四部分 )(转)
查看>>
MySQL中的SQL特征(转)
查看>>
使用JBuilder和WTK2.2搭建MIDP1.0和MIDP2.0开发环境(转)
查看>>
Symbian命名规则(翻译)(转)
查看>>
windows server 2003的设置使用(转)
查看>>
优化Win2000的NTFS系统(转)
查看>>
IE漏洞可使黑客轻易获取私人信息(转)
查看>>
脱机备份与恢复实战(转)
查看>>