局域网络维护经验谈.ppt
局域网络维护经验谈,ARP病毒和局域网维护,导言,近期在全国范围内大规模爆发arp病毒及其各种变种,对各种行业与部门的网络管理人员是一个考验。如果局域网中发现许多台电脑中毒,电脑中毒后会向同网段内所有计算机发ARP欺骗包。由于ARP欺骗的木马程序发作的时候会发出大量的数据包导致局域网通讯拥塞,用户会感觉上网速度越来越慢,掉线;甚至无法上网,同时造成整个局域网的不稳定,这种现象就是我们常见的ARP病毒。,ARP 病毒,一、故障原理二、故障现象三、故障检测四、故障查杀五、故障防治,【一、故障原理】,局域网内有人安装运行了使用ARP欺骗的木马程序(比如:QQ外挂、网游外挂、某些非官方网站下载的QQ之类的常用软件也被恶意加载了此类程序)。该程序一旦被安装后,就会把自己放入系统自动启动组内,每次开机都会加载自身。程序的目的一般是为了盗取QQ、网游、网上交易等密码,然后发送给木马作者,以获取经济利益。,【一、故障原理】,要了解ARP故障原理,我们先来了解一下ARP协议。ARP病毒原理:arp是一种将ip转化成以ip对应的网卡的物理地址的一种协议,或者说ARP协议是一种将ip地址转化成MAC地址的一种协议。它靠维持在内存中保存的一张表来使ip得以在网络上被目标机器应答。在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的。ARP协议对网络安全具有重要的意义。通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞。,【一、故障原理】,ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。,【一、故障原理】,为什么要将ip转化成mac呢?简单的说,这是因为在tcp网络环境下,一个ip包走到哪里,要怎么走是靠路由表定义。但是,当ip包到达该网络后,哪台机器响应这个ip包却是靠该ip包中所包含的mac地址来识别。也就是说,只有机器的mac地址和该ip包中的mac地址相同的机器才会应答这个ip 包。因为在网络中,每一台主机都会有发送ip包的时候。所以,在每台主机的内存中,都有一个 arp-mac 的转换表。通常是动态的转换表(注意在路由中,该arp表可以被设置成静态)。也就是说,该对应表会被主机在需要的时候刷新。这是由于以太网在子网层上的传输是靠48位的mac地址而决定的。,【一、故障原理】,每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如下表所示。主机 IP地址 MAC地址 A 192.168.16.1 aa-aa-aa-aa-aa-aa B 192.168.16.2 bb-bb-bb-bb-bb-bb C 192.168.16.3 cc-cc-cc-cc-cc-cc D 192.168.16.4 dd-dd-dd-dd-dd-dd,【一、故障原理】,WINDOWS的ARP表cmd,arp a输出结果,【一、故障原理】,华为三层交换机的ARP表dis arp输出结果,【一、故障原理】,华为二层交换机:MAC端口对照表dis mac 输出结果,【一、故障原理】,思科交换机MAC端口对照表show mac address dynamic输出结果,【一、故障原理】,港湾交换机MAC端口对照表show fdb输出结果,【一、故障原理】,我们以主机A()向主机B()发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“的MAC地址是bb-bb-bb-bb-bb-bb”。,【一、故障原理】,这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。,【一、故障原理】,从上面可以看出,ARP协议的基础就是信任局域网内所有的人,那么就很容易实现在以太网上的ARP欺骗。对目标A进行欺骗,A去Ping主机C却发送到了DD-DD-DD-DD-DD-DD这个地址上。如果进行欺骗的时候,把C的MAC地址骗为DD-DD-DD-DD-DD-DD,于是A发送到C上的数据包都变成发送给D的了。这不正好是D能够接收到A发送的数据包了么,嗅探成功。,【一、故障原理】,A对这个变化一点都没有意识到,但是接下来的事情就让A产生了怀疑。因为A和C连接不上了。D对接收到A发送给C的数据包可没有转交给C。做“man in the middle”(中间人攻击),进行ARP重定向。打开D的IP转发功能,A发送过来的数据包,转发给C,好比一个路由器一样。不过,假如D发送ICMP重定向的话就中断了整个计划。,【一、故障原理】,D直接进行整个包的修改转发,捕获到A发送给C的数据包,全部进行修改后再转发给C,而C接收到的数据包完全认为是从A发送来的。不过,C发送的数据包又直接传递给A,倘若再次进行对C的ARP欺骗。现在D就完全成为A与C的中间桥梁了,对于A和C之间的通讯就可以了如指掌了。,【二、故障现象】,当局域网内某台主机运行ARP欺骗的木马程序时,会欺骗局域网内所有主机和路由器,让所有上网的流量必须经过病毒主机。其他用户原来直接通过路由器上网现在转由通过病毒主机上网,切换的时候用户会断一次线。切换到病毒主机上网后,如果用户已经登陆了QQ、网游服务器,那么病毒主机就会经常伪造断线的假像,那么用户就得重新登录QQ、网游服务器,这样病毒主机就可以盗号了。,【二、故障现象】,当局域网内某台主机运行ARP欺骗的木马程序时,会欺骗局域网内所有主机和路由器,让所有上网的流量必须经过病毒主机。,其他用户原来直接通过路由器上网现在转由通过病毒主机上网,切换的时候用户会断一次线。,【二、故障现象】,由于ARP欺骗的木马程序发作的时候会发出大量的数据包导致局域网通讯拥塞以及其自身处理能力的限制,用户会感觉上网速度越来越慢。当ARP欺骗的木马程序停止运行时(宿主机开关机、重起),用户会恢复从正常的路由器上网,切换过程中用户会再断一次线。如果网络规模较大,会出现频繁的IP地址冲突、断线过程。,【二、故障现象】,当ARP欺骗的木马程序停止运行时(宿主机开关机、重起),用户会恢复从正常的路由器上网,切换过程中用户会再断一次线。用ping 这个工具一至检测到网关的连接情况,得到的表现如下:,【二、故障现象】,FreeBSD用户快速发现ARP欺骗木马在FreeBSD路由器的console屏幕上看到大量如下的信息:,【二、故障现象】,或者用以下命令查看近期发生的ARP欺骗历史纪录(FreeBSD):cat/var/log/messages|grep arp,【二、故障现象】,这个消息代表了用户的MAC地址发生了变化,在ARP欺骗木马开始运行的时候,局域网所有主机的MAC地址更新为病毒主机的MAC地址(即所有信息的to MAC地址都一致为病毒主机的MAC地址),同时在路由器的ARP 信息中看到所有用户的MAC地址信息都一样。如果看到大量MAC from 地址都一致,则说明局域网内曾经出现过ARP欺骗(ARP欺骗的木马程序停止运行时,主机在路由器上恢复其真实的MAC地址)。,【二、故障现象】,Windows 主机也可以安装ARP防火墙类软件。平时开启监听,发现ARP攻击后就可以迅速找到源头MAC地址。解决问题的第一个关键就是:找到攻击源头。根据MAC地址的唯一性,排除仿造的MAC地址,定位攻击源头主机。,【三、故障检测】,在局域网内查找病毒主机。在上面我们已经找到了使用ARP欺骗木马的主机的MAC地址了。怎样找到这台主机呢?如果平时有好习惯,书面的MAC地址登记表,那就可以轻松找到这台机器了。可以使用软件来查找ip地址和NETBIOS 名称(windows 网上邻居名称,也就是安装系统时取的主机名字)如果名字无规律,但是交换机端口或网线有标记,而且交换机是二层以上的,可以用上面的mac命令来找到这台插在哪个端口。如果交换机是傻瓜交换机,或者网线没有任何标记,我们还有最后一招:马上动手,发动群众,登记MAC地址。这张登记表格千万要保存好,以后ARP来临时就派上用场了。,【三、故障检测】,FreeBSD:安装samba 后可以用命令findsmb 直接输出当前vlan的网上邻居列表。rootearth#findsmb*=DMB+=LMBIP ADDR NETBIOS NAME WORKGROUP/OS/VERSION-192.168.0.1 SUN YXMS Unix Samba 3.0.24192.168.0.3 WWW YXMS Windows 5.0 Windows 2000 LAN Manager192.168.0.4 ADS*YXMS Windows 5.0 Windows 2000 LAN Manager192.168.0.12 URANUS YXMS Unix Samba 3.0.24192.168.0.16 SATURN YXMS Unix Samba 3.0.20192.168.0.18 JUPITER YXMS Unix Samba 3.0.25a192.168.0.184 IBM X365000939 YXMS 192.168.0.185 IBM X365000940 YXMS 192.168.0.192 IBMX3650+WORKGROUP Windows Server 2003 3790 Service Pack 1 Windows Server 2003 5.2,【三、故障检测】,FreeBSD:未安装samba,可以安装nbtscan获得该列表。cd/usr/ports/net-mgmt/nbtscan/make install cleanrehash,【三、故障检测】,NBTSCAN(下载地址:http:/)工具来快速查找它。NBTSCAN可以取到PC的真实IP地址和MAC地址,如果有”ARP木马”在做怪,可以找到装有木马的PC的IP/和MAC地址。命令:“nbtscan-r 192.168.16.0/24”(搜索整个网段,即);或“nbtscan 192.168.16.25-137”搜索192.168.16.25-137 网段,即。输出结果第一列是IP地址,最后一列是MAC地址。,【三、故障检测】,Windows NBTSCAN的使用范例:假设查找一台MAC地址为“000d870d585f”的病毒主机。1)将压缩包中的nbtscan.exe 和cygwin1.dll解压缩放到c:下。2)在Windows开始运行打开,输入cmd(windows98输入“command”),在出现的DOS窗口中输入:(这里需要根据用户实际网段输入),回车。,【三、故障检测】,目前局域网主要流行有两种方式:DHCP(动态主机配置)固定的ip地址 DHCP(动态主机配置)使网络管理员能够集中管理和自动分配 IP 网络地址的通信协议。在 IP 网络中,每个连接 Internet 的设备都需要分配唯一的 IP 地址。DHCP 使网络管理员能从中心结点监控和分配 IP 地址。当某台计算机移到网络中的其它位置时,能自动收到新的 IP 地址。DHCP 使用了租约的概念,或称为计算机 IP 地址的有效期。租用时间是不定的,主要取决于用户在某地联接 Internet 需要多久,DHCP 能够在一个计算机比可用 IP 地址多的环境中动态地重新配置网络。如果这种网络感染了这种病毒,可想而知,因为所有的计算机没有固定的ip地址,计算机的重启,重新获取了新的ip地址。只有通过Tracert和固定ip冲突来查找病毒计算机。,【三、故障检测】,我们假设在这样局域网中增加一台机器,操作系统均为WINDOWSXP,该计算机的IP地址和网卡硬件地址分别为和00 000D50EEB1。该局域网内网网关为192.168.10.1;外网网关为222.*.*.1.当网络出现断流时,通过Tracert 你可以观察出路由变化情况,正常的第一跳为 192.168.10.1,不正常为该病毒计算机.虽然判断出哪个固定ip地址的计算机在出问题,由于固定ip地址随意行,不好判断是那台计算机;利用IP冲突方式来判断(一个局域网中不可以同时有两个相同的ip,否则就会发生冲突,结果必然是其中的一台机器无法上网),同时抓取ip地址对应mac 地址.,【三、故障检测】,网卡的工作有两种模式:一种是正常模式,即只能接收到指定目的MAC的广播包或都是目的MAC与网卡MAC相同的包。第二种是不检查目的MAC而接收所有的包,sniffer(监听程序)就是用这种原理来窃取网络上的数据的。那么也就是说我们只要检测出局域网中哪个网卡工作在混杂模式,它就很可能是在进行攻击的那台计算机了。固定的ip地址 所谓固定的ip地址是指每台计算机ip地址是静态的(网络管理员根据自己的网络分配).单纯使用 tracert命令就可以找到问题的根源.(这里不在详述),【四、故障查杀】,断开病毒宿主机网络,重起终端交换机(和客户端PC 相连的底层交换机)、或所有客户端PC。局域网将迅速恢复健康。其中重起终端交换机的方式是最快捷的。没必要不要随意重起核心交换机和路由器,除非你确认核心交换机和路由器在病毒的攻击下已经失去响应。其实相当于插拔了一次网线。原理是当断开交换机电源时,相当于断开了插在主机上的网线,然后又插上,就是对所有主机的网络连接进行一次修复操作。重装病毒宿主机系统,或者有时间的话慢慢清除病毒也可以。在此不多罗嗦,有兴趣的老师可以参考我的另一个讲义:校园网信息安全。记住在病毒杀除前千万不要接入网络。,【五、故障防治】,【解决思路】不要把你的网络安全信任关系建立在IP基础上或MAC基础上,(rarp同样存在欺骗的问题),理想的关系应该建立在IP+MAC基础上。设置静态的MAC-IP对应表,不要让主机刷新你设定好的转换表。除非很有必要,否则停止使用ARP,将ARP做为永久条目保存在对应表中。使用ARP服务器。通过该服务器查找自己的ARP转换表来响应其他机器的ARP广播。确保这台ARP服务器不被黑。使用proxy代理IP的传输。使用硬件屏蔽主机。设置好你的路由,确保IP地址能到达合法的路径。(静态配置路由ARP条目),注意,使用傻瓜交换集线器和网桥无法阻止ARP欺骗。管理员定期用响应的IP包中获得一个rarp请求,然后检查ARP响应的真实性。管理员定期轮询,检查主机上的ARP缓存。使用防火墙连续监控网络。注意有使用SNMP的情况下,ARP的欺骗有可能导致陷阱包丢失。,【五、故障防治】:选择合适的方案,因为病毒利用的是ARP协议的缺陷,目前来说,针对校园网环境,没有非常完美有效的方法来防止网关设备的ARP表不被修改。当前最有效的方法是迅速阻断攻击来源。因此,要有快速的手段监测到攻击,并定位攻击来源,比如关闭可网管的二层交换机相应的端口。下面按照网络规模大小,列出各级网络适用的防治ARP病毒的方案。根据自己的网络情况选择最适合你的方案。每个学校的情况都不同,以上方案仅供参考。可以根据自己的网络情况选择一个,也可以同时使用几个互不冲突方案。如有其他更好的办法,欢迎交流。,【五、故障防治】,各大硬件厂商和ISP(网络接入提供商)的做法:1、ISP2、大学3、大型校园网:有若干个网段,有三层以上交换机和独立的NAT设备(路由器、防火墙)4、中小型网络:有三层或二层可管理交换机,网络规模较小。5、小型网络:无网段分割或简单分割,无可管理交换机或仅有极少量简单网管交换机(二层及以下交换机),【五、故障防治】,1、ISP一般使用ppp(点对点)拨号。宽带网络的pppoe拨号也属于ppp的一种。用户端ppp网络结构简单,该模式决定了每个用户与拨号服务器的虚拟端口构成了一个只有两台主机的网络。不存在其他被欺骗的主机。如果欺骗了服务器,只能造成自己上网出问题。因此ARP病毒发作的影响不存在。,【五、故障防治】,2、大学:一般使用802.1x 认证。这是一个交换机端口、MAC地址和ip地址三者同时绑定的认证协议。经过认证的主机只能在认证通过后,才被分配可用的IP地址,打开与外部的通讯。在认证通过前,最多只能使用指定的临时地址并只允许认证数据包通过。只允许认证过的MAC地址从认证过的交换机端口接入,一旦MAC地址或端口变化,认证立刻失败。一旦ARP欺骗发生,主机的认证立刻失败。网络立刻中断。,【五、故障防治】,3、大型校园网。有华为或思科或其他型号的三层以上交换机。根据交换机型号启用相应的DHCP服务器转发授权和IP MAC 绑定功能。比如华为三层、二层交换机,一般都有dhcp security 或dhcp-snooping 功能。启用它,基本上就控制arp病毒的范围了。,【五、故障防治】,3、大型校园网启用dhcp security 或dhcp-snooping的步骤:三层交换机的dhcp security:第一部分,指定有效的dhcp服务器#dhcp-server 1 ip dhcp-server 2 ip dhcp-server 3 ip dhcp-server 4 ip,【五、故障防治】,第二部分指定某个vlan 的ip 有第几号服务器分配。interface Vlan-interface2 description server ip dhcp-server 1这样未经批准的dhcp服务器就无法分配地址了,【五、故障防治】,查看交换机锁定的ip地址和MAC对应关系表:display dhcp-security下表就显示了这台核心交换机绑定成功的ip地址和MAC地址。,【五、故障防治】,仅在核心做了以上绑定还不够,如果下面还有较低的二层交换机接PC,可以在二层上做dhcp snooping比如我一台华为的20 xx系列低端二层交换机,输入 dhcp-snooping然后所有ip地址就和mac地址通过dhcp服务器绑定了。也就是必须是dhcp分配的ip地址才有效。,【五、故障防治】,察看:2403h_living_area_5#dis dhcp-snooping IP Address MAC Address 192.168.16.8 0040-9631-7652 192.168.16.50 00e0-60a2-0d7d 192.168.20.88 0050-bae8-d374 192.168.20.94 0002-dd7b-13e7 192.168.20.95 0012-3fe7-8883 192.168.20.97 0003-0d4a-11ab 192.168.16.149 0016-d3ca-486e 192.168.16.174 0014-3809-b1ca 192.168.16.201 0012-f0bd-cfd0 192.168.16.216 0016-d3ca-4f3f 192.168.16.227 0050-ba27-c31e 192.168.16.237 001b-fc79-428d 192.168.16.239 0014-3805-ee0d 每个ip地址和mac地址在交换机上对应起来了。乱改自己ip的病毒就失效了。因为他自己修改了ip地址,只会让自己上不了网。交换机只认为上表中的ip 和mac对应关系是有效的。,【五、故障防治】,如果还有中间层的二层交换机,则需要启用dhcp-snooping 的同时,指定dhcp服务器从那个端口发送数据。dhcp-snoopinginterface GigabitEthernet1/1 dhcp-snooping trust信任g 1/1 端口这样底层dhcp 设备就上不来了。,【五、故障防治】,比如你在底层某台机器上装个 tftpd32 然后启动服务就只在该交换机这个接口下有效不会放射到整个网路中去。所以我们一般只在网络的最底层放置傻瓜交换机,上面的层级全部是二层以上交换机。这样可以把故障隔离在最底层交换机,方便排查故障,【五、故障防治】,大型网络交换机选型示例:核心层:华为35,39,55,56,65,75,85系列三层交换机汇聚层:华为30,50系列二层交换机接入层:华为20系列二层交换机直接接入:华为10系列无管理交换机-PC,【五、故障防治】,以上是华为的方案。如果你是思科的,功能应该更加强大其他交换机我没接触过这项功能,理论上大厂商的交换机应该都有这类功能,具体请询问交换机厂商,或者翻阅说明书。,【五、故障防治】,网络规模比较小的情况:4、中小型网络:有三层或二层可管理交换机,网络规模较小。在可管理交换机上启用静态IP/MAC绑定,并停止交换机的MAC学习。缺点:只适用管理的机器比较少、机器增减变动比较少的情况。比如100台以内,每学期进出的机器不超过10台。优点:操作简单,维护方便。,【五、故障防治】,5、小型网络:无网段分割或简单分割,无可管理交换机或仅有极少量简单网管交换机(二层及以下交换机)分两种情况。1.二层交换机支持端口隔离,并且各主机之间无互访需求(网上邻居等)启用端口隔离功能。具有此功能的交换机一般是可管理的,并且可以指定一个上行端口。其他所有端口互相之间是不能通讯的,只能跟这个上行端口通讯。一般把路由器或服务器、防火墙设备接在这个端口上,下面其他端口就都能上网,并且互相之间不能通讯,也就不存在ARP欺骗的情况了。,【五、故障防治】,小型网络:无网段分割或简单分割,无可管理交换机或仅有极少量简单网管交换机(二层及以下交换机)在接入设备(路由器、防火墙、共享上网主机)上使用静态IP/MAC绑定,并阻止MAC学习。适用连二层交换机也没有,纯傻瓜交换环境,或二层交换机没有可绑定IP/MAC地址的功能的情况操作较前一种复杂,需要在接入设备(路由器、防火墙、共享上网主机)和终端PC同时操作绑定。也就是每增加一台主机,你需要修改接入设备,也需要在该终端PC操作一次。,支持静态地址邦定的路由器web管理界面示例,在接入设备(路由器、防火墙、共享上网主机)上使用静态IP/MAC绑定,并阻止MAC学习。,