MAC地址与IP地址绑定
- 格式:docx
- 大小:40.73 KB
- 文档页数:6
如果你是通过校园网或小区接入Internet,那么一定听说过MAC地址。
什么是MAC地址,MAC地址在这种局域网环境中究竟起到什么作用?下面就来介绍一下MAC地址的知识,MAC 地址和IP地址的区别以及MAC地址在实际应用中所涉及到的安全问题。
一、基础知识如今的网络是分层来实现的,就像是搭积木一样,先设计某个特定功能的模块,然后把模块拼起来组成整个网络。
局域网也不例外,一般来说,在组网上我们使用的是IEEE802参考模型,从下至上分为:物理层、媒体接入控制层(MAC),逻辑链路控制层(LLC)。
标识网络中的一台计算机,一般至少有三种方法,最常用的是域名地址、IP地址和MAC地址,分别对应应用层、网络层、物理层。
网络管理一般就是在网络层针对IP地址进行管理,但由于一台计算机的IP地址可以由用户自行设定,管理起来相对困难,MAC地址一般不可更改,所以把IP地址同MAC地址组合到一起管理就成为常见的管理方式。
二、什么是MAC地址MAC地址就是在媒体接入层上使用的地址,也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。
MAC地址与网络无关,也即无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处,都有相同的MAC地址,它由厂商写在网卡的BIOS里。
MAC地址可采用6字节(48比特)或2字节(16比特)这两种中的任意一种。
但随着局域网规模越来越大,一般都采用6字节的MAC地址。
这个48比特都有其规定的意义,前24位是由生产网卡的厂商向IEEE申请的厂商地址,目前的价格是1000美元买一个地址块,后24位由厂商自行分配,这样的分配使得世界上任意一个拥有48位MAC 地址的网卡都有唯一的标识。
另外,2字节的MAC地址不用网卡厂商申请。
MAC地址通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数08:00:20代表网络硬件制造商的编号,它由IEEE分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。
H3C交换机IP+ mac+端口绑定系统视图下:user-bind mac-addr mac-address ip-addr ip-address interface interface-list以太网端口视图下:user-bind mac-addr mac-address ip-addr ip-address如何通过交换机查询MAC、IP及端口dis arp端口+MAC1)AM命令使用特殊的AM User-bind命令,来完成MAC地址与端口之间的绑定。
例如:[SwitchA]am user-bind mac-address 00e0-fc22-f8d3 interface Ethernet 0/1说明:由于使用了端口参数,则会以端口为参照物,即此时端口E0/1只允许PC1上网,而使用其他未绑定的MAC地址的PC机则无法上网。
但是PC1使用该MAC地址可以在其他端口上网。
2)mac-address命令使用mac-address static命令,来完成MAC地址与端口之间的绑定。
例如:[SwitchA]mac-address static 00e0-fc22-f8d3 interface Ethernet 0/1 vlan 1[SwitchA]mac-address max-mac-count 0说明:由于使用了端口学习功能,故静态绑定mac后,需再设置该端口mac学习数为0,使其他PC接入此端口后其mac地址无法被学习。
H3C交换机IP+MAC地址+端口绑定配置组网需求:交换机对PC1进行IP+MAC+端口绑定,使交换机的端口E1/0/1下,只允许PC1上网,而PC1在其他端口上还可以上网。
配置步骤:1.进入系统模式<H3C>system-view2.配置IP、MAC及端口的绑定[H3C]am user-bind mac-addr 000f-e201-1112 ip-addr 1.1.1.1 interface e1/0/1配置关键点:1.同一IP地址或MAC地址,不能被绑定两次;2.经过以上配置后,可以完成将PC1的IP地址、MAC地址与端口E1/0/1之间的绑定功能。
假定:用户内网1.1.1.1-1.1.1.10要经过防火墙访问Internet
配置方法如下:
1. 在安全选项中选择IP/MAC地址绑定功能 (1)
2. 在安全选项中选中“允许未绑定的IP/MAC地址通过” (1)
3. 设置包过滤规则,源地址为:1.1.1.1-1.1.1.10,目标地址为任意,服务为任意,动作为允许。
(1)
4. 设置相应的NAT规则 (2)
5. 将全部10个IP都与相应的MAC地址绑定。
(2)
1.在安全选项中选择启动IP/MAC地址绑定功能
2.在安全选项中选中“允许未绑定的IP/MAC地址通过”
3.设置包过滤规则,源地址为:1.1.1.1-1.1.1.10,目标地址为任意,服务为任意,
动作为允许。
其中地址1.1.1.1-1.1.1.10需要在地址列表里定义
4.设置相应的NAT规则
5.将全部10个IP都与相应的MAC地址绑定。
按以上5部配好就可以了。
注:必须保证在安全规则中允许访问Internet的所有IP地址都进行IP/MAC地址绑定,如果某些IP地址暂时不用,可以给它随意绑定一个虚拟的MAC地址.这样,凡是能通过安全规则检查的IP地址,就必然被绑上了一个MAC地址,如果用户不能将网卡地址设为这个MAC地址,他就一定不能访问Internet.。
Cisco中有以下三种方案可供选择,方案1和方案2实现的功能是一样的,即在具体的交换机端口上绑定特定的主机的MAC地址(网卡硬件地址),方案3是在具体的交换机端口上同时绑定特定的主机的MAC地址(网卡硬件地址)和IP地址。
方法1——基于端口的MAC地址绑定思科2950交换机为例,登录进入交换机,输入管理口令进入配置模式:Switch#config terminal#进入配置模式Switch(config)# Interface fastethernet 0/1#进入具体端口配置模式Switch(config-if)#Switchport port-secruity#配置端口安全模式Switch(config-if )switchport port-security mac-address MAC(主机的MAC地址)#配置该端口要绑定的主机的MAC地址Switch(config-if )no switchport port-security mac-address MAC(主机的MAC地址)#删除绑定主机的MAC地址注意:以上命令设置交换机上某个端口绑定一个具体的MAC地址,这样只有这个主机可以使用网络,如果对该主机的网卡进行了更换或者其他PC机想通过这个端口使用网络都不可用,除非删除或修改该端口上绑定的MAC地址,才能正常使用。
以上功能适用于思科2950、3550、4500、6500系列交换机方法2——基于MAC地址的扩展访问列表Switch(config)Mac access-list extended MAC10#定义一个MAC地址访问控制列表并且命名该列表名为MAC10Switch(config)permit host 0009.6bc4.d4bf any#定义MAC地址为0009.6bc4.d4bf的主机可以访问任意主机Switch(config)permit any host 0009.6bc4.d4bf#定义所有主机可以访问MAC地址为0009.6bc4.d4bf的主机Switch(config-if )interface Fa0/20#进入配置具体端口的模式Switch(config-if )mac access-group MAC10 in#在该端口上应用名为MAC10的访问列表(即前面我们定义的访问策略)Switch(config)no mac access-list extended MAC10#清除名为MAC10的访问列表此功能与应用与第一种方法相同,但它是基于端口做的MAC地址访问控制列表限制,可以限定特定源MAC地址与目的地址范围。
水星无线路由器 ip与MAC地址绑定简易方法水星无线路由器ip与MAC地址绑定,可以使如果核心交换机事先知道合法用户的IP 地址及其对应的网卡地址,那么可以自动检测IP地址的使用者是否是合法用户,如果合法,正常传输数据,否则阻止数据的转发。
这样就使得非法抢占别人IP地址的机器无法上网,从而保证了合法用户的基本上网权利。
1、打开路由器设置界面,登陆方式,在IE地址栏中输入192.168.1.1或192.168.0.1,输入完成后将会弹出用户名和密码框,初始值为admin。
2、进入路由器WEB管理界面后,点击菜单栏左侧的“IP与MAC绑定”选项,如图所示:
3、在“静态ARP绑定设置”项中,单击“添加单个条目”,如下图所示:
4、勾选“绑定”框,然后在下栏中输入所需绑定的“MAC地址”及“IP地址”,点击保存。
(MAC地址是由48比特/bit长(6字节/byte,1byte=8bits),16进制的数字组成。
如下例所示:
5、设置完成后,点击“IP与MAC绑定”下的“ARP映射表”。
6、如上图所示,表明有三个内网地址(192.168.2.101、102.103)与本机相应MAC地址进行了绑定。
水星无线路由器ip与MAC地址绑定如上就已经解决。
其他路由器如极路由、tp-link 等也可以使用这种方法。
Ip/mac绑定set arp ip地址 mac地址(ethernet1/trust)set arp always-on-destsave取消Ip/mac绑定unset arp ip地址 mac地址save查看ip/mac绑定get arp all在state里面状态为STS时为绑定成功Netscreen中IMAC地址绑定的分析和实现在Netscreen防火墙的资料中没有明确地说具有IP/MAC地址绑定功能,但我们是否能通过其他办法来实现,又是基于什么机理来实现呢?借助NS的debug功能,我们分析MAC地址绑定中信息包的流动,找出实现的方法并推测出其实现的机理。
假设在内网Trust zone的E1端口接有计算机PC1,它的IP是192.168.0.52, MAC是0000e26e4743,端口E3在Untrust zone,接外网。
执行命令set arp 192.168.0.52 0000e26e4744 e1,在E1端口对PC1的IP地址作一个静态MAC地址绑定,但绑定的是一个错误的MAC地址0000e26e4744。
从PC1去ping外网的一台计算机,如果MAC地址绑定功能起作用的话,应该不能ping通。
然而我们发现却可以ping通。
通过debug看到,出去的包穿过防火墙,返回包也到达防火墙。
在返回包中目的IP (192.168.0.52)的MAC地址是0000e26e4743,自然返回包可以到达PC1。
我们知道Netscreen默认返回包的目的MAC是取自session表中出去包的源MAC地址(即0000e26e4743),它并不扫描ARP表,所以即使你将地址192.168.0.52错误地绑定到0000e26e4744,也不会起作用。
于是我们想到应该再执行命令set arp always-on-dest,强迫防火墙通过ARP扫描来获得目的MAC地址,由于已经将地址192.168.0.52作了静态ARP绑定,因此ARP扫描将首先从静态ARP表取目的MAC地址0000e26e4744,而这是个错误的MAC地址,所以返回包无法到达PC1。
在网络安全越来越重要的今天,高校和企业对于局域网的安全控制也越来越严格,普遍采用的做法之一就是IP地址、网卡的MAC地址与交换机端口绑定,我们通常说的MAC 地址与交换机端口绑定其实就是交换机端口安全功能。
端口安全功能能让您配置一个端口只允许一台或者几台确定的设备访问那个交换机; 能根据MAC地址确定允许访问的设备;允许访问的设备的MAC地址既可以手工配置,也可以从交换机“学到”;当一个未批准的MAC地址试图访问端口的时候,交换机会挂起或者禁用该端口等等。
一、首先必须明白两个概念:可靠的MAC地址。
配置时候有三种类型。
静态可靠的MAC地址:在交换机接口模式下手动配置,这个配置会被保存在交换机MAC地址表和运行配置文件中,交换机重新启动后不丢失(当然是在保存配置完成后),具体命令如下:Switch(config-if)#switchport port-security mac-address Mac地址动态可靠的MAC地址:这种类型是交换机默认的类型。
在这种类型下,交换机会动态学习MAC地址,但是这个配置只会保存在MAC地址表中,不会保存在运行配置文件中,并且交换机重新启动后,这些MAC地址表中的MAC地址自动会被清除。
黏性可靠的MAC地址:这种类型下,可以手动配置MAC地址和端口的绑定,也可以让交换机自动学习来绑定,这个配置会被保存在MAC地址中和运行配置文件中,如果保存配置,交换机重起动后不用再自动重新学习MAC地址,。
具体命令如下:Switch(config-if)#switchport port-security mac-address sticky其实在上面这条命令配置后并且该端口得到MAC地址后,会自动生成一条配置命令Switch(config-if)#switchport port-security mac-address sticky Mac地址二、违反MAC安全采取的措施:当超过设定MAC地址数量的最大值,或访问该端口的设备MAC地址不是这个MAC 地址表中该端口的MAC地址,或同一个VLAN中一个MAC地址被配置在几个端口上时,就会引发违反MAC地址安全,这个时候采取的措施有三种:1.保护模式(protect):丢弃数据包,不发警告。
H3C交换机端口绑定IP+MAC的思路及配置客户的一个新项目,最近需要在H3C的交换机上做端口+IP+MAC绑定,最终目的是为了实现上网控制,大家都知道这是一件很繁琐的工作,前期要收集好MAC+IP+端口还有使用人的信息,客户终端有500台左右,所以前期收集资料的工作量蛮大,本来告诉客户在上网行为管理设备上做用户名密码认证+ARP绑定的方式,但客户说之前在核心交换机上做过ARP绑定,但有些人把本地的IP和MAC修改为与能上网的电脑IP和MAC一模一样,这样两台机器相当于同一台机器一样,都能同时在线上网了,也不会报IP地址冲突,只是上网速度会有一定的影响(会有丢包),若其中一台电脑不在线,另一台修改过得电脑上网完全没有影响。
结合上网行为管理设备做用户名和密码认证,用户又说怕能上网的那些人把自己的用户名和密码告诉别人,没办法彻底控制!晕现在基本上只能按照他们的要求去在接入层交换机上做端口+IP+MAC绑定了,接入层交换机有两种型号:S5120-52C-EI和S3100V2-16TP-EI,看了一下两种交换机都支持这种端口+IP+MAC的绑定方式,那就根据客户的需求来干吧~ 以下是总体思路和方法:首先,收集各终端的IP+MAC+端口信息以及使用人信息(估计3个工作日的时间),并做好记录;然后,在各台接入层交换机上根据前面收集到的信息就行配置(2个工作日左右),下面我们看一下配置:(1)1个端口下只有一台电脑的绑定方法如IP地址为10.100.10.2 ,MAC地址为00-1A-4D-1E-39-2D 的电脑接在交换机的G1/0/2端口,那么可以进行如下配置:interface GigabitEthernet 1/0/2 首先进入2号端口user-bind ip-addr 10.100.10.2 mac-addr 001A-4D1E-392D 绑定IP和MAC(2)1个端口下接了一个小交换机的绑定方式如:1号端口下接了一个8口的小交换机,交换机接有3台电脑,3台电脑的IP和MAC如下1电脑的IP:10.100.11.2 MAC:00-1A-4D-1E-39-812电脑的IP:10.100.11.3 MAC:00-1A-4D-1E-39-8E3电脑的IP:10.100.11.4 MAC:00-1A-4D-1E-39-8F那么这三台电脑都需要进行捆绑,可以进行如下配置:interface GigabitEthernet 1/0/1 首先进入1端口user-bind mac-addr 001a-4d1e-3981 ip-addr 10.100.11.2user-bind mac-addr 001a-4d1e-398e ip-addr 10.100.11.3user-bind mac-addr 001a-4d1e-398f ip-addr 10.100.11.4(3)若端口下没有接任何设备,那么当新接入一台终端后,就没有IP+MAC地址的限制了,就有可能会正常上网,因此还需要在这些空闲端口上关掉MAC地址自动学习的功能,命令如下:interface GigabitEthernet 1/0/20 首先进入空闲的20号端口mac-address mac-learning disable 关掉此端口的MAC地址学习功能最后,抽几台电脑进行测试,更改IP或MAC或端口,看看是否满足客户需求,但这里有一点要说明的是对于上面第二种情况,若端口接了一个小交换机或HUB,其中一台不能上网的电脑把IP和MAC修改为同接在一台小交换机上的可以上网的电脑的IP和MAC,也是可以上网的,现象就是同时在线会网速慢丢包,不同时在线是没有影响的。
华为交换机绑定IP和MAC地址IPSG(IP和MAC绑定)配置功能介绍:IPSG可以防⽌恶意主机伪造合法主机的IP地址仿冒合法主机来访问⽹络或攻击⽹络它是利⽤交换机上的绑定表过滤⾮法主机发送的报⽂,以阻⽌⾮法主机访问⽹络或者攻击⽹络绑定表分为静态绑定表和DHCP Snooping动态绑定表静态绑定表:通过user-bind命令⼿⼯配置。
该⽅法使⽤于局域⽹络中主机数较少,且主机使⽤静态配置Ip地址的⽹络环境DHCP Snooping动态绑定表:配置DHCP Snooping功能后,DHCP主机动态获取IP地址时,设备根据DHCP服务器发送的DHCP回复报⽂动态⽣成。
该⽅式适⽤于局域⽹络中主机较多,且主机使⽤DHCP动态获取Ip地址的⽹络环境下⾯来看静态配置⽰例:需求:1、某公司员⼯通过交换机连接⽹络,研发⼈员ip地址为10.0.0.1,⼈⼒资源员⼯ip地址为10.0.0.11,设备上配置ACL,只允许⼈⼒资源员⼯10.0.0.11可以访问internet2、在⼈⼒资源员⼯出差关机的情况下,研发员⼯也不能通过私⾃将ip地址更改为10.0.0.11访问internet配置思路:1、在switch上创建研发员⼯和⼈⼒资源员⼯的绑定表2、在Switch的GE0/0/1和GE0/0/2接⼝下使能IPSG检查功能操作步骤:system-view //进⼊系统视图user-bind static ip-address 10.0.0.1 mac 0000-0000-0001 //创建研发⼈员绑定表项user-bind static ip-address 10.0.0.11 mac 0000-0000-0002 //创建⼈⼒资源员⼯的绑定表项interface g0/0/1 //进⼊GE0/0/1接⼝视图ip source check user-bind enable //使能GE0/0/1接⼝的IPSG检查功能interface g0/0/2 //进⼊GE0/0/2接⼝视图ip source check user-bind enable //使能GE0/0/2接⼝的IPSG检查功能动态配置⽰例:需求:公司某部门员⼯IP地址均通过DHCP⽅式获取,通过部署IPSG实现员⼯只能使⽤DHCP Server分配的IP地址,不允许私⾃配置静态IP地址,如果私⾃制定IP地址将⽆法访问⽹络配置思路1、在switch上配置DHCP Snooping功能,⽣成DHCP snooping 动态绑定表2、在switch连接员⼯主机的vlan10上使能IPSG功能跳过dhcp配置,假设pc 通过DHCP⽅式动态获取到IP地址system-view //进⼊系统视图dhcp enable //全局使能DHCP功能dhcp snooping //全局使能DHCP Snooping 功能vlan10 // 进⼊vlan10视图dhcp Snooping enable //在vlan视图下使能DHCP Snooping功能dhcp Snooping trusted interface g0/0/3 //将连接DHCP server的g0/0/3接⼝配置为信任接⼝ip source check user-bind enable //基于vlan使能IPSG检查功能。
在cisco交换机中为了防止ip被盗用或员工乱改ip,可以做以下措施,既ip与mac地址的绑定,和ip与交换机端口的绑定。
一、通过IP查端口先查MAC地址,再根据MAC地址查端口:bangonglou3#show arp | include 208.41 或者show mac-address-table 来查看整个端口的ip-mac表nternet 10.138.208.41 4 0006.1bde.3de9 ARPA Vlan10bangonglou3#show mac-add | in 0006.1bde10 0006.1bde.3de9 DYNAMIC Fa0/17bangonglou3#exit二、ip与mac地址的绑定,这种绑定可以简单有效的防止ip被盗用,别人将ip改成了你绑定了mac地址的ip后,其网络不同,(tcp/udp协议不同,但netbios网络共项可以访问),具体做法:cisco(config)#arp 10.138.208.81 0000.e268.9980 ARPA这样就将10.138.208.81 与mac:0000.e268.9980 ARPA绑定在一起了三、ip与交换机端口的绑定,此种方法绑定后的端口只有此ip能用,改为别的ip后立即断网。
有效的防止了乱改ip。
cisco(config)# interface FastEthernet0/17cisco(config-if)# ip access-group 6 incisco(config)#access-list 6 permit 10.138.208.81这样就将交换机的FastEthernet0/17端口与ip:10.138.208.81绑定了。
============================================最常用的对端口安全的理解就是可根据MAC地址来做对网络流量的控制和管理,比如MAC地址与具体的端口绑定,限制具体端口通过的MAC地址的数量,或者在具体的端口不允许某些MAC地址的帧流量通过。
MAC地址与IP地址绑定 1引言 对“IP地址盗用”的解决方案绝大多数都是采取MAC与IP地址绑定策略,这种做法是十分危险的,本文将就这个问题进行探讨。在这里需要声明的是,本文是处于对对MAC与IP地址绑定策略安全的忧虑,不带有任何黑客性质。
1.1为什么要绑定MAC与IP地址 影响网络安全的因素很多,IP地址盗用或地址欺骗就是其中一个常见且危害极大的因素。现实中,许多网络应用是基于IP的,比如流量统计、账号控制等都将IP地址作为标志用户的一个重要的参数。如果有人盗用了合法地址并伪装成合法用户,网络上传输的数据就可能被破坏、窃听,甚至盗用,造成无法弥补的损失。
盗用外部网络的IP地址比较困难,因为路由器等网络互连设备一般都会设置通过各个端口的IP地址范围,不属于该IP地址范围的报文将无法通过这些互连设备。但如果盗用的是Ethernet内部合法用户的IP地址,这种网络互连设备显然无能为力了。“道高一尺,魔高一丈”,对于Ethernet内部的IP地址被盗用,当然也有相应的解决办法。绑定MAC地址与IP地址就是防止内部IP盗用的一个常用的、简单的、有效的措施。
1.2MAC与IP地址绑定原理 IP地址的修改非常容易,而MAC地址存储在网卡的EEPROM中,而且网卡的MAC地址是唯一确定的。因此,为了防止内部人员进行非法IP盗用(例如盗用权限更高人员的IP地址,以获得权限外的信息),可以将内部网络的IP地址与MAC地址绑定,盗用者即使修改了IP地址,也因MAC地址不匹配而盗用失败:而且由于网卡MAC地址的唯一确定性,可以根据MAC地址查出使用该MAC地址的网卡,进而查出非法盗用者。
目前,很多单位的内部网络,尤其是学校校园网都采用了MAC地址与IP地址的绑定技术。许多防火墙(硬件防火墙和软件防火墙)为了防止网络内部的IP地址被盗用,也都内置了MAC地址与IP地址的绑定功能。
从表面上看来,绑定MAC地址和IP地址可以防止内部IP地址被盗用,但实际上由于各层协议以及网卡驱动等实现技术,MAC地址与IP地址的绑定存在很大的缺陷,并不能真正防止内部IP地址被盗用。
2破解MAC与IP地址绑定策略 2.1IP地址和MAC地址简介 现行的TCP/IP网络是一个四层协议结构,从下往上依次为链路层、网络层、传输层和应用层。
Ethernet协议是链路层协议,使用的地址是MAC地址。MAC地址是Ethernet网卡在Ethernet中的硬件标志,网卡生产时将其存于网卡的EEPROM中。网卡的MAC地址各不相同,MAC地址可以唯一标志一块网卡。在Ethernet上传输的每个报文都含有发送该报文的网卡的MAC地址。
Ethernet根据Ethernet报文头中的源MAC地址和目的MAC来识别报文的发送端和接收端。IP协议应用于网络层,使用的地址为IP地址。使用IP协议进行通讯,每个IP报文头中必须含有源IP和目的IP地址,用以标志该IP报文的发送端和接收端。在Ethernet上使用IP协议传输报文时,IP报文作为Ethernet报文的数据。IP地址对于Ethernet交换机或处理器是透明的。用户可以根据实际网络的需要为网卡配置一个或多个IP地址。MAC地址和IP地址之间并不存在一一对应的关系。 MAC地址存储在网卡的EEPROM中并且唯一确定,但网卡驱动在发送Ethernet报文时,并不从EEPROM中读取MAC地址,而是在内存中来建立一块缓存区,Ethernet报文从中读取源MAC地址。而且,用户可以通过操作系统修改实际发送的Ethernet报文中的源MAC地址。既然MAC地址可以修改,那么MAC地址与IP地址的绑定也就失去了它原有的意义。
2.2破解方案 下图是破解试验的结构示意图。其内部服务器和外部服务器都提供Web服务,防火墙中实现了MAC地址和IP地址的绑定。报文中的源MAC地址与1P地址对如果无法与防火墙中设
试验需要修改主机1中网卡的MAC和IP地址为被盗用设备的MAC和IP地址。首先,在控制面板中选择“网络和拨号连接”,选中对应的网卡并点击鼠标右键,选择属性,在属性页的“常规”页中点击“配置”按钮。在配置属性页中选择“高级”,再在“属性”栏中选择“NetworkAddre”,在“值”栏中选中输人框,然后在输人框中输人被盗用设备的MAC地址,MAC地址就修改成功了。
然后再将IP地址配置成被盗用设备的IP地址。盗用内部客户机IP地址:将主机1的MAC地址和IP地址分别修改为主机2的MAC地址和IP地址。主机1可以访问外部服务器,能够顺利地通过防火墙,访问权限与主机2没有分别。而且,与此同时主机2也可以正常地访问外部服务器,完全不受主机1的影响。无论是主机2还是防火墙都察觉不到主机1的存在。主机1如果访问内部服务器,根本无需通过防火墙,更是畅通无阻了。
盗用内部服务器IP地址:将主机1的MAC地址和U地址修改为内部服务器的MAC地址和IP地址。主机1也提供Web服务。为了使效果更明显,主机1上提供的Web服务内容与内部服务器提供的内容不同。 因为在实际的实验中主机1与主机2连在同一个HUB上,主机2的访问请求总是先被主机1响应,主机2期望访问的是内部服务器,得到的却总是主机1提供的内容。更一般地,主机2如果试图访问内部服务器,获得的到底是主机1提供的内容还是内部服务器提供的内容具有随机性,要看它的访问请求首先被谁响应,在后面的分析中我们将进一步对此进行阐述。
盗用服务器的MAC和IP危害可能更大,如果主机1提供的Web内容和内部服务器中的内容一样,那么主机2将无法识别它访问的到底是哪个机器;如果Web内容中要求输人账号、密码等信息,那么这些信息对于主机1来说则是一览无遗了。
3破解成功的原因 上面的实验验证了绑定MAC地址与IP地址的确存在很大的缺陷,无法有效地防止内部IP地址被盗用。接下来,将从理论上对该缺陷进行详细的分析。
缺陷存在的前提是网卡的混杂接收模式,所谓混杂接收模式是指网卡可以接收网络上传输的所有报文,无论其目的MAC地址是否为该网卡的MAC地址。正是由于网卡支持混杂模式,才使网卡驱动程序支持MAC地址的修改成为可能;否则,就算修改了MAC地址,但是网卡根本无法接收相应地址的报文,该网卡就变得只能发送,无法接收,通信也就无法正常进行了。
MAC地址可以被盗用的直接原因是网卡驱动程序发送Ethernet报文的实现机制。Ethernet报文中的源MAC地址是驱动程序负责填写的,但驱动程序并不从网卡的EEPROM中读取MAC,而是在内存中建立一个MAC地址缓存区。网卡初始化的时候将EEPROM中的内容读入到该缓存区。如果将该缓存区中的内容修改为用户设置的MAC地址,以后发出去的Ethernet报文的源地址就是修改后的MAC地址了。
如果仅仅是修改MAC地址,地址盗用并不见得能够得逞。Ethernet是基于广播的,Ethernet网卡都能监听到局域网中传输的所有报文,但是网卡只接收那些目的地址与自己的MAC地址相匹配的Ethernet报文。如果有两台具有相同MAC地址的主机分别发出访问请求,而这两个访问请求的响应报文对于这两台主机都是匹配的,那么这两台主机就不只接收到自己需要的内容,而且还会接收到目的为另外一台同MAC主机的内容。
按理说,两台主机因为接收了多余的报文后,都应该无法正常工作,盗用马上就会被察觉,盗用也就无法继续了;但是,在实验中地址被盗用之后,各台实验设备都可以互不干扰的正常工作。这又是什么原因呢答案应该归结于上层使用的协议。
目前,网络中最常用的协议是TCP/IP协议,网络应用程序一般都是运行在TCP或者UDP之上。例如,实验中Web服务器采用的HTTP协议就是基于TCP的。在TCP或者UDP中,标志通信双方的不仅仅是IP地址,还包括端口号。在一般的应用中,用户端的端口号并不是预先设置的,而是协议根据一定的规则生成的,具有随机性。像上面利用IE来访问Web服务器就是这样。UDP或者TCP的端口号为16位二进制数,两个16位的随机数字相等的几率非常小,恰好相等又谈何容易两台主机虽然MAC地址和IP地址相同,但是应用端口号不同,接收到的多余数据由于在TCP/UDP层找不到匹配的端口号,被当成无用的数据简单地丢弃
了,而TCP/UDP层的处理对于用户层来说是透明的;所以用户可以“正确无误”地正常使用相应的服务,而不受地址盗用的干扰。 当然,某些应用程序的用户端口号可能是用户或者应用程序自己设置的,而不是交给协议来随机的生成。那么,结果又会如何呢例如,在两台MAC地址和IP地址都相同的主机上,启动了两个端口相同的应用程序,这两个应用是不是就无法正常工作了呢其实不尽然。
如果下层使用的是UDP协议,两个应用将互相干扰无法正常工作。如果使用的是TCP协议,结果就不一样了。因为TCP是面向连接的,为了实现重发机制,保证数据的正确传输,TCP引入了报文序列号和接收窗口的概念。在上述的端口号匹配的报文中,只有那些序列号的偏差属于接收窗口之内的报文才会被接收,否则,会被认为是过期报文而丢弃。TCP协议中的报文的序列号有32位,每个应用程序发送的第一个报文的序列号是严格按照随机的原则产生的,以后每个报文的序列号依次加1。
窗口的大小有16位,也就是说窗口最大可以是216,而序列号的范围是232,主机期望接收的TCP数据的序列号正好也处于对方的接收范围之内的概率为1/216,可谓小之又小。TCP的序列号本来是为了实现报文的正确传输,现在却成了地址盗用的帮凶。
4解决MAC与IP地址绑定被破解的方法 解决MAC与IP地址绑定被破解的方法很多,主要以下几种。 交换机端口、MAC地址和IP地址三者绑定的方法;代理服务与防火墙相结合的方法;用PPPoE协议进行用户认证的方法;基于目录服务策略的方法;统一身份认证与计费软件相结合的方法等(这些方法的实现原理和过程可以参考拙作《校园网IP地址盗用解决方案》)。在这里笔者尤其推荐最后一种方法,这种方法是将校园网办公自动化系统和网络计费软件结合在一起而实现的,这在校园网信息化建设的今天具有很强的实践性。