TACACS

功能介绍

TACACS概述

TACACS(Terminal Access Controller Access Control System,终端访问控制器访问控制系统)是一种基于C/S结构的分布式AAA协议。TACACS+基于TACACS协议作了功能增强,用于为用户提供认证、授权和记账服务。下文内容针对TACACS+进行介绍。

TACACS+与RADIUS皆能提供AAA安全服务,相比RADIUS协议,TACACS+具有以下优点:

基于TCP协议实现,网络传输更可靠。

对报文主体进行加密,而非仅对密码进行加密,安全性更高。

认证和授权流程分离,远程部署时认证服务器和授权服务器可分离。

支持对配置命令进行授权和记账。

工作原理

TACACS+报文

TACACS+报文结构

image.png

图1-1TACACS+报文结构中各个字段含义见表1-1。

TACACS+报文字段含义

字段

长度

含义

Major Version

4比特

主要TACACS+版本号

Minor Version

4比特

次要TACACS+版本号

Packet Type

1字节

报文类型,主要报文类型取值如下:

0x01:认证报文

0x02:授权报文

0x03:记账报文

Sequence Number

1字节

当前会话中的数据包序列号(会话中的第一个TACACS+数据包序列号必须为1,后续每个数据包序列号逐次加一。客户机只发送奇序列号数据包,TACACS+ Daemon只发送偶序列号数据包)

Flags

1字节

表示数据包是否加密

Session ID

4字节

TACACS+会话ID

Length

4字节

TACACS+数据包主体长度(不包括头部)

报文交互流程

TACACS+报文交互流程图

image.png

如图1-2,TACACS+协议基本流程分为认证、授权、记账三个过程。其中NAS设备作为TACACS+客户端向TACACS+服务器申请安全服务。

(1)认证过程

a、用户向NAS设备发起登录请求。

b、NAS设备接收到用户请求,向TACACS+服务器发送认证开始报文,发起认证请求。

c、TACACS+服务器响应认证请求,并要求NAS设备提供用户名。

d、NAS设备要求用户终端提供用户名信息。

e、用户输入用户名,并由终端发送给NAS设备。

f、NAS设备将用户名通过认证持续报文发送给TACACS+服务器。

g、TACACS+服务器收到用户名信息,继续要求NAS设备提供用户密码。

h、NAS设备要求用户终端提供密码信息。

i、用户输入密码并通过终端发送给NAS设备。

j、NAS设备将密码通过认证持续报文发送给TACACS+服务器。

k、TACACS+服务器收到密码信息,验证通过后,向NAS设备回复认证通过的消息。

(2)授权过程

a、NAS设备向TACACS+服务器发起授权请求。

b、TACACS+服务器响应授权请求,向NAS回复授权通过的信息。

c、NAS设备收到授权通过信息,允许用户终端登录NAS设备作授权范围内的相关配置。

(3)记账过程

a、NAS设备向TACACS+服务器发送记账开始请求。

b、TACACS+服务器收到记账请求后开始记账,并回复NAS设备已收到记账请求的信息。

c、若用户退出时,NAS收到用户退出的信息后通知TACACS+服务器记账结束。

d、TACACS+收到记账结束报文后结束记账,并向NAS设备回复已结束记账的信息。

协议规范

配置任务概览

TACACS+配置任务如下:

配置TACACS+基本功能

(可选)配置TACACS+可达性检测

(可选)配置TACACS+服务器组

配置TACACS+基本功能

功能简介

配置设备与TACACS+服务器的通信参数,保证设备与服务器之间通信正常,设备能够正确向TACACS+服务器发起AAA认证、授权、记账等功能的申请和应答。

配置限制与指导

配置TACACS+基本功能只是保障设备与TACACS+服务器能够正确通信,若需要为用户提供AAA安全服务,仍需要在使用的AAA方法列表中引用该TACACS+服务器。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

启用AAA。

aaa new-model

配置TACACS+服务器。

