ARP,即地址解析协议,实现通过IP地址得知其物理地址。在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。为了让报文在物理网路上传送,必须知道对方目的主机的物理地址。这样就存在把IP地址变换成物理地址的地址转换问题。以以太网环境为例,为了正确地向目的主机传送报文,必须把目的主机的32位IP地址转换成为48位以太网的地址。这就需要在互连层有一组服务将IP地址转换为相应物理地址,这组协议就是ARP协议。另有电子防翻滚系统也称为ARP。
地址解析协议
基本功能
在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。而在TCP/IP协议栈中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。 另外,当发送主机和目的主机不在同一个局域网中时,即便知道目的主机的MAC地址,两者也不能直接通信,必须经过路由转发才可以。所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的某个端口的MAC地址。于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为ARP代理(ARP Proxy)。
工作原理
在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的。 以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到目标IP地址,主机A就会在网络上发送一个广播,A主机MAC地址是“主机A的MAC地址”,这表示向同一网段内的所有主机发出这样的询问:“我是192.168.1.5,我的硬件地址是"主机A的MAC地址".请问IP地址为192.168.1.1的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时A和B还同时都更新了自己的ARP缓存表(因为A在询问的时候把自己的IP和MAC地址一起告诉了B),下次A再向主机B或者B向A发送信息时,直接从各自的ARP缓存表里查找就可以了。ARP缓存表采用了老化机制(即设置了生存时间TTL),在一段时间内(一般15到20分钟)如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。 ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。 ARP攻击主要是存在于局域网网络中,局域网中若有一个人感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。 RARP的工作原理: 1. 发送主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址; 2. 本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址; 3. 如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用; 4. 如果不存在,RARP服务器对此不做任何的响应; 5. 源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。 6.如果在第1-3中被ARP病毒攻击,则服务器做出的反映就会被占用,源主机同样得不到RARP服务器的响应信息,此时并不是服务器没有响应而是服务器返回的源主机的IP被占用。
数据结构
[1]ARP协议的数据结构: typedef structarphdr { unsignedshortarp_hrd;/*硬件类型*/ unsignedshortarp_pro;/*协议类型*/ unsignedchararp_hln;/*硬件地址长度*/ unsignedchararp_pln;/*协议地址长度*/ unsignedshortarp_op;/*ARP操作类型*/ unsignedchararp_sha[6];/*发送者的硬件地址*/ unsignedlongarp_spa;/*发送者的协议地址*/ unsignedchararp_tha[6];/*目标的硬件地址*/ unsignedlongarp_tpa;/*目标的协议地址*/ }ARPHDR,*PARPHDR;
RARP 反向地址转换协议
反向地址转换协议用于一种特殊情况,如果站点被初始化后,只有自己的物理网络地址而没有IP地址,则他可以通过RARP协议,并发出广播请求,征求自己的IP地址,而RARP服务器则没有负责回答。这样无IP的站点可以通过RARP协议取得自己的IP地址,这个地址在下一次系统重新开始以前都有效,不用连续广播请求。RARP广泛用于获取无盘工作站的IP地址。
ARP和RARP报头结构
ARP和RARP使用相同的报头结构,如图所示。 报送格式 硬件类型字段:指明了发送方想知道的硬件接口类型,以太网的值为1; 协议类型字段:指明了发送方提供的高层协议类型,IP为0800(16进制); 硬件地址长度和协议长度:指明了硬件地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用; 操作字段:用来表示这个报文的类型,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4; 发送方的硬件地址(0-2字节):源主机硬件地址的前3个字节; 发送方的硬件地址(3-5字节):源主机硬件地址的后3个字节; 发送方IP(0-1字节):源主机硬件地址的前2个字节;
ARP缓存表查看方法
ARP缓存表是可以查看的,也可以添加和修改。在命令提示符下,输入“arp -a”就可以查看ARP缓存表中的内容了,如附图所示。 arp -a 用“arp -d”命令可以删除ARP表中所有的内容; 用“arp -d +空格+ <指定ip地址>” 可以删除指定ip所在行的内容 用“arp -s”可以手动在ARP表中指定IP地址与MAC地址的对应,类型为static(静态),此项存在硬盘中,而不是缓存表,计算机重新启动后仍然存在,且遵循静态优于动态的原则,所以这个设置不对,可能导致无法上网.
一、什么是ARP协议
·二、ARP协议的工作原理
·三、如何查看ARP缓存表
·四、ARP欺骗
·五、遭受ARP攻击后现象
我们知道,当我们在浏览器里面输入网址时,DNS服务器会自动把它解析为IP地址,浏览器实际上查找的是IP地址而不是网址。那么IP地址是如何转换为第二层物理地址(即MAC地址)的呢?在局域网中,这是通过ARP协议来完成的。ARP协议对网络安全具有重要的意义。通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞。所以网管们应深入理解ARP协议。
一、什么是ARP协议
ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
二、ARP协议的工作原理
在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如附表所示。
附表
我们以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问: “192.168.1.1的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应: “192.168.1.1的MAC地址是00-aa-00-62-c6-09”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。
ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。
ARP攻击主要是存在于局域网网络中,局域网中若有一个人感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。
三、如何查看ARP缓存表
ARP缓存表是可以查看的,也可以添加和修改。在命令提示符下,输入“arp -a”就可以查看ARP缓存表中的内容了,如附图所示。
用“arp -d”命令可以删除ARP表中某一行的内容;用“arp -s”可以手动在ARP表中指定IP地址与MAC地址的对应。
四、ARP欺骗
其实,此起彼伏的瞬间掉线或大面积的断网大都是ARP欺骗在作怪。ARP欺骗攻击已经成了破坏网吧经营的罪魁祸首,是网吧老板和网管员的心腹大患。
从影响网络连接通畅的方式来看,ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。
{dy}种ARP欺骗的原理是——截获网关数据。它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。第二种ARP欺骗的原理是——伪造网关。它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。在PC看来,就是上不了网了,“网络掉线了”。
一般来说,ARP欺骗攻击的后果非常严重,大多数情况下会造成大面积掉线。有些网管员对此不甚了解,出现故障时,认为PC没有问题,交换机没掉线的“本事”,电信也不承认宽带故障。而且如果{dy}种ARP欺骗发生时,只要重启路由器,网络就能全面恢复,那问题一定是在路由器了。为此,宽带路由器背了不少“黑锅”。
作为网吧路由器的厂家,对防范ARP欺骗不得已做了不少份内、份外的工作。一、在宽带路由器中把所有PC的IP-MAC输入到一个静态表中,这叫路由器IP-MAC绑定。二、力劝网管员在内网所有PC上设置网关的静态ARP信息,这叫PC机IP-MAC绑定。一般厂家要求两个工作都要做,称其为 IP-MAC双向绑定。
显示和修改“地址解析协议”(ARP) 所使用的到以太网的 IP 或令牌环物理地址翻译表。该命令只有在安装了 TCP/IP 协议之后才可用。
arp -a [inet_addr] [-N [if_addr]
arp -d inet_addr [if_addr]
arp -s inet_addr ether_addr [if_addr]
参数
-a
通过询问 TCP/IP 显示当前 ARP 项。如果指定了 inet_addr,则只显示指定计算机的 IP 和物理地址。
-g
与 -a 相同。
inet_addr
以加点的十进制标记指定 IP 地址。
-N
显示由 if_addr 指定的网络界面 ARP 项。
if_addr
指定需要修改其地址转换表接口的 IP 地址(如果有的话)。如果不存在,将使用{dy}个可适用的接口。
-d
删除由 inet_addr 指定的项。
-s
在 ARP 缓存中添加项,将 IP 地址 inet_addr 和物理地址 ether_addr 关联。物理地址由以连字符分隔的6 个十六进制字节给定。使用带点的十进制标记指定 IP 地址。项是{yj}性的,即在超时到期后项自动从缓存删除。
ether_addr
指定物理地址。
五、遭受ARP攻击后现象
ARP欺骗木马的中毒现象表现为:使用局域网时会突然掉线,过一段时间后又会恢复正常。比如客户端状态频频变红,用户频繁断网,IE浏览器频繁出错,以及一些常用软件出现故障等。如果局域网中是通过身份认证上网的,会突然出现可认证,但不能上网的现象(无法ping通网关),重启机器或在MS-DOS窗口下运行命令arp -d后,又可恢复上网。
ARP欺骗木马只需成功感染一台电脑,就可能导致整个局域网都无法上网,严重的甚至可能带来整个网络的瘫痪。该木马发作时除了会导致同一局域网内的其他用户上网出现时断时续的现象外,还会窃取用户密码。如xxQQ密码、xx各种网络游戏密码和账号去做金钱交易,盗窃网上银行账号来做非法交易活动等,这是木马的惯用伎俩,给用户造成了很大的不便和巨大的经济损失。
防止ARP攻击
1.建立DHCP服务器(建议建在网关上,因为DHCP不占用多少CPU,而且ARP欺骗攻击一般总是先攻击网关,我们就是要让他先攻击网关,因为网关这里有监控程序的,网关地址建议选择192.168.10.2 ,把192.168.10.1留空,如果犯罪程序愚蠢的话让他去攻击空地址吧),另外所有客户机的IP地址及其相关主机信息,只能由网关这里取得,网关这里开通DHCP服务,但是要给每个网卡,绑定固定{wy}IP地址。一定要保持网内的机器IP/MAC一一对应的关系。这样客户机虽然是DHCP取地址,但每次开机的IP地址都是一样的。
2.建立MAC数据库,把网吧内所有网卡的MAC地址记录下来,每个MAC和IP、地理位置统统装入数据库,以便及时查询备案。
3.网关机器关闭ARP动态刷新的过程,使用静态路邮,这样的话,即使犯罪嫌疑人使用ARP欺骗攻击网关的话,这样对网关也是没有用的,确保主机安全。
网关建立静态IP/MAC捆绑的方法是:建立/etc/ethers文件,其中包含正确的IP/MAC对应关系,格式如下:
192.168.2.32 08:00:4E:B0:24:47
然后再/etc/rc.d/rc.local{zh1}添加:
arp -f 生效即可
4.网关监听网络安全。网关上面使用TCPDUMP程序截取每个ARP程序包,弄一个脚本xxxx分析这些ARP协议。ARP欺骗攻击的包一般有以下两个特点,满足之一可视为攻击包报警:{dy}以太网数据包头的源地址、目标地址和ARP数据包的协议地址不匹配。或者,ARP数据包的发送和目标地址不在自己网络网卡MAC数据库内,或者与自己网络MAC数据库 MAC/IP 不匹配。这些统统{dy}时间报警,查这些数据包(以太网数据包)的源地址(也有可能伪造),就大致知道那台机器在发起攻击了。
5.偷偷摸摸的走到那台机器,看看使用人是否故意,还是被任放了什么木马程序陷害的。如果后者,不声不响的找个借口支开他,拔掉网线(不关机,特别要看看Win98里的计划任务),看看机器的当前使用记录和运行情况,确定是否是在攻击。