导读:
  
  Cisco路由器及交换机安全加固
  关键词:Cisco、IOS、信息安全
  根据木桶理论,一个桶能装多少水,取决于这个桶最短的那块木板。具体到信息系统的安全也是一样,整个信息系统的安全程度也取决于信息系统中最薄弱的环节,网络做为信息系统的体,其安全需求的重要性是显而易见的。
  网络层面的安全主要有两个方面,一是数据层面的安全,使用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、 非授权用户可以管理设备:既可以通过telnet\snmp通过网络对设备进行带内管理,还可以通过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(18)S或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分钟