您的位置:首页 > 理论基础 > 计算机网络

网络与安全2 在思科交换机上防范典型的欺骗和二层攻击

2011-05-17 14:15 525 查看
摘要:本文所提到的攻击和欺骗行为主要针对链路层和网络层。在网络实际环境中,其来源可概括为两个途径:

1.人为实施

2.病毒或蠕虫

人为实施通常是指使用一些黑客的工具对网络进行扫描和嗅探,获取管理帐户和相关密码,在网络上中安插木马,从而进行进一步窃取机密文件。攻击和欺骗过程往往比较隐蔽和安静,但对于信息安全要求高的企业危害是极大的。而来自木马或者病毒及蠕虫的攻击和往往会偏离攻击和欺骗本身的目的,现象有时非常直接,会带来网络流量加大、设备 CPU 利用率过高、二层生成树环路直至网络瘫痪。

目前这类攻击和欺骗工具已经非常成熟和易用,而目前企业在部署这方面的防范还存在很多不足,有很多工作要做。思科针对这类攻击已有较为成熟的解决方案,主要基于下面的几个关键的技术:





下面部分主要针对目前非常典型的二层攻击和欺骗说明如何在思科交换机上组合运用和部署上述技术,从而实现防止在交换环境中实施“中间人”攻击、 MAC/CAM 攻击、 DHCP 攻击、地址欺骗等,更具意义的是通过上面技术的部署可以简化地址管理,直接跟踪用户 IP 和对应的交换机端口;防止 IP 地址冲突。同时对于大多数对二层网络造成很大危害的具有地址扫描、欺骗等特征的病毒可以有效的报警和隔离。

1 MAC/CAM攻击的防范

[b]1.1 MAC/CAM
[/b]攻击的原理和危害

交换机主动学习客户端的 MAC 地址,并建立和维护端口和 MAC 地址的对应表以此建立交换路径,这个表就是通常我们所说的 CAM 表。 CAM 表的大小是固定的,不同的交换机的 CAM 表大小不同。 MAC/CAM 攻击是指利用工具产生欺骗 MAC ,快速填满 CAM 表,交换机 CAM 表被填满后,交换机以广播方式处理通过交换机的报文,这时攻击者可以利用各种嗅探攻击获取网络信息。 CAM 表满了后,流量以洪泛方式发送到所有接口,也就代表 TRUNK 接口上的流量也会发给所有接口和邻接交换机,会造成交换机负载过大,网络缓慢和丢包甚至瘫痪。

1.2典型的病毒利用MAC/CAM攻击案例

曾经对网络照成非常大威胁的 SQL 蠕虫病毒就利用组播目标地址,构造假目标 MAC 来填满交换机 CAM 表。其特征如下图所示:





1.3使用 Port Security feature 防范MAC/CAM攻击思科 Port Security feature 可以防止 MAC 和 MAC/CAM 攻击。通过配置 Port Security 可以控制:

*端口上最大可以通过的 MAC 地址数量

* 端口上学习或通过哪些 MAC 地址

* 对于超过规定数量的 MAC 处理进行违背处理

端口上学习或通过哪些 MAC 地址,可以通过静态手工定义,也可以在交换机自动学习。交换机动态学习端口 MAC ,直到到达指定的 MAC 地址数量,交换机关机后重新学习。目前较新的技术是 Sticky Port Security ,交换机将学到的 mac 地址写到端口配置中,交换机重启后配置仍然存在。

对于当超过规定数量的 MAC 时,进行的处理一般有三种方式(针对交换机型号会有所不同):

* Shutdown 。这种方式保护能力最强,但是对于一些情况可能会为管理带来麻烦,如某台设备中了病毒,病毒间断性伪造源 MAC 在网络中发送报文。

* Protect 。丢弃非法流量,不报警。

* Restrict 。丢弃非法流量,报警,对比上面的两种方式,该方式会令 交换机 CPU 利用率上升但是不影响交换机的正常使用。推荐使用这种方式。

1.4配置

port-security 配置选项:





配置 port-security 最大 mac 数目,违背处理方式,恢复方法

Cat4507(config)#int fastEthernet 3/48

Cat4507 (config-if)#switchport port-security

Cat4507 (config-if)#switchport port-security maximum 2

Cat4507 (config-if)#switchport port-security violation restrict

Cat4507 (config)#errdisable recovery cause psecure-violation

Cat4507 (config)#errdisable recovery interval 30

通过配置 sticky port-security学得的MAC :

interface FastEthernet3/29

switchport mode access

switchport port-security

switchport port-security maximum 5

switchport port-security mac-address sticky

switchport port-security mac-address sticky 000b.db1d.6ccd

switchport port-security mac-address sticky 000b.db1d.6cce

switchport port-security mac-address sticky 000d.6078.2d95

switchport port-security mac-address sticky 000e.848e.ea01

1.5使用其它技术防范MAC/CAM攻击除了 Port Security 采用 DAI 技术也可以防范 MAC 地址欺骗。

本人在这里作个引用:(为了大家更明白具体的配置,我在下面对《Catalyst 2950 and Catalyst 2955 Switch Software Configuration Guide》作了部分的引用)

































2 DHCP攻击的防范

[b]2.1
[/b]采用DHCP管理的常见问题:

