网络通信 频道

经典实战:Cisco环境下解决ARP欺骗问题

  【IT168 报道】因为经常看到网上有看到求助ARP病毒防范办法,其实ARP欺骗原理简单,利用的是ARP协议的一个“缺陷”,免费ARP来达到欺骗主机上面的网关的ARP表项。

  其实免费ARP当时设计出来是为了2个作用的:
  1,IP地址冲突检测
  2,ARP条目自动更新,更新网关。

  ARP欺骗就是利用这里面的第二条,攻击的主机发送一个ARP更新,条目的ip地址是网关,但是MAC地址一项,却不是网关,当其他主机接受到,会根据ARP协议的规则,越新的越可靠的原则,达到欺骗的目的。

  虽然ARP不是tcp/ip协议簇中的一员,但是鉴于以太网的大行其道,所以放弃动态ARP协议,使用手动方式的来来做ARP映射,好像不大现实(个别情况除外)。

一、深入ARP协议特征

  我在这里介绍Cisco网络环境下解决这个问题的思路:
  其实这里面使用到了2个技术:DHCP snooping和ARP inspection

  1、DHCP snooping
  DHCP Snooping技术是DHCP安全特性,通过建立和维护DHCP Snooping绑定表过滤不可信任的DHCP信息,这些信息是指来自不信任区域的DHCP信息。DHCP Snooping绑定表包含不信任区域的用户MAC地址、IP地址、租用期、VLAN-ID 接口等信息。

  当交换机开启了DHCP-Snooping后,会对DHCP报文进行侦听,并可以从接收到的DHCP Request或DHCP Ack报文中提取并记录IP地址和MAC地址信息。另外,DHCP-Snooping允许将某个物理端口设置为信任端口或不信任端口。信任端口可以正常接收并转发DHCP Offer报文,而不信任端口会将接收到的DHCP Offer报文丢弃。这样,可以完成交换机对假冒DHCP Server的屏蔽作用,确保客户端从合法的DHCP Server获取IP地址。

  作用:
  1.DHCP-snooping的主要作用就是隔绝非法的DHCP server,通过配置非信任端口。
  2.建立和维护一张DHCP-snooping的绑定表,这张表一是通过DHCP ack包中的ip和MAC地址生成的,二是可以手工指定。这张表是后续DAI(dynamic ARP inspect)和IP Source Guard 基础。这两种类似的技术,是通过这张表来判定ip或者MAC地址是否合法,来限制用户连接到网络的。

  配置:
  switch(config)#ip DHCP snooping
  switch(config)#ip DHCP snooping vlan 10
  switch(config-if)#ip DHCP snooping limit rate 10
  /*DHCP包的转发速率,超过就接口就shutdown,默认不限制
  switch(config-if)#ip DHCP snooping trust
  /*这样这个端口就变成了信任端口,信任端口可以正常接收并转发DHCP Offer报文,不记录ip和MAC地址的绑定,默认是非信任端口
  switch#ip DHCP snooping binding 0009.3452.3ea4 vlan 7 192.168.10.5 interface gi1/0/10
  /*这样可以静态ip和MAC一个绑定
  switch(config)#ip DHCP snooping database tftp:// 10.1.1.1/DHCP_table
  /*因为掉电后,这张绑定表就消失了,所以要选择一个保存的地方,ftp,tftp,flash皆可。本例中的DHCP_table是文件名,而不是文件夹,同时文件名要手工创建一个
  2. ARP inspection
  1.介绍
  DAI是以DHCP-snooping的绑定表为基础来检查MAC地址和ip地址的合法性。
  2.配置
  switch(config)#ip DHCP snooping vlan 7
  switch(config)#ip DHCP snooping information option
  /*默认
  switch(config)#ip DHCP snooping
  switch(config)#ip ARP inspection vlan 7
  /* 定义对哪些 VLAN 进行 ARP 报文检测
  switch(config)#ip ARP inspection validate src-MAC dst-MAC ip
  /*对源,目MAC和ip地址进行检查
  switch(config-if)#ip DHCP snooping limit rate 10
  switch(config-if)#ip ARP inspection limit rate 15
  /* 定义接口每秒 ARP 报文数量
  switch(config-if)#ip ARP inspection trust
  /*信任的接口不检查ARP报文,默认是检测

0
相关文章