根据木桶理论,一个桶能装多少水,取决于这个桶最短的那块木板。具体到信息系统的安全也是一样,整个信息系统的安全程度也取决于信息系统中最薄弱的环节,网络做为信息系统的体,其安全需求的重要性是显而易见的。
网络层面的安全主要有两个方面,一是数据层面的安全,使用ACL等技术手段,辅助应用系统增强系统的整体安全;二是控制层面的安全,通过限制对网络设备自身的访问,增强网络设备自身的安全性。数据层面的安全在拙著《网络层权限访问控制――ACL详解》(http://www.yesky.com/bang/77687093572141056/20030708/1712713.shtml)已经较为系统的讨论。本文主要集中讨论控制层面即设备自身的安全这部分,仍以最大市场占有率的思科设备为例进行讨论。
一、 控制层面主要安全威协与应对原则
网络设备的控制层面的实质还是运行的一个操作系统,既然是一个操作系统,那么,其它操作系统可能遇到的安全威胁网络设备都有可能遇到;总结起来有如下几个方面:
1、 系统自身的缺陷:操作系统作为一个复杂系统,不论在发布之前多么仔细的进行测试,总会有缺陷产生的。出现缺陷后的唯一办法就是尽快给系统要上补丁。Cisco IOS/Catos与其它通用操作系统的区别在于,IOS/Catos需要将整个系统更换为打过补丁的系统,可以查询http://www.cisco.com/en/US/customer/products/prod_security_advisories_list.html 取得cisco最新的安全公告信息与补丁信息。
2、 系统缺省服务:与大多数能用操作系统一样,IOS与CatOS缺省情况下也开了一大堆服务,这些服务可能会引起潜在的安全风险,解决的办法是按最小特权原则,关闭这些不需要的服务。
3、 弱密码与明文密码:在IOS中,特权密码的加密方式强加密有弱加密两种,而普通存取密码在缺省情况下则是明文;
4、 非授权用户可以管理设备:既可以通过telnetsnmp通过网络对设备进行带内管理,还可以通过console与aux口对设备进行带外管理。缺省情况下带外管理是没有密码限制的。隐含较大的安全风险;
5、 CDP协议造成设备信息的泄漏;
6、 DDOS攻击导致设备不能正常运行,解决方案,使用控制面策略,限制到控制层面的流量;
7、 发生安全风险之后,缺省审计功能。
二、 Cisco IOS加固
对于12.3(4)T之后的IOS版本,可以通过autosecure命令完成下述大多数功能,考虑到大部分用户还没有条件升级到该IOS版本,这里仍然列出需要使用到的命令行:
1、禁用不需要的服务:
no ip http server //禁用http server,这玩意儿的安全漏洞很多的
no ip source-route //禁用IP源路由,防止路由欺骗
no service finger //禁用finger服务
no ip bootp server //禁用bootp服务
no service udp-small-s //小的udp服务
no service tcp-small-s //禁用小的tcp服务
2、关闭CDP
no cdp run //禁用cdp
3、配置强加密与启用密码加密:
service password-encryption //启用加密服务,将对password密码进行加密
enable secret asdfajkls //配置强加密的特权密码
no enable password //禁用弱加密的特权密码
4、配置log server、时间服务及与用于带内管理的ACL等,便于进行安全审计
service timestamp log datetime localtime //配置时间戳为datetime方式,使用本地时间
logging 192.168.0.1 //向192.168.0.1发送log
logging 192.168.0.2 //向192.168.0.2发送log
access-list 98的主机进行通讯
no access-list 99 //在配置一个新的acl前先清空该ACL
access-list 99 permit 192.168.0.0 0.0.0.255
access-list 99 deny any log //log参数说明在有符合该条件的条目时产生一条logo信息
no access-list 98 //在配置一个新的acl前先清空该ACL
access-list 98 permit host 192.168.0.1
access-list 98 deny any log //log参数说明在有符合该条件的条目时产生一条logo信息
!
clock timezone PST-8 //设置时区
ntp authenticate //启用NTP认证
ntp authentication-key 1 md5 uadsf //设置NTP认证用的密码,使用MD5加密。需要和ntp server一致
ntp trusted-key 1 //可以信任的Key.
ntp acess-group peer 98 //设置ntp服务,只允许对端为符合access-list 98条件的主机
ntp server 192.168.0.1 key 1 //配置ntp server,server为192.168.0.1,使用1号key做为密码
5、对带内管理行为进行限制:
snmp-server community HSDxdf ro 98//配置snmp只读通讯字,并只允许access-list 98的主机进行通讯
line vty 0 4
access-class 99 in //使用acl 99来控制telnet的源地址
login
password 0 asdfaksdlf //配置telnet密码
exec-timeout 2 0 //配置虚终端超时参数,这里是2分钟
!
6、对带外管理行为进行限制:
line con 0
login
password 0 adsfoii //配置console口的密码
exec-timeout 2 0 //配置console口超时参数,这里是两分钟
!
line aux 0
transport input none
password 0 asfdkalsfj
no exec
exit
7、应用control-plane police,预防DDOS攻击(注:需要12.2(1S或12.3(4)T以上版本才支持)
允许信任主机(包括其它网络设备、管理工作站等)来的流量:
access-list 110 deny ip host 1.1.1.1 any
access-list 110 deny ip 2.2.2.0 255.255.255.0 any
.....
access-list 110 deny ip 3.3.3.3 any
限制所有其它流量
access-list 110 permit ip any any
!
class-map control-plane-limit
match access-group 110
!
policy-map control-plane-policy
class control-plane-limit
police 32000 conform transmit exceed drop
!
control-plane
service-policy input control-plane-policy
三、 Cisco CatOS加固
1、 禁用不需要的服务:
set cdp disable //禁用cdp
set ip http disable //禁用http server,这玩意儿的安全漏洞很多的
2、 配置时间及日志参数,便于进行安全审计:
set logging timestamp enable //启用log时间戳
set logging server 192.168.0.1 //向192.168.0.1发送log
set logging server 192.168.0.2 //向192.168.0.2发送log!
set timezone PST-8 //设置时区
set ntp authenticate enable //启用NTP认证
set ntp key 1 md5 uadsf //设置NTP认证用的密码,使用MD5加密。需要和ntp server一致
set ntp server 192.168.0.1 key 1 //配置ntp server,server为192.168.0.1,使用1号key做为密码
set ntp client enable //启用ntp client
3、 限制带内管理:
set snmp community HSDxdf //配置snmp只读通讯字
set ip permit enable snmp //启用snmp访问控制
set ip permit 192.168.0.1 snmp //允许192.168.0.1进行snmp访问
set ip permit enable telnet //启用telnet访问控制
set ip permit 192.168.0.1 telnet //允许192.168.0.1进行telnet访问
set password //配置telnet密码
set enable //配置特权密码
set logout 2 //配置超时参数,2分钟