tacacs-server host { ipv4-address | ipv6-address } [ port port-number ] [ test username username ] [ idle-time idle-time ] [ timeout timeout ] [ key [ 0 | 7 ] key ]

缺省情况下,未配置TACACS+服务器。

配置服务器时可同时指定该服务器的共享密钥,若未指定,则使用全局共享密钥。

(可选)配置设备与TACACS+服务器的全局共享密钥。

tacacs-server key [ 0 | 7 ] key

缺省情况下,未配置设备与TACACS+服务器的全局共享密钥。

(可选)配置TACACS+报文的源地址。

ip tacacs source-interface interface-type interface-number

缺省情况下,未配置TACACS+报文的源地址,该地址由网络层配置。

通过指定报文出口,选择出口上的第一个IP地址作为TACACS+报文的源地址。

(可选)配置TACACS+服务器的超时时间。

tacacs-server timeout timeout

缺省情况下,设备与TACACS+服务器通信时,等待服务器的超时时间为5秒。

配置TACACS+可达性检测

功能简介

TACACS+服务器的可达性状态只有可达或者不可达两种,设备不会向处于不可达状态的TACACS+服务器发送接入用户的认证、授权和记账请求,除非该TACACS+服务器所在TACACS+服务器组的所有服务器均为不可达状态。

设备上维护着各个TACACS+服务器的可达性状态。在业务处理时,设备优先选择状态为可达的服务器,以提高TACACS+业务的处理性能。

设备支持对指定的TACACS+服务器进行主动探测来判断服务器是否可达。若配置主动探测功能,设备将定期向该TACACS+服务器发送探测请求(认证请求或者记账请求),可达状态下主动探测间隔为60分钟,不可达状态下主动探测间隔为1分钟。

配置限制与指导

若要为指定的TACACS+服务器开启主动探测功能,在配置TACACS+服务器时需要做以下配置。

配置该TACACS+服务器的测试用户名。

至少配置一个该TACACS+服务器的被测端口(认证端口或者记账端口)。

判定TACACS服务器不可达的标准需要同时满足以下两个条件:

设备在不可达标准的超时时间内未收到来自TACACS+服务器的正确响应报文。

设备连续向同一个TACACS+服务器发送的请求报文次数达到不可达标准的超时次数。

对处于不可达状态的TACACS+服务器,满足以下任一条件,则认为该TACACS+服务器进入可达状态。

设备收到来自该TACACS+服务器的正确响应。

该TACACS+服务器处于不可达状态超过tacacs-server deadtime配置的时间,并且该TACACS+服务器没有启用主动探测功能。

在设备上更新该TACACS+服务器的认证端口或者记账端口。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置设备判定TACACS+安全服务器不可达的标准。

tacacs-server dead-criteria { time timeout tries tries-number | time timeout | tries tries-number }

缺省情况下,设备判定安全服务器不可达的标准为:服务器不可达60秒,连续超时10次。

(可选)配置设备停止向不可达状态的TACACS+服务器发送请求报文的时长。

tacacs-server deadtime deadtime

缺省情况下,即使TACACS+安全服务器不可达,设备仍然往该TACACS+服务器发送请求。

如果设备对一台TACACS+安全服务器启用了主动探测功能,那么tacacs-server deadtime的时间参数对该TACACS+安全服务器不起作用。

配置TACACS+服务器组

功能简介

每个TACACS+服务器组可添加一台或多台TACACS+服务器,整个服务器组作为一个整体为用户提供AAA服务。

配置限制与指导

TACACS+安全服务是AAA服务的一种,需要结合AAA功能使用,作为AAA方法列表中的一个方法为用户提供安全服务。

配置认证、授权和记账方法列表时,可以分别指定不同的服务器组。

在自定义服务器组中,只能指定并应用默认服务器组中的服务器。

TACACS+服务器组支持指定VRF,在使用指定VRF的服务器组时,设备与远程服务器通信使用的源地址要在对应VRF中查找获取。但若使用命令ip tacacs+ source-interface指定请求报文的源接口时,则从该源接口获取到的IP地址优先于在VRF中查找得到的IP地址。

