本站点使用Cookies,继续浏览表示您同意我们使用Cookies。 Cookies和隐私政策>

首页 信息速查 产品智能选型 IP知识百科

什么是TACACS

终端访问控制器控制系统TACACS(Terminal Access Controller Access-Control System),用于与UNIX网络中的身份验证服务器进行通信、决定用户是否有权限访问网络。各厂商在TACACS协议的基础上进行了扩展,例如思科公司开发的TACACS+和华为公司开发的HWTACACS。TACACS+和HWTACACS均为私有协议,在发展过程中逐步替代了原来的TACACS协议,并且不再兼容TACACS协议。

TACACS的产生背景

TACACS是一种起源于二十世纪八十年代的AAA(认证、授权、计费)协议,用于与UNIX网络中的身份验证服务器进行通信、决定用户是否有权限访问网络。

1984年,美国军事研究机构为了在MILNET中实现身份验证自动化,设计了最早的TACACS协议(RFC 927),使已经在一台主机登录的用户无需在同一网络的其他主机上重新验证身份。后来,思科公司在其网络产品中支持TACACS,最终对TACACS进行扩展(RFC 1492),扩展后的TACACS协议被称为Extended TACACS(XTACACS)。与最初的TACACS相比,XTACACS还实现了认证、授权和计费流程的相互独立,并且认证和授权可以在不同的服务器上进行,这无疑有助于管理员对用户进行精细管理和控制。

随着网络的发展,管理员对TACACS在服务器上部署的灵活性,和控制用户命令权限的灵活性都提出了更高的要求。因此,在TACACS和XTACACS的基础上,各厂商再次进行扩展,例如,华为公司开发了HWTACACS,思科公司开发了TACACS+。

TACACS、TACACS+和HWTACACS的关系

与早期的TACACS相比,HWTACACS和TACACS+主要有如下两点改进:
  • 认证、授权和计费过程都相互独立,认证和授权可以在不同的服务器上进行。这使得HWTACACS在服务器部署方面更加灵活。例如,可以用一台HWTACACS服务器A进行认证,另外一台HWTACACS服务器B进行授权。并且,授权时无需再重复进行认证的过程,仅需通知服务器B,用户已在服务器A上成功认证。
  • 支持根据用户级别对执行的每一条命令行通过服务器进行授权,只有授权通过,命令行才允许执行。因此,更便于管理员进行设备管理。

由于TACACS和XTACACS使用UDP协议传输,而HWTACACS和TACACS+使用TCP协议传输,因此HWTACACS和TACACS+都无法与TACACS或XTACACS兼容。

而HWTACACS和TACACS+的认证流程与实现方式是一致的,因此设备使用HWTACACS协议时支持与TACACS+服务器对接。但HWTACACS属性和TACACS+属性在字段定义和解释上存在区别,因此属性之间不一定能够兼容。例如HWTACACS和TACACS+都支持属性tunnel-id,且都解释为建立隧道时的隧道本端用户名,HWTACACS设备就可以与TACACS+服务器对接。HWTACACS支持属性uppeak,但TACACS+不支持,那么TACACS+设备就不会解析该属性,无法对接属性信息。

如果您需要查询哪些属性的字段定义和解释一致,HWTACACS属性信息请参考华为设备的相关文档。以V200R020C10版本的华为S5700系列交换机为例,可以参考用户接入与认证配置指南中的“HWTACACS属性”。TACACS+属性信息请参考思科网站的文档“TACACS Attribute-Value Pairs”。

HWTACACS/TACACS+与RADIUS的区别

RADIUS是最常用的AAA协议,HWTACACS与其相比有很多相似的地方。例如都采用Client/Server结构,都使用密钥机制对用户信息进行加密以及都具备扩展性。

HWTACACS和TACACS+在数据传输、加密方式、认证授权和事件记录等方面与RADIUS存在差异。如下图所示。

HWTACACS/TACACS+ vs RADIUS
HWTACACS/TACACS+ vs RADIUS

HWTACACS认证、授权、计费流程

下面以Telnet用户使用HWTACACS为例,说明用户进行认证、授权和计费的过程。基本消息交互流程如下图所示。
HWTACACS认证、授权、计费流程
HWTACACS认证、授权、计费流程
在整个过程中的基本消息交互流程如下:
  1. Telnet用户请求登录设备。
  2. HWTACACS客户端收到请求之后,向HWTACACS服务器发送认证开始报文。
  3. HWTACACS服务器发送认证回应报文,请求用户名。
  4. HWTACACS客户端收到回应报文后,向用户询问用户名。
  5. 用户输入用户名。
  6. HWTACACS客户端收到用户名后,向HWTACACS服务器发送认证持续报文,其中包括了用户名。
  7. HWTACACS服务器发送认证回应报文,请求密码。
  8. HWTACACS客户端收到认证回应报文,向用户询问密码。
  9. 用户输入密码。
  10. HWTACACS客户端收到密码后,向HWTACACS服务器发送认证持续报文,其中包括了密码信息。
  11. HWTACACS服务器发送认证回应报文,指示用户通过认证。
  12. HWTACACS客户端向HWTACACS服务器发送授权请求报文。
  13. HWTACACS服务器发送授权回应报文,指示用户通过授权。
  14. HWTACACS客户端收到授权回应报文,向用户输出设备的配置界面。
  15. HWTACACS客户端向HWTACACS服务器发送计费开始请求报文。
  16. HWTACACS服务器发送计费开始回应报文,指示计费开始请求报文已经收到。
  17. 用户请求断开连接。
  18. HWTACACS客户端向HWTACACS服务器发送计费结束请求报文。
  19. HWTACACS服务器发送计费结束回应报文,指示计费结束请求报文已经收到。
词条统计
  • 作者: 朱玥
  • 最近更新: 2021-10-28
  • 浏览次数: 13220
  • 平均得分:
分享链接到: