介绍
TACACS+ and RADIUS是两种用来控制接入网络的两种安全协议。The RADIUS 在 RFC 2865 中描述,Cisco 对两种协议都提供良好的支持。比较两种协议的目的不是为了让用户去使用TACACS+。你应该根据实际的需求来决定到底使用哪种协议。.
RADIUS背景
RADIUS 是一种使用AAA协议的接入服务器。用来区分安全的远程接入或者非授权的接入,RADIUS 包括三个组件:
使用UDP/IP的数据帧格式的协议
服务器端
客户端
服务器端一般运行在中央计算机的客户站点上,客户端拨号接入服务器并被分配使用网络,Cisco在the Cisco IOS Software Release 11.1 和后面的版本开始支持Radius 客户端。
客户端/服务器端模式
网络接入服务器 (NAS) 作为RADIUS的客户。客户端负责响应传递用户的信息到RADIUS服务器,并且根据RADIUS服务器的响应,进行下一步的动作。RADIUS 服务器响应收到的用户连接,认证用户请求,并返回必要的信息到客户端。RADIUS 服务器也能作为客户端的代理到其他的认证服务器。
网络上的安全
客户端和RADIUS服务器之间的通信是经过预先分配的密码进行认证的,这些密码不会发送到网络上。此外,任何客户端和RADIUS服务器的用户密码是经过加密发送的,这些密码不会被不安全的网络的某些人探测到。
灵活的认证机制
RADIUS服务器支持多种用户的认证机制。若要提供的是用户的用户名和密码,RADIUS支持PPP, Password Authentication Protocol (PAP), 或者Challenge Handshake Authentication Protocol (CHAP),UNIX 登录,或其他的认证机制。
可用的服务端
RADIUS存在许多不同的商业或者免费的服务端。Cisco 的RADIUS服务端包括Cisco Secure ACS for Windows,Cisco Secure ACS for UNIX,and Cisco Access Registrar.
比较TACACS+和RADIUS
本章节比较了TACACS+和RADIUS的一些特性
UDP 和 TCP
RADIUS 使用UDP端口而TACACS+使用TCP端口。TCP比UDP提供了额外的高级的特性。TCP提供的是[size=2]可靠的[/size]传输,而UDP则是[size=2]尽力服务。[/size]RADIUS要求额外的其他程序像“重传请求”和“超时”来弥补尽力服务传输的不足。但是它缺乏像TCP传输那种内置的支持:
TCP 对于收到的请求提供了单独的确认机制。只要这个请求在一个适当的网络往返时延内,无论负载多少,这个认证机制都会进行。
TCP 提供了即使的差错检测,并且进行重置(RST),你能够凭此迅速的发现long-lived TCP连接差错。而UDP则不会告诉你服务已经中断,缓慢或者不存在了。
TCP能够保持存活,对于实际请求的服务中断也能够检测到。连接的多个服务能够保持同步。并且你只需要发送消息到你要查询的那个服务。
TCP具有良好的扩展性和适应性,包括网络拥塞。
数据包的加密
RADIUS仅仅加密客户端发送到服务器端的access-request的数据包的密码。而剩下的数据包都是不加密的。其他的信息像用户名,授权服务,记账服务都能被第三方截获。
TACACS+ 加密数据包的整体而只留下标准的TACACS+ 的头部。而包头中有一个区域会指示数据包是否加密。如果要进行debugging,数据包也能够不加密。一般情况下,整个数据报都会因为安全而进行加密。
认证和授权
RADIUS包括了认证和授权,RADIUS服务器发送到客户端的access-accept packets的数据包包括了授权信息。这使他很难结合认证和授权。
TACACS+ 使用AAA构架,使他能够分离AAA服务。这使TACACS+能够分理认证解决方案,只使用TACACS+的授权和记账功能。例如,使用Kerberos的认证,TACACS+的授权和记账。当一个NAS在Kerberos服务器上进行认证后,它可以直接到TACACS+服务器上请求授权,和不用再进行认证了。NAS会通知TACACS+服务器,它已经再Kerberos服务器上认证成功了,TACACS+服务器便会提供授权信息。
在一个会话中,如果要进行额外的授权,接入服务器会检查TACACS+服务器来判断用户是否获得了足够的权利去使用某条命令。这样能够在接入服务器上对使用的命令提供了很好的控制,简化了认证的机制。
多协议支持
RADIUS 不支持下面的协议:
AppleTalk Remote Access (ARA) protocol
NetBIOS Frame Protocol Control protocol
Novell Asynchronous Services Interface (NASI)
X.25 PAD connection
TACACS+ 提供多协议的支持。
管理路由器
RADIUS 不允许用户控制哪条命令能在路由器上运行,哪条不能。因此RADIUS对于管理路由器或者其他终端服务来说没用。
TACACS+ 支持两种方式来对路由器能够使用的命令来进行授权,一种是对单用户的,另一种是对一个组的。第一种方式是先为命令分配优先级,路由器再到TACACS+服务器上认证某个用户是否属于某个命令优先级。第二种方式是在TACACS+服务器上明确指明对于用户或者某个用户组,允许使用哪些命令。
兼容性
由于不同的RFC对于RADIUS的解释不同, 所以即使遵守RADIUS RFC对兼容性也不能保证。尽管不同的厂商都实施RADIUS客户端标准,当并不意味着他们之间是兼容的。Cisco 使用了绝大部分的的RADIUS属性,将来还会不断增长。如果用户在他们的服务中仅仅使用标准的RADIUS属性,那么不同的厂商间的这些相同的属性就能够兼容。然而,许多厂商扩展了他们自己的属性,如果用户使用了这些厂商的扩展属性,那么就不能兼容了。
通信
因为上文中区分了TACACS+和RADIUS的不同性,客户端和服务器之间的通信。下面的例子描述了使用TACACS+,RADIUS来管理路由器的认证,像授权,命令授权(RADIUS不行),记账等,客户端和服务器之间的通信。
TACACS+ 通信
下面的例子进行了登陆认证,授权,使用TACACS+对用户Telnet到路由器的命令开始和停止记账,最后退出路由器:
RADIUS 通信
下面的例子进行了登陆认证,授权,并对用户Telnet到路由器,运行命令进行开始和停止记账,最后退出路由器(其他的管理服务对于RADIUS来说不允许):

