您的当前位置:首页正文

Dell交换机二层平安测试-DHCP监听 IP源防护 动态ARP监测

2022-01-20 来源:好走旅游网
DHCP Snooping + IPSG + DAI

测试平台:N系列交换机,firmware v6.1.2.4

一、DHCP Snooping

DHCP监听将交换机端口划分为两类:

信任端口(Trust):连接合法DHCP服务器的端口或者连接汇聚交换机的上行端口; 非信任端口(Untrusted):通常为连接终端设备的端口,如PC,服务器,网络打印机等

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

①非信任端口只允许客户端的DHCP请求报文通过,这里只是相对于DHCP报文来说的。其他非DHCP报文还是可以正

常转发的。这就表示客户端可以静态指定IP地址的方式通过非信任端口接入网络。由于静态客户端不会发送

DHCP报文,所以DHCP监听绑定表里也不会有该静态客户端的记录。信任端口的客户端信息不会被记录到DHCP监

听绑定表里。如果有一客户端连接到了一个信任端口,即使它是通过正常的DHCP方式获得IP地址,DHCP监听绑

定表里也不有该客户端的记录。如果要求客户端只能以动态获得IP的方式接入网络,则必须借助于IPSG和DAI 技术。

②交换机为了获得高速转发,通常只检查报文的二层帧头,获得目标MAC地址后直接转发,不会去检查报文的内

容。而DHCP监听本质上就是开启交换机对DHCP报文的内容部分的检查,DHCP报文不再只是被检查帧头了。

③DHCP监听绑定表不仅用于防御DHCP攻击,还为后续的DAI和IPSG技术提供动态数据库支持。 ④DHCP监听绑定表里的Lease列就是每个客户端对应的DHCP租约时间。当客户端离开网络后,该条目并不会立即

消失。当客户端再次接入网络,重新发起DHCP请求以后,相应的条目内容就会被更新。

DHCP server 配置: DHCPSERVER# configure

DHCPSERVER(config)# service dhcp

DHCPSERVER(config)# ip dhcp pool TEST

DHCPSERVER(config-dhcp-pool)# network 10.1.1.0 255.255.255.0 DHCPSERVER(config-dhcp-pool)# default-router 10.1.1.1 DHCPSERVER(config-dhcp-pool)# exit DHCPSERVER(config)#int gi1/0/1

DHCPSERVER(config-if)#switchport mode trunk

DHCP snooping 配置: console#configure

console(config)#vlan 100 console(config-vlan100)#exit

console(config)#ip dhcp snooping

console(config)#ip dhcp snooping vlan 100

console(config)#ip dhcp snooping verify mac-address

console(config)#ip dhcp snooping database tftp://10.1.1.7/database.txt console(config)#ip dhcp snooping database write-delay 15

console(config)#interface vlan 100

console(config-if-vlan100)#ip address 10.1.1.254 /24 console(config-if-vlan100)#exit

console(config)#interface gi1/0/1

console(config-if-Gi1/0/1)#switchport mode trunk console(config-if-Gi1/0/1)#ip dhcp snooping trust

console(config-if-Gi1/0/1)#ip dhcp snooping log-invalid console(config-if-Gi1/0/1)#exit

console(config)#interface range gi1/0/4,gi1/0/5 console(config-if)#switchport access vlan 100

console(config-if)#ip dhcp snooping limit rate 100 burst interval 1 console(config-if)#exit

console#show ip dhcp snooping DHCP snooping is Enabled

DHCP snooping source MAC verification is enabled DHCP snooping is enabled on the following VLANs: 100

Interface Trusted Log Invalid Pkts ----------- ---------- ---------------- Gi1/0/1 Yes Yes Gi1/0/4 No No Gi1/0/5 No No

二、IP Source Guard(IPSG)

目的是用 来防止用户端自己乱改 IP,由DHCP SERVER分配给PC机的地址才可正常访问网络,确保接入源的安全性。

启用IP源保护后,如果没有定义IP DHCP Snooping Binding 列表或 IP verify binding,客户端只能通过DHCP来获取IP才能使用; 如果 定义了静态 DHCP Snooping Binding 列表或 IP verify binding表,则需要客户端设定指定的绑定的IP地址,否则都不通。

console(config)#interface Gi1/0/5

console(config)#ip verify source port-security

PC端使用DHCP方式获得ip地址时,可以正常访问网络

在交换机上查看DHCP snooping binding表

如果在PC端手动指定IP地址后,PC端无法ping通网关,交换机上也无法ping通PC了。

交换机上DHCP snooping binding表中对应的条目也消失

使用IPSG静态绑定ip地址、mac地址、端口后,PC端静态指定ip地址也是可以正常访问网络的。

console(config)#ip verify binding F01F.AF37.963E vlan 100 10.1.1.7 interface gigabitethernet 1/0/5

查看DHCP snooping bindbing表没有该条目

在ip source binding中是静态绑定方式

PC端依然指定固定ip地址,不通过dhcp'方式获取,删除IPSG静态绑定,测试DHCP snooping 静态绑定,发现同样可以正常访问网络,但DHCP snooping binding表中存在相应条目。 console(config)#no ip verify binding F01F.AF37.963E vlan 100 10.1.1.7 interface Gi1/0/5 console(config)#end

console#ping 10.1.1.7 ------删除IPSG静态绑定后,互ping已不通 Pinging 10.1.1.7 with 0 bytes of data:

----10.1.1.7 PING statistics----

