使用DHCP监听、IPSG和DAI实现Cisco多层交换网络的安全

上一篇 / 下一篇  2008-09-20 15:49:56 / 个人分类:网络技术



采用 DHCP server 可以自动为用户设置网络IP 地址、掩码、网关、 DNS  WINS 网络参数,简化了用户网络设置,提高了管理效率。但在 DHCP 管理使用上也存在着一些另网管人员比较问题,常见的有:
  • DHCP server 的冒充。
  • DHCP server  Dos 攻击。
  • 有些用户随便指定地址,造成网络地址冲突。
  由于 DHCP 的运作机制,通常服务器和客户端没有认证机制,如果网络上存在多台 DHCP 服务器将会给网络照成混乱。由于用户不小心配置了 DHCP 服务器引起的网络混乱非常常见,足可见故意人为破坏的简单性。通常黑客攻击是首先将正常的 DHCP 服务器所能分配的 IP 地址耗尽,然后冒充合法的 DHCP 服务器。最为隐蔽和危险的方法是黑客利用冒充的 DHCP 服务器,为用户分配一个经过修改的 DNS server ,在用户毫无察觉的情况下被引导在预先配置好的假金融网站或电子商务网站,骗取用户帐户和密码,这种攻击是非常恶劣的。
  对于 DHCP server 冒充和Dos 攻击可以利用DHCP snooping、IPSG、DAI 技术有效防止。
 
 
任务一启用DHCP监听
步骤1:在交换AB上启用VLAN10DHCP监听。因为cisco ios DHCP服务器不支持选项82,所以交换机AB将禁用选项82的标记:// 82的标记----中继代理选项.
     SwitchA#configure terminal
     SwitchA(config)#ip dhcp snooping
     SwitchA(config)#ip dhcp snooping vlan 10
     SwitchA(config)#no ip dhcp snooping information
    
     SwitchB#configure terminal
     SwitchB(config)#ip dhcp snooping
     SwitchB(config)#ip dhcp snooping vlan 10
     SwitchB(config)#no ip dhcp snooping information
 
步骤2:在交换机A中,将与DHCP服务器相连接的接口配置为DHCP信任,在交换B中,将连接PC APC B的接口配置为DHCP非信任。此外,上行链路接口需要配置为DHCP监听信任.
SwitchA(config)#interface g 3/18
SwitchA(config-if)#ip dhcp snooping trust
SwitchA(config)#interface g3/18
SwitchA(config-if)#ip dhcp snooping trust
 SwitchB(config)#interface f3/7
SwitchB(config-if)#no ip dhcp snooping trust
 SwitchB(config)#interface f3/17
SwitchB(config-if)#no ip dhcp snooping trust
SwitchB(config)#interface g1/1
SwitchB(config-if)#ip dhcp snooping trust
步骤3: 在与PC APC B相连接的终端用户上配置IP源防护,以次实现验证IP地址的目的:
 SwitchB(config-if)#interface fa 3/7
 SwitchB(config-if)#ip verity source vlan dhcp-snooping
 SwitchB(config-if)#interface fa 3/17
 SwitchB(config-if)#ip verity source vlan dhcp-snooping
步骤4:配置DHCP服务器的静态IP源绑定,其在交换机A上的IP地址是10.10.1.101
SwitchA(config)#ip source binding 000a.4172.df7f vlan 10 10.10.1.101
步骤5:在交换机上AB中配置VLAN10DAI
SwitchA(config)#ip arp inspection vlan 10
SwitchB(config)#ip arp inspection vlan 10
步骤6:在交换机AB中配置上行链路为DAI信任接口
SwitchA(config)#interface g 1/1
SwitchA(config-if)#ip arp inspection trust
 
SwitchB(config)#interface g 1/1
SwitchB(config-if)#ip arp inspection trust
 
任务二: 验证DHCP监听,IPSGDAI状态
步骤1:在交换机A和交换B中验证DHCP监听状态和绑定表.
SwitchA#show ip dhcp snooping
 
步骤2:在交换机A和交换B中验证ip源防护绑定和状态:
SwitchA#show ip source binding
 