设备支持

下表列出了TACACS+ 和RADIUS AAA 支持的设备和平台。
Cisco Device
TACACS+ authentication
TACACS+ authorization
TACACS+ accounting
RADIUS authentication
RADIUS authorization
RADIUS accounting
Cisco Aironet 1
12.2(4)JA
12.2(4)JA
12.2(4)JA
all Access-points
all Access-points
all Access-points
Cisco IOS Software 2
10.33
10.33
10.33 3
11.1.1
11.1.1 4
11.1.1 5
Cisco Cache Engine
--
--
--
1.5
1.5 6
--
Cisco Catalyst switches
2.2
5.4.1
5.4.1
5.1
5.4.1 4
5.4.1 5
Cisco CSS 11000 Content Services Switch
5.03
5.03
5.03
5.0
5.0 4
--
Cisco CSS 11500 Content Services Switch
5.20
5.20
5.20
5.20
5.20 4
--
Cisco PIX Firewall
4.0
4.0 7
4.2 8,5
4.0
5.2 7
4.2 8,5
Cisco Catalyst 1900/2820 switches
8.x enterprise 9
--
--
--
--
--
Cisco Catalyst 2900XL/3500XL switches
11.2.(8)SA6 10
11.2.(8)SA6 10
11.2.(8)SA6 10
12.0(5)WC5 11
12.0(5)WC5 11, 4
12.0(5)WC5 11, 5
Cisco ××× 3000 Concentrator 6
3.0
3.0
--
2.0 12
2.0
2.0 12
Cisco ××× 5000 Concentrator
--
--
--
5.2X 12
5.2X 12
5.2X 12