安全配置 目录 目 录 第1章 AAA配置............................................................................................................................................................. 1 1.1 AAA概述.............................................................................................................................................................. 1 1.1.1 AAA安全服务......................................................................................................................................... 1 1.1.2 使用AAA的优点.................................................................................................................................. 2 1.1.3 AAA基本原理......................................................................................................................................... 2 1.1.4 AAA认证方法列表................................................................................................................................2 1.2 AAA配置过程..................................................................................................................................................... 4 1.2.1 AAA配置过程概览................................................................................................................................4 1.2.2 配置任务相关文档.............................................................................................................................. 4 1.3 AAA认证配置任务列表................................................................................................................................... 4 1.4 AAA认证配置任务............................................................................................................................................ 5 1.4.1 使用AAA配置登录认证..................................................................................................................... 5 1.4.2 使用AAA进行PPP认证.................................................................................................................... 7 1.4.3 在进入特权级别时开启口令保护.................................................................................................... 8 1.4.4 改变提示输入口令时的字符串........................................................................................................ 9 1.4.5 建立本地认证数据库.......................................................................................................................... 9 1.5 AAA认证配置示例.......................................................................................................................................... 10 第2章 RADIUS配置..................................................................................................................................................... 12 2.1 概述................................................................................................................................................................... 12 2.1.1 RADIUS概述......................................................................................................................................... 12 2.1.2 RADIUS协议操作................................................................................................................................13 2.2 RADIUS配置步骤............................................................................................................................................ 13 2.3 RADIUS配置任务列表................................................................................................................................... 13 2.4 RADIUS配置任务............................................................................................................................................ 14 2.4.1 配置路由器与RADIUS服务器的通信........................................................................................... 14 2.4.2 使用厂商专用的RADIUS属性配置路由器.................................................................................. 14 2.4.3 配置RADIUS认证.............................................................................................................................. 15 2.4.4 配置RADIUS授权.............................................................................................................................. 15 2.4.5 配置RADIUS记录.............................................................................................................................. 15 2.5 RADIUS配置示例............................................................................................................................................ 15 2.5.1 RADIUS认证和授权示例................................................................................................................... 15 2.5.2 AAA中应用RADIUS示例.................................................................................................................. 16 第3章 TACACS+配置................................................................................................................................................... 17 3.1 TACACS+概述................................................................................................................................................... 17 3.1.1 TACACS+的协议操作.......................................................................................................................... 17 3.2 TACACS+配置流程........................................................................................................................................... 18 - I - 目录 3.3 TACACS+配置任务列表.................................................................................................................................. 18 3.4 TACACS+配置任务........................................................................................................................................... 19 3.4.1 指定TACACS+服务器........................................................................................................................ 19 3.4.2 设置TACACS+加密密钥................................................................................................................... 19 3.4.3 指定使用TACACS+进行认证........................................................................................................... 19 3.4.4 指定使用TACACS+进行授权........................................................................................................... 20 3.4.5 指定使用TACACS+进行记录........................................................................................................... 20 3.5 TACACS+配置示例........................................................................................................................................... 20 3.5.1 TACACS+认证示例.............................................................................................................................. 20 3.5.2 TACACS+授权示例.............................................................................................................................. 21 3.5.3 TACACS+记录示例.............................................................................................................................. 21 第4章 IPSec配置......................................................................................................................................................... 23 4.1 IPSec概述......................................................................................................................................................... 23 4.1.1 支持的标准......................................................................................................................................... 23 4.1.2 术语...................................................................................................................................................... 24 4.1.3 限制...................................................................................................................................................... 24 4.1.4 IPSec工作过程概述........................................................................................................................... 24 4.1.5 IPSec嵌套............................................................................................................................................. 25 4.2 IPSec配置任务列表....................................................................................................................................... 26 4.3 IPSec配置任务................................................................................................................................................ 26 4.3.1 确保访问列表和IPSec相兼容....................................................................................................... 26 4.3.2 创建加密访问列表............................................................................................................................ 26 4.3.3 加密访问列表技巧............................................................................................................................ 27 4.3.4 在加密访问列表中使用any关键字.............................................................................................. 27 4.3.5 定义变换集合..................................................................................................................................... 27 4.3.6 创建加密映射表................................................................................................................................28 4.3.7 应该建立多少个加密映射表.......................................................................................................... 29 4.3.8 创建手工方式的加密映射表.......................................................................................................... 30 4.3.9 创建使用IKE的加密映射表........................................................................................................... 30 4.3.10 将加密映射表集合应用于接口.................................................................................................... 31 4.4 IPSec配置示例................................................................................................................................................ 31 第5章 配置Internet密钥交换安全协议.................................................................................................................. 33 5.1 概述................................................................................................................................................................... 33 5.1.1 IKE概要................................................................................................................................................. 33 5.1.2 支持的标准......................................................................................................................................... 33 5.1.3 术语...................................................................................................................................................... 34 5.2 IKE配置任务列表........................................................................................................................................... 34 5.3 IKE配置任务.................................................................................................................................................... 34 5.3.1 确保访问列表与IKE兼容................................................................................................................ 34 5.3.2 创建IKE策略...................................................................................................................................... 34 5.3.3 配置预共享密钥................................................................................................................................37 - II - 目录 5.3.4 清除IKE连接(可选).................................................................................................................... 37 5.3.5 IKE诊断(可选)............................................................................................................................... 37 5.4 IKE配置示例.................................................................................................................................................... 38 第6章 Web认证配置.................................................................................................................................................. 39 6.1 概述................................................................................................................................................................... 39 6.1.1 理解Web认证.................................................................................................................................... 39 6.1.2 规划web认证..................................................................................................................................... 41 6.2 配置web认证................................................................................................................................................. 42 6.2.1 全局配置.............................................................................................................................................. 42 6.2.2 接口配置.............................................................................................................................................. 43 6.2.3 使能web认证..................................................................................................................................... 43 6.3 监控和维护web认证.................................................................................................................................... 44 6.3.1 查看全局配置..................................................................................................................................... 44 6.3.2 查看接口配置..................................................................................................................................... 44 6.3.3 查看用户状态..................................................................................................................................... 44 6.3.4 强行踢出用户..................................................................................................................................... 44 6.4 web认证配置示例.......................................................................................................................................... 45 6.4.1 外置DHCP Server web认证配置..................................................................................................... 45 6.4.2 内置DHCP Server web认证配置..................................................................................................... 46 - III - 08-安全配置 第1章 AAA配置 1.1 AAA概述 访问控制是用来控制接入路由器或网络访问服务器(NAS)的用户,并限制他们可使用 的服务种类。提供认证、授权和记录(Authentication,Authorization,Accounting)功 能,以提高网络安全性能。 1.1.1 AAA安全服务 AAA是使用相同方式配置三种独立的安全功能的一种体系结构。它提供了完成下列服务 的模块化方法: null 认证(Authentication)——提供一种识别用户的方法,包括用户名和口令的询问, 以及根据所选择的安全协议进行加密。 认证是接受用户访问请求和提供网络服务之前识别他们身份的方法。通过定义一张 命名的认证方法列表来对AAA认证进行配置,然后应用该列表于各种接口。方法 列表定义了所执行的认证的类型和它们执行的次序;任何定义的认证方法执行之前 都必须应用在具体的接口上。唯一的例外是缺省方法列表(其名称为default)。如 果没有定义其它方法列表,缺省方法列表自动应用于所有接口。定义任何方法列表 将覆盖缺省方法列表。有关所有认证的配置方法的详细资料,请参见“认证配置”。 null 授权(Authorization)——提供一种远程访问控制的方法,用于限制用户的服务权 限。 AAA授权通过相对于该用户的一组属性来发挥作用,这些属性描述了用户被授予 哪些权限。将这些属性与包括在数据库中某个特定用户的信息相比较,结果返回给 AAA,以确定该用户的实际权限。这个数据库可以位于所访问的本地服务器或路由 器,或者位于远程RADIUS或TACACS+安全服务器。像RADIUS和TACACS+ 这样的远程安全服务器,通过与用户相联系的属性值(AV)对(Attribute-Value Pairs)来完成对用户的授权,属性值(AV)对定义了允许授予的权限。所有的授 权方法必须通过AAA定义。与认证一样,首先要定义一个授权方法列表,然后在 各种接口中应用该列表。有关使用AAA进行授权配置的详细情况,请参见“授权配 置”。 null 记录(Accounting)——提供一种收集用户服务信息,并发送给安全服务器的方法, 这些信息可用于开列帐单、审计和形成报表,如用户标识、开始时间和停止时间、 执行的命令、数据包的数量以及字节数。 记录功能不仅可以跟踪用户访问的服务,同时还可以跟踪他们消耗的网络资源数 量。当激活AAA记录功能时,网络访问服务器以记录的形式向TACACS+或 RADIUS安全服务器报告用户的活动。每条记录包括记录属性值(AV)对,存储 在安全服务器上。这些数据可用于网络管理、客户帐单或审计分析。与认证和授权 一样,要先定义一个记录方法列表,然后在不同的接口中使用这张表。有关使用 AAA进行记录配置的详细材料,请参见“记录配置”。 - 1 - 08-安全配置 1.1.2 使用AAA的优点 AAA提供了如下优点: null 灵活性和易于控制 null 方便升级 null 标准化的认证方法,如RADIUS、TACACS+ null 多重备用系统 1.1.3 AAA基本原理 AAA用来动态配置基于每条线路(每个用户)或者每项服务(例如,IP、IPX或VPDN) 的认证和授权类型。通过创建方法列表定义认证和授权的类型,然后把这些方法列表应 用到具体服务或接口上。 1.1.4 AAA认证方法列表 要对认证进行配置,首先定义一个命名的认证方法列表,然后在不同的端口上应用这张 列表。该方法列表定义了所要执行的认证类型,以及他们将被执行的次序;所定义的任 何认证方法列表在被执行之前,必须应用于某一个具体的端口。唯一例外的是缺省方法 列表(default)。缺省方法列表自动的应用于所有的接口。除非该端口明确引用了其他方 法列表,这时此方法列表将替代缺省方法列表。 方法列表是认证用户时需要顺序查询的认证方法的表格。在方法列表中可以指派一个或 多个安全协议。因此确保了万一最初的方法失败后有一个备用的认证系统。本公司路由 器软件使用方法列表中的第一个认证方法鉴别用户;如果该方法没有反应,则会选择方 法列表中的下一个认证方法。这一个过程一直进行下去,直至所列的某个方法成功的进 行认证,或者所有的方法用完为止。 注意到这一点是很重要的,即本公司路由器软件仅仅在前面的方法没有反应时,才尝试 使用列在后面的认证方法进行认证。如果认证在这个过程中的任何一点上失败了,即安 全服务器或是本地用户数据库的反应是拒绝用户访问,则认证过程停止,并且不再尝试 其他的认证方法。 下图显示了一个很有代表性的AAA网络配置,包含四个安全服务器,R1和R2是RADIUS 服务器,T1和T2是TACACS+服务器。 - 2 - 08-安全配置 图 1-1 AAA网络配置示意图 假设系统管理员决定,在其安全方案中所有的接口使用同样的认证方法来认证基于PPP 协议的连接:首先接通了R1来了解有关认证信息,如果R1没有反应,接通R2,如果 R2仍没有反应,接通T1,如果T1也没有反应,接通T2,如果所有指派的服务器都没 有反应,认证工作就落在访问服务器本身的本地用户名数据库上。要实现这一点,系统 管理员应该输入下面的命令,创建一张缺省的方法列表:aaa authentication ppp default radius local。 本例中,default是方法列表的名称,包括在方法列表中的协议以及他们将被查询的次序 列在方法列表名称后面。缺省列表自动的应用于所有的接口。 当远程用户试图通过拨号进入网络时,网络访问服务器首先在R1上查询有关的认证信 息,如果鉴别该用户合法,他就发一条PASS应答给网络访问服务器,从而允许用户访 问服务器。如果R1返回一条FAIL应答,则该用户被拒绝访问,本次对话结束。如果R1 没有反应,网络访问服务器将其当成一次错误,并且在R2上查阅有关的认证信息。这种 模式在剩下的方法中一直进行下去,直到该用户被接受或者被拒绝、或者本次对话结束 为止。 记住这一条是很重要的,即FAIL应答与ERROR应答是截然不同的两个东西,FAIL意 味着用户没有满足包含在认证数据库中要认证成功所需的标准。认证以FAIL应答结束。 ERROR意味着该安全服务器对认证查询没有应答。仅仅当AAA检测到ERROR应答时, 他才选择定义在认证方法链表中的下一个认证方法。 假设系统管理员想将方法列表仅仅应用于某个或某种特定的端口。在这种情况下,系统 管理员应当创建一个非缺省的方法列表,然后把这个命名的列表应用到适当的端口上。 下面的实例演示了系统管理员如何实现某个认证方法只应用异步端口的过程: aaa authentication ppp default radius local aaa authentication ppp async0 radius tacacs+ local none interface async 0/0 ppp authentication chap async0 在这个例子中,async0是方法列表的名称,包括在这个方法列表中的认证协议依次列在 他的后面,他们将有可能被依次使用。创建好方法列表后,将列表应用到合适的端口上。 注意,aaa authentication 命令中的方法名称必须与 ppp authentication命令中的方法列 表名称相匹配。 - 3 - 08-安全配置 1.2 AAA配置过程 首先,必须决定想要实现何种类型的安全方案。用户需要评估自己网络中的安全风险, 并且确定合适的方法来阻止未经授权的登录和攻击。 1.2.1 AAA配置过程概览 在明白了配置所涉及的基本过程后,配置AAA就相对简单了。在本公司路由器或访问服 务器上使用AAA进行安全配置,遵循如下步骤: null 如果决定使用安全服务器,则先配置安全协议参数,如RADIUS,TACACS+。 null 使用命令aaa authentication定义用于认证的方法列表。 null 如果需要的话,把该方法列表应用到某个具体的接口或线路上 null 使用命令aaa authorization进行授权配置(可选)。 null 使用命令aaa accounting进行记录配置(可选)。 1.2.2 配置任务相关文档 下表说明了AAA配置任务以及在何处查找更多的资料。 表 1-1 任务与文档 进一步配置任务 参考资料 配置本地登录认证。 认证配置。 使用安全服务器控制登录认证。 认证配置。 定义用于认证的方法列表。 认证配置。 把方法列表应用到具体接口或线路上。 认证配置。 配置RADIUS协议参数。 配置RADIUS。 配置TACACS+协议参数。 配置TACACS+。 1.3 AAA认证配置任务列表 null 使用AAA配置登录认证 null 使用AAA进行PPP认证 null 在进入特权级别时开启口令保护 null 改变提示输入口令时的字符串 null 建立本地用户名认证数据库 - 4 - 08-安全配置 1.4 AAA认证配置任务 AAA认证的一般配置过程 要配置AAA认证,需要完成下列配置过程: (1) 如果使用的是安全服务器,配置安全协议参数,如RADIUS、TACACS+。具体配 置方法参见相应章节。 (2) 使用aaa authentication命令定义认证方法列表。 (3) 如果需要的话,把方法列表应用到特定的端口或是线路上。 1.4.1 使用AAA配置登录认证 AAA安全服务使得使用各种认证方法变得更容易了,不论决定使用哪种登录方法,都使 用aaa authentication命令开启AAA认证。在aaa authentication login命令中,创建一 张或是多张认证方法的列表,这些列表在登录时使用。使用线路配置命令login authentication来应用这些列表。配置时,从全局配置模式开始,使用如下命令: 命令 目的 aaa authentication login {default | list-name}method1 [method2...] 创建全局认证列表。 line [aux | console | tty | vty] line-number [ending-line-number] 进入某个线路的配置状态。 login authentication {default | list-name} 应用该认证列表于某条或是某几个线路上。 关键字list-name是用来命名所创建的列表的任何字符串。关键字method指定认证过程 所采用的实际方法。仅当前面所用的方法返回认证错误时,才会使用其他的认证方法, 如果前面的方法指明认证失败了,则不再使用其他的认证方法。如果要指定即使所有的 方法都返回认证错误仍能成功登录,只要在命令行中指定none作为最后一个认证方法。 例如:即使TACACS+服务返回错误仍能认证成功,可用下面的命令行: aaa authentication login default tacacs+ none 使用default参数可建立一个缺省的列表,缺省列表自动的应用于所有的接口。例如:指 定RADIUS作为用户登录时的缺省认证方式,使用下面的命令: aaa authentication login default radius 注意: 由于关键字none使得登录的任何用户都可成功的通过认证,所以应当将该关键字作为备 用的认证方法。 下表列出了目前支持的登录认证方式: 关键字 说明 enable 使用enable口令进行认证。 group 使用服务器组进行认证。 - 5 - 08-安全配置 group-restrict 使用服务器组进行认证,但当用户指定使用某台服务器后,此服务器组失效。 line 使用线路密码进行认证。 local 使用本地数据库进行认证。 local-case 使用本地用户名数据库进行认证(用户名区分大小写)。 none 认证无条件通过。 radius 使用 RADIUS 认证 。 tacacs+ 使用TACACS+ 认证 (1) 使用enable口令进行登录认证 在aaa authentication login命令中使用enable 方法关键字指定enable口令作为 登录认证方法,例如:在没有定义其他方法时,指定enable口令作为登录时用户 认证的方法,使用下面的命令: aaa authentication login default enable (2) 使用线路口令进行登录认证 在使用aaa authentication login命令时,用line 方法关键字指定线路口令作为登 录时的认证方法。例如,在用户登录时指定线路口令为用户认证方法,并且不定义 任何其他方法,可以输入下面的命令行: aaa authentication login default line 在能够使用线路口令进行注册认证之前,需要定义一条线路口令。 (3) 使用本地口令进行登录认证 在使用aaa authentication login命令时,用local 方法关键字指定使用本地用户名 数据库作为登录认证方法。例如,在用户注册时指定本地用户名数据库作为用户认 证方法,并且不定义任何其他方法,可以输入下面的命令行: aaa authentication login default local 有关增加用户到本地用户名数据库中的详细资料,参见“建立本地认证数据库”。 (4) 使用RADIUS进行登录认证 在使用aaa authentication login命令时,用radius 方法关键字指定RADIUS作为 登录认证方法。例如在用户登录时指定RADIUS为用户认证方法,并且不定义任 何其他方法,可以输入下面的命令: aaa authentication login default radius 在能使用RADIUS作为注册认证方法之前,需要首先配置RADIUS服务,有关的 更多信息参见“配置RADIUS”。 (5) 使用TACACS+进行登录认证 在使用aaa authentication login命令时,使用TACACS+方法关键字指定TACACS +作为认证方法。例如,在用户登录时指定TACACS+认证方法,并且不定义任 何其他方法,可以输入下面的命令: aaa authentication login default tacacs+ 在能够使用TACACS+进行认证方法之前,需要首先配置TACACS+服务,有关详 细信息,参见“配置TACACS+”。 - 6 - 08-安全配置 1.4.2 使用AAA进行PPP认证 许多用户通过异步或是ISDN拨号访问网络中心服务器。AAA安全服务使得在串口上大 量运行PPP时的认证方法变得容易了。不管决定使用所支持的何种PPP认证方法,均 可以使用aaa authentication ppp开启AAA认证。配置时,在全局配置模式下使用下面 的命令: 命令 目的 aaa authentication ppp {default | list-name} method1 [method2...] 创建本地认证列表。 interface interface-type number 进入端口配置模式,认证列表将应用于该端口上。 ppp authentication {chap | pap | chap pap | pap chap} {default | list-name} 将认证列表应用于某条或是某几条线路上。 使用aaa authentication命令,可以创建一张或是几张认证方法列表,在用户开始运行 PPP时使用这些列表。使用ppp authentication配置命令来应用这些列表。要创建一张缺 省列表,使用defalut参数,在其后紧跟缺省情况下想要使用的方法。例如,指定本地用 户名数据库作为认证的缺省方法,输入下面的命令行: aaa authentication ppp default local 关键字list-name是用来命名所建立的列表的任何字符串。关键字method指定认证过程 所采用的实际方法。仅当前面的方法返回认证错误时,才会使用其他的认证方法。如果 前面使用的方法返回认证失败,则不再使用其他的认证方法。如果指定即使所有的方法 都返回错误仍能成功认证,只需在命令行中指定none作为最后一个认证方法。例如,下 面例子中即使TACACS+服务器返回错误,仍要保证认证成功,可以输入下面的命令行: aaa authentication ppp default tacacs+ none 注意: 由于关键字none使得登录的任何用户都能成功的被认证,所以应当将该关键字作为备用 的认证方法。 下表列出了PPP可使用的认证方式: 关键字 说明 group 使用服务器组进行认证。 group-restrict 使用服务器组进行认证,但当用户指定使用某台服务器后,此服务器组失效。 local 使用本地用户名数据库认证。 local-case 使用本地用户名数据库进行认证(用户名区分大小写)。 none 认证无条件通过。 radius 使用RADIUS 认证 。 tacacs+ 使用TACACS+ 认证。 (1) 使用本地口令进行PPP认证 在aaa authentication ppp命令中,用local关键字指定使用本地用户名数据库进行 认证。例如,在运行PPP的线路上要指定本地用户名数据库为认证方法,并且不 需要其他任何方法,可以输入下面的命令行: - 7 - 08-安全配置 aaa authentication ppp default local 有关更多的增加用户到本地用户名数据库的更多信息,参见“建立本地认证数据 库”。 (2) 使用RADIUS进行PPP认证 在aaa authentication ppp命令中,用RADIUS关键字指定RADIUS作为运行PPP 时的认证方法。例如,要指定RADIUS为用户认证的方法,并且不需要定义其他 方法,可以输入下面的命令行: aaa authentication ppp default radius 在使用RADIUS作为注册认证方法时,需要配置RADIUS服务,有关详细信息参 见“配置RADIUS”。 (3) 使用TACACS+进行PPP认证 在aaa authentication ppp命令中,用TACACS+关键字指定TACACS+作为运行 PPP的端口的认证方法。例如,要指定TACACS+为用户认证的方法,并且不需要 定义其他方法,可以输入下面的命令行: aaa authentication ppp default tacacs+ 在能够使用TACACS+作为PPP认证方法之前,需要首先配置TACACS+服务,有 关详细信息参见“配置TACACS+”。 1.4.3 在进入特权级别时开启口令保护 使用aaa authentication enable default命令创建一个认证方法列表,这些方法决定了某 个用户是否可以执行特权级别的EXEC命令。可以至多指定四种认证方法。仅当前面所 用的方法返回认证错误时,才会使用其他的认证方法。如果前面使用的方法返回认证失 败,则不再使用其他的认证方法,如果指定即使所有的方法都返回错误仍能成功认证, 只需在命令中指定none作为最后一个认证方法。配置时,在全局配置模式下使用下面的 命令: 命令 目的 aaa authentication enable default method1 [method2...] 在用户进入特权级别时开启口令认证。 关键字method指定认证过程使用的实际方法,在认证时依输入的次序使用。 下表列出了所支持的口令保护认证方法: 关键字 说明 enable 使用enable口令认证。 group 使用服务器组进行认证。 group-restrict 使用服务器组进行认证,但当用户指定使用某台服务器后,此服务器组失效。 line 使用线路口令认证。 none 认证无条件通过。 radius 使用RADIUS进行认证。 tacacs+ 使用TACACS+ 认证。 - 8 - 08-安全配置 当配置了enable认证方法为远端认证时(即配置了group,group-restrict,radius或 tacacs+关键字时),使用RADIUS进行认证和使用TACACS+认证的用户名不同,下面 分别介绍: (1) 使用RADIUS进行enable认证: 认证的用户名为$ENABLElevel$,其中level是指用户要进入的特权级别,即enable 命令后的特权级别的数字,举例来说,如果某用户要进入级别为7的特权级别,需 要输入命令enable 7,如果此时配置了使用RADIUS进行认证,则提交给Radius Server的用户名为$ENABLE7$,缺省条件下enable进入的特权级别均为15,即 在使用RADIUS进行认证时,提交给Radius Server的用户名为$ENABLE15$。 这就需要预先在Radius Server上配置相应的用户名和密码,特别要指出的是:在 Radius Server的用户数据库中,要指明用于特权认证的用户的服务类型 (Service-Type)为6,即Admin-User。 (2) 使用TACACS+进行enable认证: 进行enable认证时使用的用户名为该用户登录路由器时使用的用户名,举例来说, 如果某用户登录进路由器时输入的用户名为chen,则进行enable认证时使用的用 户名也是chen,如果用户登录路由器时没有被要求认证或者认证时没有被要求输 入用户名,则登录成功后该用户的用户名为DEFAULT,需要在TACACS+ Server 的用户数据库中进行相应设置。 1.4.4 改变提示输入口令时的字符串 使用aaa authentication password-prompt命令可以改变提示用户输入口令时所显示的缺 省文本。这条命令不仅改变enable口令的口令提示,也同时改变远端登录时的口令提示。 该命令的no形式恢复口令提示为如下形式的缺省值: Password: 命令aaa authentication password-prompt不改变远程TACACS+或是RADIUS服务器 所提供的任何提示信息。配置时,在全局模式下使用下面的命令: 命令 目的 aaa authentication password-prompt text-string 在提示用户输入口令时改变缺省的显示文本。 1.4.5 建立本地认证数据库 可以创建基于用户名的本地认证系统,用于下列情况: null 为不支持TACACS+的网络提供像TACACS+一样的用户名或是加密的口令认证 系统 null 提供灵活的登录环境;例如,访问列表验证、登录时自动执行(autocommand) 等情况。 要建立本地用户名认证,可以在全局配置模式下,使用下面命令进行配置: 命令 目的 - 9 - 08-安全配置 username name password { password | [encryption-type] encrypted-password } 建立用户名及对应的密码。 1.5 AAA认证配置示例 1. RADIUS认证示例 本节提供了一个使用RADIUS进行认证的配置示例,展示了如何配置路由器,以便使用 RADIUS进行认证和授权的过程: aaa authentication login radius-login radius local aaa authentication ppp radius-ppp radius aaa authorization network radius-network radius line tty/vty login authentication radius-login interface serial 1/0 在这个示例中,各命令行的意义为: null 命令aaa authentication login radius-login radius local配置路由器在认证登录用户 时使用RADIUS作为认证方法。如果RADIUS返回认证错误,则使用本地数据库 对用户进行认证。 null 命令aaa authentication ppp radius-ppp radius将路由器配置为:在用户尚未登录 时,采用chap或是pap的ppp认证方法。如果EXEC已经对用户进行了认证, 则不再执行认证。 null 命令aaa authorization network radius-network radius向radius请求NETWORK 服务的授权,如:地址分配以及其他访问控制项目。 null 命令log in authentication radius-login在线路3上开启radius-login方法列表 2. TACACS+认证示例 下面的示例将TACACS+配置为PPP认证时使用的安全协议: aaa authentication ppp test tacacs+ local interface serial1\0 ppp authentication chap pap test tacacs server 1.2.3.4 tacacs key testkey 在这个TACACS+认证配置中,各命令行的意义为: null 命令aaa authentication ppp test tacacs+ local定义方法列表test,该方法列表用 于运行ppp的串行接口。关键字tacacs+意味着认证将通过TACACS+进行。如果 在认证期间,TACACS+返回某种类型的错误,关键字local指示使用网络访问服 务器上的本地数据库来尝试认证。 null 令interface选择端口。 - 10 - 08-安全配置 null 命令ppp authentication将方法列表应用于该端口上。 null 命令tacacs server标识TACACS+服务器的IP地址为1.2.3.4。 null 命令tacacs key定义共享的加密密钥testkey 下面的示例为PPP配置AAA认证: aaa authentication ppp default if-needed tacacs+ local 在这个例子中,关键字default表示缺省的ppp认证方法列表。关键字if-needed的意 义为:如果用户已经通过登录过程中进行的认证,则此次认证可以被跳过。如果需要认 证,则关键字tacacs+的意义是使用TACACS+服务器进行认证。如果TACACS+在认 证期间返回某种类型的错误,关键字local指示使用路由器上的本地数据库进行认证。 下面的示例为PAP创建了同样的认证过程,与上面不同的是,本示例调用了方法列表 test-list,而不是缺省方法列表default: aaa authentication pap test-list if-needed tacacs+ local interface serial1/0 ppp authentication pap test-list 在本例中,由于方法列表未应用于任何端口,管理员必须使用interface命令选择端口, 以便该认证方法能够应用到这个端口上。然后,管理员必须使用ppp authentication将方 法列表应用于具体端口上。 - 11 - 08-安全配置 第2章 RADIUS配置 本章介绍RADIUS(Remote Authentication Dial-In User Service)安全系统。定义其操 作,说明适宜使用RADIUS技术和不适宜使用RADIUS技术的网络环境。“RADIUS配置 步骤”一节介绍如何使用认证、授权和记录(AAA)命令集配置RADIUS。本章最后一节 “RADIUS配置示例”提供了两个实例。 2.1 概述 2.1.1 RADIUS概述 RADIUS是分布式客户机/服务器系统,它保护网络不受未经授权的访问的干扰。RADIUS 客户机运行于路由器上,并向中央RADIUS服务器发出认证请求,这里的中央服务器包 含了所有的用户认证和网络访问服务信息。在路由器上我们利用AAA安全模式支持 RADIUS ,RADIUS已经在既要求高级别安全性、又要求维持远程用户访问的各种网络 环境中得以应用。 可以在具有下述访问安全要求的网络环境中使用RADIUS: null 拥有多厂商访问服务器的网络环境,并且每个服务器都支持RADIUS。例如,几家 厂商提供的访问服务器可以使用单一的基于服务器的RADIUS安全数据库。在使 用多厂商提供的访问服务器的基于IP的网络中,拨号用户通过RADIUS服务器进 行认证。 null 在用户必须只访问单一服务的网络中。使用RADIUS,能够控制用户访问单一主机、 单一实用程序(如Telnet)或单一协议(如点对点协议PPP)。例如,当用户登录 时,RADIUS规定并限制这个用户使用IP地址10.2.3.4来运行PPP,并启动定义 的访问列表。 null 要求资源记录的网络。可以使用与RADIUS认证或授权无关的RADIUS记录。 RADIUS记录允许在服务的开始和结束发送数据,以指示会话期间使用的资源数量 (如时间、字节等等)。 RADIUS不适合应用于下述网络安全情况中: null RADIUS不支持下述协议: AppleTalk远程访问(ARA,AppleTalk Remote Access)协议 NetBIOS帧控制协议(NBFCP,NetBIOS Frame Control Protocol) null NetWare异步服务接口(NASI,NetWare Asynchronous ServicesInterface) null X.25 PAD连接。 - 12 - 08-安全配置 null 路由器到路由器的情况。RADIUS不提供双向认证。在路由器上运行RADIUS,只 能完成呼入认证,对于呼出认证(即本地路由器要登录到远端路由器时需要通过远 端路由器的认证)是无法完成的。 null 使用多种服务的网络。RADIUS通常把用户捆绑到一个服务模型上。 2.1.2 RADIUS协议操作 当用户使用RADIUS进行登录认证时,发生下述步骤: null 提示用户输入用户名和口令。 null 用户名和加密的口令通过网络发送到RADIUS服务器。 null 用户从RADIUS服务器收到下述响应之一: ACCEPT:用户通过认证。 REJECT:用户没有通过认证,提示用户重新输入用户名和口令,否则访问被拒绝。 CHALLENGE:服务器发出Challenge请求。该请求从用户那里收集附加数据。 ACCEPT和REJECT响应与附加授权信息一起返回,用于EXEC或NETWORK 授权。在使用RADIUS授权之前,必须首先完成RADIUS认证。ACCEPT和 REJECT包中包括的附加数据由下述内容组成: null 用户能够访问的服务,包括Telnet、rlogin、PPP、SLIP或EXEC服务。 null 连接参数,包括主机或客户机的IP地址、访问列表和用户超时设定等。 2.2 RADIUS配置步骤 为了在路由器或访问服务器上配置RADIUS ,必须执行下述任务: (1) 使用aaa authentication全局配置命令定义使用RADIUS认证发式的方法列表。有 关使用aaa authentication命令的更多信息,请参见“认证配置”。 (2) 使用line和interface命令来引用已定义的方法列表。要了解更多的信息,请参见“认 证配置”。 下述配置任务可根据需要进行选择: null 如有必要,使用aaa authorization全局命令对用户的服务请求进行授权。有关使用 aaa authorization命令的更多信息,请参见“授权配置”。 null 如有必要,使用aaa accounting 全局命令对用户的服务过程进行记录。有关使用 aaa accounting命令的更多信息,请参见“记录配置”。 2.3 RADIUS配置任务列表 null 配置路由器与RADIUS服务器的通信 - 13 - 08-安全配置 null 使用厂商专有的RADIUS属性配置路由器 null 配置RADIUS认证 null 配置RADIUS授权 null 配置RADIUS记录 2.4 RADIUS配置任务 2.4.1 配置路由器与RADIUS服务器的通信 RADIUS服务器通常是运行由Livingston、Merit、 Microsoft 或另外的软件提供商提供 的RADIUS服务器软件的多用户系统,RADIUS服务器和路由器使用共享的密钥来加密 口令并交换响应。使用radius server命令来指定RADIUS服务器,使用radius key命令 来指定共享密钥。配置时,在全局配置模式下使用下述命令: 命令 目的 radius server ip-address [auth-port port-number][acct-port portnumber] 指定远程RADIUS服务器的IP地址,指定认证 和记录的目的端口号。 radius key string 指定路由器和RADIUS服务器之间使用的共享 密钥。 另外为了定制路由器和RADIUS服务器之间的通信,请使用下述可选的RADIUS全局配 置命令: 命令 目的 radius retransmit retries 指定路由器在放弃重试之前向服务器传输每 个RADIUS请求的次数(缺省值为2)。 radius timeout seconds 指定路由器在重新传输RADIUS请求之前,对 应答应等待的秒数。 radius deadtime minutes 当RADIUS服务器不对认证请求作出反应时, 需要将此台服务器标志为“死亡”的持续时间。 2.4.2 使用厂商专用的RADIUS属性配置路由器 Internet工程任务组(IETF)草案标准通过使用厂商专用属性(Attribute26),为在网络 访问服务器和RADIUS服务器之间交互基于厂商的专用扩展属性提供了一种方法。厂商 专用属性(VSA)允许厂商支持属于它们自己的不适合于普遍用途的扩展属性。有关厂 商ID和厂商专用属性的更多信息,请参见RFC 2138:远程认证拨号用户服务(RADIUS)。 要把网络服务器配置为能够识别和使用厂商专用属性的方式,请在全局配置模式下使用 下述命令: 命令 目的 radius vsa send [authentication] 使网络访问服务器能够如同RADIUS IETF属 性26所定义的那样去识别和使用厂商专用属 - 14 - 08-安全配置 性。 2.4.3 配置RADIUS认证 在标识了RADIUS服务器并定义了RADIUS认证密钥之后,就需要为RADIUS认证定义 方法列表。由于RADIUS认证是通过AAA来进行的,所以需要输入aaa authentication 命令,指定RADIUS作为认证方法。要了解与此相关的更多信息,请参见 “认证配置”。 2.4.4 配置RADIUS授权 利用AAA授权可以设置参数、限制用户的网络访问。使用RADIUS的授权提供了一种远 程访问控制的方法,包括一次性授权或对每个服务的授权。因为RADIUS授权是通过AAA 进行的,所以需要使用aaa authorization命令,指定RADIUS作为授权方法。要了解与 此相关的更多信息,请参见“授权配置”。 2.4.5 配置RADIUS记录 AAA记录特性让我们能够追踪用户正在访问的服务及他们占用的网络资源数量。由于 RADIUS记录特性是通过AAA提供的,所以需要使用aaa accounting命令,指定RADIUS 作为记录方法。要了解与此相关的更多信息,请参见 “记录配置”。 2.5 RADIUS配置示例 2.5.1 RADIUS认证和授权示例 下述示例说明了怎样对路由器进行配置以使用RADIUS进行认证和授权: aaa authentication login use-radius radius local aaa authentication ppp use-radius if-needed radius aaa authorization exec radius aaa authorization network radius 在这个示例中,各行命令的意义为: null aaa authentication login use-radius radius local命令配置路由器在登录过程中使 用RADIUS进行认证。如果RADIUS服务器返回认证错误(ERROR),再使用本 地数据库进行认证。在这个示例中,use-radius是方法列表的名称,它指定首先进 行RADIUS认证,然后再进行本地认证。 null aaa authentication ppp use -radius if-needed radius命令使得当用户还没有被认 证时,对PPP的CHAP或PAP认证过程通过RADIUS服务器进行。若在提供EXEC 服务时已对用户进行了认证,则此处不再进行RADIUS认证。本例中,use-radius 是方法列表名,它定义了一个如有必要才进行的(if-needed)认证方法。 null aaa authorization exec radius命令设置了进行EXEC服务的授权。 - 15 - 08-安全配置 null aaa authorization network radius命令设置了进行NETWORK(PPP、SLIP)服 务的授权。 2.5.2 AAA中应用RADIUS示例 下面是一个使用AAA命令集定义通用配置的示例: radius server 1.2.3.4 radius key myRaDiUSpassWoRd username root password AlongPassword aaa authentication ppp dialins radius local aaa authentication login admins local line 1 16 login authentication admins interface async0/0 encap ppp ppp authentication pap dialins 在这个示例中,各命令行的意义为: null radius server命令定义RADIUS服务器的IP地址; null radius key 命令定义网络访问服务器和RADIUS服务器主机之间的共享密钥; null aaa authentication ppp dialins radius local命令定义了认证方法列表dialins,它指 定首先通过RADIUS进行认证,然后(若RADIUS服务器不响应)使用本地认证; null ppp authentication pap dialins命令对指定的线路运用dialins认证方法列表; null aaa authentication login admins local命令为登录认证定义另外一个方法列表 admins; null login authentication admins命令指定在登录认证中运用admins方法列表; - 16 - 08-安全配置 第3章 TACACS+配置 3.1 TACACS+概述 TACACS+是一种访问安全控制协议,它为用户获得对路由器或网络访问服务器的访问权 提供集中化的验证。由于网络访问服务器和TACACS+服务程序之间的信息交换采用加密 形式,所以它可以保证通信的安全性。 在网络访问服务器上配置的TACACS+特性使用之前,必须能够访问并配置TACACS+服 务器。TACACS+提供了独立的模块化认证、授权和记录能力。 认证——支持多种认证方式(ASCII、PAP、CHAP等),同时提供处理与用户进行任意 对话的能力(比如,提供登录用户名和口令后,向用户提出一些询问性问题,诸如家庭 住址、服务类型和身份证号码等)。另外,TACACS+认证服务支持向用户屏幕发送信息, 例如,发送信息通知用户,由于公司的口令老化政策,他们的口令必须更换。 授权——对提供服务期间用户的服务权限进行细致的控制,包括设置自动命令、访问控 制、会话持续时间等。还可以对用户可能执行的命令强制加以限制。 记录——收集和发送用于生成收费单据、进行审计或网络资源使用状况统计的信息。网 络管理员可以使用记录能力,为安全审计追踪用户的活动,或者为用户账单提供信息。 记录功能记录了包括用户标识、起止时间、执行的命令、包的数量以及字节的数量等。 3.1.1 TACACS+的协议操作 1. ASCII形式的认证 当用户登录到使用TACACS+的网络访问服务器,并要求进行简单的ASCII形式的认证 时,典型情况下会出现下述过程: 连接建立后,网络访问服务器与TACACS+服务程序联系以获得用户名提示符,然后显示 给用户。用户输入用户名,网络访问服务器与TACACS+服务程序再次进行联系,得到口 令提示符,把口令提示符显示给用户,用户输入口令,然后口令被发送给TACACS+服务 程序。 注意: TACACS+允许在服务器程序和用户之间进行任意的会话,直到收集到足够的信息对用户进 行认证为止。这通常是通过提示用户名和口令的组合而完成的,但是还可以包括其它的 项目,诸如证件号码等,一切都是在TACACS+服务器程序的控制之下进行的。 网络访问服务器最终从TACACS+服务器收到下述反应之一: ACCEPT 用户通过了认证,服务可以开始了。如果网络访问服务器被配置为要求服务授 权,那么此时开始进行授权。 - 17 - 08-安全配置 REJECT 用户未通过认证。用户可能被拒绝进行进一步的访问,或者提示重新进入登录 过程,这取决于TACACS+服务器的处理方式。 ERROR 在认证期间发生了错误,原因可能发生在服务器,也可能是发生在服务器与网 络访问服务器之间的网络连接中。如果收到ERROR回应,一般情况下,网络 访问服务器会试着使用另一种方法对用户进行认证。 CONTINUE 提示用户输入附加的认证信息。 2. PAP和CHAP形式的认证 PAP登录与ASCII登录相类似,只不过到达网络访问服务器的用户名和口令是在PAP报 文中,而不是由用户输入,所以不用提示用户输入相关信息。CHAP登录在主要的内容 上也是类似的。认证之后,如果网络访问服务器要求对用户进行授权,那么用户就需要 进入授权阶段,但在处理TACACS+授权之前,必须首先成功地完成TACACS+认证。 如果要求进行TACACS+授权,则再次与TACACS+服务器程序联系并返回ACCEPT或 REJECT授权反应。如果返回了ACCEPT反应,则可能包含AV(attribute-value)对数 据,用于规范该用户的EXEC或NETWORK会话,确定用户能够访问的服务。 3.2 TACACS+配置流程 为了把路由器配置为支持TACACS+的方式,必须执行下述任务: 使用tacacs server命令,指定一个或多个TACACS+服务器IP地址。使用tacacs key 命 令,为网络访问服务器和TACACS+服务器之间的所有信息交换指定加密密钥。同一密钥 也必须在TACACS+服务器程序中进行配置。 使用aaa authentication全局配置命令对使用TACACS+进行认证的方法列表进行定义。 有关aaa authentication命令的更多信息,请参见“认证配置”。 使用line 和interface命令,对端口或线路运用所定义的方法列表。与此相关的更多信息, 请参见“认证配置”。 3.3 TACACS+配置任务列表 null 指定TACACS+服务器 null 设置TACACS+加密密钥 null 指定使用TACACS+进行认证 null 指定使用TACACS+进行授权 null 指定使用TACACS+进行记录 - 18 - 08-安全配置 3.4 TACACS+配置任务 3.4.1 指定TACACS+服务器 tacacs server命令使你能够指定TACACS+服务器的IP地址。由于TACACS+软件按照 配置的顺序搜索主机,这一特色对于设置不同的服务器优先级是有用的。为了指定 TACACS+主机,以全局配置模式使用下述命令: 命令 目的 tacacs server ip-address [single-connection| multi-connection] [port integer] [timeout integer] [key string] 指定TACACS+服务器IP地址及相应属性。 使用tacacs server命令,还可以配置下述选项: null 使用single-connection关键字指定采用单一连接,这样做允许服务器程序处理更多 的TACACS+操作,可能更有效。multi-connection则是指示采用多条TCP连接。 null 使用port参数,指定TACACS+服务器程序使用的TCP端口号。缺省的端口号是 49。 null 使用timeout参数,指定路由器等待服务器回应的时间上限(以秒为单位)。 null 使用key参数指定对报文进行加密和解密的密钥。 注意: 使用tacacs server指定的超时值将覆盖tacacs timeout命令设置的全局超时值; 使用tacacs server指定的加密密钥将覆盖使用全局配置命令tacacs key设置的缺省密钥。所以可以使用 本命令配置唯一的TACACS+连接来加强网络的安全性。 3.4.2 设置TACACS+加密密钥 为了设置TACACS+报文加密密钥,在全局配置模式使用下述命令: 命令 目的 tacacs key keystring 设置与TACACS+服务器所使用密钥相匹配的 加密密钥。 注意 : 为了成功地进行加密,必须对TACACS+服务器程序配置相同的密钥。 3.4.3 指定使用TACACS+进行认证 在标识了TACACS+服务器并定义了与之相联系的加密密钥后,就需要为TACACS+认证 定义方法列表。由于TACACS+认证通过AAA进行操作,所以需要设置aaa authentication 命令指定TACACS+作为其认证方法。与此相关的更多信息,请参见“认证配置”。 - 19 - 08-安全配置 3.4.4 指定使用TACACS+进行授权 AAA授权使得能够设置参数限制用户的网络访问权限。TACACS+授权,可以应用于命令、 网络连接和EXEC会话等服务。由于TACACS+授权是通过AAA提供的,所以需要配置 aaa authorization命令指定TACACS+作为授权方法。与此相关的更多信息,请参见“授 权配置”。 3.4.5 指定使用TACACS+进行记录 AAA记录使得能够跟踪用户正在使用的服务以及他们消耗的网络资源的数量。由于 TACACS+记录是通过AAA提供的,所以需要配置aaa accounting命令指定TACACS+ 作为记录方法。与此相关的更多信息,请参见“记录配置”。 3.5 TACACS+配置示例 本节包括了下述TACACS+配置示例: 3.5.1 TACACS+认证示例 下述示例配置PPP认证由TACACS+完成: aaa authentication ppp test tacacs+ local tacacs server 1.2.3.4 tacacs key testkey interface serial 1/1 ppp authentication chap pap test 在这个示例中: aaa authentication命令定义了运行PPP的串口上使用的认证方法列表test。关键字 tacacs+意味着认证通过TACACS+进行,如果TACACS+在认证期间返回某种类型的 ERROR,则关键字local指示使用网络访问服务器上的本地数据库进行认证。 tacacs server命令标识TACACS+服务器的IP地址为1.2.3.4。tacacs key命令定义共享 的加密密钥为testkey。 interface命令选择端口,ppp authectication命令在该端口应用方法列表test。 下述示例将TACACS+配置为PPP认证时使用的安全协议,但是不再使用方法列表test, 而是使用方法列表default: aaa authentication ppp default if-needed tacacs+ local tacacs-server host 1.2.3.4 tacacs-server key goaway interface serial 1/1 ppp authentication default 在这个示例中: - 20 - 08-安全配置 aaa authentication命令定义运行PPP的串口上使用认证方法列表default。关键字 if-needed意味着如果用户已经通过了登录过程进行的认证,那么PPP认证就不再必要; 如果需要认证,那么关键字tacacs+意味着认证通过TACACS+进行,如果TACACS+在 认证期间返回某种类型的ERROR,则关键字local指示使用网络访问服务器上的本地数 据库进行认证。 tacacs server命令标识TACACS+服务器程序的IP地址为1.2.3.4。tacacs key命令定义 共享的加密密钥为goaway。 interface命令选择端口,ppp authectication命令在该端口应用缺省的PPP认证方法列表。 3.5.2 TACACS+授权示例 aaa authentication ppp default if-needed tacacs+ local aaa authorization network default tacacs+ tacacs server 10.1.2.3 tacacs key goaway interface serial 1/1 ppp authentication default ppp authorization default 在这个示例中: aaa authentication命令定义运行PPP的串口上使用的认证方法列表default。关键字 if-needed意味着如果用户已经通过登录过程进行了认证,那么PPP认证就不再必要;如 果需要认证,那么关键字tacacs+意味着认证通过TACACS+进行,如果TACACS+在认 证期间返回某种类型的ERROR,则关键字local指示使用网络访问服务器上的本地数据 库进行认证。 aaa authorization命令配置通过TACACS+进行网络服务授权。 tacacs server命令标识TACACS+服务器IP地址为10.1.2.3。tacacs key命令定义共享 的加密密钥为 goaway。 interface命令选择端口, ppp authectication和ppp authorization命令对该端口应用缺 省的认证或授权方法列表。 3.5.3 TACACS+记录示例 下述示例配置PPP认证的方法列表使用TACACS+作为方法之一,并配置通过TACACS+ 进行记录: aaa authentication ppp default if-needed tacacs+ local aaa accounting network default stop-only tacacs+ tacacs server 10.1.2.3 tacacs key goaway interface serial 1/1 ppp authentication default ppp accounting default - 21 - 08-安全配置 在这个示例中: aaa authentication命令定义PPP协议使用的认证方法列表default。关键字if-needed意 味着如果用户已经通过登录过程进行了认证,那么PPP认证就不再必要;如果需要认证, 那么关键字tacacs+意味着认证通过TACACS+进行,如果TACACS+在认证期间返回某 种类型的ERROR,则关键字local指示使用网络访问服务器上的本地数据库进行认证。 aaa accounting命令配置通过TACACS+进行网络服务的记录。在这个示例中,只记录服 务结束时的相应信息,在网络连接结束时被发送到TACACS+服务器。 tacacs server命令标识TACACS+服务器的IP地址为10.1.2.3。tacacs key命令定义共 享的加密密钥为 goaway。 interface命令选择端口, ppp authectication命令在该端口应用缺省的认证方法列表; ppp accounting命令在该端口应用缺省的记录方法列表。 - 22 - 08-安全配置 第4章 IPSec配置 本章阐述了如何配置IPSec。IPSec是由IETF开发的开放标准框架。IPSec为无保护网 络(例如Internet)上传输敏感数据提供了安全性。IPSec在网络层起作用,对参与IPSec 的设备(例如本公司路由器)之间传输的IP包进行保护和验证。 IPSec提供了下列网络安全性服务。这些服务是可选的。通常,本地安全策略将规定使用 下列这些服务的一种或多种: null 数据机密性——IPSec发送方在通过网络传输报文前对报文进行加密。 null 数据完整性——IPSec接收方对发送方发送来的报文进行验证,以确保数据在传输 过程中没有被篡改。 null 数据来源验证——IPSec接收方对IPSec报文的源地址进行验证。这项服务基于数 据完整性服务。 null 抗重播——IPSec接收方可以检测和拒绝被重播的报文。 有了IPSec,数据在通过公共网络传输时,就不用担心被监视、篡改和伪造。 要得到本章所用到的IPSec命令的完整阐述,请参阅“IPSec配置命令”。 4.1 IPSec概述 IPSec提供的安全性解决方案非常健壮、并且是基于标准的。作为对数据机密性的补充, IPSec还提供了数据验证和抗重播服务。 4.1.1 支持的标准 本公司路由器IPSec实现了如下标准: null IPSec——IP安全性协议。IPSec是在参与通信的两端之间提供数据机密性、数据 完整性、数据验证的一种开放标准框架。IPSec在IP层提供这些安全性服务;它 使用IKE来协商基于本地策略的协议和算法,并产生加密和验证密钥供IPSec使 用。IPSec可为一对主机、一对安全网关或一台主机和一台安全网关之间的一条或 多条数据流提供保护。 null Internet密钥交换(IKE)——一种在ISAKMP网络中实现Oakley和SKEME密钥 交换的混合协议。尽管IKE可以和其他协议一起使用,它最初是和IPSec协议一 起使用的。IKE提供对IPSec对端的验证,协商IPSec安全联盟,生成IPSec密 钥。要进一步了解IKE,请参阅“配置Internet密钥交换安全性协议”。 - 23 - 08-安全配置 4.1.2 术语 null DES——数据加密标准(DES)用于对包数据进行加密,属于对称加密算法,本公 司路由器使用IV为56位DES-CBC。CBC需要一个初始化向量(IV)来进行加密。 null 3DES——3DES用于对包数据进行加密,属于对称加密算法。本公司路由器使用 IV为168位DES-CBC。3DES比DES更为安全。 null MD5(HMAC变量)——MD5是一种散列算法。HMAC是一个用于对数据进行验 证的加密散列变量。 null SHA(HMAC变量)——SHA是一种散列算法。HMAC是一个用于对数据进行验 证的加密散列变量。 本公司路由器软件的IPSec还支持下列这些标准: null AH——是一种安全协议,用于为IP提供数据完整性、数据原始身份验证和一些可 选的抗重播服务。AH可用来保护一个上层协议(传输模式)或一个完整的IP数据 包(隧道模式)。AH可单独使用,也可与ESP一起使用。定义在RFC2402中。 null ESP——是一种安全协议,用于为IP提供机密性、数据源验证、抗重播以及数据 完整性等安全服务。ESP可用来保护一个上层协议(传输模式)或一个完整的IP 数据包(隧道模式)。定义在RFC2406中。 4.1.3 限制 现阶段,IPSec只能用于单点传送IP数据报。因为IPSec工作组还没有从事组密钥分布 的工作,IPSec目前不支持多点传送或广播IP数据报。如果使用网络地址翻译技术(NAT), 那么应该配置静态NAT翻译来使IPSec正常工作。总而言之,NAT翻译必须在路由器进 行IPSec封装之前进行;换句话说,IPSec应该使用全局地址。 4.1.4 IPSec工作过程概述 IPSec可以为两个路由器之间提供安全隧道。自己定义哪些报文由这些安全隧道传送。并 且,通过指定这些隧道的参数来定义用于保护这些敏感报文的参数。然后,当IPSec得 到这样的一个报文时,它将建立起相应的安全隧道,通过这条隧道将数据报文传送给对 端。 更精确的说,隧道是IPSec两端建立的安全联盟的集合。这些安全联盟定义了哪些协议 和算法将被应用于敏感报文,同时指定了IPSec两端将使用到的密钥。安全联盟是单向 的,每个安全性协议(AH或ESP)都分别建立。 在IPSec中,通过配置访问列表,将访问列表配置在加密映射表中,再将加密映射表应 用到接口上,可以使特定通信将受到保护。因此,可以基于源和目标地址、任意的第四 层协议或端口对通信进行过滤(用于IPSec的访问列表只用于定义哪些通信将受到IPSec 的保护,而不是定义哪些通信允许通过或禁止通过某个接口。一个加密映射表集合可包 含多个加密映射表,每个都对应一个不同的访问列表。 - 24 - 08-安全配置 当报文匹配某个特定访问列表中的第一条permit规则时,并且相应的加密映射表类型为 ipsec-isakmp,将由IPSec来处理。如果没有保护报文的安全联盟存在,IPSec使用IKE 来和对端协商建立安全联盟。 如果加密映射表类型为ipsec-manual,将由IPSec来处理。如果没有保护报文的安全联 盟存在,报文将被丢弃。在这种情况下,安全联盟通过手工配置,而无需IKE。如果安全 联盟不存在,那么一定没有配置所有必须的参数。 安全联盟集合一旦被建立,就被应用于处理报文,以及随后的适用报文。适用报文是指 那些满足相同访问列表条件的报文。 如果使用IKE来建立安全联盟,那么这些安全联盟将具有生命周期,它们将阶段性地超 时,需要重新协商(这提供了一层附加的安全性)。 IPSec两端可以存在多条IPSec隧道来对不同数据流进行加密,每条隧道对应一个独立 的安全联盟集合。例如,一些数据流可能只需要被验证,同时另一些数据流既需要被加 密又需要被验证。IPSec加密映射表所设置的访问列表指定了需要对哪些通信进行IPSec 保护。进入报文依据加密映射表进行处理——如果一个未加密报文匹配了和一个IPSec 加密映射表设置的特定访问列表中的permit,这个报文将被丢弃,因为它不是作为一个 受IPSec保护的报文被传送的。加密映射表同时包括了变换集合。一个变换集合是安全 性协议、算法以及将用于受IPSec保护的通信的其它设置的组合。在IPSec安全联盟协 商期间,一致使用一个特定的变换集合来保护一个数据报文。 4.1.5 IPSec嵌套 你可以在一系列的IPSec路由器上进行IPSec通信的嵌套。例如,为了使通信横穿多个 防火墙(这些防火墙都有相应的策略,不允许自己不能验证的通信通过),路由器需要按 次序和每个防火墙建立IPSec隧道。 在下图所示的例子中,路由器A使用IPSec对去往路由器C的通信进行封装(路由器C 是IPSec对端)。但是,在路由器A能够传送通信之前,它必须使用IPSec对这个通信 进行预封装,其目的是为了将报文传送给路由器B。 图 4-1 IPSec路由器嵌套示例图 外部IPSec两端之间可能拥有同一种保护(例如数据验证),内部IPSec两端之间也可能 拥有不同的保护(例如既有数据验证,又有加密)。 - 25 - 08-安全配置 4.2 IPSec配置任务列表 在完成IKE配置以后,进行IPSec配置。要配置IPSec,就要在每台参与通信的IPSec 路由器上完成下列各节的操作。 null 确保访问列表和IPSec相兼容 null 创建加密访问列表 null 加密访问列表技巧 null 在加密访问列表中使用any关键字 null 定义变换集合 null 创建加密映射表 null 应该建立多少个加密映射表 null 创建手工方式的加密映射表 null 创建使用IKE的加密映射表 null 将加密映射表集合应用于接口 4.3 IPSec配置任务 4.3.1 确保访问列表和IPSec相兼容 IKE使用UDP端口500。IPSec ESP和AH协议使用IP协议号50、51。确信在配置访 问列表时,IPSec使用的接口上协议50、51以及UDP端口500的通信没有被禁止。 4.3.2 创建加密访问列表 加密访问列表用于定义哪些IP通信要被加密保护,哪些不要被加密保护(这些访问列表 和一般的访问列表不同,一般的访问列表用于决定一个接口上的哪些通信可以通过,哪 些要被禁止)。 IPSec加密映射表指定的加密访问列表有四个主要功能: null 判断由IPSec进行保护的出报文(permit 为保护)。 null 当开始协商IPSec安全联盟时,指示数据流将由新安全联盟进行保护(由一条单独 的permit指出)。 null 处理入报文,其目的是过滤和丢弃那些本应受到IPSec保护而没有受到保护的通 信。 - 26 - 08-安全配置 null 在处理IPSec对端发起的IKE协商时,决定是否接受其IPSec安全联盟申请。 null 如果想让某种报文使用一种IPSec保护的组合(例如,只是验证),另一种报文使 用另一种不同的IPSec保护的组合(例如,既要验证又要加密),那么就需要创建 两个不同的加密访问列表来定义这两种不同类型的通信。这两个不同的访问列表用 在不同的加密映射表中,这些加密映射表设定了不同的IPSec策略。 以后应用加密映射表集合到接口的时候,就把这些加密访问列表和这些接口联系起来了。 在全局配置态下使用下列命令来创建加密访问列表: 命令 目的 ip access-list extended name 进入的IP访问扩展列表配置模式。 permit 允许命令设置访问规则。 deny permit 禁止命令设置访问规则。 protocol source source-mask destination destination-mask 定义哪些IP通信要被加密保护。 4.3.3 加密访问列表技巧 使用permit关键字将使得满足条件的所有IP通信都受到相应加密映射表中所描述策略的 加密保护。使用deny关键字可以防止通信受到特定加密映射表的加密保护(换句话说, 它不允许此加密映射表中指定的策略被应用到这个通信上)。如果某通信被接口上的所有 加密映射表拒绝,那么该通信将不被加密保护。 在定义了相应的加密映射表,并且将加密映射表集合应用到接口上以后,所指定的加密 访问列表将被应用到这个接口上。入和出报文将被相同的IPSec访问列表进行判定。因 此,访问列表既对出报文正向使用,又对入报文反向使用。所以只需在访问列表中定义 一条规则,IPSec在使用这个规则时会匹配具有正好相反的源和目标地址的数据报文。 如果为一个给定的加密访问列表配置了多条规则,那么起作用的只是第一条规则。 4.3.4 在加密访问列表中使用any关键字 在创建加密访问列表的时候,使用any关键字可能会带来问题。所以不提倡用any关键 字来指定源或目标地址。 当需要通过IPSec接口传输多点传送的通信时,不提倡在permit语句中使用any关键字; any关键字将导致多点传送失败。permit any any语句尤其不宜使用,因为这将导致所有 的出报文受到保护(并且所有的受保护报文都被发送到在相应的加密映射表中指定的对 端),并且将要求所有的入报文都要受到保护。 4.3.5 定义变换集合 变换集合是特定安全协议和算法的组合。在IPSec安全联盟协商期间,两端协商使用一 个特定的变换集合来保护特定的数据流。 可以定义多个变换集合,然后在一个加密映射表中设置这些变换集合中的一个或多个。 - 27 - 08-安全配置 在IKE协商安全联盟时,两端会查找双方一致的变换集合,当找到这样的变换集合后, 安全联盟使用这变换集合保护保护特定的数据流。 对于手工建立的安全联盟,两端之间不存在协商过程,所以双方必须指定相同的变换集 合。 如果对变换集合的定义进行改变,那么改变将只被应用于设置了这个变换集合的加密映 射表中。改变将不被应用于现存的安全联盟,但它将被应用于随后建立新安全联盟的协 商中。如果想让这些新的设置马上生效,可以通过使用clear crypto sa命令将安全联盟 数据库部分或全部清除。 在全局配置态下使用下列命令来定义一个变换集合: 命令 目的 crypto ipsec transform-set transform-set-name 定义一个变换集合执行此命令将进入加密变 换配置态。 transform-type transform1 [transform2[transform3]] 设置变换类型。 mode [tunnel | transport] (可选)改变变换集合的模式。模式设置只对 那些源和目标地址都是IPSec两端地址的通信 有用;对于所有其他通信无效(所有其他通信 都只在隧道模式下进行)。 exit 退出加密变换配置态。 下表为可行的变换组合: 为变换集合选择变换:可行的变换组合 AH 变换中选择一种 ESP加密变换中选择一种 ESP验证变换中选择一种 变换 描述 变换 描述 变换 描述 ah-md5-hmac 带MD5 (HMAC变量) 的AH验证算 法 esp-des 采用DES的 ESP加密算法 esp-md5-hmac 带MD5 (HMAC变 量)的ESP验 证算法 ah-sha-hmac 带SHA (HMAC变 量)的AH验证 算法 esp-3des 采用3DES的 ESP加密算法 esp-sha-hmac 带SHA (HMAC变 量)的ESP验 证算法 4.3.6 创建加密映射表 关于加密映射表 为IPSec创建的加密映射表包括以下部分: null 哪些通信应该受到IPSec保护(加密访问列表) null 将受到一个安全联盟集合保护的数据流间隔 - 28 - 08-安全配置 null 用于IPSec通信的对端地址 null 用于IPSec通信的本端地址 null 对这些通信应用哪些IPSec安全策略(从一个或多个变换集合中选择) null 安全联盟是手工建立还是通过IKE建立 null 其他可能用于定义IPSec安全联盟的参数 具有相同加密映射表名(但映射序列号不同)的加密映射表组成一个加密映射表集合。 然后将加密映射表集合应用到接口上;这样,所有通过这接口的IP报文都将被应用在接 口上的加密映射表集合进行判断。如果一个加密映射表匹配到应该受到保护的出报文, 并且加密映射表指定了使用IKE,将根据该加密映射表中所包含的参数与对端进行安全联 盟协商。如果加密映射表使用手工建立的安全联盟,那么安全联盟在进行配置时就必须 已经被建立好了。如果是本地发起协商,那么将使用加密映射表中指定的策略来创建发 送给IPSec对端。如果是IPSec对端发起协商,那么本地路由器将在加密映射表检查对 端所提供的策略,再决定是接受还是拒绝对端的申请。 为了使IPSec两端之间的IPSec通信能够顺利进行,两端的加密映射表必须包含相兼容 的配置语句。 当两端尝试建立安全联盟时,双方都必须至少有一条加密映射表和对端的一条加密映射 表相兼容。两条加密映射表相兼容必须至少满足以下条件: null 加密映射表必须包含兼容的加密访问列表。 null 双方的加密映射表都必须确定对端地址。 null 加密映射表必须至少有一个相同的变换集合。 4.3.7 应该建立多少个加密映射表 对于单个接口可以只应用一个加密映射表集合。加密映射表集合中包含了 IPSec/ipsec-isakmp,或IPSec/ipsec-manual的组合。如果想要将相同的策略应用到多 个接口上,也可以让多个接口共享同一加密映射表集合。 如果为给定的接口创建多个加密映射表,那么就要使用映射的seq-num参数将这些映射 排序;seq-num值越小,优先级越高。在配有这个加密映射表集合的接口上,首先用高 优先级的映射对通信进行判断。如果存在下面几种情况中的一种,就必须为一个接口创 建多个加密映射表: null 如果不同的数据报文将由不同的IPSec对端进行处理。 null 如果想要对不同类型的数据报文应用不同的IPSec安全策略;例如,想让一组子网 间的通信使用验证,而另一组子网间的通信既使用验证又使用加密。在这种情况下, 不同类型的通信应该在两个不同的访问列表中被定义,并且必须为每个加密访问列 表创建一个单独的加密映射表。 - 29 - 08-安全配置 null 如果使用手工方式建立安全联盟,并且想要指定多个访问列表,那么必须创建不同 的访问列表(每一个包含一条permit),并且为每一个访问列表指定一个单独的加 密映射表集合。 4.3.8 创建手工方式的加密映射表 手工安全联盟的使用是本地路由器和IPSec对端管理员之间预先安排的结果。双方可能 想在开始的时候使用手工安全联盟,然后再使用基于IKE的安全联盟上来,或者远端系 统可能不支持IKE。如果不用IKE来建立安全联盟,那么就不存在安全联盟的协商过程, 所以为了IPSec顺利处理报文,两端的配置必须完全一样。 路由器可以同时支持手工建立安全联盟,又支持IKE建立安全联盟。 要创建创建手工方式的加密映射表,在全局配置态下使用下列命令: 命令 目的 crypto map map-name seq-num ipsec-manual 创建或修改的加密映射表,执行此命令将进入 加密映射表配置态。 match address access-list-name 设置IPSec访问列表。这个访问列表决定哪些 报文受到IPSec的保护,哪些报文不受到此加 密映射表中定义的IPSec安全性的保护。 set peer ip-address 设置IPSec对端地址。受到IPSec保护的报文将 被发往这个地址。 set transform-set transform-set-name 设置变换集合(对于ipsec-manual加密映射 表,只能指定一个变换集合。对于 ipsec-isakmp,可以指定不多于六个加密映射 表集合)。 set security-association inbound ah spi hex-key-data和set security-association outbound ah spi hex-key-data 如果指定的变换集合包括了AH协议,则要使 用这条命令来为出和入的报文设置AH安全参 数索引(SPIs)和密钥。这条命令手工指定了 AH安全联盟将用于保护报文。 set security-association inbound esp spi [cipher hex-key-data ][authenticator hex-key-data]和set security-association outbound esp spi [cipher hex-key-data] [authenticator hex-key-data] 如果指定的变换集合包括了ESP协议,那么就 要使用这条命令来为出和入报文设置ESP安 全参数索引和密钥。如果变换集合包括了ESP 加密算法,必须给出加密密钥。如果变换集合 包括了ESP验证算法,必须给出验证密钥。这 条命令手工指定了ESP安全联盟将用于保护 通信。 exit 退出加密映射表配置态,并返回全局配置态。 重复这些步骤来建立其他加密映射表。 4.3.9 创建使用IKE的加密映射表 要创建使用IKE来建立安全联盟的加密映射表,在全局配置态下使用下列命令: 命令 目的 - 30 - 08-安全配置 crypto map map-name seq-num ipsec-isakmp 创建或修改的加密映射表,执行此命令将进入 加密映射表配置态。 match address access-list-name 设置IPSec访问列表。这个访问列表决定哪些 报文受到IPSec的保护,哪些报文不受到此加 密映射表中定义的IPSec安全性的保护。 set peer ip-address 设置IPSec对端地址。受到IPSec保护的报文将 被发往这个地址。 set transform-set transform-set-name1 [transform-set-name2...transform-set-name6] 设置变换集合, 可以指定不多于六个加密映射 表集合(第一个具有最高优先级)。 set security-association lifetime seconds seconds或set security-association lifetime kilobytes kilobytes (可选)设置加密映射表进行协商的安全联盟 的生命周期。 set pfs [group1 | group2] (可选)指定IPSec使用此加密映射表申请新 安全联盟时,同时申请理想转发安全机制,还 要求从IPSec对端发回的申请中必须有PFS要 求。 exit 退出加密映射表配置态,并且返回全局配置 态。 重复这些步骤来建立其他加密映射表。 4.3.10 将加密映射表集合应用于接口 要使配置的加密映射表开始工作,要将加密映射表集合应用于接口。路由器使用该加密 映射表集合来判断通过此接口的所有报文,并在安全联盟协商过程中,对不同的受保护 的报文使用特定的策略。 要将加密映射表集合应用于接口,在接口配置态下使用下面的命令。 命令 目的 crypto map map-name 将加密映射表集合应用于接口。 可以将同一加密映射表集合应用于多个接口。 4.4 IPSec配置示例 下面是使用IKE协商安全联盟的IPSec配置的例子。 关于IKE,请参考“配置IKE”文档。 1. 定义加密访问列表 ip access-list extended aaa permit ip 130.130.0.0 255.255.0.0 131.131.0.0 255.255.0.0 - 31 - 08-安全配置 2. 定义变换集合 crypto ipsec transform-set one transform-type esp-des esp-sha-hmac 3. 加密映射表设置IPSec访问列表和变换集合,并指定加密报文发往何处(IPSec对端): crypto map toShanghai 100 ipsec-isakmp match address aaa set transform-set one set peer 192.2.2.1 4. 将加密映射表作用于接口 interface Serial1/1 ip address 192.2.2.2 crypto map toShanghai - 32 - 08-安全配置 第5章 配置Internet密钥交换安全协议 5.1 概述 本章讨论如何配置Internet密钥交换(IKE)协议。IKE是一种密钥管理协议标准,与IPSec 标准一起使用。IPSec可以不使用IKE,但IKE通过提供额外功能、灵活性及使IPSec 更易于配置,增强了IPSec的功能。IKE是一种混合协议,该协议在因特网安全联盟及 密钥管理协议(ISAKMP)框架内实现了Oakley密钥交换和Skeme密钥交换(ISAKMP、 Oakley和Skeme是IKE实现的安全协议)。 5.1.1 IKE概要 IKE自动地处理IPSec安全联盟(SA),无需预先手工配置而进行IPSec安全通信。IKE 提供了下列好处: null IKE避免了在通信两端的加密映射表中用手工设置所有的IPSec安全参数。 null IKE允许指定IPSec安全联盟的生命周期。 null IKE允许在IPSec会话期间更换加密密钥。 null IKE允许IPSec提供抗重播服务。 null IKE允许在端与端之间动态验证。 5.1.2 支持的标准 路由器实现了下列标准: IPSec——IPSec是一种开放标准体制,在端与端之间提供数据加密、数据完整性以及数 据验证服务。IPSec在IP层提供这些安全服务,使用IKE来协商协议及算法,并生成IPSec 所用的加密和验证密钥。IPSec可以用来保护一对主机之间、一对安全网关之间或者一个 安全网关与一台主机之间的一个或多个数据流。 IKE——该混合协议在ISAKMP框架内实现了Oakley和Skeme密钥交换协议,可以与 其它协议一起使用,而其最初实现的目的是与IPSec协议一起使用。IKE提供了IPSec 两端的验证,协商IPSec密钥以及协商IPSec安全联盟。 ISAKMP——该协议框架定义了有效负荷的格式,实现密钥交换协议的机制以及安全协会 的协商。 Oakley——一种密钥交换协议,定义如何得到验证的密钥材料。 Skeme——一种密钥交换协议,定义如何得到验证的密钥材料,并可进行快速密钥更新。 - 33 - 08-安全配置 5.1.3 术语 DES——数据加密标准(DES)。 3DES——3DES用于对包数据进行加密。 Diffie-Hellman——一种公钥加密协议,允许两个组在非保密的通信信道上建立共享的秘 密。Diffie-Hellman与IKE一起使用建立会话密钥。支持768比特和1024比特 Diffie-Hellman组。 MD5(HMAC变量)——MD5是一种散列算法。HMAC是一个用于对数据进行验证的加 密散列变量。 SHA(HMAC变量)——SHA是一种散列算法。HMAC是一个用于对数据进行验证的加 密散列变量。 5.2 IKE配置任务列表 要配置IKE,执行下面各节的任务。开头三节的任务是必需的;其余的是可选的,这取决 于所配置的参数。 null 确保访问列表与IKE兼容 null 创建IKE策略 null 配置预共享密钥 null 清除IKE连接(可选) null IKE诊断(可选) 5.3 IKE配置任务 5.3.1 确保访问列表与IKE兼容 IKE协商使用端口500的UDP。确保UDP端口500的通信在IKE和IPSec使用的接口 上不被禁止。在有些情况下需要在访问列表中增加一条规则来明确地允许UDP端口500 的报文。 5.3.2 创建IKE策略 必须在IPSec两端创建IKE策略。IKE策略定义了在IKE协商期间使用的安全参数组合。 要创建IKE策略,注意以下问题: null 创建策略的原因 - 34 - 08-安全配置 null 策略中定义的参数 null IKE如何达成匹配的策略 null 确定策略参数值 null 创建策略 null IKE策略所需要的额外配置 1. 创建策略的原因 IKE协商必须被保护起来,因此每个IKE协商从达成公共的IKE策略开始。这个策略描 述了使用哪些安全参数来保护后续的IKE协商。 在两端达成公共的一个IKE策略后,该策略的安全参数由每端建立的ISAKMP安全联盟 标识,在协商期间这些安全联盟将应用于所有的后续IKE通信。 必须在每端创建多个具有不同优先级的策略,以确保至少有一个策略能够匹配远端的策 略。 2. 策略中定义的参数 在每个IKE策略中定义五个参数: 参数 接受的值 关键字 缺省值 加密算法 56位 DES-CBC 168位3DES-CBC des 3des 56位 DES-CBC 哈希算法 SHA-1 MD5 sha md5 SHA-1 验证方法 预共享密钥 RSA签名 RSA 实时加密 pre-share rsa-sig rsa-encr 预共享密钥 Diffie-Hellma n组标识 768比特 Diffie-Hellman 1024比特Diffie-Hellman 1 2 768比特Diffie-Hellman 安全联盟的生 命周期 可以指定60到86400秒之间任 意数目的秒数 - 86400 秒 (一天) 3. IKE如何达成匹配的策略 当IKE协商开始时,IKE寻找一个在两端都一样IKE策略。发起协商端将其所有的策略 发给远端,而远端会试着寻找一个匹配的策略。远端通过将其最高优先级的策略与所接 收到的策略相比较来寻找匹配项。远端按优先级的次序(最高优先级优先)检查其每一 种策略直到发现一个匹配的策略。 - 35 - 08-安全配置 当来自两端的策略均包括相同的加密、哈希、验证及Diffie-Hellman参数值,并且当远端 的策略所指定的生命周期小于或等于所比较的策略生命周期时作出匹配选择。 如果没有发现可接受的匹配策略,IKE拒绝协商,从而不会建立IPSec。 如果找到一种匹配的策略,IKE将完成协商,并且创建IPSec安全联盟。 注意: 根据策略中指定的验证方法的不同,需要对参数进行额外的配置。 4. 确定策略参数值 加密算法有两个选择:56位DES-CBC和168位3DES-CBC。3DES-CBC更安全。 哈希算法有两个选项:SHA-1和MD5。MD5的摘要信息较少,要比SHA-1快一些。针 对MD5的攻击有一种被证明是成功的(但极其困难);然而,由IKE使用的HMAC变体 能阻止这种攻击。 验证方法有三种选择:目前只支持预共享密钥。 Diffie-Hellman组有两种选择:768比特或1024比特Diffie-Hellman。1024比特 Diffie-Hellman较难于攻克,但要求更多的CPU时间来执行。 安全联盟的生命周期可以设置为60到86400秒之间任意值。生命周期越短,IKE协商将 越安全。对于较长的生命期,后面IPSec安全联盟可以更快地建立起来。关于该参数的 更多信息以及如何使用该参数,参见lifetime(IKE策略)命令的命令描述。 5. 创建策略 可以创建多重IKE策略,每条策略对应不同的参数值组合。对所创建的每一条策略,须 分配唯一的优先权(1到10000,1是最高优先级)。 可以在每台终端上配置多重策略——然而至少这些策略中的某条策略必须包含与远程终 端上某个策略完全一样的加密、哈希、验证及Diffie-Hellman参数值。 如果不配置任何策略,则路由器使用缺省的策略,该策略总是设为最低优先级,并包含 每个参数的缺省值。 要配置一条策略,在全局配置模式下使用下面的命令: 命令 目的 crypto isakmp policy priority 创建IKE策略(每条策略唯一地由优先级标识) (该命令使你进入ISAKMP策略配置态)。 encryption {des|3des} 指定加密算法。 hash {sha | md5} 指定哈希算法。 authentication { pre-share|rsa-sig|rsa-encr} 指定验证方法。 group {1 | 2} 指定Diffie-Hellman组。 lifetime seconds 指定IKE安全联盟的生命周期。 - 36 - 08-安全配置 exit 退出ISAKMP策略配置态。 show crypto isakmp policy (可选)显示所有存在的IKE策略(在管理态 使用该命令)。 如果不给参数指定数值,则使用缺省值。 注意: 在发出show running命令时,缺省策略和所配置的策略的缺省值并不在配置中显示出来。 要查看缺省策略和所配置的策略内的缺省值,使用show crypto isakmp policy命令。 6. IKE策略所需要的额外配置 预共享密钥验证方法:如果在策略中指定预共享密钥作为验证方法,则必须配置预共享 密钥。 5.3.3 配置预共享密钥 在IPSec两端指定共享密钥。注意所给的预共享密钥是在两端共享的。在两端上应当指 定相同的密钥。 要在配置预共享密钥,在全局配置态下使用下面的命令: 命令 目的 crypto isakmp key keystring peer-address 在本端:指定与远端一起使用的共享密钥。 crypto isakmp key keystring peer-address 在远端:指定与本端一起使用的共享密钥。 5.3.4 清除IKE连接(可选) 如果需要,可以清除已经存在的IKE连接。要清除IKE连接,在管理态使用下面的命令: 命令 目的 show crypto isakmp sa 显示存在的isakmp SA 。 clear crypto isakmp [map map-name | peer ip-address] 清除isakmp连接。 5.3.5 IKE诊断(可选) 要在IKE诊断中获取帮助,在管理态使用下面的命令: 命令 目的 show crypto isakmp policy 浏览IKE策略的参数。 show crypto isakmp sa 浏览所有当前IKE安全联盟。 debug crypto isakmp 显示关于IKE事件的debug消息。 在完成IKE配置后,可以配置IPSec。参见“配置IPSEC” - 37 - 08-安全配置 5.4 IKE配置示例 本例创建了两个IKE策略,其中策略10为最高优先级,策略20为下一个优先级,已知 的缺省优先级为最低的优先级。该策略同时创建一条预共享密钥,与IP地址为 192.168.1.3的远端策略一起使用。 crypto isakmp policy 10 encryption des hash md5 authentication pre-share group 2 lifetime 5000 crypto isakmp policy 20 authentication pre-share lifetime 10000 crypto isakmp key 1234567890 192.168.1.3 在上面示例中,策略10的encryption des在书面配置中将不会出现,因为这是加密算法 参数的缺省值。 如果用这个配置发出show crypto isakmp policy命令,则输出可为下面的形式: Protection suite of priority 10 encryption algorithm: DES - Data Encryption Standard (56 bit keys). hash algorithm: Message Digest 5 authentication method: Pre-Shared Key Diffie-Hellman group: #1 (768 bit) lifetime: 5000 seconds Protection suite of priority 20 encryption algorithm: DES - Data Encryption Standard (56 bit keys). hash algorithm: Secure Hash Standard authentication method: Pre-Shared Key Diffie-Hellman group: #1 (768 bit) lifetime: 10000 seconds Default protection suite encryption algorithm: DES - Data Encryption Standard (56 bit keys). hash algorithm: Secure Hash Standard authentication method: Pre-Shared Key Diffie-Hellman group: #1 (768 bit) lifetime: 86400 seconds。 - 38 - 08-安全配置 第6章 Web认证配置 6.1 概述 6.1.1 理解Web认证 路由器的Web认证是一种接入控制方式。用户在使用web认证的时候,通过浏览器与路 由器内置的portal server进行交互,完成登录和登出操作,不需要安装其他客户端软件。 1. 设备角色 使用web认证时网络中设备角色如图 6-1: null client:需要通过路由器访问网络的用户计算机,用户计算机要求配备有网络浏览 器、具有作为DHCP client的能力,能发起DNS查询; null DHCP server:负责为用户分配IP地址; null AAA server:AAA server保存用户的权限信息,并可对用户的网络访问进行记账。 null router:配备web认证功能的路由器,路由器控制用户的访问权限,并充当用户 和AAA server之间的代理;路由器也可以直接用作DHCP服务器; router AAA server (RADIUS) client client DHCP server 3Com 图 6-1 2. 认证流程 根据不同的配置策略,本路由器的web认证流程可能会和dhcp、dns等协议相关,其典 型流程见图 6-2,概括起来,有以下几个步骤: - 39 - 08-安全配置 (1) DHCP server 通过路由器向用户发送DHCP确认报文(当然,这之前,需要由用 户发起DHCP地址分配过程),路由器记识别并记录该用户; (2) 用户使用浏览器访问任意的web站点(浏览器中的URL栏的主机部分填写域名而 不是IP地址),这个过程会触发用户计算机的DNS请求; (3) DNS server向用户发查询应答,路由器俘获该查询应答报文,并将解析出的地址 更改为路由器内置的portal server的地址; (4) 用户浏览器在获得DNS解析后继续请求过程,路由器收到请求后,根据不同的认 证方式返回相应的认证页面; (5) 用户提交自己的认证请求;路由器获得用户提交的信息后通过AAA server认证用 户,如果认证通过,视配置需要通知AAA server开始记账;路由器放开用户的网 络访问权限,并向用户返回包含认证成功信息的页面,同时路由器还返回一个keep alive页面,该页面周期性地向路由器发送用户在线通知报文; (6) 用户通过浏览器发出登出请求,路由器通知AAA server停止记账,并取消用户的 网络访问权限; (7) 在用户通过认证之后和登出之前,路由器会周期性地检测来自用户的在线通知报 文,如果在预定的时间之内收不到该报文,则认为用户已经非正常离线,于是路由 器通知AAA server停止记账,并取消用户的网络访问权限; 以上步骤,随配置策略和用户的操作的不同会略有差异。比如,如果用户在通过认证之 前直接访问路由器的portal server,那么和DNS相关的过程是不会出现的。 - 40 - 08-安全配置 client switch dhcp server DNS server AAA server DHCP ACK DNS REQUERY DNS RESPONSE http request http response(ask user to login) http request(login) authentication request authentication result start accounting request start accounting result authentication result http request(keepalive) http response(keepalive response) http request(logout) stop accounting request http response(logout) 图 6-2 6.1.2 规划web认证 规划网络拓扑 路由器以路由接口(以太网类型)作为设置认证属性的单位,凡是激活了web认证功能的 路由接口,通过该接口接入的跨接口的网络访问皆受web认证的控制。DHCP server、 DNS server、AAA server应该通过未激活web认证功能的接口和路由器连接,和外部网 络连接的接口也不应该激活web认证功能,视配置需要,可以把DHCP server、DNS server、AAA server和外部网络通过同一个未激活web认证功能的接口和路由器连接。 典型的网络拓扑见图 6-3: - 41 - 08-安全配置 router DNS server DHCP server AAA server user useruser useruser internet l2switch l2switch 3Com 图 6-3 6.2 配置web认证 6.2.1 全局配置 1. 配置portal server 地址 在路由器的全局配置态下运行下面的命令配置portal server的IP地址: 命令 目的 web-auth portal-server A.B.C.D 配置portal server IP地址。 2. 配置认证持续时间 authtime决定用户的认证过程可以持续的最长时间,如果超过这个时间还未通过认证, 路由器将终止认证过程。 在路由器的全局配置态下运行下面的命令配置以秒为单位的认证持续时间: 命令 目的 Web-auth authtime <60-65535> 配置认证持续时间。 - 42 - 08-安全配置 3. 配置用户发送在线通知报文的周期 路由器通过用户浏览器周期性发送的在线通知报文来检测用户是否在线。 在路由器的全局配置态下运行下面的命令配置以秒为单位的发送周期: 命令 目的 Web-auth keep-alive <60-65535> 配置在线通知报文发送周期。 4. 配置检测用户非正常下线的时长 当在设定的时长之内没有收到用户浏览器发送的在线通知报文,路由器将认为该用户非 正常下线。 在路由器的全局配置态下运行下面的命令配置以秒为单位的检测时长: 命令 目的 Web-auth holdtime [60-65535] 配置检测用户非正常下线的时长。 6.2.2 接口配置 1. 配置认证方法列表 每个接口可以使用不同的认证方法列表,缺省情况下,使用名为“default”的认证方法 列表。 在路由器的接口配置态下运行下面的命令配置认证方法列表: 命令 目的 Web-auth authentication word 配置接口的认证方法列表。 2. 配置记账方法列表 每个接口可以使用不同的记账方法列表,缺省情况下,使用名为“default”的记账方法 列表。 在路由器的接口配置态下运行下面的命令配置记账方法列表: 命令 目的 Web-auth accounting word 配置接口的记账方法列表。 6.2.3 使能web认证 确认全局配置和接口配置符合需求后可以在指定的路由接口上使能web认证。 在路由器的接口配置态下运行下面的命令使能web认证: - 43 - 08-安全配置 命令 目的 Web-auth enable 使能web认证。 6.3 监控和维护web认证 6.3.1 查看全局配置 为了查看web认证的全局配置参数可以在路由器的特权模式下运行下面的命令: 命令 目的 show web-auth 查看全局配置。 6.3.2 查看接口配置 为了查看指定接口的web认证配置参数可以在路由器的接口配置模式下运行下面的命 令: 命令 目的 show web-auth interface [Ethernet | FastEthernet] 查看接口配置。 6.3.3 查看用户状态 为了查看当前正在认证或者通过路由器接入网络的用户状态,可以在路由器的特权模式 下运行下面的命令: 命令 目的 show web-auth user 查看用户状态。 6.3.4 强行踢出用户 为了强行终止某个用户的认证过程或者中断已经通过认证的用户的网络访问,可以在路 由器的全局配置态下运行下面的命令: 命令 目的 web-auth kick-out user-IP 强行踢出用户。 - 44 - 08-安全配置 6.4 web认证配置示例 6.4.1 外置DHCP Server web认证配置 网络拓扑 见图 6-4 router DNS server DHCP server (192.168.20.1) AAA server (192.168.20.2) user1 user3user2 internet F0/2 F0/4 l2switch l2switch F0/1 F0/3 3Com 图 6-4网络拓扑 路由器配置 aaa authentication login auth-weba radius aaa accounting network acct-weba start-stop radius ! interface FastEthernet0/1 ip address 172.16.20.1 255.255.255.0 no ip directed-broadcast ip helper-address 192.168.20.1 web-auth accounting acct-weba web-auth authentication auth-weba web-auth enable ! interface FastEthernet0/2 ip address 192.168.20.41 255.255.255.0 - 45 - 08-安全配置 no ip directed-broadcast ! interface FastEthernet0/3 ip address 10.168.20.1 255.255.255.0 ip helper-address 192.168.20.1 web-auth accounting acct-weba web-auth authentication auth-weba web-auth enable ! interface FastEthernet0/4 ip address 210.1.119.101 255.255.255.248 radius server 192.168.20.2 auth-port 1812 acct-port 1813 radius key 405.10 ! ip dhcpd enable ip http server ! web-auth portal-server 192.168.20.41 web-auth holdtime 3600 web-auth authtime 600 web-auth keep-alive 180 (略路由配置) 6.4.2 内置DHCP Server web认证配置 网络拓扑 类似图 6-4,去掉外置DHCP Server。 路由器配置 aaa authentication login auth-weba radius aaa accounting network acct-weba start-stop radius ! interface FastEthernet0/1 ip address 172.16.20.1 255.255.255.0 web-auth accounting acct-weba web-auth authentication auth-weba web-auth enable ! interface FastEthernet0/2 ip address 192.168.20.41 255.255.255.0 no ip directed-broadcast ! - 46 - 08-安全配置 - 47 - interface FastEthernet0/3 ip address 10.168.20.1 255.255.255.0 web-auth accounting acct-weba web-auth authentication auth-weba web-auth enable ! interface FastEthernet0/4 ip address 210.1.119.101 255.255.255.248 radius server 192.168.20.2 auth-port 1812 acct-port 1813 radius key 405.10 ! ip dhcpd pool webp-a network 172.16.20.0 255.255.255.0 range 172.16.20.10 172.16.20.254 default-router 172.16.20.1 ! ip dhcpd pool webp-b network 10.168.20.0 255.255.255.0 range 10.168.20.10 10.168.20.254 default-router 10.168.20.1 ! ip dhcpd enable ip http server ! web-auth portal-server 192.168.20.41 web-auth holdtime 3600 web-auth authtime 600 web-auth keep-alive 180 (略路由配置)