步骤3:在交换机A和交换B中验证DAI状态和统计信息:
SwitchA#show ip arp inspection
 

TAG:

jerrylee的个人空间 引用 删除 jerrylee   /   2008-09-22 22:15:56
非常有意义的排错经历,关于option82请在本站中查找以前的文章,有专门的解释。

环境
PC---cisco 2960 ---cisco 6506(dhcp server)
这两天一直在测试,在cisco 2960开启 ip dhcp snooping 功能,下面的PC就获取不到地址
在cisco 2960上抓包,发现dhcp_snooping工作正常,可以收到PC的dhcpdiscovery包,dhcp giaddr字段 0.0.0.0。
在 cisco 6506 上抓包 ,cisco 2960 送上来的dhcp请求包被丢弃了。

原因是:
由于默认情况下cisco 2960 ip dhcp snooping information option 是打开的,此时交换机会在PC来的DHCP请求报文中插入option82内容,又由于cisco 6506 DHCP服务器与PC处于同一个VLAN中,所以请求没有经过中继代理
对于cisco 6506 DHCP服务器来说,如果它收到的DHCP请求被插入了option82,那么它会认为这是一个从中继代理过来的请求报文,但是它检查了该报文的giaddr字段却又发现是0.0.0.0,而不是一个有效的IP地址,因此该报文被认为“非法”,所以将被丢弃。

解决方法 1
在cisco 6506 上开启 中继代理 信任Received DHCP packet may contain relay info option with zero giaddr

在全局下
ip dhcp relay information

解决方法 2
在cisco 2960 上关闭option82功能,因为我们这里接入交换机和dhcp server不用跨网段中继 dhcp 报文。

在全局下
no ip dhcp snooping information option
jerrylee的个人空间 引用 删除 jerrylee   /   2008-09-20 22:20:47
ip dhcp snooping+ip arp inspection及在华为设备中的实现的详细说明

在cisco设备中的配置
ip dhcp excluded-address 192.168.23.1 192.168.23.20
(不由dhcp  server分配的地址)

!
ip dhcp pool vlan23
(定义地址池)
   network 192.168.23.0 255.255.255.0
(定义地址池做用的网段及地址范围)
   default-router 192.168.23.1
(定义客户端的默认网关)
   domain-name sina.com.cn
(定义客户端所在域)
   dns-server 192.168.23.2
(定义客户端的dns)
   lease 5
(定义地址租约时间, 5天是为了在安全上考虑,客户端在可控的时间内相对固定)

ip dhcp snooping
(打开dhcp snooping功能,不能省略, 否则在sh ip dhcp snooping binding时将看到一个空的绑定表, 客户端会时断时续)
ip dhcp snooping vlan 23
(定义snooping作用的vlan)
ip dhcp snooping database flash:dhcp
(将绑定表保存在flash中,可以避免重启设备后,从新绑定)


ip arp inspection vlan 23
(定义arp inspection 作用的vlan,它是根据dhcp snooping binding表做判断的)
ip arp inspection validate src-mac dst-mac ip
(侦测有效客户端须满足src-mac dst-mac ip 均无错)
ip arp inspection log-buffer entries 1024
(inspection 日志大小)
ip arp inspection log-buffer logs 1024 interval 300
(inspection 日志刷新时间,interval太小会占用大量cpu时间)
!
!
!
errdisable recovery cause udld
errdisable recovery cause bpduguard
errdisable recovery cause security-violation
errdisable recovery cause channel-misconfig
errdisable recovery cause pagp-flap
errdisable recovery cause dtp-flap
errdisable recovery cause link-flap
errdisable recovery cause gbic-invalid
errdisable recovery cause l2ptguard
errdisable recovery cause psecure-violation
errdisable recovery cause dhcp-rate-limit
errdisable recovery cause unicast-flood
errdisable recovery cause vmps
errdisable recovery cause arp-inspection
errdisable recovery interval 30
(上面所有的是在端口因为被errdidable 后能在一段时间内自动恢复, 其中包括dhcp snooping与arp inspection在端口中设限制造成的端口自动关闭)
no file verify auto

