关于IP-MAC地址绑定的交换机设置
|
注:IP地址与MAC地址的关系: IP地址是根据现在的IPv4标准指定的,不受硬件限制比较容易记忆的地址,长度4个字节。而 MAC地址却是用网卡的物理地址,保存在网卡的EPROM里面,与硬件有关系,比较难于记忆,长度为6个字节。 虽然在TCP/IP网络中,计算机往往需要设置IP地址后才能通讯,然而,实际上计算机之间的通讯并不是通过IP地址,而是借助于网卡的MAC地址。IP地址只是被用于查询欲通讯的目的计算机的MAC地址。 ARP协议是用来向对方的计算机、网络设备通知自己IP对应的MAC地址的。在计算机的 ARJ缓存中包含一个或多个表,用于存储IP地址及其经过解析的以太网MAC地址。一台计算机与另一台IP地址的计算机通讯后,在ARP缓存中会保留相应的MAC地址。所以,下次和同一个IP地址的计算机通讯,将不再查询MAC地址,而是直接引用缓存中的MAC地址。 在交换式网络中,交换机也维护一张MAC地址表,并根据MAC地址,将数据发送至目的计算机。 (转载注明出处n et130) 为什么要绑定MAC与IP 地址:IP地址的修改非常容易,而MAC地址存储在网卡的EEPROM中,而且网卡的MAC地址是唯一确定的。因此,为了防止内部人员进行非法IP盗用(例如盗用权限更高人员的IP地址,以获得权限外的信息),可以将内部网络的IP地址与MAC地址绑定,盗用者即使修改了IP地址,也因MAC地址不匹配而盗用失败:而且由于网卡MAC地址的唯一确定性,可以根据MAC地址查出使用该MAC地址的网卡,进而查出非法盗用者。 目前,很多单位的内部网络,都采用了MAC地址与IP地址的绑定技术。下面我们就针对Cisco的交换机介绍一下IP和MAC绑定的设置方案。 在Cisco中有以下三种方案可供选择,方案1和方案2实现的功能是一样的,即在具体的交换机端口上绑定特定的主机的MAC地址(网卡硬件地址),方案3是在具体的交换机端口上同时绑定特定的主机的MAC地址(网卡硬件地址)和IP地址。 1.方案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.方案2――基于MAC地址的扩展访问列表 Switch(config)Mac access-list extended MAC10 #定义一个MAC地址访问控制列表并且命名该列表名为MAC10 Switch(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地址与目的地址范围。 注意: 以上功能在思科2950、3550、4500、6500系列交换机上可以实现,但是需要注意的是2950、3550需要交换机运行增强的软件镜像(Enhanced Image)。 3.方案3――IP地址的MAC地址绑定 只能将应用1或2与基于IP的访问控制列表组合来使用才能达到IP-MAC 绑定功能。 Switch(config)Mac access-list extended MAC10 #定义一个MAC地址访问控制列表并且命名该列表名为MAC10 Switch(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)Ip access-list extended IP10 #定义一个IP地址访问控制列表并且命名该列表名为IP10 Switch(config)Permit 192.168.0.1 0.0.0.0 any #定义IP地址为192.168.0.1的主机可以访问任意主机 Permit any 192.168.0.1 0.0.0.0 #定义所有主机可以访问IP地址为192.168.0.1的主机 Switch(config-if )interface Fa0/20 #进入配置具体端口的模式 Switch(config-if )mac access-group MAC10 in #在该端口上应用名为MAC10的访问列表(即前面我们定义的访问策略) Switch(config-if )Ip access-group IP10 in #在该端口上应用名为IP10的访问列表(即前面我们定义的访问策略) Switch(config)no mac access-list extended MAC10 #清除名为MAC10的访问列表 Switch(config)no Ip access-group IP10 in #清除名为IP10的访问列表 上述所提到的应用1是基于主机MAC地址与交换机端口的绑定,方案2是基于MAC地址的访问控制列表,前两种方案所能实现的功能大体一样。如果要做到IP与MAC地址的绑定只能按照方案3来实现,可根据需求将方案1或方案2与IP访问控制列表结合起来使用以达到自己想要的效果。 注意:以上功能在思科2950、3550、4500、6500系列交换机上可以实现,但是需要注意的是2950、3550需要交换机运行增强的软件镜像(Enhanced Image)。 后注:从表面上看来,绑定MAC地址和IP地址可以防止内部IP地址被盗用,但实际上由于各层协议以及网卡驱动等实现技术,MAC地址与IP地址的绑定存在很大的缺陷,并不能真正防止内部IP地址被盗用。 |
高效的Ip Mac 绑定方法
普通绑定命令为一一对应的,命令格式如下:
Arp -s ip地址 mac地址 例 Arp -s 192.168.1.18 0050BAF0978E
一、问题的提出
校园网建成后,要求在服务器端把网内各工作站的MAC地址和分配的静态IP地址进行绑定,以方便统一管理,减小安全隐患。无论是在终端获取MAC地址后再在服务器端进行绑定,还是利用“MAC扫描器”远程批量获取MAC地址,对于网管员来说工作量都非常大。有没有更加方便快捷的方法呢? 二、解决问题思路 笔者经过摸索,发现组合使用“MAC扫描器”和Excel 2000可以很好地解决这个问题。思路如下: 1. 运行“MAC扫描器”(下载地址:[url]http://www.onlinedown.net/soft/16209.htm[/url]),扫描完成后,点击[保存]按钮,将扫描的结果保存为文本文件,如Mac.txt(内容见图1)。 图1 2. 利用Excel强大的数据处理功能,将文本文件中的MAC地址转换成ARP命令要求的格式后,把数据复制粘贴到记事本,保存为批处理文件(内容见图2)。 图2 3. 在服务器端运行这个批处理文件就大功告成了。
三、具体操作步骤
1.将Mac.txt导入Excel工作簿 (1)启动Excel 2000,新建一个工作簿,保存为“MAC地址表.xls”。单击“数据→获取外部数据→导入文本文件”,在弹出的对话框中,选择用“MAC扫描器”获得的文本文件“Mac.txt”,单击[导入]按钮,弹出“文本导入向导”对话框。 (2)在“文本导入向导――3步骤之1”中点击“原始数据类型”,在“请选择最合适的文件类型”单选项下,修改默认的“固定宽度”为“分隔符号”,然后单击[下一步]按钮;进入“文本导入向导――3步骤之2”,在“分隔符号”多选项下,取消“Tab键”,只选中“空格”项,再单击[下一步]按钮;进入“文本导入向导――3步骤之3”,单击[完成]按钮,弹出“导入数据”对话框时,单击[确定],完成数据导入。导入后的工作表如图3所示。 图3 2. 利用Excel处理数据 (1)在A列前插入一列,在A1单元格内输入绑定MAC地址的命令和参数“ARP -S”。 (2)在MAC地址和计算机名两列之间插入7列,列号依次为D、E、F、G、H、I、J。 (3)利用字符串函数分割12位MAC地址为两两一组: 在D1单元格输入“=left(C1,2)”; 在E1单元格输入“=mid(C1,3,2)”; 在F1单元格输入“=mid(C1,5,2)”; 在G1单元格输入“=mid(C1,7,2)”; 在H1单元格输入“=mid(C1,9,2)”; 在I1单元格输入“=right(C1, 2)”。 (4)在J1单元格内把D1~I1单元格的内容合并起来,中间用减号分隔。合并方法:在J1内输入“=D1&&"-"&&E1&&"-"&&F1&&"-"&&G1&&"-"&&H1&&"-"&&I1”。 (5)利用填充法完成A列和D~J列的数据处理(图4)。 图4 (6)隐藏C~I列。 3. 制作批处理文件 (1)复制Excel工作表A、B、J列的数据,粘贴到记事本中。保存工作簿“MAC地址表.xls”,退出Excel。 (2)保存记事本文件为Mac.bat。 4. 批量绑定MAC地址和IP地址 在服务器端DOS模式下运行Mac.bat,即可完成批量MAC地址和IP地址的绑定。 |
|
有关MAC/IP原理浅析及解决方法 | |
|
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.2 MAC与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.1 IP地址和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地址对如果无法与防火墙中设置的MAC地址与1P地址对匹配,将无法通过防火墙。主机2和内部服务器都是内部网络中的合法机器;主机1是为了做实验而新加入的机器。安装的操作系统是W2000企业版,网卡是3Com的。
试验需要修改主机1中网卡的MAC和IP地址为被盗用设备的MAC和IP地址。首先,在控制面板中选择“网络和拨号连接”,选中对应的网卡并点击鼠标右键,选择属性,在属性页的“常规”页中点击“配置”按钮。在配置属性页中选择“高级”,再在“属性”栏中选择“Network Address”,在“值”栏中选中输人框,然后在输人框中输人被盗用设备的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协议进行用户认证的方法;基于目录服务策略的方法;统一身份认证与计费软件相结合的方法等。在这里笔者尤其推荐最后一种方法,这种方法是将校园网办公自动化系统和网络计费软件结合在一起而实现的,这在校园网信息化建设的今天具有很强的实践性。
|