浅谈二层网络安全

网络安全,是每一位网络工程师以及IT从业者都必须要面对的问题。我们每天实际上都面临着许多被网络攻击的风险,那么怎样做好防护是我们每时每刻都要关注的问题,而且必须要实时更新我们的技术手段,以应对各种非这样的网络攻击。
今天我们就来聊聊,在我们最常见的内网里会出现那些攻击。那么在内网中,可能不会涉及到很多的三层以上的攻击。因为3层以上的攻击,我们都会在边界地带进行处理,利用的手段有很多,如VPN、下一代防火墙NGFW以及一些基于云端的代理过滤等。
那么我们就先看一下,对于二层的网络也就是对于接入层交换机会可能出现那些攻击。请看下图:
浅谈二层网络安全

我们再看一下Cisco给出的几种解决方案。

浅谈二层网络安全

下面我们就来具体看一下这些预防手段:

端口安全:
关于二层交换机的端口安全,我们可以通过下面两种方式来预防端口风险:
1.保护未使用端口的安全
我们可以将未连接终端的端口设置成关闭状态,来防止一些未经授权的终端设备接入,这种方法简单有效。
在接口模式下:
S1(config)# interface type module/number
S1(config-if)# shutdown

2.启动端口安全
端口安全限制端口上所允许的有效 MAC 地址的数量,这样就可以有效地防止MAC地址表溢出的攻击。
在接口模式下:
S1(config)# interface f0/1
S1(config-if)# switchport mode access
S1(config-if)# switchport port-security
S1(config-if)# end
注意:端口一定要设置access模式才可以启用端口安全,而且如果用命令 switchport port-security 配置了一个活动(active)端口,同时有多台设备连接到了这个端口,那么这个端口就会进入error-disabled状态。
启用端口安全后,可以如示例所示配置其他端口安全具体信息。
Switch(config-if)#switchport port-security ?
aging Port-security aging commands
mac-address Secure mac address
maximum Max secure addresses
violation Security violation mode

以上这些都是可以在接口下配置的端口安全选项,可以根据网络的实际情况,选择使用。

VLAN跳跃攻击

我们可以通过下面的步骤来缓解VLAN跳跃攻击,使用下列步骤来缓解VLAN跳跃攻击:
步骤1:使用 switchport mode access 接口配置命令禁用非中继端口上的 DTP(自动中继)协商。
步骤2:禁用未使用的端口并将其放在未使用的 VLAN 中。
步骤3:使用 switchport mode trunk 命令手动启用中继端口上的中继链路。
步骤4:使用 switchport nonegotiate 命令禁用中继端口上的 DTP(自动中继)协商。
步骤5:使用switchport trunk native vlan vlan_number 命令把本征VLAN设置为VLAN 1之外的其他VLAN。

举例:
端口FastEthernet 0/1 到 fa0/16 都是活动的接入端口。
端口FastEthernet 0/17到 0/20 当前未使用。
端口FastEthernet 0/21 到 0/24 为中继端口。
管理员可以使用下列配置来缓解VLAN跳跃攻击:
S1(config)# interface range fa0/1 - 16
S1(config-if-range)# switchport mode access
S1(config-if-range)# exit
S1(config)#
S1(config)# interface range fa0/17 - 20
S1(config-if-range)# switchport mode access
S1(config-if-range)# switchport access vlan 1000
S1(config-if-range)# shutdown
S1(config-if-range)# exit
S1(config)#
S1(config)# interface range fa0/21 - 24
S1(config-if-range)# switchport mode trunk
S1(config-if-range)# switchport nonegotiate
S1(config-if-range)# switchport trunk native vlan 999
S1(config-if-range)# end
解释:
FastEthernet 0/1 至 0/16 端口是接入端口,因此明确将其变为接入端口会禁用中继。
FastEthernet 0/17 至 0/20 端口是未使用的端口,已禁用这些端口并将其分配给未使用的 VLAN。
FastEthernet 0/21 至 0/24 端口是中继链路,已经作为禁用 DTP 的手动启用中继。本征 VLAN 也从默认的 VLAN 1 更改为未使用的 VLAN 999。

DHCP攻击预防

可开启DHCP SNOOPING功能,来指定连接合法的DHCP服务器端口为trust。
可以使用以下步骤来启用 DHCP 监听:
步骤 1. 通过 ip dhcp snooping 全局配置命令启用 DHCP 监听。
步骤 2 . 在可信的端口上使用接口配置命令 ip dhcp snooping trust 。
步骤 3. 不可信端口可以使用接口配置命令ip dhcp snooping limit rate 速率限制它们每秒可以接收的 DHCP Discovery 消息数。
步骤 4 . 通过全局配置命令 ip dhcp snoopingvlan 来针对某个VLAN、或者某个VLAN范围 启用 DHCP 监听。

更具体的配置,可以参考我之前的文章。DHCP安全–DHCP Snooping技术应用。

ARP攻击预防

动态ARP检测(DAI)需要使用DHCP监听,可以防止ARP攻击。
要缓解ARP欺骗和ARP毒化,可以执行下列DAI实施的指导方针:
+全局启用 DHCP 监听。
+在选定的 VLAN 上启用 DHCP 监听。
+在选定的 VLAN 上启用 DAI。
+为 DHCP 监听和 ARP 检测配置可信端口。

DHCP监听已经启用,因为DAI需要使用DHCP监听绑定表才能正常工作。接下来,为 VLAN 10 上的 PC 启用 DHCP 监听和 ARP 检测。连接到路由器的上行链路端口受信任,因此也在 DHCP 监听和 ARP 检测中配置为受信任的端口。
S1(config)# ip dhcp snooping
S1(config)# ip dhcp snooping vlan 10
S1(config)# ip arp inspection vlan 10
S1(config)# interface fa0/24
S1(config-if)# ip dhcp snooping trust
S1(config-if)# ip arp inspection trust

预防STP攻击
我们可以利用Portfast和BPDU的防护特性,来预防STP攻击。
+PortFast - 可让配置为接入端口或中继端口的接口直接从阻止状态变为转发状态,绕过侦听和学习状态。适用于所有最终用户端口。PortFast只应该配置在那些连接终端设备的端口上。
+BPDU 防护(BPDU Guard) - BPDU 防护会立即让接收到 BPDU 的端口进入errordisable状态。BPDU防护也应该只配置在那些连接终端设备的端口上,这一点和PortFast特性相同。

可以使用接口配置命令spanning-tree portfast在接口上启用PortFast。另外,也可以通过全局配置命令 spanning-tree portfast default 以全局方式在所有接入端口上配置 Portfast。
S1(config)# interface fa0/1
S1(config-if)# switchport mode access
S1(config-if)# spanning-tree portfast

如果在启用 BPDU 防护的端口上收到BPDU,则该端口将进入错误禁用状态。这表示这个端口已经关闭,必须手动重新启用,或者通过全局命令errdisable recovery cause psecure_violation让它自动恢复。

S1(config)# interface fa0/1
S1(config-if)# spanning-tree bpduguard enable
S1(config-if)# exit
S1(config)# spanning-tree portfast bpduguard default
S1(config)# end

以上就是几种预防二层攻击所使用的方法,大家可以把他们应用在网络中的接入层交换机中。尤其是中大型网络,接入的设备会很多,如果管理不规范,会有很多的攻击从二层发起。所以如果你所管理的交换机有这些防范功能,那么现在就去开启它们吧。

上一篇:EVPN外部路由


下一篇:RDS、DDS和GaussDB理不清?看这一篇足够了!