路由器是网络中的神经中枢,广域网就是靠一个个路由器连接起来组成的,局域网中也已经普片的应用到了路由器,在很多企事业单位,已经用到路由器来接入网络进行数据通讯了,可以说,曾经神秘的路由器,现在已经飞入寻常百姓家了.
随着路由器的增多,路由器的安全性也逐渐成为大家探讨的一个热门话题了,岩冰今天也讲一讲网络安全中路由器的安全配置吧.以下文章是本人在工作过程中所记录的学习笔记,今天整理出来,跟大家共享,也算是抛砖引玉吧.
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,没有服务的设备,肯定没有人能够入侵,最小化的服务就是我们最大化的安全