采用 DHCP server 可以自动为用户设置网络 IP 地址、掩码、网关、 DNS 、 WINS 等网络参数,简化了用户网络设置,提高了管理效率。但在 DHCP 管理使用上也存在着一些令网管人员比较头痛的问题,常见的有:

*DHCP server 的冒充。

* DHCP server 的 Dos 攻击。

* 有些用户随便指定地址,造成网络地址冲突。

由于 DHCP 的运作机制,通常服务器和客户端没有认证机制,如果网络上存在多台 DHCP 服务器将会给网络照成混乱。由于用户不小心配置了 DHCP 服务器引起的网络混乱非常常见,足可见故意人为破坏的简单性。通常黑客攻击是首先将正常的 DHCP 服务器所能分配的 IP 地址耗尽,然后冒充合法的 DHCP 服务器。最为隐蔽和危险的方法是黑客利用冒充的 DHCP 服务器,为用户分配一个经过修改的 DNS server ,在用户毫无察觉的情况下被引导在预先配置好的假金融网站或电子商务网站,骗取用户帐户和密码,这种攻击是非常恶劣的。

对于 DHCP server 的 Dos 攻击可以利用前面讲的 Port Security 和后面提到的 DAI 技术,对于有些用户随便指定地址,造成网络地址冲突也可以利用后面提到的 DAI 和 IP Source Guard 技术。这部分着重介绍 DHCP 冒用的方法技术。

2.2 DHCP Snooping技术概况

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

cat4507#show ip dhcp snooping binding

MacAddress IpAddress Lease(sec) Type VLAN Interface

------------------ --------------- ---------- ------- ---- -----------------

00:0D:60:2D:45:0D 10.149.3.13 600735 dhcp-snooping 100 GigabitEthernet1/0/7

这张表不仅解决了 DHCP用户的IP和端口跟踪定位问题,为用户管理提供方便,而且还供给动态ARP检测DA)和IP Source Guard使用。

(本人标注:

DHCP Snooping绑定表可以理解为

当一个 连接在 非信任端口 的客户端获得一个合法的DHCP Offer,交换机就会自动在DHCP监听绑定表里添加一个绑定条目,内容包括了该非信任端口的客户端IP地址、MAC地址、端口号、VLAN编号、租期等信息。)

2.3基本防范首先定义交换机上的信任端口和不信任端口,对于不信任端口的 DHCP 报文进行截获和嗅探, DROP 掉来自这些端口的非正常 DHCP 报文,如下图所示:





基本配置示例如下表:

Switch(config)#ip dhcp snooping //打开DHCP Snooping功能

Switch(config)#ip dhcp snooping vlan 10 //设置DHCP Snooping功能将作用于哪些VLAN

Switch(config)#ip dhcp snooping verify mac-adress

//检测非信任端口收到的DHCP请求报文的源MAC和CHADDR字段是否相同,以防止DHCP耗竭攻击,该功能默认即为开启

Switch(config-if)#ip dhcp snooping trust

//配置接口为DHCP监听特性的信任接口,所有接口默认为非信任接口

Switch(config-if)#ip dhcp snooping limit rate 15

//限制非信任端口的DHCP报文速率为每秒15个包(默认即为每秒15个包)如果不配该语句,则show ip dhcp snooping的结果里将不列出没有该语句的端口,可选速率范围为1-2048

建议:在配置了端口的DHCP报文限速之后,最好配置以下两条命令

Switch(config)#errdisable recovery cause dhcp-rate-limit

//使由于DHCP报文限速原因而被禁用的端口能自动从err-disable状态恢复

Switch(config)#errdisable recovery interval 30

//设置恢复时间;端口被置为err-disable状态后,经过30秒时间才能恢复

Switch(config)#ip dhcp snooping information option

//设置交换机是否为非信任端口收到的DHCP报文插入Option 82,默认即为开启状态

Switch(config)#ip dhcp snooping information option allow-untrusted

//设置汇聚交换机将接收从非信任端口收到的接入交换机发来的带有选项82的DHCP报文

Switch#ip dhcp snooping binding 000f.1fc5.1008 vlan 10 192.168.10.131 interface fa0/2 expiry 692000 //特权模式命令;手工添加一条DHCP监听绑定条目;expiry为时间值,即为监听绑定表中的lease(租期)

Switch(config)#ip dhcp snooping database

flash:dhcp_snooping.db

//将DHCP监听绑定表保存在flash中,文件名为dhcp_snooping.db

Switch(config)#ip dhcp snooping database

tftp://192.168.2.5/Switch/dhcp_snooping.db

//将DHCP监听绑定表保存到tftp服务器;192.168.2.5为tftp服务器地址,必须事先确定可达。URL中的Switch是tftp服务器下一个文件夹;保存后的文件名为dhcp_snooping.db,当更改保存位置后会立即执行“写”操作。

Switch(config)#ip dhcp snooping database write-delay 30

//指DHCP监听绑定表发生更新后,等待30秒,再写入文件,默认为300秒;可选范围为15-86400秒

Switch(config)#ip dhcp snooping database timeout 60

//指DHCP监听绑定表尝试写入操作失败后,重新尝试写入操作,直到60秒后停止尝试。默认为300秒;可选范围为0-86400秒

说明:实际上当DHCP监听绑定表发生改变时会先等待write-delay的时间,然后执行写入操作,如果写入操作失败(比如tftp服务器不可达),接着就等待timeout的时间,在此时间段内不断重试。在timeout时间过后,停止写入尝试。但由于监听绑定表已经发生了改变,因此重新开始等待write-delay时间执行写入操作……不断循环,直到写入操作成功。