服务组名不能使用预定义的关键字tacacs+。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置TACACS+服务器组。

aaa group server tacacs+ group-name

缺省情况下,未配置TACACS+服务器组。

通过对TACACS+服务器进行分组,认证、授权、计帐可以使用不同的服务器组来完成。

配置TACACS+服务器组引用服务器。

server { ipv4-address | ipv6-address }

缺省情况下,服务器组未配置服务器。

(可选)配置TACACS+服务器组的VRF。

ip vrf forwarding vrf-name

缺省情况下,未配置TACACS+服务器组的VRF。

TACACS+服务器组中配置的VRF,必须是在全局配置模式下通过vrf definition命令配置的合法VRF名字。

(可选)配置报文携带nas-ip属性。

nas-ip { ipv4-address | ipv6-address }

缺省情况下,报文不携带nas-ip属性。

监视与维护

可以通过show命令行查看功能配置后的运行情况以验证配置效果。

可以通过执行debug命令来查看各类信息。

注意

debug命令会输出调试信息,占用系统资源。使用完毕后,请立即关闭调试开关。

TACACS+监视与维护

作用

命令

查看设备和各TACACS+服务器的交互运行情况

show tacacs

打开TACACS+的调试开关

debug tacacs+

典型配置举例

Login认证使用TACACS+配置举例

组网需求

Login用户通过TACACS+服务器实现认证。

组网图

Login 认证使用TACACS+组网图

image.png

配置要点

在TACACS+ server上配置设备信息、添加Login用户等。

在设备上开启AAA安全服务。

在设备上配置TACACS+服务器信息。

配置TACACS+的认证方法列表。

在特定线路上应用TACACS+认证方法。

配置步骤

在TACACS+服务器上配置设备信息、添加Login用户(配置略,具体参见对应TACACS+服务器的配置手册)。

开启AAA安全服务。

Device> enable

Device# configure terminal

Device(config)# aaa new-model

配置TACACS+服务器(此处TACACS+服务器地址为192.168.1.3,共享密钥为sharekey)。

Device(config)# tacacs-server host 192.168.1.3 key sharekey

配置认证方法列表。

Device(config)# aaa authentication login tacacs-method group tacacs+

在线路上应用认证方法。

Device(config)# line vty 0 4

Device(config-line)# login authentication tacacs-method

验证配置结果

# 用户输入正确的用户名密码后,能够成功登录设备。

User Access Verification

Username:hostname1

Password:password1

Device#

配置文件

!

aaa new-model

!

aaa authentication login tacacs-method group tacacs+

!

tacacs-server host 192.168.1.3 key 7 $10$275$g8oXDDIPVeA=$

!

line console 0

line vty 0 4

login authentication tacacs-method

!

常见错误

设备配置的共享密钥与TACACS+服务器使用的共享密钥不一致。

TACACS+的认证、授权和记账分离配置举例

组网需求

用户的认证、授权和记账三种服务使用不同的TACACS+服务器组。

组网图

TACACS+的认证、授权和记账分离组网图

image.png

配置要点

在TACACS+ server上配置设备信息、添加Login用户等。

在设备上开启AAA安全服务。

在设备上配置TACACS+服务器信息,并将其加入不同的TACACS+服务器组。

配置TACACS+的认证、授权和记账方法列表。

在特定线路上应用TACACS+认证、授权和记账方法。

配置步骤

在TACACS+服务器上配置设备信息、添加Login用户(配置略,具体参见对应TACACS+服务器的配置手册)。

开启AAA安全服务。

Device> enable

Device# configure terminal

Device(config)# aaa new-model

配置TACACS+服务器A,并将其加入TACACS+服务器组tacacs1。(此处TACACS+服务器A的地址为192.168.1.3,共享密钥为sharekey)。

Device(config)# tacacs-server host 192.168.1.3 key sharekey

Device(config)# aaa group server tacacs+ tacacs1

