本文分析有关杜绝交换机的攻击的技术细节,相信确保交换机这三个方面的安全设置,并配合相应的规章、制度,就一定能够保证企业交换机安全运行。
与路由器不同,交换机的安全威胁主要来自局域网内部。出于无知、好奇,甚至是恶意,某些局域网用户会对交换机进行攻击。不管他们的动机是什么,这都是管理员们不愿看到的。为此,除了在规定、制度上进行规范外,管理员们要从技术上做好部署,让攻击者无功而返。本文以Cisco交换机的安全部署为例,和大家分享自己的经验。
1、细节设置,确保交换机接入安全
(1).配置加密密码
尽可能使用Enable Secret特权加密密码,而不使用Enable Password创建的密码。
(2).禁用不必要或不安全的服务
在交换机上尤其是三层交换机上,不同的厂商默认开启了不同的服务、特性以及协议。为提高安全,应只开启必须的部分,多余的任何东西都可能成为安全漏洞。可结合实际需求,打开某些必要的服务或是关闭一些不必要的服务。下面这些服务通常我们可以直接将其禁用。
禁用Http Server
no ip http server
禁用IP源路由,防止路由欺骗
no ip source route
禁用Finger服务
no service finger
禁用Config服务
no service config
禁用Hootp服务
no iP hootp server
禁用小的UDP服务
no service udp-small-s
禁用小的TCP服务
no service tcp-small-s
(3).控制台和虚拟终端的安全部署
在控制台上使用与虚拟终端(Vty)线路上配置认证,另外,还需要对Vty线路使用简单的访问控制列表。
Switch(config)#access-list 1 permit 192.168.1.1
Switch(config)#line vty 0 4
Switch(config-line)#access-class 1 in
(4).用SSH代替Telnet
Telnet是管理员们连接至交换机的主要通道,但是在Telnet会话中输入的每个字节都将会被明文发送,这可以被类似Sniffer这样的软件嗅探获取用户名、密码等敏感信息。因此,使用安全性能更高的SSH强加密无疑比使用Telnet更加安全。
Switch(config)#hostname test-ssh
test-ssh(config)#ip domain-name net.ctocio.com
test-ssh(config)#username test password 0 test
test-ssh(config)#line vty 0 4
test-ssh(config-line)#login local
test-ssh(config)#crypto key generate rsaThe name for the keys will be:test-ssh.net.ctocio.com
test-ssh(config)#ip ssh time-out 180
test-ssh(config)#ip ssh authentication-retries 5
简单说明,通过上述配置将交换机命名为test-ssh,域名为net.ctocio.com,创建了一个命名test密码为test的用户,设置ssh的关键字名为test-ssh.net.ctocio.com,ssh超时为180秒,最大连接次数为5次。
(5).禁用所有未用的端口
关于这一点,笔者见过一个案例:某单位有某员工“不小心” 将交换机两个端口用网线直接连接,(典型的用户无知行为),于是整个交换机的配置数据被清除了。在此,笔者强烈建议广大同仁一定要将未使用的端口ShutDown掉。并且,此方法也能在一定程度上防范恶意用户连接此端口并协商中继模式。
(6).确保STP的安全
保护生成树协议,主要是防范其他分公司在新加入一台交换机时,因各单位网络管理员不一定清楚完整的网络拓扑,配置错误使得新交换机成为根网桥,带来意外的BPDU。因此,需要核心管理员启用根防护与BPDU防护。
默认情况下交换机端口禁用根防护,要启用它需要使用以下命令:
Switch(config)#spanning-tree guard root
默认情况下,交换机端口也禁用BPDU防护。启用它需使用下列命令:
Switch(config)#Spanning-tree Portfast bpduguard default
如果要在所有端口上启用BPDU防护,可使用下面的命令:
Switch(config)#Spanning-tree Portfast bpduguard enable
2、ACL配置,确保交换机VLAN安全
大家知道,ACL是一张规则表,交换机按照顺序执行这些规则,并且处理每一个进入端口的数据包。每条规则根据数据包的属性(如源地址、目的地址和协议)要么“允许”, 要么“拒绝” 数据包通过。访问列表能够对通过交换机的数据流进行控制。ACL通过对网络资源进行访问输入和输出控制,确保网络设备不被非法访问或被用作攻击跳板。
配置VLAN Access Map
Switch(config)#vlan access-map test1
//定义一个vlan accessmap,取名为test1
Switch(config-vlan-access)#match ip address 101
//设置匹配规则为acl 101
Switch(config-vlan-access)#action forward
//匹配后,设置数据流转发(forward)
Switch(config)#vlan access-map test2
//定义一个vlan accessmap,取名为test2
Switch(config-vlan-access)#match ip address 102
//设置匹配规则为acl 102
Switch(config-vlan-access)#action forward
//匹配后,设置数据流转发(forward)
应用VACL
Switch(config)#vlan filter test1 vlan-list 10
//将上面配置的test1应用到vlanl0中
Switch(config)#vlan filter test2 vlan-list 20
//将上面配置的test2应用到vlan20中
配置私有VLAN
定义辅助VLAN10、20、30
Switch(config)#vlan 10
Switch(config-vlan)#private vlan community
定义主VLANIO0并与所有辅助VLAN建立关系
Switch(config)#vlan 100
Switch(config-vlan)#private vlan community
Switch(config-vlan)#private vlan association 10,20,30
定义端口在私有VLAN 中的模式为主机(Host)或混合(Promiscuous),并配置关联或映射
Switch(config-if)#switchport mode private host
Switch(config-if)#switchport mode private host-association 100 30
3、深入配置,确保交换机免受恶意攻击
(1).防动态中继协议DTP攻击
交换机通过交换DTP协议,动态协商中继链路的用法和封装模式。然而,如果交换机中继端口模式为Auto,它将等待处于模式Auto或On的另一台交换机的请求建立连接。这时,如果恶意用户利用DTP尝试同交换机端口协商建立中继链路,攻击者将可以捕获任何通过该VLAN的数据流。
防范方法是:将任何连接到用户的端口配置为Access模式,从而使它不能以Auto模式使用DTP。需要使用的命令为:
Switch(config-if)#switchport mode access
(2).防范VLAN跨越式攻击
在这种攻击方法中,攻击者位于普通VLAN,发送被双重标记的帧,就像使用的是802.1q中继链路。当然,攻击者连接的并非中继线路,他通过伪造中继封装,欺骗交换机将帧转发到另一个VLAN中,实现VLAN跨越式攻击,从而在数据链路层就可非法访问另一VLAN。
防范方法是:首先,修改本征VLAN ID并在中继链路两端将本征VLAN修剪掉命令为:
Switch(config-if)#switchport trunk native vlan 200
Switch(config-if)#switchport trunk allowed vlan remove 200
然后,强制所有的中继链路给本征VLAN加标记,命令为:
Switch(config)#vlan dotlq tagnative
(3).防范DHCP欺骗攻击
DHCP欺骗的原理可以简述为,攻击者在某计算机上运行伪造的DHCP服务器,当客户广播DHCP请求时,伪造服务器将发送自己的DHCP应答,将其IP地址作为默认网关客户收到该应答后,前往子网外的数据分组首先经过伪网关。如果攻击者够聪明,他将转发该数据分组到正确的地址,但同时他也捕获到了这些分组。尽管客户信息泄露了,但他却对此毫无所知。
防范方法是:在交换机上启用DHCP探测。首先,在交换机的全局模式下启用DHCP探测,其命令为:
Switch(config)#ip dhcp snooping
接下来,指定要探测的VLAN,命令为:
Switch(config)#ip dhcp snooping vlan 2
然后,将DHCP服务器所在端口设置为信任端口,命令为:
Switch(config-if)#ip dhcp snooping trust
最后,限制其他不可信端口的DHCP分组速率,命令为:
Switch(config-if)#ip dhcp snooping limit rate rate
(4).防范ARP欺骗攻击
ARP地址欺骗类病毒是一类特殊的病毒,该病毒一般属于木马病毒,不具备主动传播的特性,不会自我复制。但是由于其发作的时候会向全网发送伪造的ARP数据包,干扰全网的运行,因此它的危害比一些蠕虫还要严重得多。其实, 我们只需要在交换机上绑定MAc地址,就能让ARP病毒无用武之地。
首先,在交换机上启用端口安全,命令为:
Switch(config-if)#switchport port-security
然后,指定允许的MAC地址,以便允许合法的MAC地址访问,命令为:
Switch(config-if)#switchport port-security mac-address 000A.E698.84B7
当然,上述操作是静态指定地址,比较麻烦。我们也可以动画获悉MAC,然后在端口上限制最大允许学习的MAC数目,命令为:
Switch(config-if)#switchport port-security 24
然后定义如果MAC地址违规则采取怎样的措施,命令为:
Switch(config-if)#switchport port-security vislation shutdown
其中shutdown是关闭,restrrict是丢弃并记录、警报,protect是丢弃但不记录。
以上就是有关杜绝交换机的攻击的技术细节。相信确保交换机这三个方面的安全设置,并配合相应的规章、制度,就一定能够保证交换机的安全。