Switch#renew ip dhcp snooping database flash:dhcp_snooping.db

/特权级命令;立即从保存好的数据库文件中读取DHCP监听绑定表。

需要注意的是 DHCP 绑定表要存在本地存贮器 (Bootfalsh 、 slot0 、 ftp 、 tftp) 或导出到指定 TFTP 服务器上,否则交换机重启后 DHCP 绑定表丢失,对于已经申请到 IP 地址的设备在租用期内,不会再次发起 DHCP 请求,如果此时交换机己经配置了下面所讲到的 DAI 和 IP Source Guard 技术,这些用户将不能访问网络。

2.3高级防范通过交换机的端口安全性设置每个 DHCP 请求指定端口上使用唯一的 MAC 地址,通常 DHCP 服务器通过 DHCP 请求的报文中的 CHADDR 段判断客户端 MAC 地址,通常这个地址和客户端的MAC地址是相同的,但是如果攻击者不修改客户端的 MAC 而修改 DHCP 报文中 CHADDR ,实施 Dos 攻击, Port Security 就不起作用了, DHCP 嗅探技术可以检查 DHCP 请求报文中的 CHADDR 字段,判断该字段是否和 DHCP 嗅探表相匹配。这项功能在有些交换机是缺省配置的,有些交换机需要配置,具体需要参考相关交换机的配置文档。

(本人注解:这里作一个更详细的说明:

DHCP监听(DHCP Snooping)是一种DHCP安全特性。Cisco交换机支持在每个VLAN基础上启用DHCP监听特性。通过这种特性,交换机能够拦截第二层VLAN域内的所有DHCP报文。

通过开启DHCP监听特性,交换机限制用户端口(非信任端口)只能够发送DHCP请求,丢弃来自用户端口的所有其它DHCP报文,例如DHCP Offer报文等。而且,并非所有来自用户端口的DHCP请求都被允许通过,交换机还会比较DHCP 请求报文的(报文头里的)源MAC地址和(报文内容里的)DHCP客户机的硬件地址(即CHADDR字段),只有这两者相同的请求报文才会被转发,否则将被丢弃。这样就防止了DHCP耗竭攻击。信任端口可以接收所有的DHCP报文。通过只将交换机连接到合法DHCP服务器的端口设置为信任端口,其他端口设置为非信任端口,就可以防止用户伪造DHCP服务器来攻击网络。DHCP监听特性还可以对端口的DHCP报文进行限速。通过在每个非信任端口下进行限速,将可以阻止合法DHCP请求报文的广播攻击。DHCP监听还有一个非常重要的作用就是建立一张DHCP监听绑定表(DHCP Snooping Binding)。一旦一个连接在非信任端口的客户端获得一个合法的DHCP Offer,交换机就会自动在DHCP监听绑定表里添加一个绑定条目,内容包括了该非信任端口的客户端IP地址、MAC地址、端口号、VLAN编号、租期等信息。

)

3 ARP欺骗/ MITM(Man-In-The-Middle)(中间人攻击)攻击原理和防范

3.1 MITM(Man-In-The-Middle) 攻击原理按照 ARP 协议的设计,为了减少网络上过多的 ARP 数据通信,一个主机,即使收到的 ARP 应答并非自己请求得到的,它也会将其插入到自己的 ARP 缓存表中,这样,就造成了“ ARP 欺骗”的可能。如果黑客想探听同一网络中两台主机之间的通信(即使是通过交换机相连),他会分别给这两台主机发送一个 ARP 应答包,让两台主机都“误”认为对方的 MAC 地址是第三方的黑客所在的主机,这样,双方看似“直接”的通信连接,实际上都是通过黑客所在的主机间接进行的。黑客一方面得到了想要的通信内容,另一方面,只需要更改数据包中的一些信息,成功地做好转发工作即可。在这种嗅探方式中,黑客所在主机是不需要设置网卡的混杂模式的,因为通信双方的数据包在物理上都是发送给黑客所在的中转主机的。

这里举个例子,假定同一个局域网内,有 3 台主机通过交换机相连:

A 主机: IP 地址为 192.168.0.1 , MAC 地址为 01:01:01:01:01:01 ;

B 主机: IP 地址为 192.168.0.2 , MAC 地址为 02:02:02:02:02:02 ;

C 主机: IP 地址为 192.168.0.3 , MAC 地址为 03:03:03:03:03:03 。

B 主机对 A 和 C 进行欺骗的前奏就是发送假的 ARP 应答包,如图 所示





在收到 B主机发来的ARP应答后,A主机应知道:

到 192.168.0.3 的数据包应该发到 MAC 地址为 020202020202 的主机; C 主机也知道:到 192.168.0.1 的数据包应该发到 MAC 地址为 020202020202 的主机。这样, A 和 C 都认为对方的 MAC 地址是 020202020202 ,实际上这就是 B 主机所需得到的结果。当然,因为 ARP 缓存表项是动态更新的,其中动态生成的映射有个生命期,一般是两分钟,如果再没有新的信息更新, ARP 映射项会自动去除。所以, B 还有一个“任务”,那就是一直连续不断地向 A 和 C 发送这种虚假的 ARP 响应包,让其 ARP缓存中一直保持被毒害了的映射表项。

