返回列表 发帖

认证、授权与记账(一)

认证(Authentication),授权(Authorization)和记账(Accounting),即AAA,是Cisco设备实现安全特性的整体框架。很多情况下AAA框架与其他安全特性进行配合,提高设备的安全性和安全配置的扩展性。

AAA框架是由很多组件组成的,本节只关注对正在访问路由器用户的认证和授权,限制他们在路由器上的行为,并对这些行为进行记录,配置AAA外部安全服务器超出本书范围,不做过多介绍。

同时,在网络内如果有多台的安全服务器,我们可以设置一个服务器组,来保证安全服务器的高可用性,在这里就不做过多的介绍了。

AAA框架简介

认证特性提供给安全设备来授权用户登录设备或接入网络,包括登录访问以及其它类型的访问,如PPP访问。在使用认证特性时,需定义一个或多个认证方法,供路由器在认证用户合法性的时候依次使用,例如使用外部AAA安全服务器和当AAA服务器不可用时使用本地用户数据库来进行认证。简单地说,用户认证保证的是你是谁

授权特性用来在用户被认证之后限制用户的权限。授权组件用来限制一个用户的行为或者指定一个用户能使用的服务。简单的说,用户授权保证的是你能做什么

记账特性用来对认证和记账行为进行事件的记录。可以记录对路由器访问的历史用户以及路由器上的状态改变。记账组件保持这些时间的日志记录。记账组件要求必须有一台外部安全AAA服务器来储存实际的记账记录。简单的说,用户记账则记录了你做了些什么

配置AAA需要进行以下的配置步骤:

步骤 1 打开AAA功能

步骤 2 如果需要使用外部AAA安全服务器,则需要配置相关参数;或使用本地认证数据库进行配置;

步骤 3 定义一个或多个用于执行认证的方法;

步骤 4 配置授权来限制用户在访问网络设备时的权限;(可选)

步骤 5 配置记账保持跟踪在路由器行为的日志。(可选)

AAA安全协议介绍

集中实施外部的AAA安全服务器时,我们经常使用到Cisco安全接入控制服务器(Cisco Secure Access Control ServerCisco Secure ACS)。集中实施AAA提供以下的优点:

l 高扩展性;

l 多台AAA服务器冗余;

l 实施的灵活性。

如果使用AAA安全服务器来集中管理AAA安全策略,需要在路由器和AAA安全服务器之间使用一种安全协议,用来交换AAA消息。AAA安全协议主要包括以下三种协议:

(1) 增强型终端访问控制器访问控制系统(Terminal Access Controller Access Control System plusTACACS+

(2) 远程用户拨入服务(Remote Authentication Dial-In User ServiceRadius

(3) Kerberos

3种协议中Tacacs+Radius比较常用,下面的部分分别对Tacacs+Radius进行介绍,Kerberos不做介绍。

一、 TACACS+

TACACS+Cisco私有协议,模块化的定义了三种AAA的组件:一台或多台的AAA服务器用来处理这些组件。AAA服务器用于TACACS+服务的默认服务端口是TCP 49TACACS+为到安全服务器的访问信息提供了额外的安全,以及在路由器和服务器之间的消息加密,保护AAA信息传输不被泄露。

如果想在路由器上使用TACACS+,需要执行如下的AAA配置:

步骤 1 使用aaa new-model命令打开AAA功能

步骤 2 分别使用tacacs-server hosttacacs-server key命令指定TACACS+服务器的地址和密钥

步骤 3 为认证,使用aaa authentication命令指定外部AAA安全服务器使用TACACS+协议;

步骤 4 为授权,使用aaa authorization命令指定外部AAA安全服务器使用TACACS+协议;(可选)

步骤 5 为记账,使用aaa accounting命令指定外部AAA安全服务器使用TACACS+协议(可选)

当使用aaa new-model命令打开AAA功能之后,设置TACACS+,以便使安全服务器通过TACACS+协议进行通信。使用如下两条命令进行配置:

hostname (config) # tacacs-server host IP_address [single-connection] [port port][timeout seconds][key key]

hostname (config) # tacacs-server key key

tacacs-server host命令指定服务器的地址。

single-connection参数使路由器建立一个路由器到安全服务器的专用TCP连接。如果在安全服务器上改变了端口则需要在路由器上使用port参数更改端口号。

timeout参数决定路由器与TACACS+服务器的超时时间,当达到该值并且路由器配置了其他的TACACS+服务器时,路由器将尝试其他的安全服务器。

如果配置了多台安全服务器,并且使用不同的加密密钥,那么需要使用key参数为每台安全服务器指定加密密钥。。如果使用相同的密钥则可使用tacacs-server key命令统一指定。当两条命令同时配置时,tacacs-server host命令的key参数的优先级高于tacacs-server key命令。

注意:外部安全服务器和路由器上定义的密钥必须匹配,否则不能加密彼此的信息。

二、 Radius

TACACS+协议相同,Radius协议也是用来实现设备和安全服务器之间AAA信息的一种安全协议。Radius是一个开放的标准,在RFC 2865-28692026中定义,同时Cisco也不断的对Radius协议进行加强,增加了另外的Radius特性和功能。

Radius协议使用UDP协议来共享设备和安全服务器之间的信息,它要求使用额外的措施来确保发送信息被目的设备收到,路由器负责传输所有的认证信息到Radius服务器,Radius服务器负责认证用户并将所有的信息返回给发起请求的设备。Radius协议在路由器和安全服务器之间使用一个共享密钥来加密和解密口令,这不同于TACACS+加密整个AAA消息。

Radius协议也存在着其他的局限性:使用UDP协议,不如TCP协议可靠;不支持对路由器命令的授权;不支持AppleTalk远程访问协议,NetBIOS帧控制协议,NetWare异步服务接口和X.25 PAD协议等;Radius不能被模块化使用,网络设备必须使用Radius的所有AAA功能,而不能只使用一些特定的功能;Radius只支持单项的认证,而不支持双向的认证;Radius将认证和授权功能合并成了认证,使得AAA的功能不够灵活。

在以下的情况下适合使用Radius协议:

l 网络环境内有来自多厂商的网络设备,并且需要单一的安全协议来实现它们之间的通信;

l 需要实施增强的记账特性,如记录用户登录设备或者拨入网络的时间;

l 某些智能卡认证系统只支持Radius

l 允许用户发起到设备的访问之前使用预认证手段。如认证代理等。

如果想在路由器上使用Radius,需要执行如下的AAA配置:

步骤 1 使用aaa new-model命令打开AAA功能

步骤 2 分别使用Radius-server hostRadius-server key命令指定RADIUS服务器的地址和密钥

步骤 3 为认证,使用aaa authentication命令指定外部AAA安全服务器使用RADIUS协议;

步骤 4 为授权,使用aaa authorization命令指定外部AAA安全服务器使用RADIUS协议;(可选)

步骤 5 为记账,使用aaa accounting命令指定外部AAA安全服务器使用RADIUS协议(可选)

指定路由器使用Radius协议的基本命令如下:

hostname (config) # Radius-server host IP_address [auth-port port] [accout-port port][timeout seconds] [retransmit retries][key key]

hostname (config) # tacacs-server timeout seconds

hostname (config) # tacacs-server retransmit retries

hostname (config) # tacacs-server key key

radius-server host命令、timeout参数、radius-server keyTACACS+的相关配置类似,就不多做描述,只针对特殊的参数做讲解。

auth-port参数指定服务器正用来监听的Radius认证消息的端口,默认情况下认证和授权信息使用UDP端口1645,记账信息使用UDP端口1646,可使用acct-port参数进行修改,同时在RFC 2026中规定,Radius也可以使用UDP端口1812作为认证和授权所使用的端口,UDP端口1813作为记账使用端口,所以较新版本的RADIUS服务器都会对这4个端口实施监听,在网络环境中我们需要保证基于这4个端口的流量没有被ACL和防火墙所过滤。如果网络环境中,一台设备运行多个Radius服务时,需要使用auth-portacct-port参数对端口进行修改。

retransmit参数说明路由器使用Radius协议尝试连接安全服务器三次后不成功则尝试使用其他方法,可以修改此值加大或减小重试的次数。

Radius还有很多的命令可以用来修改属性,一般来说都是在连接专门运行Radius协议的服务器时使用,多数用于拨号等功能。本书旨在对基本的AAA功能进行介绍,如登录的访问控制和命令的授权等,在这里就不对其他命令进行介绍。

三、 TACACS+Radius的比较

分别对TACACS+Radius有了基本的了解之后,我们现在对两种协议做一个比较:

TACACS+Radius的比较

项目

TACACS+

Radius

不同之处

连接

TCP

UDP

UDP的消息开销较小;但是TCP提供具有更可靠的连接

加密方式

有效负载

口令

TACACS+更为安全,因为TACACS+加密所有的有效负载,而Radius只加密口令,其他的有效负载都使用明文传输

认证和授权

分离

结合

Radius合并了认证和授权功能,TACACS+是分开的,这意味着TACACS+提供了更为灵活的应用

命令的授权

支持

不支持

TACACS+支持对用户的命令授权,Radius不支持

消息处理方式

每条消息都做请求处理

一次性推送所有策略

使用TACACS+协议时当客户向安全服务器请求认证或者授权信息的时候,每一次都向安全服务器提交请求。而使用Radius协议时,当用户认证通过时,用户所使用的所有权利都推送下去

WAN协议

PPPARAPNetBIOSNASIX.25 PAD

PPPSLIP

TACACS+更适合多协议远程拨入的情况,而Radius只支持PPPSLIP

记账功能

基本的

高级的

相比TACACS+来说Radius提供了更多更高级的记账选项

扩展性

Radius为公有协议,具有更高扩展性,TACACS+Cisco私有协议

返回列表 回复 发帖