logging on
(有的设备是默认打开的,在这写是因为当logging关闭时3550,3560,3750等均会占用大量cpu资源,一定勿忘打开,经测试,打开后一台3550-48下连10台48口设备,2个lan,480台计算机,正常使用.不打开,2台设备90 台计算机就能让其死机)
no spanning-tree loopguard default
(最好不要打开,因为当spanning-tree结构稍有改变,它都会blocking,然后unblocking一些端口,造成时断时续的现象)

ip source binding 0060.B322.2C2A vlan 23 192.168.23.8 interface Gi1/0/2
(设备或计算机需用静态地址的,在这儿定义)
!
interface GigabitEthernet1/0/2
switchport trunk encapsulation dot1q
switchport mode trunk
(下连设备,所以定义为trunk口)
ip arp inspection limit none
(由于下连设备,为了避免inspection让端口errdisable,所以对arp的侦测不做限制,若直接为接入设备, 可使用ip arp inspection limit rate)

相关命令:
sh logging 查看Dymatic Arp Inspection (DAI) 是否生效.
sh ip dhcp snooping binding 查看snooping是否生效
sh ip dhcp binding 看dhcp server 是否生效.
sh arp 看arp信息是否与 dhcp snooping binding表一致.

下级设备若支持dhcp snooping 可这样配置
ip dhcp snooping
int g0/1
(上连端口)
switchport trunk encapsulation dot1q
switchport mode trunk
ip dhcp snooping trust
(定义此端口为信任端口,从此口来的dhcp server数据有效,避免有人乱设dhcp server

不支持,根据设备用acl或其它禁止非信任端口发送dhcp server数据.

_______________________________________________________________________________

华为设备
dhcp-server 0 ip  192.168.21.1
(定义dhcp server组)
dhcp-security static 192.168.21.1 000f-e231-72fb
dhcp-security static 192.168.21.11 0013-2015-b971
(定义设置静态地址的设备或计算机)

dhcp server ip-pool vlan21
network 192.168.21.0 mask 255.255.255.0
gateway-list 192.168.21.1
dns-list 192.168.21.1
domain-name sina.com.cn
expired day 5
(与cisco 类似)

interface Vlan-interface21
ip address 192.168.21.1 255.255.255.0
dhcp-server 0
(使用上面定义的dhcp server组)
address-check enable
(与ip arp inspection类似)

dhcp server forbidden-ip 192.168.21.0 192.168.21.10
(定义不由dhcp server分配的地址)

interface GigabitEthernet1/0/1
(下连端口)
port link-type trunk
port trunk permit vlan all


下级设备若支持dhcp snooping 可这样配置
interface GigabitEthernet1/1/1
(上连端口)
port link-type trunk
port trunk permit vlan all
dhcp-snooping trust

至此,所有工作完成,还有一点值得一提,如果要收集日志,最好设备ntp服务同步时间,无论在安全性,可管理性上都是有所帮助的.至于日志服务器及日志分析工具的配备可根据自己的喜好或需要自行选定.
jerrylee的个人空间 引用 删除 jerrylee   /   2008-09-20 22:17:27
在cisco设备中的配置
在cisco网络环境下,boot request在经过了启用DHCP SNOOPING特性的设备上时,会在DHCP数据包中插入option 82的选项(具体见RFC3046)
这个时候,boot request中数据包中的gateway ip address:为全0,所以一旦dhcp relay 设备检测到这样的数据包,就会丢弃。
虽然dhcp snooping是用来防止非法的dhcp server接入的,但是它一个重要作用是一旦客户端获得一个合法的dhcp offer。
启用dhcp snooping设备会在相应的接口下面记录所获得IP地址和客户端的mac地址。
这个是后面另外一个技术ARP inspection检测的一个依据。ARP inspection是用来检测arp请求的,防止非法的ARP请求。
认为是否合法的标准的是前面dhcp snooping时建立的那张表。因为那种表是dhcp server正常回应时建立起来的,
里面包括是正确的arp信息。如果这个时候有arp攻击信息,利用ARP inspection技术就可以拦截到这个非法的arp数据包。
其实利用这个方法,还可以防止用户任意修改IP地址,造成地址冲突的问题。

ip dhcp excluded-address 10.63.150.100 10.63.150.120 不由dhcp分配的地址

!
ip dhcp pool main 定义地址池

network 10.63.144.0 255.255.255.0 定义地址池做用的网段及地址范围
default-router 10.63.144.1 定义客户端的默认网关
domain-name nbyzzj.cn 定义客户端所在域
netbios-node-type h-node
//为客户机配置节点模式(影响名称解释的顺利,如h-node等于先通过wins服务器解释)
dns-server 10.60.12.11 定义客户端的dns
lease 7 定义地址租约时间为7天

ip dhcp snooping 打开dhcp snooping功能

ip dhcp snooping vlan 10-12,101-108,315 定义snooping作用的vlan
ip dhcp snooping database flash:dhcp-snooping.db 将绑定表保存在flash中,避免重启设备后,重新绑定


ip arp inspection vlan 10-12,101-108,315 定义arp inspection 作用的vlan,它是根据dhcp snooping binding表做判断的
ip arp inspection validate src-mac dst-mac ip 侦测有效客户端须满足src-mac dst-mac ip 均无错
ip arp inspection log-buffer entries 1024 inspection 日志大小
ip arp inspection log-buffer logs 1024 interval 300 inspection 日志刷新时间,interval太小会占用大量cpu时间
!
!
!
errdisable recovery cause udld
errdisable recovery cause bpduguard
errdisable recovery cause security-violation
errdisable recovery cause channel-misconfig
errdisable recovery cause pagp-flap
errdisable recovery cause dtp-flap
errdisable recovery cause link-flap
errdisable recovery cause gbic-invalid
errdisable recovery cause l2ptguard
errdisable recovery cause psecure-violation
errdisable recovery cause dhcp-rate-limit
errdisable recovery cause unicast-flood
errdisable recovery cause vmps
errdisable recovery cause arp-inspection
errdisable recovery interval 30
在开始应用Dynamic ARP Inspection时,交换机会记录大量的数据包,当端口通过的数据包过多时,
交换机会认为遭受DoS攻击,从而将端口自动errdisable,造成通信中断。为了解决这个问题,
我们需要加入命令errdisable recovery cause arp-inspection

no file verify auto

logging on 当logging关闭时会占用大量cpu资源,一定勿忘打开

no spanning-tree loopguard default 最好不要打开

ip source binding 0004.76f6.e3e9 vlan 315 10.63.150.100 interface Gi1/0/11 手动增加静态地址的条目
!

interface GigabitEthernet1/0/11
switchport trunk encapsulation dot1q
switchport mode trunk
ip arp inspection limit none
arp timeout 2
ip dhcp snooping limit rate 100

由于下连设备,为了避免inspection让端口errdisable,所以对arp的侦测不做限制,若直接为接入设备,
可使用ip arp inspection limit rate 100

相关命令:
sh logging 查看Dymatic Arp Inspection (DAI) 是否生效.
sh ip dhcp snooping binding 查看snooping是否生效
sh ip dhcp binding 看dhcp server 是否生效.
sh arp 看arp信息是否与 dhcp snooping binding表一致

下级设备若支持dhcp snooping 可这样配置:
ip dhcp snooping
int g0/1 上行端口
switchport trunk encapsulation dot1q
switchport mode trunk
ip dhcp snooping trust 定义此端口为信任端口,从此口来的dhcp server数据有效,可阻止其它dhcp server发送dhcp数据。

经实验,对于已存在于绑定表中的mac和ip对于关系的主机,不管是dhcp获得,还是静态指定,
只要符合这个表就可以了。如果表中没有就阻塞相应流量。

如果使用了dhcp中继服务,那需要在网关交换机上键入如下命令:
方法一:
inter vlan10
ip dhcp relay information trusted
方法二:
switch(config)# ip dhcp relay information trust-all
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-12-03  
 123456
78910111213
14151617181920
21222324252627
28293031   

数据统计

  • 访问量: 16282
  • 日志数: 59
  • 图片数: 10
  • 文件数: 6
  • 书签数: 24
  • 建立时间: 2006-05-18
  • 更新时间: 2008-10-24

RSS订阅

Open Toolbar