现在,如果 A 和 C 要进行通信,实际上彼此发送的数据包都会先到达 B 主机,这时,如果 B 不做进一步处理, A 和 C 之间的通信就无法正常建立, B 也就达不到“嗅探”通信内容的目的,因此, B 要对“错误”收到的数据包进行一番修改,然后转发到正确的目的地,而修改的内容,无非是将目的 MAC 和源 MAC 地址进行替换。如此一来,在 A 和 C 看来,彼此发送的数据包都是直接到达对方的,但在 B 来看,自己担当的就是“第三者”的角色。这种嗅探方法,也被称作“ Man-In-The-Middle ”的方法。如图 所示。





3.2攻击实例目前利用 ARP原理编制的工具十分简单易用,这些工具可以直接嗅探和分析FTP、POP3、SMB、SMTP、HTTP/HTTPS、SSH、MSN等超过30种应用的密码和传输内容。 下面是测试时利用工具捕获的 TELNET 过程,捕获内容包含了 TELNET 密码和全部所传的内容 :





不仅仅是以上特定应用的数据,利用中间人攻击者可将监控到数据直接发给 SNIFFER等嗅探器,这样就可以监控所有被欺骗用户的数据。

还有些人利用 ARP原理 开发出网管工具,随时切断指定用户的连接。这些工具流传到捣乱者手里极易使网络变得不稳定,通常这些故障很难排查。

3.3防范方法思科 Dynamic ARP Inspection (DAI)在交换机上提供IP地址和MAC地址的绑定, 并动态建立绑定关系。DAI 以 DHCP Snooping绑定表为基础,对于没有使用DHCP的服务器个别机器可以采用静态添加ARP access-list实现。DAI配置针对VLAN,对于同一VLAN内的接口可以开启DAI也可以关闭。通过DAI可以控制某个端口的ARP请求报文数量。通过这些技术可以防范“中间人”攻击。

3.3配置示例IOS 全局命令:

ip dhcp snooping vlan 100,200

no ip dhcp snooping information option

ip dhcp snooping

