关于arp防火墙哪个软件好,ARP防火墙是什么这个问题很多朋友还不知道,今天小六来为大家解答以上的问题,现在让我们一起来看看吧!
1、ARP防火墙就是局域网防火墙!详细地说:ARP防火墙通过在系统内核层拦截虚假ARP数据包以及主动通告网关本机正确的MAC地址,可以保障数据流向正确,不经过第三者。
2、从而保证通讯数据安全、保证网络畅通、保证通讯数据不受第三者控制。
3、包括 拦截ARP攻击、拦截IP冲突、Dos攻击抑制、ARP数据分析等功能。
4、 网络经常掉线、发生IP冲突、担心通讯数据受到监控(如MSN、QQ、EMAIL)、网络速度受到网管软件限制(如聚生网管、P2P终结者)、甚至深受各种ARP攻击软件之苦(如网络执法官、网络剪刀手、局域网终结者)等这些问题是我们上网时经常遇到呃,而这些问题的产生 ,根源都是ARP欺骗(ARP攻击)。
5、在没有ARP欺骗之前,数据流向是这样的:网关<->本机。
6、ARP欺骗之后,数据流向是这样的:网关<->攻击者(“网管”)<->本机,本机与网关之间的所有通讯数据都将流经攻击者(“网管”),所以“任人宰割”就在所难免了。
7、 ARP攻击: ARP防火墙通过在系统内核层拦截虚假ARP数据包以及主动通告网关本机正确的MAC地址,可以保障数据流向正确,不经过第三者,从而保证通讯数据安全、保证网络畅通、保证通讯数据不受第三者控制,从而完美的解决上述所有问题。
8、 编辑本段功能 拦截攻击 (1) 在系统内核层拦截外部虚假ARP数据包,保障系统不受ARP欺骗、ARP攻击影响,保持网络畅通及通讯安全; (2) 在系统内核层拦截本机对外的ARP攻击数据包,以减少感染恶意程序后对外攻击给用户带来的麻烦; 拦截IP冲突 在系统内核层拦截IP冲突数据包,保障系统不受IP冲突攻击的影响; Dos攻击抑制 在系统内核层拦截本机对外的TCP SYN/UDP/ICMP/ARP DoS攻击数据包,定位恶意发动DoS攻击的程序,从而保证网络的畅通; 安全模式 除了网关外,不响应其它机器发送的ARP Request,达到隐身效果,减少受到ARP攻击的几率; P数据分析 分析本机接收到的所有ARP数据包,掌握网络动态,找出潜在的攻击者或中毒的机器; 监测缓存 自动监测本机ARP缓存表,如发现网关MAC地址被恶意程序篡改,将报警并自动修复,以保持网络畅通及通讯安全; 主动防御 主动与网关保持通讯,通告网关正确的MAC地址,以保持网络畅通及通讯安全; ARP防火墙追踪攻击者 发现攻击行为后,自动快速锁定攻击者IP地址; 病毒专杀 发现本机有对外攻击行为时,自动定位本机感染的恶意程序、病毒程序; 编辑本段工作原理 ARP防火墙ARP是Address Resolution Protocol(地址转换协议)的简称,是TCP/IP协议中最底层的协议之一。
9、它的作用是完成IP地址到MAC(物理地址)的转换。
10、在局域网中两台计算机之间的通讯,或者局域网中的计算机将IP数据报转发给网关的时候,网卡都需要知道目标计算机的物理地址,以填充物理帧中的目的地址。
11、 现在假设同一以太网中的计算机A(192.168.0.1)需要向计算机B(192.168.0.2)发送数据报,而此时A尚不知道B的物理地址。
12、为了获得B的物理地址,A在局域网上发送ARP广播,查询192.168.0.2这个物理地址,同时在ARP包中填入自己的物理地址Ma,相当于发出这样的询问“谁拿了192.168.0.2这个地址?请回Ma这个物理地址。
13、”计算机B在收到了这个查询以后,以Ma为目的地址发回一个ARP包,里面包含了自己的物理地址。
14、这样通讯的双方都了解了对方的物理地址,通讯过程正式建立。
15、 通常ARP协议都在支持广播的网络上使用,比方以太网,这种数据包不能跨物理网段使用,即不能跨越一个路由器(除路由器本身还用作ARP代理以外)。
16、 ARP防火墙在实际的ARP协议软件的实现中还有一些应该注意的事项:每台计算机上都有一个ARP缓冲,它保存了一定数量的从IP地址到MAC地址的映射,同时当一个ARP广播到来时,虽然这个ARP广播可能与它无关,但ARP协议软件也会把其中的物理地址与IP地址的映射记录下来,这样做的好处是能够减少ARP报在局域网上发送的次数。
17、同时,ARP缓冲中IP地址与物理地址之间的映射并不是一但生成就永久有效,每一个ARP映射表项都有自己的时延,如果过了一定的时间还没有新的ARP到来,那么这个ARP映射就从缓冲中被删除了。
18、那么下一次计算机向这个IP地址发送数据包的时候必须来一次新的查询。
19、 本地网络IP 查找的原理。
20、事实上Windows 本身就用ARP来确定自己的IP地址是否与网络上的另一台计算机发生了冲突。
21、当一个ARP包到来时,Windows 如果检查到其中的IP地址与本机上的相同,而物理地址不同,这时Windows 就会向用户报告这个IP地址已经被别人占用。
22、非常有意思的是,Windows 对待IP地址是以先来后到的顺序分配,如果已经有人先占了,那么本机的网络接口就会被禁用。
23、这也是非常恼人的“特色”因为一旦开机后有了第一次冲突,以后的任何网络操作就都无效了。
24、Windows XP 有了一定的进步,它在发现冲突以后并不禁用接口,而是允许用户进行修复。
25、其实用sniffer可以看到所谓的“修复”也不过是发了几个ARP包出去,把IP“抢”回来。
26、 ARP防火墙在以前的文章中我描述了一个用ICMP 回送请求(类似PING)进行IP查找的程序。
27、这个程序用并发的几十个线程同时PING网络上的多台计算机,如果回送请求被正确的应答了,那么可以认为这个IP地址已经被占用,如果没有,我们就宣称它是空闲的。
28、然而它有优点也有缺点,其优点是能够PING很远的计算机,即使不在同一个物理网段上,缺点是当目标计算机上安装了防火墙并禁止了ICMP包,或者采用了防ICMP flood 攻击的规则以后都有可能让ICMP回送请求得不到应答。
29、 ARP的优点与缺点正好与ICMP相反。
30、它无法跨物理网段进行IP查找,但是由于没有防火墙禁止ARP包的通过(想想看,如果禁止了ARP包,也就等于不让人家知道你的物理地址,那么实际上也就是将自己的计算机同网络断开了),所以ARP包的IP查找结果一定是非常精准的。
31、 ARP防火墙在实现了一个原始的ARP IP查找版本以后,我发现其结果并不准确,有些已经没有人使用的IP地址被错误的报成有人占用了,难道我的判断是错误的?当然不,这种错误的原因是在Windows 的ARP缓冲中。
32、实际上,在发送一个ARP报文的时候,Windows会首先检查本机的ARP缓冲,如果发现了已经有对应的ARP表项,而且还没有过期的话,Windows 并不会发送这个报文,而是直接返回给调用者这个ARP表项的内容。
33、这样一来,假设有计算机中途掉网,而它的ARP表项还没有过期,那么这个程序仍然能够得到它的IP到MAC的映射,自然也就会错误的宣称这个IP地址还在使用中了。
34、在运行这个程序前,我使用arp –d(事实上,在看了本文以后,你就可以实现一个这样的arp程序了)这个命令来删除缓冲中所有的ARP表项,然后得到的结果就非常准确了。
35、IP Helper API 提供了管理ARP缓冲的过程,所以我修改了这个程序,把arp –d的功能集成到了自己的程序中来。
36、如果看看《使用TCP/IP协议实际网际互连(第二卷)》你就会明白ARP协议软件中的诸多问题。
37、 IP Helper API GetIpNetTable 函数能够提取出本机上的所有ARP表项。
38、使用它的方法与上一篇文章中使用的函数相当的类似,你也必须两次使用它,第一次获得缓冲的大小,而第二次获得实际的ARP表。
39、这个映射表是以数组的方式指出的。
40、其结构如下: typedef struct _MIB_IPNETTABLE { DWORD dwNumEntries; //数组的大小 MIB_IPNETROW table[ANY_SIZE]; //数组本身 } MIB_IPNETTABLE, *PMIB_IPNETTABLE; 而MIB_IPNETROW 的定义: typedef struct _MIB_IPNETROW { DWORD dwIndex; // 网络接口的索引号 DWORD dwPhysAddrLen; // 物理地址长度 BYTE bPhysAddr[MAXLEN_PHYSADDR]; // 物理地址 DWORD dwAddr; // IP地址 DWORD dwType; // ARP表项类型 ARP防火墙} MIB_IPNETROW, *PMIB_IPNETROW; 其中dwType 即ARP表项类型是比较重要的东西,因为某些ARP表项一但设定就不再改变,比方本机地址的ARP表项和默认网关的地址表项等等,这些ARP表项并不会“过期”,除非网络故障或者设置改变了以后,会重新生成一次ARP查询。
41、这种表项被称为“静态”的。
42、此时dwType的值为4。
43、在程序中,我们不必删除这类表项(虽然删了它们也不会造成什么后果)。
44、 然而在实际的程序中,我使用了FlushIPNetTable这个函数来删除特定网卡上的ARP缓冲。
45、 然后是删除一个表项的DeleteIpNetEntry,修改表项的SetIpNetEntry 和添加表项的CreateIpNetEntry 。
46、还有两个管理代理ARP表项的函数,关于代理ARP,可以看看《使用TCP/IP 协议实现网际互连(第一卷)》关于ARP代理的部分,由于与我们的程序无关,就不做介绍了。
47、 最后需要详述的函数是SendARP。
48、它的原型如下: DWORD SendARP( IPAddr DestIP, // 目的IP 地址 IPAddr SrcIP, // 源IP地址,可选参数,把它填成0不会有问题 PULONG pMacAddr, // 返回的物理地址 PULONG PhyAddrLen // 物理地址的长度。
本文分享完毕,希望对大家有所帮助。
标签:
免责声明:本文由用户上传,如有侵权请联系删除!