4 packets transmitted, 0 packets received, 100% packet loss round-trip (msec) min/avg/max = <10/<10/<10

console#

console(config)#ip dhcp snooping binding F01F.AF37.963E vlan 100 10.1.1.7 interface gi1/0/5 ----静态DHCP Snooping绑定 console(config)#end

console#show ip dhcp snooping binding Total number of bindings: 2

MAC Address IP Address VLAN Interface Type Lease (Secs) ----------------- --------------- ---- ----------- ------- ------------

D067.E582.656A 10.1.1.5 100 Gi1/0/4 DYNAMIC 83058 F01F.AF37.963E 10.1.1.7 100 Gi1/0/5 STATIC

console#show ip source binding

MAC Address IP Address Type VLAN Interface ----------------- --------------- ------------- ----- -------------

D067.E582.656A 10.1.1.5 dhcp-snooping 100 Gi1/0/4 F01F.AF37.963E 10.1.1.7 dhcp-snooping 100 Gi1/0/5

console#

console#ping 10.1.1.7

Pinging 10.1.1.7 with 0 bytes of data:

Reply From 10.1.1.7: icmp_seq = 0. time <10 msec. Reply From 10.1.1.7: icmp_seq = 1. time <10 msec. Reply From 10.1.1.7: icmp_seq = 2. time <10 msec. Reply From 10.1.1.7: icmp_seq = 3. time <10 msec.

----10.1.1.7 PING statistics----

4 packets transmitted, 4 packets received, 0% packet loss round-trip (msec) min/avg/max = <10/<10/<10

console(config)#no ip dhcp snooping binding F01F.AF37.963E console(config)#end console#ping 10.1.1.7

Pinging 10.1.1.7 with 0 bytes of data:

----10.1.1.7 PING statistics----

4 packets transmitted, 0 packets received, 100% packet loss round-trip (msec) min/avg/max = <10/<10/<10

console#

三、Dynamic ARP Inspection (DAI)

ARP探测就是对经过设备的所有ARP报文进行检查,DHCP Snooping需要提供数据库信息供ARP探测使用,在开启DAI功能的设备上,当收到ARP报文时,DAI模块就根据报文查询DHCP

snooping的绑定数据库,只有当收到的ARP报文数据字段的源MAC、源IP和端口信息都匹配时才认为收到的ARP报文是合法的,才进行相关的学习和转发操作,否则丢弃该报文。

console(config)#ip arp inspection vlan 100

console(config)#ip arp inspection vlan 100 logging

console(config)#ip arp inspection validate src-mac dst-mac ip

console#configure t

console(config)#interface gi1/0/1

console(config-if-Gi1/0/1)#ip arp inspection trust 上联口需要配置为DAI trust模式 console(config-if-Gi1/0/1)#exit

console(config)#interface gi1/0/5

console(config-if-Gi1/0/5)#ip arp inspection limit rate 2 burst interval 1

接PC端依然为默认的DAI untrust模式,并限制ARP请求的速率。如果此值配置的过小,很容易将端口置为D-Down状态,需要shutdown后no shutdown端口才可以恢复。 console(config-if-Gi1/0/5)#end

console#show interfaces status

Port Description Vlan Duplex Speed Neg Link Flow Ctrl State Status

--------- ------------------------- ----- ------ ------- ---- ------ --------- Gi1/0/1 trnk Full 1000 Auto Up Active

Gi1/0/2 100 N/A Unknown Auto Down Inactive Gi1/0/3 100 N/A Unknown Auto Down Inactive Gi1/0/4 100 Full 1000 Auto Up Active

Gi1/0/5 100 N/A Unknown Auto D-Down Inactive Gi1/0/6 100 N/A Unknown Auto Down Inactive Gi1/0/7 1 N/A Unknown Auto Down Inactive

console(config)#interface gi1/0/5

console(config-if-Gi1/0/5)#ip arp inspection limit rate 100 burst interval 1 console(config-if-Gi1/0/5)#shutdown console(config-if-Gi1/0/5)#no shutdown

console#show ip arp inspection statistics

VLAN Forwarded Dropped ---- ------------ --------- 100 55 283

如果此时在PC端手动指定IP地址,PC将无法正常访问网络,交换机上将出现以下提示。

<187> Mar 13 14:19:15 10.1.1.254-1 DAI[118585492]: dai_util.c(656) 1022 %% DAI dropped ARP frame rcvd on i/f Gi1/0/5 in vlan 100, due to - DHCP SNOOP DB MATCH FAILURE

<188> Mar 13 14:19:15 10.1.1.254-1 DAI[118585492]: dai_util.c(550) 1023 %% DAI: Ethernet header- dest FF:FF:FF:FF:FF:FF, src F0:1F:AF:37:96:3E, type/len 0x8100.

<188> Mar 13 14:19:15 10.1.1.254-1 DAI[118585492]: dai_util.c(600) 1024 %% DAI: ARP PKT- op Request, sender mac F0:1F:AF:37:96:3E, sender ip 10.1.1.7, target mac 00:00:00:00:00:00, target ip 10.1.1.1

交换机二层安全一般也需要配置端口安全,配置示例如下。 console(config)#interface gi1/0/5

console(config-if-Gi1/0/5)#port security max 1 console(config-if-Gi1/0/5)#port security discard console(config-if-Gi1/0/5)#port security console(config-if-Gi1/0/5)#

因篇幅问题不能全部显示,请点此查看更多更全内容