与路由器不同,交换机的安全威胁主要来自局域网内部。出于无知、好奇,甚至是恶意,某些局域网用户会对交换机进行攻击。不管他们的动机是什么,这都是管理员们不愿看到的。为此,除了在规定、制度上进行规范外,管理员们要从技术上做好部署,让攻击者无功而返。本文以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是丢弃但不记录。 以上就是有关杜绝交换机的攻击的技术细节。相信确保交换机这三个方面的安全设置,并配合相应的规章、制度,就一定能够保证交换机的安全。 |