Device(config-gs-tacacs+)# server 192.168.1.3

Device(config-gs-tacacs+)# exit

参照配置服务器组tacacs1的步骤,依次配置服务器组tacacs2和tacacs3。

Device(config)# tacacs-server host 192.168.1.4 key sharekey

Device(config)# aaa group server tacacs+ tacacs2

Device(config-gs-tacacs+)# server 192.168.1.4

Device(config-gs-tacacs+)# exit

Device(config)# tacacs-server host 192.168.1.5 key sharekey

Device(config)# aaa group server tacacs+ tacacs3

Device(config-gs-tacacs+)# server 192.168.1.5

Device(config-gs-tacacs+)# exit

配置认证方法列表使用服务器组tacacs1、授权方法列表使用服务器组tacacs2、记账方法列表使用服务器组tacacs3。

Device(config)# aaa authentication login tacacs-method group tacacs1

Device(config)# aaa authorization exec radius-method group tacacs2

Device(config)# aaa accounting exec radius-method start-stop group tacacs3

在线路上应用认证方法。

Device(config)# line vty 0 4

Device(config-line)# login authentication tacacs1

Device(config-line)# authorization exec tacacs2

Device(config-line)# accounting exec tacacs3

验证配置结果

# 用户输入在TACACS+服务器A上配置的合法用户名密码后,能够成功登录设备。

User Access Verification

Username:hostname1

Password:password1

Device#

# 登录设备后,用户只拥有TACACS+服务器B授予的权限级别,仅能运行该权限级别下的命令。

# 用户退出登录后,在TACACS+服务器C上能够查看到该用户的记账信息。如何查看记账信息请参见对应TACACS服务器的配置手册。

配置文件

!

aaa new-model

!

aaa accounting exec radius-method start-stop group tacacs3

aaa authorization exec radius-method group tacacs2

aaa authentication login radius-method group tacacs1

!

tacacs-server host 192.168.1.3 key 7 $10$275$g8oXDDIPVeA=$

tacacs-server host 192.168.1.4 key 7 $10$275$g8oXDDIPVeA=$

tacacs-server host 192.168.1.5 key 7 $10$275$g8oXDDIPVeA=$

!

!

aaa group server tacacs+ tacacs1

server 192.168.1.3

!

aaa group server tacacs+ tacacs2

server 192.168.1.4

!

aaa group server tacacs+ tacacs3

server 192.168.1.5

!

line console 0

line vty 0 4

accounting exec tacacs3

authorization exec tacacs2

login authentication tacacs1

!

常见错误

设备配置的共享密钥与RADIUS服务器使用的共享密钥不一致。

向服务器组加入未定义的服务器。

可达性检测配置举例

组网需求

配置TACACS+可达性检测,用于发现处于不可达状态的TACACS+服务器。

组网图

TACACS+可达性检测组网图

image.png

配置要点

配置全局TACACS+服务器不可达的判定标准。

配置TACACS+服务器的IP地址,指定主动探测的相关参数。

配置步骤

# 配置全局TACACS+服务器不可达的判定标准为连续5次探测超时,超时时间为120秒。

Device> enable

Device# configure terminal

Device(config)# radius-server dead-criteria time 120 tries 5

# 配置TACACS+服务器的IP地址为192.168.1.3,探测用户名为test,探测间隔为90分钟。

Device(config)# tacacs-server host 192.168.1.3 test username test idle-time 90

验证配置结果

使设备与192.168.1.22服务器网络通讯断开。通过设备进行TACACS+认证。120秒后,使用命令show tacacs命令查看服务器状态为Dead。

Hostname# show tacacs server

Tacacs+ Server : 192.168.1.3/49

state: Dead

Socket Opens: 0

Socket Closes: 0

Total Packets Sent: 0

Total Packets Recv: 0

Reference Count: 1

Tacacs capability:

mgmt enable: true

vrf enable: true

配置文件

!

tacacs-server host 192.168.1.3 test username test idle-time 90

tacacs-server dead-criteria time 120 tries 5

!