访问控制是用来控制哪些人可以访问网络服务器以及用户在网络上可以访问哪些服务的。身份认证、授权和记帐(AAA)是进行访问控制的一种主要的安全机制。
AAA基本原理
AAA 是Authentication Authorization and Accounting (认证、授权和计费)的简称,它提供了对认证、授权和计费功能进行配置的一致性框架,锐捷网络设备产品支持使用 AAA。
AAA 以模块方式提供以下服务:
z 认证:验证用户是否可获得访问权,可选择使用RADIUS协议或Local。身份认证是在允许用户访问网络和网络服务之前对其身份进行识别的一种方法。通过定义一个身份认证方法的命名列表并将其应用于各个接口来配置 AAA。 方法列表定义了身份认证类型和执行顺序。在执行任何一个已定义的身份认证之前,必须将方法列表应用于一个特定的接口。默认方法列表是一个例外。如果没有其他的方法列表被定义,则默认方法列表自动应用于所有接口。已定义的方法列表将覆盖默认方法列表。 除了本地的、线路密码和允许身份认证之外的所有身份认证方法必须通过 AAA 来定义。 z 授权:授权用户可使用哪些服务。AAA 授权通过定义一系列的属性对来实现,这些属性对描述了用户被授权执行的操作。这些属性对可以存放在网络设备上,也可以远程存放在 RADIUS 安全服务器上。所有授权方法都必须通 过 AAA 定义。当 AAA 授权启用时,自动应用于网络设备上的所有接口。
z 记帐:记录用户使用网络资源的情况。当 AAA 记帐被启用时,网络设备便开始以统计记录的方式向 RADIUS 安全服务器发送用户使用网络资源的情况。每个记帐记录都是以属性对的方式组成,并存放在安全服务器上,这些记录可以通过专门软件进行读取分析,从而实现对用户使用网络资源的情况进行记帐、统计、跟踪。所有的记帐方法必须通过AAA来定义。当AAA记帐启用时,自动应用于网络设备所有接口。
尽管AAA是最主要的访问控制方法,RGNOS同时也提供了在AAA范围之外的简单控制访问,如本地用户名身份认证、线路密码身份认证等。不同之处在于它们提供对网络保护程度不一样,AAA提供更高级别的安全保护。
使用 AAA 有以下优点: z 灵活性和可控制性强 z 可扩充性 z 标准化认证 z 多个备用系统
AAA基本原理
AAA 可以对单个用户(线路)或单个服务器动态配置身份认证、授权以及记帐类型。通过创建方法列表来定义身份认证、记帐、授权类型,然后将这些方法列表应用于特定的服务或接口。
方法列表
由于对用户进行身份认证可以使用不同的方法,您需要使用方法列表定义一个使用不同方法对用户进行身份认证的前后顺序。方法列表可以定义一个或多个用于身份认证的安全协议,这样可以确保在第一个方法失败时,有备用系统用于身份认证。RGNOS 使用方法列表中列出的第一个方法认证用户的身份,如果该方法无应答,则选择方法列表中的下一个方法。这个过程一直持续下去,直到与列出的某种身份认证方法成功地实现通信或用完方法列表。如果用完方法列表而还没有成功实现通信,则身份认证宣告失败。
上图说明了一个典型的 AAA 网络配置,它包含两台安全服务器:R1 和 R2 是RADIUS 服务器。 假设系统管理员已定义了一个方法列表,在这个列表中,R1 首先被用来获取身份信息,然后是 R2,最后是访问服务器上的本地用户名数据库。如果一个远程 PC用户试图拨号进入网络,网络访问服务器首先向R1查询身份认证信息,假如用户通过了R1的身份认证,R1将向网络访问服务器发出一个ACCEPT应答,这样用户即获准访问网络。如果 R1 返回的是 REJECT 应答,则拒绝用户访问网络,断开连接。如果 R1 无应答,网络访问服务器就将它看作 TIMEOUT,并向 R2 查询身份认证信息。这个过程会一直在余下的指定方法中持续下去,直到用户通过身份认证、被拒绝或对话被中止。如果所有的方法返回 TIMEOUT,则认证失败,连接将被断开。
AAA配置基本步骤
首先您必须决定要采用哪种安全解决方案,而且需要评估特定网络中的潜在安全风险,并选择适当的手段来阻止未经授权的访问。有关安全风险评估和可能采取的安全解决方案请参考“安全性概述”。我们建议,在可能的情况下,尽量使用 AAA确保网络安全。
AAA配置过程概述
如果理解了AAA运作的基本过程,配置AAA就相对简单了。在锐捷网络设备上配 置 AAA 地步骤如下: 1) 启用 AAA,使用全局配置层命令 aaa new-model。 2) 如果决定使用安全服务器,请配置安全协议的参数,如 RADIUS。 3) 定义身份认证方法列表,使用 aaa authentication 命令。 4) 如有需要,可将该方法列表应用于特定的接口或线路。
启用AAA
要使用 AAA安全特性,必须首先启用 AAA。 要启用 AAA,在全局配置模式下执行以下命令: 命令 作用 Ruijie(config)# aaa new-model 启用 AAA 停用AAA 要停用 AAA,在全局配置模式下执行以下命令: 命令 作用 Ruijie(config)# no aaa new-model 停用 AAA 后续的配置过程 启用 AAA 以后,便可以配置与安全方案相关的其他部分,下表说明了可能要完成 的配置任务以及相关内容所在的章节。 AAA 访问控制安全解决方案方法
配置任务 步骤 所在章节 配置本地登录(Login)身份认证 3 配置认证 定义认证方法列表 3 配置认证 将方法列表应用于特定的接口或线路 4 配置认证 配置 RADIUS 安全协议参数 2 配置 RADIUS 启用 RADIUS 授权 5 配置授权 如果使用 AAA 实现身份认证,请参考“配置认证”中的相关部分。
配置认证 身份认证是在允许用户使用网络资源以前对其进行识别,在大多数情况下,身份 认证是通过 AAA 安全特性来实现的。我们建议,在可能的情况下,最好使用 AAA 来实现身份认证。
定义AAA认证方法列表 要配置 AAA 身份认证,首先得定义一个身份认证方法的命名列表,然后各个应用使用已定义列表进行认证。方法列表定义了身份认证的类型和执行顺序。对于已定义的身份认证方法,必须有特定的应用才会被执行。默认方法列表是唯一的例外。所有应用在未进行配置时使用默认方法列表。 方法列表仅是定义将要被依次查询,以认证用户身份的身份认证方法列表。方法列表使您能够指定一个或多个用于身份认证的安全协议,这样确保在第一种方法失败的情况下,可以使用身份认证备份系统。RGNOS 使用第一种方法认证用户的身份,如果该方法无应答,将选择方法列表中的下一种方法。 这个过程一直持续下去,直到与列出的某种身份认证方法成功地实现通信或用完方法列表。如果用完方法列表而还没有成功实现通信,则身份认证宣告失败。
方法列表举例 在典型 AAA 网络配置图中,它包含 2 个服务器:R1 和 R2 是 RADIUS 服务器。假设系统管理员已选定一个安全解决方案,NAS 认证采用一个身份认证方法对Telnet 连接进行身份认证:首先使用 R1 对用户进行认证,如果无应答,则使用R2 进行认证;如果 R1、R2 都没有应答,则身份认证由访问服务器的本地数据库完成,要配置以上身份认证列表,执行以下命令:
命令 作用 configure terminal 进入全局配置模式 aaa authentication login default group radius local 配置一个默认身份认证方法列表,其中 “default”是方法列表的名称。这个方法 列表中包含的协议按照它们将被查询的 顺序序列在名称之后。为所有应用的默 认方法列表。
如果系统管理员希望该方法列表仅应用于一个特定的 Login 连接,必须创建一个命名方法列表,然后将它应用于特定的连接。下面的例子说明了如何将身份认证方法列表仅应用于线路 2:
命令 作用 configure terminal 进入全局配置模式 aaa new-model 打开 AAA 开关 aaa authentication login test group radius local 在全局配置模式下,定义了一个名为 “test”的方法列表。 switch(config)# line vty 2 进入线路 2 配置层 switch(config-line)# login authentication test 在 line 配置模式下,将名为“test”方法 列表应用于线路。
当远程PC用户试图Telnet访问网络设备(NAS),NAS首先向R1查询身份认证信息,假如用户通过了 R1 的身份认证,R1 将向 NAS 发出一个 ACCEPT 应答,这样用户即获准访问网络。如果 R1 返回的是 REJECT 应答,则拒绝用户访问网络,断开连接。如果R1无应答,NAS就将它看作TIMEOUT,并向R2查询身份认证信息。这个过程会一直在余下的指定方法中持续下去,直到用户通过身份认证、被拒绝或对话被中止。如果所有的服务器(R1、R2)返回 TIMEOUT,则认证由 NAS 本地数据库完成。
配置AAA身份认证的通用步骤 要配置 AAA身份认证,都必须执行以下任务: z 使用 aaa new-model 全局配置命令启用 AAA。 z 如果要使用安全服务器,必须配置安全协议参数,如 RADIUS。具体的配置 请参见“配置 RADIUS”。 z 使用 aaa authentication 命令定义身份认证方法列表。 z 如果可能,将方法列表应用于某个特定的接口或线路。 配置AAA 线路身份认证 本节将具体介绍如何配置 RGNOS 所支持的 AAA 身份认证方法:
在很多情况下,用户需要通过 Telnet 访问网络访问服务器(NAS),一旦建立了这种连接,就可以远程配置 NAS,为了防止网络未经授权的访问,要对用户进行身份认证。 AAA 安全服务使网络设备对各种基于线路的身份认证变得容易。不论您要决定使用哪种线路身份认证方法,只要使用 aaa authentication login 命令定义一个或多个身份认证方法列表,并应用于您需要进行线路身份认证的特定线路就可以了。 要配置 AAA 线路身份认证,在全局配置模式下执行以下命令:
命令 作用 configure terminal aaa new-model 启用 AAA。 aaa authentication login {default |list-name} method1 [method2...] 定义一个认证方法列表,如果需 要定义多个方法列表,重复执行 该命令。 line vty line-num 进入您需要应用AAA身份认证的 线路。 login authentication {default|list-name} 将方法列表应用线路。
关键字 list-name 用来命名创建身份认证方法列表,可以是任何字符串;关键字method 指的是身份认证实际算法。仅当前面的方法返回 ERROR(无应答),才使用后面的其他身份方法;如果前面的方法返回 FAIL(失败),则不使用其他认证方法。为了使认证最后能成功返回,即使所有指定方法都没有应答,可以在命令行中将 none指定为最后一个身份认证方法。
例如,在下例中,即使 RADIUS 服务器超时(TIMEOUT),仍然能够通过身份认证:aaa authentication login efault group radius none
关键字 描述 local 使用本地用户名数据库进行身份认证 none 不进行身份认证 group radius 使用 Group RADIUS 进行身份认证
上表列出了 RGNOS 支持的 AAA 线路身份认证方法。
使用本地数据库进行线路身份认证
要配置使用本地数据库进行线路身份认证时,首先需要配置本地数据库,RGNOS 支持基于本地数据库的身份认证,建立用户名身份认证,请在全局配置模式下,根据具体需求执行以下命令:
命令 作用 configure terminal 进入全局配置模式 username name [password password]或 username name [access-class number] 使用口令建立用户名身份认证 或通过访问列表建立用户身份 认证 username name [privilege level] 为用户设置权限级别(可选) username name [autocommand command] 设置用户登录以后自动执行的 命令(可选) end 退出到特权模式 show running-config 确认配置
定义本地认证方法列表并应用认证方法列表可使用以下命令:
命令 作用 configure terminal 进入全局配置模式 aaa new-model 打开 AAA 开关 aaa authentication login {default | list-name} local 定义本地方法列表 end 退出到特权模式 show aaa method-list 确认配置的方法列表 configure terminal 进入全局配置模式 line vty line-num 进入线路配置模式 login authentication {default | list-name} 应用方法列表 end 退出到特权模式
show running-config 确认配置
使用RADIUS进行线路身份认证 要配置用 RADIUS 认证服务器进行线路身份认证,首先要配置 RADIUS 服务器, RGNOS 支持基于 RADIUS 服务器的身份认证,配置 RADIUS 服务器,请在全局 配置模式下,根据具体需求执行以下命令:
命令 作用 configure terminal 进入全局配置模式 aaa new-model 打开 AAA 开关 radius-server host ip-address [auth-port port] [acct-port port] 配置 RADIUS 服务器 end 退出到特权模式 show radius server 显示 RADIUS 服务器
配置好 RADIUS 服务器后,在配置 RADIUS 进行身份认证以前,请确保与RADIUS 安全服务器之间已经成功进行了通信,有关 RADIUS 服务器配置的信息,请参见“配置 RADIUS”。 现在就可以配置基于 RADIUS 服务器的方法列表了,在全局配置模式下执行以下命令:
命令 作用 configure terminal 进入全局配置模式 aaa new-model 打开 AAA 开关 aaa authentication login {default | list-name} group radius 定义本地方法列表 end 退出到特权模式 show aaa method-list 确认配置的方法列表 configure terminal 进入全局配置模式 line vty line-num 进入线路配置模式 login authentication {default | list-name} 应用方法列表 end 退出到特权模式 show running-config 确认配置
配置认证示例
下面示例演示如何配置网络设备,使用”RADIUS+本地身份”进行认证。 switch(config)# aaa new-model switch(config)# username ruijie password starnet switch(config)# radius-server host 192.168.217.64 switch(config)# aaa authentication login test group radius local switch(config)# line vty 0 switch(config-line)# login authentication test switch(config-line)# end switch# show running-config ! aaa new-model ! ! aaa authentication login test group radius local username ruijie password 0 starnet ! radius-server host 192.168.217.64 ! line con 0 line vty 0 login authentication test line vty 1 4 ! !
上面例子中,访问服务器使用 RADIUS 服务器(IP 为 192.168.217.64)对登录的用户进行认证,如果 RADIUS 服务器没有应答,则使用本地数据库进行身份认证。 配置授权 AAA授权使管理员能够对用户可使用的服务进行控制。启用AAA授权服务以后,网络设备通过本地或服务器中的用户配置文件信息对用户的会话进行配置。完成授权以后,该用户只能使用配置文件中允许的服务。 RGNOS支持对包括PPP、SLIP等网络连接进行网络授权。支持以下两种不同的授权方法: z RADIUS 授权方法―― 网络访问服务器向 RADIUS 安全服务器请求授权信息。RADIUS 安全服务器存放着定义用户特定的权限的属性对。 z 本地授权方法―― 网络访问服务器访问本地数据库(通过 username定义)给用户授予指定的权限。在本地数据库中,只能定义比较有限的功能,适用于对用户进行简单的授权。
授权的准备工作 在配置 AAA授权以前,必须完成下述任务: z 启用 AAA 服务。关于如何启用 AAA服务,请参见“AAA 概述”。 z 配置 AAA 身份认证。授权一般是在用户通过身份认证之后进行,并且依赖于身份认证正常的运行。关于 AAA 身份认证的信息,请参见“配置身份认证”。 z (可选)配置安全协议参数。如果需要使用安全协议进行授权,需要配置安全协议参数。RGNOS 支持 ADIUS,关于 RADIUS 的信息,请参见“配置RADIUS”。 z (可选)如果需要使用本地授权,则需要使用 username 命令定义用户权限。
配置授权列表 要启用 AAA授权,请在全局配置模式下执行以下命令: 命令 作用 configure terminal 进入全局配置模式 aaa new-model 打开 AAA 开关 aaa authorization network{default | list-name} method1 [method2|…] 启用 AAA 授权,并定义授 权方法。
RADIUS授权 要使用 RADIUS 安全服务器对用户进行授权,可以使用带 RADIUS 关键字的 aaa authorization 命令。关于如何配置 RADIUS 的信息。 命令 作用 configure terminal 进入全局配置模式 aaa new-model 打开 AAA 开关
radius-server host ip-address [auth-port port] [acct-port port] 配置 RADIUS 服务器 end 退出到特权模式 show radius server 显示 RADIUS 服务器 configure terminal 进入全局配置模式 aaa authorization network {default | list-name} group radius 并定义RADIUS授权方法。
本地授权 要使用本地授权,可以使用带关键字 local 的 aaa authorization 命令。如果选择了本地授权,网络访问服务器查询本地用户数据库,来决定允许用户使用的功能。通过使用全局配置命令 username来定义与本地授权相关的功能。 命令 作用 configure terminal 进入全局配置模式 aaa new-model 打开 AAA 开关 username name privilege level 为用户设置权限级别 end 退出到特权模式 show running-config 确认配置 configure terminal 进入全局配置模式 aaa authorization network {default | list-name} local 并定义本地授权方法。
none授权 如果对用户不进行授权,可以使用带关键字 none的 aaa authorization 命令。 命令 作用 configure terminal 进入全局配置模式 aaa new-model 打开 AAA 开关 aaa authorization network {default | list-name} none 并定义 none 授权。
配置网络授权示例 下例演示如何进行网络授权。
switch# configure terminal switch(config)# aaa new-model switch(config)# radius-server host 192.168.217.64 switch(config)# username ruijie privilege 6 switch(config)# aaa authorization network test group radius local none switch(config)# end switch# show running-config aaa new-model ! aaa authorization network test group radius local none ! username ruijie password 0 starnet username ruijie privilege 6 ! radius-server host 192.168.217.64
配置记帐 AAA 记帐功能够跟踪用户使用的服务和网络资源。启用记帐功能以后,网络访问服务器或设备实时地以属性对的方式将用户访问网络的情况发送给 RADIUS 安全服务器。您可以使用一些分析软件对这些数据进行分析,实现对用户的活动进行记费、审计以及跟踪等功能。 记帐类型 RGNOS 目前支持以下记帐类型: z 网络记帐
网络记帐 网络记帐提供了关于用户会话的记账信息,包括报文的个数及字节数、IP 地址、用户名等。
记帐的准备工作 在配置 AAA记帐以前,必须完成以下任务: z 启用 AAA 安全服务。关于如何启用 AAA 的信息,请参见“AAA 概述”。 z 定义安全协议参数。RGNOS 目前支持 RADIUS 安全协议,关于如何配置RADIUS,请参见“配置 RADIUS”。
配置记帐 要配置 AAA记帐功能,请在全局配置模式下执行以下命令: 命令 作用 configure terminal 进入全局配置模式 aaa new-model 打开 AAA 开关 radius-server host ip-address [auth-port port] [acct-port port] 配置 RADIUS 服务器 end 退出到特权模式 show radius server 显示 RADIUS 服务器 configure terminal 进入全局配置模式 aaa accounting network acct start-stop group radius 配置 AAA 网络记帐功能
监视AAA用户 要查看当前登录用户的信息,请在特权用户模式下执行命令: 命令 作用 show aaa user { id | all } 查看当前 AAA 用户信息
配置记帐示例 以下是使用 RADIUS 进行记帐的一个例子: switch# config switch(config)# aaa new-model switch(config)# radius-server host 192.168.217.64 switch(config)# aaa accounting network acct start-stop group radius switch(config)# end switch# show running-config ! aaa new-model ! aaa accounting network acct start-stop group radius ! username ruijie password 0 starnet username ruijie privile