第五部分 IP源保护(IP Source Guard)
IPSG提供检测机制来确保单个接口所接收到的数据包能够被各个接口所接收。如果检查成功通过,那么就将许可数据包;否则就会发生违背策略的活动。IPSG不仅能够确保第2层网络中终端设备的IP地址不会被劫持,而且还能确保非授权设备不能通过自己指定IP地址的方式来访问网络或导致网络崩溃及瘫痪。
在DHCP监听绑定表或静态IP源绑定的帮助下,IPSG能够获得有效的源端口信息。在不信任端口上启用dhcp snooping和ip源保护之后,交换机将阻止除了dhcp数据包之外的所有流量。一旦DHCP服务器分配了IP地址,那么就更新dhcp绑定表。IPSG然后会自动在接口加载基于端口的vlan访控(PACL)。这样将客户端流量限定到绑定表中所配置的源IP地址。对于来自源IP绑定之外的其他源IP地址的主机端口的流量,将会被过滤。
IP源保护只支持第2层端口,其中包括介入access和干道trunk接口。对于不信任端口(第2层),存在以下两种级别的IP流量安全过滤:
* 源IP地址过滤:根据源IP地址对IP流量进行过滤,只有当源IP地址与IP源绑定条目匹配,IP流量才允许通过。
当端口创建、修改、删除新的IP源绑定条目的时候,IP源地址过滤器将发生变化。为了能够反映IP源绑定的变更,端口PACL将被重新修改并重新应用到端口上。
默认情况下,如果端口没有任何IP源绑定配置的情况下启用了ip源保护,默认的PACL将拒绝端口的所有流量。如果你取消了IP源保护,端口的ACL也会从接口上移除。
* 源IP和MAC地址过滤:根据源IP地址和MAC地址对IP流量进行过滤,只有当源IP地址和MAC地址与IP源绑定条目匹配,IP流量才允许通过。
当以IP和MAC地址作为过滤的时候,为了确保DHCP协议能够正常的工作,还必须启用DHCP监听选项82,对于没有选项82的数据,交换机不能确定用于转发DHCP服务器响应的客户端主机端口。相反地,DHCP服务器响应将被丢弃,客户机也不能获得ip地址
交换机使用端口安全来过滤源maC地址,所以端口上的端口安全的违规处理将关闭。
配置过程:
注意:
1. 在某个VLAN上启用基于源IP地址的IP源保护之前,必须先启用DHCP监听功能
2. 如果是在TRUNK接口上对于多个VLAN启用IP源保护,必须在所有的VLAN上启用DHCP监听,同时要应用基于源IP过滤策略在所有的VLAN
3. 启用基于源ip和mac地址的IP源保护之前,必须启用DHCP监听和端口安全(Port security)
4. 在私有vlan上启用基于源ip和mac地址的IP源保护,端口安全是不支持的
5. IP源保护不支持以太通道(EthenChannel)
6. 在启用了802.x认证的情况下,也可以使用这种特性。
配置:
1) 进入全局模式 configure terminal
2) 进入接口模式 interface 接口
3) 启用IP源保护
基于源IP地址的 ip verify source
基于源IP和MAC地址的 ip verify source port-security
注意:dhcp服务器必须支持选项82,或者客户端没有分配到IP地址。同时MAC地址不能被学习为安全地址
5) 进入全局模式,添加静态的IP源绑定
ip source binding mac地址 vlan vlan号 ip地址 interface 接口
6) 验证结果
show ip verify source [interface 接口]
show ip source binding [ip地址] [mac地址] [interface 接口] [vlan vlan号] [dhcp snooping|static]
案例:
我们接着上部分试验继续
Switch(config)#interface f0/2
Switch(config-if)#switchport port-security
Switch(config-if)#ip verify source port-security
Switch(config)#interface f0/3
Switch(config-if)#switchport port-security
Switch(config-if)#ip verify source port-security
Switch(config-if)#exit
Switch(config)#ip source binding 00e0.1e60.7c86 vlan 10 192.168.1.1 interface f0/1
Switch(config)#end
Switch#show ip source bind
MacAddress IpAddress Lease(sec) Type VLAN Interface
---------- ----------- ---------- ------------- ---- ----------------
00:10:7B:3C:01:DA 192.168.1.2 85535 dhcp-snooping 10 fastEthernet0/2
00:E0:1E:60:7C:86 192.168.1.1 infinite static 10 fastEthernet0/1
Total number of bindings: 3
----------------------------------------------------------------
Switch#show ip verify source
Interface Filter-type Filter-mode IP-address Mac-address Vlan
--------- ---------- ----------- --------------- ------------- ----------
Fa0/2 ip-mac active 192.168.1.2 permit-all 10
Fa0/3 ip-mac active deny-all permit-all 10
第六部分 动态ARP检测
DAI(Dynamic ARP Inspection)动态ARP检测是一种能够验证网络中ARP地址解析协议数据报的安全特性。通过DAI,网络管理员能够拦截、记录和丢弃具有无效MAC地址/IP地址绑定的ARP数据包。
如上图,主机A、主机B、主机C连接到交换机中相同的网络或同一个vlan中。主机A需要与主机B进行通信,主机A广播ARP请求通过主机B的IP地址(IB)来获得主机B的MAC地址。因为ARP请求是以广播的形式传送,交换机和主机B收到主机A发出的ARP请求之后,会在自己的ARP缓存中创建或更新主机A的MAC地址(MA)和IP地址(IA),然后主机B一单播得形式发送ARP响应,交换机和主机A收到ARP响应之后,主机A将更新自己的ARP缓存,将主机B的IP地址和MAC地址对应。
主机C破坏交换机的ARP缓存,主机C发送伪造的ARP响应(将自己的MAC地址代替真实主机的MAC地址,比如主机C用自己的MAC地址(MC)替代主机B发给主机A的MAC地址(MB)),使得主机A(或主机B)的IP地址和主机C的MAC地址(MC)对应,主机C以中间人的身份发起攻击。这样造成主机A不能拥有主机B真实的MAC地址的ARP条目,同样,主机B也认为主机C的MAC地址是映射到主机A IP地址的真实地址。对于主机A和主机B之间的通信,都会被发往主机C,主机C能够在阅读内容后进行流量的重定向。
动态ARP检测是一个安全特性,通过DAI,网络管理员能够检测、拦截、记录和丢弃具有无效MAC地址/IP地址绑定的ARP数据包。能够预防“中间人”的攻击。
动态ARP检测只会转发合法的ARP请求和响应包,他会:
* 检测不信任的端口上的所有ARP请求和响应包
* 在更新本地的ARP缓存和转发ARP数据包到目的地之前,会检测是否是合法的IP和MAC地址对应内容。
* 如果确认是不合法的数据包,他会丢弃数据包并记录这个违规的行为。
动态ARP检测依据一个信任的数据库(如手工配置或dhcp监听绑定表)中合法的IP对应MAC地址的条目来判断数据包的合法性。这个数据库可以手工指定配置或者在vlan中启用了dhcp监听动态学习建立。如果ARP数据包是在信任端口上接收到的,交换机不会做任何检测直接转发ARP数据包。如果是从不信任端口上接收到ARP数据包,交换机只会转发合法的数据包。
在DHCP服务器存在的环境下,可以在每个VLAN中启用DHCP监听和ip arp inspection vlan命令来启用动态ARP检测。如果没有DHCP环境,用户需要使用arp 访问列表手工配置IP地址来启用动态ARP检测合法的数据包。
接口信任状态和网络安全
如果ARP数据包是在信任端口上接收到的,交换机不会做任何检测直接转发ARP数据包。如果是从不信任端口上接收到ARP数据包,交换机只会转发合法的数据包。
在一个典型的网络中,交换机中所有连接主机的端口配置为不信任端口,所有交换机与交换机相连的端口配置为信任端口。如下图,交换机A和交换机B运行动态ARP检测,主机1和主机2需要从连接到交换机A的dhcp服务器来获得IP地址,交换机1建立主机1和主机2的IP和MAC地址的绑定信息,交换机B建立主机2的IP和MAC地址的绑定信息。如果交换机A和交换机B连接的端口设置为不信任端口,从主机1发出的ARP数据包到达交换机B时,会被交换机B丢弃,这样主机1和主机2的联系就中断了。
配置过程:
默认配置:
特性 默认配置
-----------------------------------------
动态ARP检测 所有vlan中不启用
接口信任状态 所有接口是不信任
进入ARP数据包流量限制 不信任端口:15 pps信任端口:没有限制
没有dhcp环境下的arp访控 没有定义
合法核实 没有核实允许
日志缓冲 所有拒绝和丢弃arp数据包的行为都会被记录日志的缓冲大小为32系统信息数被限制为5秒钟一次
每个vlan的日志 所有的拒绝和丢弃的行为都被记录
配置DHCP环境的DAI
1) 配置相应的DHCP监听和IP源保护
2) 进入全局模式 configure terminal
3) 在指定的vlan上启用动态ARP检测
ip arp inspection vlan vlan范围
4) 进入接口模式 interface 接口
5) 指定信任端口
ip arp inspection trust
6) 验证结果
show ip arp inspection
show ip arp inspection database
show ip arp inspection vlan vlan号
show ip arp inspection statistes vlan vlan号
案例:
swA#config terminal
swA(config)#ip dhcp snooping
swA(config)#ip dhcp snooping vlan 10
swA(config)#ip arp inspection vlan 10
swA(config)#interface f0/1
swA(config-if)#ip dhcp snooping trust
swA(config-if)#switch access vlan 10
swA(config-if)#interface f0/2
swA(config-if)#switch access vlan 10
swA(config)#interface f0/23
swA(config-if)#ip arp inspection trust
--------------------------------------------------
swB#config terminal
swB(config)#ip dhcp snooping
swB(config)#ip dhcp snooping vlan 10
swB(config)#ip arp inspection vlan 10
swB(config-if)#interface f0/3
swB(config-if)#switch access vlan 10
swB(config)#interface f0/23
swB(config-if)#ip arp inspection trust
swB(config-if)#ip dhcp snooping trust
-----------------------------------------------------------
与交换机A fa0/1相连的路由器扮演dhcp服务器的角色
dhcpserver#conf ter
dhcpserver(config)#ip dhcp excluded-address 192.168.1.1
dhcpserver(config)#ip dhcp pool cisco
dhcpserver(dhcp-config)#network 192.168.1.0 255.255.255.0
dhcpserver(dhcp-config)#default-route 192.168.1.1
-------------------------------------------------------------
与交换机A fa0/2相连的路由器扮演主机1的角色
host1(config)#no ip routing
host1(config)#int e0
host1(config-if)#ip address dhcp
-------------------------------------------------------------
与交换机B fa0/3相连的路由器扮演主机2的角色
host2(config)#no ip routing
host2(config)#int f0/0
host2(config-if)#ip address dhcp
------------------------------------------------------------
SWA#show ip dhcp snoo bind
MacAddress IpAddress Lease(sec) Type VLAN Interface
------------- -------------- ---------- ---------- ---- ----------------
00:E0:1E:60:7C:86 192.168.1.2 83702 dhcp-snooping 10 FastEthernet0/2
Total number of bindings: 1
-------------------------------------------------------------------------
SWA#show ip arp inspection
Source Mac Validation : Disabled
Destination Mac Validation : Disabled
IP Address Validation : Disabled
Vlan Configuration Operation ACL Match Static ACL
---- ------------- --------- --------- ----------
10 Enabled Active
Vlan ACL Logging DHCP Logging
---- ----------- ------------
10 Deny Deny
Vlan Forwarded Dropped DHCP Drops ACL Drops
---- --------- ------- ---------- ---------
10 0 0 0 0
Vlan DHCP Permits ACL Permits Source MAC Failures
---- ------------ ----------- -------------------
10 0 0 0
Vlan Dest MAC Failures IP Validation Failures Invalid Protocol Data
---- ----------------- ---------------------- ---------------------
Vlan Dest MAC Failures IP Validation Failures Invalid Protocol Data
---- ----------------- ---------------------- ---------------------
10 0 0 0
------------------------------------------------------------------------
SWA#show ip arp inspection statistics vlan 10
Vlan Forwarded Dropped DHCP Drops ACL Drops
---- --------- ------- ---------- ---------
10 0 0 0 0
Vlan DHCP Permits ACL Permits Source MAC Failures
---- ------------ ----------- -------------------
10 0 0 0
Vlan Dest MAC Failures IP Validation Failures Invalid Protocol Data
---- ----------------- ---------------------- ---------------------
10 0 0 0
-------------------------------------------------------------------------
SWA#show ip arp inspection inter
Interface Trust State Rate (pps) Burst Interval
--------------- ----------- ---------- --------------
Fa0/1 Untrusted 15 1
Fa0/2 Untrusted 15 1
Fa0/3 Untrusted 15 1
Fa0/4 Untrusted 15 1
Fa0/5 Untrusted 15 1
Fa0/6 Untrusted 15 1
Fa0/7 Untrusted 15 1
Fa0/8 Untrusted 15 1
Fa0/9 Untrusted 15 1
Fa0/10 Untrusted 15 1
Fa0/11 Untrusted 15 1
Fa0/12 Untrusted 15 1
Fa0/13 Untrusted 15 1
Fa0/14 Untrusted 15 1
Fa0/15 Untrusted 15 1
Fa0/16 Untrusted 15 1
Fa0/17 Untrusted 15 1
Fa0/18 Untrusted 15 1
Fa0/19 Untrusted 15 1
Fa0/20 Untrusted 15 1
Fa0/21 Untrusted 15 1
Fa0/22 Untrusted 15 1
Fa0/23 Trusted None N/A
Fa0/24 Untrusted 15 1
Gi0/1 Untrusted 15 1
Gi0/2 Untrusted 15 1
Po13 Untrusted 15 1
Po14 Untrusted 15 1
--------------------------------------------------------------
SWB#show ip arp inspection vlan 10
Source Mac Validation : Disabled
Destination Mac Validation : Disabled
IP Address Validation : Disabled
Vlan Configuration Operation ACL Match Static ACL
---- ------------- --------- --------- ----------
10 Enabled Active
Vlan ACL Logging DHCP Logging
---- ----------- ------------
10 Deny Deny
-------------------------------------------------------------------
SWA#show ip arp inspection statistics
Vlan Forwarded Dropped DHCP Drops ACL Drops
---- --------- ------- ---------- ---------
10 13 45 45 0
Vlan DHCP Permits ACL Permits Source MAC Failures
---- ------------ ----------- -------------------
10 1 0 0
Vlan Dest MAC Failures IP Validation Failures Invalid Protocol Data
---- ----------------- ---------------------- ---------------------
10 0 0 0
-----------------------------------------------------------------------
检测攻击
我们将主机2模拟为攻击者,将主机2的IP地址配置为主机1的IP地址
Rack11SW2#ping 192.168.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:
14:36:50: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Fa0/3, vlan 10.([0013.1a7f.8c21/192.168.1.2/0000.0000.0000/11.11.36.6/14:36:49 UTC Mon Mar 1 1993]).
14:36:51: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Res) on Fa0/3, vlan 10.([0013.1a7f.8c21/192.168.1.2/000d.bde6.a880/192.168.1.200/14:36:50 UTC Mon Mar 1 1993]).
14:36:55: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Res) on Fa0/3, vlan 10.([0013.1a7f.8c21/192.168.1.2/000d.bde6.a880/192.168.1.200/14:36:54 UTC Mon Mar 1 1993]).
Success rate is 0 percent (0/5)
----------------------------------------------------------------------------
SWB#show arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 192.168.1.2 0 Incomplete ARPA
配置非DHCP环境的动态ARP检测
1) 进入全局模式 configure terminal
2) 定义arp的访问控制列表
arp access-list 访控名称
3) 定义允许列表内容
permit ip host 发送者IP地址 mac host 发送者MAC地址
4) 将arp访控应用到指定的vlan
ip arp inspection filter arp访控名称 vlan vlan范围 [static]
static:使用这个参数,访控将使用隐含的deny语句来拒绝arp数据包
5) 验证结果
show arp access-list
案例:
如图,把交换机A上相连的dhcp服务器去除,交换机B也配置了动态ARP检测。如果我们把交换机A的端口1配置为信任端口,因为信任端口是不会对arp数据包做任何的检测,这样交换机B或者主机2对交换机A和主机1会造成arp的攻击。这样交换机A的端口1配置为非信任端口,但为了主机2和主机1之间通信,必须在交换机A上应用一个arp访问控制列表允许主机2访问。如果主机2的IP地址不是静态的,必须将交换机A和交换机B在第3层上分隔开,两者之间添加路由器来路由两者之间的数据包。
SwA#config terminal
SWA(config)#arp access-list cisco
SWA(config-arp-nacl)#permit ip host 192.168.1.3 mac host 0013.1a7f.8c21
SWA(config-arp-nacl)#exit
SWA(config)#int f0/23
SWA(config-if)#no ip arp inspection trust
SWA(config-if)#end
SWA(config)#ip arp inspection filter cisco vlan 10
--------------------------------------------------------------------------
SWA#show arp access-list
ARP access list cisco
permit ip host 192.168.1.3 mac host 0013.1a7f.8c21
-------------------------------------------------------------------------
SWA#show ip arp inspection
Source Mac Validation : Disabled
Destination Mac Validation : Disabled
IP Address Validation : Disabled
Vlan Configuration Operation ACL Match Static ACL
---- ------------- --------- --------- ----------
10 Enabled Active cisco No
Vlan ACL Logging DHCP Logging
---- ----------- ------------
10 Deny Deny
Vlan Forwarded Dropped DHCP Drops ACL Drops
---- --------- ------- ---------- ---------
10 21 45 45 0
Vlan DHCP Permits ACL Permits Source MAC Failures
---- ------------ ----------- -------------------
10 9 0 0
Vlan Dest MAC Failures IP Validation Failures Invalid Protocol Data
---- ----------------- ---------------------- ---------------------
Vlan Dest MAC Failures IP Validation Failures Invalid Protocol Data
---- ----------------- ---------------------- ---------------------
10 0 0 0
配置ARP数据包的流量限制
当进入的ARP数据包超过了配置的流量限定,交换机会将这个端口进入到err-disable状态。这个端口一直保持这种状态到err-disable恢复时间到期
1) 进入全局模式 configure terminal
2) 进入接口模式 interface 接口
3) 配置ARP数据包的流量限制
ip arp inspection limit rate 每秒包数 [burst interval 秒数]
PPS:每秒多少数据包,取值为0-2048,非信任端口上默认为每秒15数据包,信任端口上没有流量限制
Burst interval:突发时间间隔,取值为1-15
4) 配置使能端口err-disable状态的恢复
errdisable recovery cause arp-inspection interval 秒数
默认情况下,err-disable恢复是关闭的,恢复时间为300秒,取值为30-86400
5) 验证结果
show ip arp inspection interface
SWA# show ip arp inspection interface f0/23
Interface Trust State Rate (pps) Burst Interval
--------------- ----------- ---------- --------------
Fa0/23 Untrusted 200 5
合法性的检查
网络管理员能够根据IP对应MAC地址的绑定的合法性来拦截、记录和丢弃具有无效MAC地址/IP地址绑定的ARP数据包。交换机能够配置以目标的MAC地址、IP地址和源MAC地址来作为核实的依据。
1) 进入全局模式 configure terminal
2) 配置合法性的检查依据
ip arp inspection validate [src-mac|dst-mac|ip]
3) 验证结果
SWA#show ip arp inspection statistics vlan 10
Vlan Forwarded Dropped DHCP Drops ACL Drops
---- --------- ------- ---------- ---------
10 0 0 0 0
Vlan DHCP Permits ACL Permits Source MAC Failures
---- ------------ ----------- -------------------
10 0 0 0
Vlan Dest MAC Failures IP Validation Failures Invalid Protocol Data
---- ----------------- ---------------------- ---------------------
10 0 0 0
配置日志的缓冲
1) 进入全局模式 configure terminal
2) 配置日志缓冲
ip arp inspection log-buffer entrie 条数 | logs 数目 interval 秒数
entrie 数目:指定日志缓冲的条目个数,取值为0-1024
logs 数目 interval 秒数:在指定的时间间隔内,产生系统信息的条目数目
3) 指定记录日志的类型,默认情况下,所有拒绝和丢弃的行为都会被记录。
ip arp inspection vlan vlan值 logging acl-match [matchlog] | dhcp-bindings [all|none|permit]
acl-match:记录符合arp 访控列表条目permit或deny的内容
dhcp-bindings:记录匹配dhcp绑定表的内容
4) 验证结果
show ip arp inspection log
案例:
SWA(config)#ip arp inspection log-buffer entrie 15
SWA(config)#ip arp inspection log-buffer logs 100 interval 60000
SWA#show ip arp inspection log
Total Log Buffer Size : 15
Syslog rate : 100 entries per 60000 seconds.
Interface Vlan Sender MAC Sender IP Num Pkts Reason Time
---------- ---- -------------- ---------- ------- ----------- ----
Fa0/3 10 0013.1a7f.8c21 192.168.1.3 1 DHCP Deny 15:59:31 UTC Mon Mar 1 1993
本文出自 “无聊生活,积极面对” 博客,转载请与作者联系!