ip arp inspection vlan 100,200 /* 定义对哪些 VLAN 进行 ARP 报文检测

ip arp inspection log-buffer entries 1024

ip arp inspection log-buffer logs 1024 interval 10

IOS 接口命令:

ip dhcp snooping trust

ip arp inspection trust /* 定义哪些接口是信任接口,通常是网络设备接口, TRUNK 接口等

ip arp inspection limit rate 15 (pps) /* 定义接口每秒 ARP 报文数量

对于没有使用 DHCP 设备可以采用下面办法:

Switch(config)#arp access-list static-arp

Switch(config)#permit ip host 10.66.227.5 mac host 0009.6b88.d387

Switch(config-if)#ip arp inspection filter static-arp vlan 201

3.3配置DAI后的效果:

* 在配置 DAI技术的接口上,用户端不能采用指定地址地址将接入网络。

* 由于 DAI检查 DHCP snooping绑定表中的IP和MAC对应关系,无法实施中间人攻击,攻击工具失效。下表为实施中间人攻击是交换机的警告:

3w0d: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Fa5/16, vlan 1.

([000b.db1d.6ccd/192.168.1.200/0000.0000.0000/192.168.1.2])

由于对 ARP请求报文做了速度限制,客户端无法进行人为或者病毒进行的IP扫描、探测等行为,如果发生这些行为,交换机马上报警或直接切断扫描机器。如下表所示:

3w0d: %SW_DAI-4-PACKET_RATE_EXCEEDED: 16 packets received in 184 milliseconds on Fa5/30. ******报警

3w0d: %PM-4-ERR_DISABLE: arp-inspection error detected on Fa5/30, putting Fa5/ 30 in err-disable state

******切断端口

I49-4500-1#show interface fa5/30

FastEthernet5/30 is down, line protocol is down (err-disabled)

Hardware is Fast Ethernet Port , address is 0002.b90e.3f4d (bia 0002.b90e.3f4d)

MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,

reliability 255/255, txload 1/255, rxload 1/255

I49-4500-1#

用户获取 IP地址后,用户不能修改IP或MAC,如果用户同时修改IP和MAC必须是网络内部合法的IP和MAC才可,对于这种修改可以使用下面讲到的 IP Source Guard技术来防范。下表为手动指定IP的报警:

3w0d: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Fa5/30, vlan 1.([000d.6078.2d95/192.168.1.100/0000.0000.0000/192.168.1.100/01:52:28 UTC Fri Dec 29 2000 ])

4 IP/MAC欺骗的防范

[b]4.
[/b]1 常见的欺骗攻击的种类和目的

常见的欺骗种类有 MAC欺骗、IP欺骗、IP/MAC欺骗,其目的一般为伪造身份或者获取针对IP/MAC的特权。目前较多的是攻击行为:如Ping Of Death(“死亡之Ping”)、syn flood、ICMP unreacheable Storm,另外病毒和木马的攻击也具有典型性,下面是木马攻击的一个例子。

4.2攻击实例下图攻击为伪造源地址攻击,其目标地址为公网上的 DNS服务器,直接目的是希望通过攻击,使DNS服务器对伪造源地址的响应和等待,造成DDOS攻击,并以此扩大攻击效果。该攻击每秒钟上万个报文,中档交换机2分钟就瘫痪,造成的间接后果非常大。





4.3 IP/MAC欺骗的防范

IP Source Guard 技术配置在交换机上仅支持在 2 层端口上的配置,通过下面机制可以防范 IP/MAC 欺骗:

*IP Source Guard 使用 DHCP snooping 绑定表信息。

* 配置在交换机端口上,并对该端口生效。

* 运作机制类似 DAI,但是 IP Source Guard不仅仅检查ARP报文,所有经过IP Source Guard定义检查的端口的报文都要检测。

* IP Source Guard检查 接口 所通过的流量的IP地址和MAC地址是否在DHCP sooping绑定表,如果不在绑定表中则阻塞这些流量。注意如果需要检查MAC需要DHCP服务器支持Option 82,同时使路由器支持Option 82信息。

通过在交换机上配置 IP Source Guard:

* 可以过滤掉非法的 IP地址,包含用户故意修改的和病毒、攻击等造成的。

* 解决 IP地址冲突问题。

* 提供了动态的建立 IP+MAC+PORT的对应表和绑定关系,对于不使用DHCP的服务器和一些特殊情况机器可以采用利用全局命令静态手工添加对应关系到绑定表中。

* 配置 IP Source Guard的接口初始阻塞所有非DHCP流量。

* 不能防止“中间人攻击”。

对于 IP欺骗在路由器上也可以使用urpf技术。

(本人注解:对于IP Source Guard 技术的更详细介绍如下:

IP Source Guard技术介绍

IP源防护(IP Source Guard,简称IPSG)是一种基于IP/MAC的端口流量过滤技术,它可以防止局域网内的IP地址欺骗攻击。IPSG能够确保第2层网络中终端设备的IP地址不会被劫持,而且还能确保非授权设备不能通过自己指定IP地址的方式来访问网络或攻击网络导致网络崩溃及瘫痪。

交换机内部有一个IP源绑定表(IP Source Binding Table)作为每个端口接受到的数据包的检测标准,只有在两种情况下,交换机会转发数据:

所接收到的IP包满足IP源绑定表中Port/IP/MAC的对应关系

所接收到的是DHCP数据包

其余数据包将被交换机做丢弃处理。

IP源绑定表可以由用户在交换机上静态添加,或者由交换机从DHCP监听绑定表(DHCP Snooping Binding Table)自动学习获得。 静态配置是一种简单而固定的方式,但灵活性很差,因此Cisco建议用户最好结合DHCP Snooping技术使用IP Source Guard,由DHCP监听绑定表生成IP源绑定表。

以DHCP Snooping技术为前提讲一下IP Source Guard技术的原理。 在这种环境下,连接在交换机上的所有PC都配置为动态获取IP地址,PC作为DHCP客户端通过广播发送DHCP请求,DHCP服务器将含有IP地址信息的DHCP回复通过单播的方式发送给DHCP客户端,交换机从DHCP报文中提取关键信息(包括IP地址,MAC地址,vlan号,端口号,租期等),并把这些信息保存到 DHCP 监听绑定表中。(以上这个过程是由DHCP Snooping完成的)

接下来的由IP Source Guard完成。交换机根据DHCP监听绑定表的内容自动生成IP源绑定表,然后IOS根据IP源绑定表里面的内容自动在接口加载基于端口的VLAN ACL(PVACL),由该ACL(可以称之为源IP地址过滤器)来过滤所有IP流量。客户端发送的IP数据包中,只有其源IP地址满足源IP绑定表才会被发送,对于具有源IP绑定表之外的其他源IP地址的流量,都将被过滤。

PC没有发送DHCP请求时,其连接的交换机端口默认拒绝除了DHCP请求之外的所有数据包,因此PC使用静态IP是无法连接网络的(除非已经存在绑定好的源IP绑定条目,如静态源IP绑定条目或者是之前已经生成的动态IP绑定条目还没过期,而且PC还必须插在正确的端口并设置正确的静态IP地址)。

IP源防护只支持第2层端口,其中包括接入(access)端口和干道(trunk)接口。IP源防护的信任端口/非信任端口也就是DHCP监听的信任端口/非信任端口。对于非信任端口存在以下两种级别的IP流量安全过滤:

IP地址过滤:根据源IP地址对IP流量进行过滤,只有当源IP地址与IP源绑定条目匹配,IP流量才允许通过。当端口创建、 修改、 删除新的IP源绑定条目的时候,IP源地址过滤器将发生变化。为了能够反映IP源绑定的变更,端口PACL将被重新修改并重新应用到端口上。 默认情况下,如果端口在没有存在IP源绑定条目的情况下启用了IP源防护功能,默认的PACL将拒绝端口的所有流量(实际上是除 DHCP报文以外的所有IP流量)。

IP和源MAC地址过滤:根据源IP地址和源MAC地址对IP流量进行过滤,只有当源IP地址和源MAC地址都与IP源绑定条目匹配,IP流量才允许通过。当以IP和MAC地址作为过滤的时候,为了确保DHCP协议能够正常的工作,还必须启用DHCP监听选项82。 对于没有选项82的数据,交换机不能确定用于转发DHCP服务器响应的客户端主机端口。相反地,DHCP服务器响应将被丢弃,客户机也不能获得IP地址。

注:交换机使用端口安全(Port Security)来过滤源MAC地址。

当交换机只使用“IP源地址过滤”时,IP源防护功能与端口安全功能是相互独立的关系。 端口安全是否开启对于IP源防护功能来说不是必须的。 如果同时开启,则两者也只是一种宽松的合作关系,IP源防护防止IP地址欺骗,端口安全防止MAC地址欺骗。而当交换机使用“源IP和源MAC地址过滤”时,IP源防护功能与端口安全功能是就变成了一种“集成”关系,更确切的说是端口安全功能被集成到 IP源防护功能里,作为IP源防护的一个必须的组成部分。

在这种模式下,端口安全的违规处理(violation)功能将被关闭。对于非法的二层报文,都将只是被简单的丢弃,而不会再执行端口安全的违规处理了。IP源防护功能不能防止客户端PC的ARP攻击。ARP攻击问题必须由DAI功能来解决。如果要支持IP源防护功能,必须是35系列及以上的交换机。2960目前不支持该功能。

三、IP Source Guard的配置(IPSG配置前必须先配置ip dhcp snooping
Switch(config-if)#ip verify source

Switch(config-if)#ip verify source vlan dhcp-snooping //接口级命令;在该接口下开启IP源防护功能

说明:

I、这两条语句的作用是一样的,不同的是:

ip verify source是35系列交换机的命令

ip verify source vlan dhcp-snooping是45/65系列交换机以及76系列路由器的命令

II、这两条命令后还有个参数port-security,即命令:
Switch (config-if)#ip verify source port-securitySwitch (config-if)#ip verify source vlan dhcp-snooping port-security

不加port-security参数,表示IP源防护功能只执行“源IP地址过滤”模式

加上port-security参数以后,就表示IP源防护功能执行“源IP和源MAC地址过滤”模式

另外,在执行这两条命令之前需要先执行switchport port-security命令。

III、当执行“源IP和源MAC地址过滤”模式时,还可以通过以下命令限制非法MAC包的速度
Switch (config-if)#switchport port-security limit rate invalid-source-mac 50//接口级命令;限制非法二层报文的速度为每秒50个;可以用参数none表示不限制

//只在“源IP和源MAC地址过滤”模式下有效,并且只有45系列及以上才支持该命令;

IV、 另外,在发生IP地址欺骗时,35/45系列交换机不会提供任何报错信息,只是丢弃数据报文;而65系列交换机会发出IP地址违背的报错信息。

添加一条静态IP源绑定条目:
Switch (config)#ip source binding 000f.1fc5.1008 vlan 10 192.168.10.131 interface fa0/2//全局命令;对应关系为:vlan10 - 000f.1f05.1008 - 192.168.10.131 - fa0/2

四、显示IP Source Guard的状态
Switch#show ip source binding //显示当前的IP源绑定表

Switch#show ip verify source //显示当前的IP源地址过滤器的实际工作状态

五、IP Source Guard实例 1、单交换机环境(所有主机位于同一个VLAN





环境:

DHCP服务器和PC客户端都位于vlan 10

DHCP服务器的MAC为000B.DB47.36EF,需要静态分配IP地址192.168.10.2,接在fa0/1

特殊应用服务器MAC为0016.D49F.4866,需要静态分配IP地址192.168.10.3,接在fa0/2

客户端PC的MAC为000F.1FC5.1008,通过DHCP动态获得地址,接在fa0/3

交换机为3560,Vlan 10的网关为192.168.10.1

当前相关配置如下:
ip dhcp snooping vlan 10

ip dhcp snooping

!

interface FastEthernet0/1

description : Connect to Win2003 DHCP Server

switchport access vlan 10

switchport mode access

spanning-tree portfast

ip verify source

ip dhcp snooping trust

!

interface FastEthernet0/2

switchport access vlan 10

switchport mode access

spanning-tree portfast

ip verify source

ip dhcp snooping limit rate 15

!

interface FastEthernet0/3

switchport access vlan 10

switchport mode access

spanning-tree portfast

ip verify source

ip dhcp snooping limit rate 15

!

interface Vlan10

ip address 192.168.10.1 255.255.255.0

测试步骤:

1、初始状态:交换机当前已经配置好DHCP Snooping和端口的IP Source Guard(具体配置如上所示),但还没有添加DHCP服务器和特殊应用服务器的静态源IP绑定条目;并且DHCP服务器,特殊应用服务器和客户端PC都还没有连接到交换机,即交换机端口处于down状态

显示工作状态:
Switch#show ip dhcp snooping binding

MacAddress IpAddress Lease(sec) Type VLAN Interface

------------------ --------------- ---------- ------------- ---- --------------------

Total number of bindings: 0

当前没有任何DHCP监听绑定条目

Switch#show ip source binding

MacAddress IpAddress Lease(sec) Type VLAN Interface

------------------ --------------- ---------- ------------- ---- --------------------

Total number of bindings: 0

当前也没有任何IP源绑定条目

Switch#show ip verify source

Interface Filter-type Filter-mode IP-address Mac-address Vlan

--------- ----------- ----------- --------------- ----------------- ----------

Fa0/1 ip inactive-trust-port

Fa0/2 ip inactive-no-snooping-vlan

Fa0/3 ip inactive-no-snooping-vlan

由于当前这三个端口都是down的,所以IP源地址过滤器显示工作状态为非激活

注意当前“Filter-type”列里的“ip”说明当前是“源IP地址过滤”模式;

如果显示的是“ip-mac”则说明是“源IP和源MAC地址过滤”模式。

2、将DHCP服务器接上交换机的fa0/1口;特殊应用服务器接在fa0/2上;确定端口这两端口为up状态
Switch#show ip dhcp snooping binding

MacAddress IpAddress Lease(sec) Type VLAN Interface

------------------ --------------- ---------- ------------- ---- --------------------

Total number of bindings: 0

由于两台服务器都是静态指定IP地址,所以当前没有任何DHCP监听绑定条目

Switch#show ip source binding

MacAddress IpAddress Lease(sec) Type VLAN Interface

------------------ --------------- ---------- ------------- ---- --------------------

Total number of bindings: 0

//IP源绑定表没有任何条目,因为两服务器的静态IP源绑定条目还未添加

Switch#show ip verify source

Interface Filter-type Filter-mode IP-address Mac-address Vlan

--------- ----------- ----------- --------------- ----------------- ----------

Fa0/1 ip inactive-trust-port

Fa0/2 ip active deny-all 10

Fa0/3 ip inactive-no-snooping-vlan

两台服务器接上以后,在IP源地址过滤器里结果却是不一样的

fa0/1还是为非激活状态,是由于该端口是DHCP监听的信任端口

fa0/2为激活状态,但却是拒绝所有IP流量(虽然这么显示,不过DHCP请求是可以通过的)

说明IP源绑定对于DHCP监听的信任端口和非信任端口的处理方式是不一样的。

此时在交换机上ping DHCP服务器的IP地址:
Switch#ping 192.168.10.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.10.2, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

可以ping通

再ping特殊应用服务器的IP地址:
Switch#ping 192.168.10.3

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.10.3, timeout is 2 seconds:

.....

Success rate is 0 percent (0/5)

可以看到无法ping通

3、添加这两台服务器的静态IP源绑定条目
ip source binding 000B.DB47.36EF vlan 10 192.168.10.2 interface fa0/1ip source binding 0016.D49F.4866 vlan 10 192.168.10.3 interface fa0/2

Switch#show ip dhcp snooping binding MacAddress IpAddress Lease(sec) Type VLAN Interface

------------------ --------------- ---------- ------------- ---- --------------------

Total number of bindings: 0

//由于两台服务器都是静态指定IP地址,所以当前没有任何DHCP监听绑定条目

Switch#show ip source binding

MacAddress IpAddress Lease(sec) Type VLAN Interface

------------------ --------------- ---------- ------------- ---- --------------------

00:0B:DB:47:36:EF 192.168.10.2 infinite static 10 FastEthernet0/1

00:16:D4:9F:48:66 192.168.10.3 infinite static 10 FastEthernet0/2

可以看到手工添加的两条静态条目已经存在了,其租约为infinite,类型为静态;另外,很明显该条目不是从DHCP监听绑定表中学习到的。
Switch#show ip verify source

Interface Filter-type Filter-mode IP-address Mac-address Vlan

--------- ----------- ----------- --------------- ----------------- ----------

Fa0/1 ip inactive-trust-port

Fa0/2 ip active 192.168.10.3 10

Fa0/3 ip inactive-no-snooping-vlan

此时 IP 源地址过滤器里的 fa0/1 没有任何变化,而 fa0/2 由于在 IP 源绑定表里有了该条目,现已允许192.168.10.3这个地址通过了

再次ping特殊应用服务器的IP地址
再次ping特殊应用服务器的IP地址

Switch#ping 192.168.10.3

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.10.3, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

现在可以ping通了

小结,以上结果说明:

IP源防护只针对非信任端口起作用,对信任端口不起作用。所以不需要为接在信任端口上的主机添加静态IP源绑定,其依然可以正常通信

IP源绑定能阻止非信任端口上的客户端以静态指定IP地址的方式接入网络。 这些客户端将无法通信,除非为其手工添加静态IP源绑定条目。

4、将PC客户端设置为动态获得IP地址,接在fa0/3,确定端口处于up状态
Switch#show ip dhcp snooping binding

MacAddress IpAddress Lease(sec) Type VLAN Interface

------------------ --------------- ---------- ------------- ---- --------------------

00:0F:1F:C5:10:08 192.168.10.4 691867 dhcp-snooping 10 FastEthernet0/3

Total number of bindings: 1

客户端PC通过DHCP方式获得了一个地址192.168.10.4;DHCP监听表里产生了该客户端的监听条目
Switch#show ip source binding

MacAddress IpAddress Lease(sec) Type VLAN Interface

------------------ --------------- ---------- ------------- ---- --------------------

00:0B:DB:47:36:EF 192.168.10.2 infinite static 10 FastEthernet0/1

00:16:D4:9F:48:66 192.168.10.3 infinite static 10 FastEthernet0/2

00:0F:1F:C5:10:08 192.168.10.4 691550 dhcp-snooping 10 FastEthernet0/3

//此时IP源绑定表根据DHCP监听绑定表里的条目自动生成了相应的条目

Switch#show ip verify sourceInterface Filter-type Filter-mode IP-address Mac-address Vlan

--------- ----------- ----------- --------------- ----------------- ----------

Fa0/1 ip inactive-trust-port

Fa0/2 ip active 192.168.10.3 10

Fa0/3 ip active 192.168.10.4 10

IP源地址过滤器根据IP源绑定表里的条目允许192.168.10.4这个IP地址的流量从fa0/3通过

说明:

如果PC客户端此时更换了交换机端口,由于客户端会再次发起DHCP请求,这将会引起交换机更新DHCP监听条目。DHCP监听条目的更新会导致IP源绑定条目的更新,所以IP源地址过滤器也将随着更新,以适应PC客户端的实际情况。

如果PC客户端不更换端口,但要改成静态IP地址,它只能改成与动态获得的IP地址一样的IP地址,这一举动是可行的。但客户端不再会发出DHCP请求来更新租约,因此随着DHCP监听条目超时后,还是会被阻止通信。

客户端不更换端口,但更改为与动态获得的IP地址不一样的静态IP地址,或者更改为同样的静态IP但接在了不一样的端口上,都将会立即被阻止通信。

最终配置:
ip dhcp snooping vlan 10

ip dhcp snooping

!

interface FastEthernet0/1

switchport access vlan 10

switchport mode access

spanning-tree portfast

ip dhcp snooping trust

!

interface FastEthernet0/2

switchport access vlan 10

switchport mode access

spanning-tree portfast

ip verify source

ip dhcp snooping limit rate 15

!

interface FastEthernet0/3

switchport access vlan 10

switchport mode access

spanning-tree portfast

ip verify source

ip dhcp snooping limit rate 15

!

interface Vlan10

ip address 192.168.10.1 255.255.255.0

!

ip source binding 0016.d49f.4866 vlan 10 192.168.10.3 interface fa0/2

2、单交换机环境(所有主机位于同一个VLAN





环境:

PC1和PC2都位于vlan10;没有DHCP服务器

PC1的MAC为000F.1FC5.1008,配置静态IP地址192.168.10.1,接在fa0/1

PC2的MAC为0016.D49F.4866,配置静态IP地址192.168.10.2,接在fa0/2
interface FastEthernet0/1

description : Connect to PC1

switchport access vlan 10

switchport mode access

spanning-tree portfast

ip verify source!

interface FastEthernet0/2

description : Connect to PC2

switchport access vlan 10

switchport mode access

spanning-tree portfast

ip verify source

!

ip source binding 000f.1fc5.1008 vlan 10 192.168.10.1 interface fa0/1ip source binding 0016.d49f.4866 vlan 10 192.168.10.2 interface fa0/2

说明:本例是一个纯粹的静态环境,通过手工添加IP源绑定条目实现PC1和PC2互通。可以看出静态IP源绑定不需要交换机同时启用DHCP Snooping功能



4.4配置示例:

一、检测接口上的 IP+MAC

IOS 全局配置命令:

ip dhcp snooping vlan 12,200 (指定DHCP snooping防护vlan 12,200)

ip dhcp snooping information option

ip dhcp snooping

接口配置命令:

ip verify source vlan dhcp-snooping port-security (启动IP Source Guard的端口同时检查ip和mac)

switchport mode access

switchport port-security

switchport port-security limit rate 15 invalid-source-mac 000A.E439.6577

/* 控制端口上所能学习源 MAC 的速率,仅当 IP+MAC 同时检测时才有意义。

二、只检测接口上的 IP :

IOS 全局配置命令

ip dhcp snooping vlan 12,200 (指定DHCP snooping防护vlan 12,200)

no ip dhcp snooping information option

ip dhcp snooping

接口配置命令:

ip verify source vlan dhcp-snooping (这里没有port-security参数,所以不检查MAC)

三、不使用 DHCP 的静态配置

IOS 全局配置命令:

ip dhcp snooping vlan 12,200

ip dhcp snooping information option

ip dhcp snooping

ip source binding 0009.6b88.d387 vlan 212 10.66.227.5 interface Gi4/5

5 IP地址管理和病毒防范的新思路

5.1 IP地址管理综上所述通过配置思科交换机的上述特征,不仅解决了一些典型攻击和病毒的防范问题,也为传统 IP地址管理提供了新的思路。

通过上面的几项技术解决了传统的利用DHCP服务器管理客户端IP地址的问题:

* 故意不使用手工指定静态 IP地址和DHCP分配地址冲突

* 配置 DHCP server

* 使用静态指定 IP遇到的问题

* 不使用分配的 IP地址和服务器或其他地址冲突

* 不容易定位 IP地址和具体交换机端口对应表

使用静态地址的重要服务器和计算机,可以进行静态绑定 IP+MAC、IP+MAC+PORT,手工配置DAI和 IP Source Guard绑定表项, 来保护这些设备,同时也防止来自这些设备的攻击。

目前对于网络病毒的不断爆发,越来越多的用户开始重视对 PC的管理,用户关注谁能访问网络、访问以后能做什么、做了哪些事情、这就是我们常说的AAA认证,除了这些用户希望能够很快定位到用户在哪台交换机、哪个端口、以哪个IP和MAC登陆,这样有有了”AAA+A”( Authenticate, Authorize,Account , Address )的概念。

通过上面的配置我们在网络层面已经可以定位用户了,加上 802.1X认证我们可以在网络层面根据用户的身份为用户授权,从而实现”AAA+A”。





更进一步要审计用户所使用电脑具备的条件,如系统补丁、所装杀毒软件及补丁、等条件可以考虑采用思科网络准入控制 NAC。

5.2使用DHCP Snooping DAIIP Source Guard技术能解决的有关病毒问题由于大多数对局域网危害较大的网络病毒都具有典型的欺骗和扫描,快速发包,大量 ARP 请求等特征,采用上述技术一定程度上可以自动切断病毒源,及时告警,准确定位病毒源。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: