基本的CISCO路由器安全配置
来源:ChinaITLab 更新时间:2012-04-13
路由器是网络中的神经中枢,广域网就是靠一个个路由器连接起来组成的,局域网中也已经普片的应用到了路由器,在很多企事业单位,已经用到路由器来接入网络进行数据通讯了,可以说,曾经神秘的路由器,现在已经飞入寻常百姓家了.
  随着路由器的增多,路由器的安全性也逐渐成为大家探讨的一个热门话题了,岩冰今天也讲一讲网络安全中路由器的安全配置吧.以下文章是本人在工作过程中所记录的学习笔记,今天整理出来,跟大家共享,也算是抛砖引玉吧.
  
  1.配置访问控制列表:
  
  使用访问控制列表的目的就是为了保护路由器的安全和优化网络的流量.访问列表的作用就是在数据包经过路由器某一个端口时,该数据包是否允许转发通过,必须先在访问控制列表里边查找,如果允许,则通过.所以,保护路由器的前提,还是先考虑配置访问控制列表吧.
  
  访问列表有多种形式,最常用的有标准访问列表和扩展访问列表.
  
  创建一个标准访问控制列表的基本配置语法:access-list access-list-number{deny|permit} source [source-wildcard]
  
  注释:access-list-number是定义访问列表编号的一个值,范围从1--99.参数deny或permit指定了允许还是拒绝数据包.参数source是发送数据包的主机地址.source-wildcard则是发送数据包的主机的通配符.在实际应用中,如果数据包的源地址在访问列表中未能找到,或者是找到了未被允许转发,则该包将会被拒绝.为了能详细解释一下,下面是一个简单访问列表示例介绍:
  
  1) access-list 3 permit 172.30.1.0 0.0.0.255 */指明一个列表号为3的访问控制列表,并允许172.30.1.0这个网段的数据通过.0.0.0.255是通配符.
  2) access-list 3 permit 10.1.1.0 0.0.15.255 */允许所有源地址为从10.1.0.0到10.1.15.255的数据包通过应用了该访问列表的路由器接口.
  3) access-list 3 deny 172.31.1.0 0.0.0.255 */拒绝源IP地址为172.31.1.0到172.31.1.255的数据包通过该访问列表.
  
  配置了访问列表后,就要启用访问控制列表,我们可以在接口配置模式下使用access-group或ip access-class命令来指定访问列表应用于某个接口.使用关键字in(out)来定义该接口是出站数据包还是入站数据包.
  示例:ip access-group 3 in */定义该端口入站数据包必须按照访问列表3上的原则.
  
  由于标准访问控制列表对使用的端口不进行区别,所以,引入了扩展访问控制列表(列表号从100--199).扩展访问列表能够对数据包的源地址,目的地址和端口等项目进行检查,这其中,任何一个项目都可以导致某个数据包不被允许经过路由器接口.简单的配置示例:
  
  1) ip access-list 101 permit tcp any host 10.1.1.2 established log
  2) ip access-list 101 permit tcp any host 172.30.1.3 eq www log
  3) ip access-list 101 permit tcp any host 172.30.1.4 eq ftp log
  4) ip access-list 101 permit tcp any host 172.30.1.4 log
  
  注释:
  
  第一行允许通过TCP协议访问主机10.1.1.2,如果没个连接已经在主机10.1.1.2和某个要访问的远程主机之间建立,则该行不会允许任何数据包通过路由器接口,除非回话是从内部企业网内部发起的.第二行允许任何连接到主机172.30.1.3来请求www服务,而所有其他类型的连接将被拒绝,这是因为在访问列表自动默认的在列表尾部,有一个deny any any语句来限制其他类型连接.第三行是拒绝任何FTP连接来访问172.30.1.4主机.第四行是允许所有类型的访问连接到172.30.1.4主机.
  
  2.保护路由器的密码
  
  1)禁用enable password命令,改密码加密机制已经很古老,存在极大安全漏洞,必须禁用,做法是:no enable password
  
  2)利用enable secret命令设置密码,该加密机制是IOS采用了MD5散列算法进行加密,具体语法是:enable secret[level level] {password|encryption-type encrypted-password}
  举例:
  Ro(config-if)#enable secret level 9 ~@~!79#^&^089^ */设置一个级别为9级的~@~!79#^&^089^密码
  Ro(config-if)#service router-encryption */启动服务密码加密过程
  
  enable secret命令允许管理员通过数字0-15,来指定密码加密级别.其默认级别为15.
  
  3.控制telnet访问控制
  
  为了保护路由器访问控制权限,必须限制登陆访问路由器的主机,针对VTY(telnet)端口访问控制的方法,具体配置要先建立一个访问控制列表,如下示例,建立一个标准的访问控制列表(编号从1--99任意选择):
  
  access-list 90 permit 172.30.1.45
  access-list 90 permit 10.1.1.53
  
  该访问列表仅允许以上两个IP地址之一的主机对路由器进行telnet访问,注意:创建该列表后必须指定到路由器端口某个端口上,具体指定方法如下:
  
  line vty E0 4
  access-class 90 in
  
  以上配置是入站到E0端口的telnet示例,出站配置采用out,在这里将不再详细赘述.为了保护路由器的安全设置,也可以限制其telnet访问的权限,比如:通过分配管理密码来限制一个管理员只能有使用show命令的配置如下:
  
  enable secret level 6 123456
  privilege exec 6 show
  
  给其分配密码为123456,telnet进入路由器后,只能用show命令,其他任何设置权限全部被限制.另外,也可以通过访问时间来限制所有端口的登陆访问情况,在超时的情况下,将自动断开,下面是一个配置所有端口访问活动3分30秒的设置示例:
  
  exec-timeout 3 30
  
  4.禁止CDP
  
  CDP(Cisco Discovery Protocol)CISCO查找协议,该协议存在CISCO11.0以后的IOS版本中,都是默认启动的,他有一个缺陷就是:对所有发出的设备请求都做出应答.这样将威胁到路由器的泄密情况,因此,必须禁止其运行,方法如下:
  
  no cdp run
  管理员也可以指定禁止某端口的CDP,比如:为了让路由器内部网络使用CDP,而禁止路由器对外网的CDP应答,可以输入以下接口命令:
  
  no cdp enable
  
  5.HTTP服务的配置
  
  现在许多CISCO设备,都允许使用WEB界面来进行控制配置了,这样可以为初学者提供方便的管理,但是,在这方便的背后,却隐藏了很大的危机,为了能够配置好HTTP服务,本文也提一下如何配置吧.
  
  使用ip http server命令可以打开HTTP服务,使用no ip http server命令可以关闭HTTP服务.为了安全考虑,如果需要使用HTTP服务来管理路由器的话,最好是配合访问控制列表和AAA认证来做,也可以使用enable password命令来控制登陆路由器的密码.具体的配置是在全局模式下来完成的,下面是我们创建一个简单的标准访问控制列表配合使用HTTP服务的示例:
  ip http server */打开HTTP服务
  ip http port 10248 */定义10248端口为HTTP服务访问端口
  access-list 80 permit host 10.0.0.1 */创建标准访问列表80,只允许10.0.0.1主机通过
  ip http access-class 80 */定义了列表号为80的标准访问列表为HTTP服务允许访问的
  ip http authentication aaa tacacs */增加AAA认证服务来验证HTTP控制的主机
  
  6.写在最后的话
  保护路由器并不是这样简单的事情,在很多实际应用中,还需要很多辅助配置.为了保护路由器,各种各样的安全产品都相继出现,比如给路由器添加硬件防火墙,配置AAA服务认证,设置IDS入侵检测等等吧.为了维护路由器的安全稳定工作,我要告诉大家最重要的还是配置最小化IOS,没有服务的设备,肯定没有人能够入侵,最小化的服务就是我们最大化的安全