Chinaunix首页 | 论坛 | 博客
  • 博客访问: 281605
  • 博文数量: 87
  • 博客积分: 4061
  • 博客等级: 上校
  • 技术积分: 1032
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-12 16:28
文章分类

全部博文(87)

文章存档

2012年(1)

2009年(85)

2008年(1)

我的朋友

分类:

2009-02-24 22:25:35

Dhcp两大威胁以及arp欺骗等试验总结
1         伪dhcp server。Dhcp的工作原理大概是首先client广播dhcp discovery消息,本网段的dhcp server回送dhcp offer消息,客户段再发送dhcp request消息,声明自己即将使用的ip地址,server发送ack给client告知client可以使用。防止伪dhcp其实就可以在交换机上启用dhcp snooping功能,凡是不信任的端口(信任端口就是dhcp server使用的端口,需独立配置),都将拒绝从该端口发送dhcp offer消息从而杜绝伪dhcp server。

在cisco交换机上全局启用 ip dhcp snooping,,并使用命令ip dhcp snooping vlan 2,告知在vlan2里使用snooping,这样所有端口都是非信任端口,都将丢弃dhcp offer报文,如果是使用三层交换机提供dhcp服务,就不比单独配置信任端口了。配置信任端口是在物理端口下使用命令 ip dhcp snooping trust.

记住:接入层交换机需支持dhcp snooping功能;信任端口是在物理端口下配置(包括trunk级联端口)

2         DHCP dos攻击。主要就是伪造大量mac地址去像server申请地址,耗费dhcp server地址池,从个人达到拒绝服务攻击的目的。一般用两种方法,但实际操作性都不是太强。第一种办法就是对交换机端口规定一些合法的mac地址池,只有在此范围内的主机才可以通过该端口进行转发。或者限制最大mac地址数。这样客户端就没办法伪造mac地址去申请ip了。Cisco交换机就是在物理端口下使用switchport port-security mac-add命令填加,这种方法工作量大且不能满足移动性的要求。另一种方法就是与实际认证系统相结合,认证系统首先对MAC地址进行第一次认证,只有MAC地址是合法的,才允许DHCP Sever分配IP地址给终端,这主要用到802.1x认证协议和radius认证服务器。

3         有时候为了需要,不希望用户自己设定ip地址来上网,也就是说限制用户只能动态获取地址才能上网,自己固定地址不能上网。这种就相对比较简单,不需要在接入层上做什么设置,也就是不要求接入层支持dhcp snooping功能。只需要在三层交换机上使用如下命令就搞定。

Ip arp inspection vlan 500   //vlan500下面启用arp inspection功能

Ip arp inspection validate src-mac dst-mac ip  //只有源mac 目的mac和ip都正确才合法

这里必须还是先在三层交换机上启用ip dhcp snooping功能 同时监控snooping vlan 500。因为arp inspection实际是根据dhcp 绑定信息来判断的。如果用户不是自动获取ip,而是自己设置ip,那么它就不会被dhcp snooping捕获到,当然所有的该ip地址发送的arp请求都会被网关拒绝掉的(因为源,目的mac和ip地址都是不合法的,自然被认为是非法的arp请求)。但是固定ip时是可以跟本局域网内其它机器通信的,只是不能通过arp协议学习到网关的mac地址。

注:以上的dhcp server都是在三层交换机上启用的。

4         arp欺骗。可以分两种情况:一是伪造网关去欺骗网内其它主机;而是伪造其它主机去

欺骗网关。当然更严重的是两种情况同时存在,并开始数据转发功能,这就是一种中间

人攻击(双方欺骗),可以嗅探数据包(代理arp功能跟此类似,很多计费网关和一些透明防火墙就利用了代理arp功能)。从某种意义上说,arp欺骗就是一种代理arp。

神码可提供专门的在接入层交换机使用ACL来限制客户仿冒网关,这个acl就是限制该端口下不允许发送网关地址的arp通告报文,这样可以有效的防止伪造网关去欺骗其它主机。

(Config)# access-list 1101 deny an an untagged-eth2 12 2 0806 20 2 0002 28 4 C0A80001

该ACL说明如下:

13,14字节是arp协议代码0806,21,22字节是0002表示arp reply,29-32字节就是网关ip地址的16进制

STEP2:应用ACL

(Config)# Firewall enable

(Config)# int e 0/0/1-24    //在所有端口下应用该acl

(int)# mac access-group 1101 in traffic-statistic

当然,如果知道某个具体端口是什么IP地址,那么就可以限制该端口只能发送该IP的arp通告是最好了,这就可以完全杜绝arp欺骗。但明显可操作性差。

另一种能较好防止arp欺骗的办法就是在各个主机上绑定网关的mac,同时在网关上静态绑定IP+mac。不过这种办法不如前面办法好,它不能防止局域网内部的arp欺骗。

如果采取的是动态获取ip地址,神码交换机有个新特性,能完全控制arp欺骗。可以防止接入主机假冒网关,可以防止接入主机假冒其它用户;管理复杂度低,交换机配置简单并且基本不需要变更;支持用户移动接入,交换机可以自动检测到用户接入位置并正确转发用户数据;

ip dhcp snooping enable

   ip dhcp snooping binding enable

Interface Ethernet0/0/1

  ip dhcp snooping binding user-control

!

Interface Ethernet0/0/2

  ip dhcp snooping binding user-control

如果是静态ip,需要ip+mac+端口的绑定。

am enable

Interface Ethernet0/0/1

   am port

   am mac-ip-pool 00-1C-23-06-0D-B9 10.10.1.90

还是说说cisco交换机吧。一般采取动态获取IP地址的上网方式比较多,先配置ip dhcp snooping 再配置ip arp inspection,此时,客户端就应该没办法伪造其它主机去伪造网关,因为这些伪造的arp reply报文在网关看来都是非法的,自然会拒绝。至于伪造网关的防治,大概就只能在用户自己主机上静态绑定arp缓存表了。

1         防止arp扫描。在某些情况下也可抑制arp欺骗。原理就是对物理端口进行arp报文

数量的限制。方法就是在物理端口是使用ip arp inspection limit rate 命令限制每秒钟允许通过的arp报文数。

2         伪mac地址的防治。交换机的mac地址表如果被大量充斥,将会影响性能,严重的将会是交换机崩溃,因为一般的cam存储都有限。所以这类防治般限制每端口出来的mac地址数目即可。至于伪造的防治,那就只能选择port-security了,虽然不能满足移动性的要求。

针对目前学校主干是cisco交换机,接入层品牌太杂,档次参差不齐,用户自动从cisco三层交换机上获取地址上网的情况,我认为比较好的办法就是在cisco交换机上启用dhcp snooping 以及arp inspection功能来尽可能防止arp欺骗。用户还得绑定好网关的mac地址。要能更有效的防止arp欺骗和防止伪dhcp server,还得升级接入层交换机。

阅读(1291) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~