精华内容
下载资源
问答
  • Both RADIUS and TACACS+ provides centralized validation of users attempting to gain access to a both protocols supported network devices, which provides Authentication, Authorization, and Accounting ....

    Both RADIUS and TACACS+ provides centralized validation of users attempting to gain access to a both protocols supported network devices, which provides Authentication, Authorization, and Accounting (AAA) services on network devices.

    RADIUS stands for Remote Access Dial-In User Service, and TACACS+ stands for Terminal Access Controller Access Control Service Plus. The primary functional difference between RADIUS and TACACS+ is that TACACS+ separates out the Authorization functionality, where RADIUS combines both Authentication and Authorization. RADIUS was designed for subscriber AAA, and TACACS+ is designed for administrator AAA. RADIUS can still be used for small network administrator AAA, but only if authorization is not required, or if it is a homogeneous network (all one vendor). In any scenario where there is a heterogeneous environment or authorization policies are required for network devices, TACACS+ is the best option.

    The following figure and table show their difference more instinctively:

    2-8-2015%2B4-45-48%2BPM.png?resize=640%2C5662-8-2015%2B4-45-48%2BPM.png?resize=640%2C566

    This post and next one will show the basic Tacacs+ configuration steps on a cisco 2960 switch to work with Free Tacacs+ Software for Windows from tacacs.net:

    1. Software Installation and Verify Configuration

    1.1 Download Software

    Please download Version 1.3.2, which is from their website http://www.tacacs.net/

    2-8-2015%2B5-06-01%2BPM.png?resize=320%2C2052-8-2015%2B5-06-01%2BPM.png?resize=320%2C205

    1.2 Installation

    Double click downloaded file TACACSSetup_v1.3.2.zip and simply click next to follow the wizard to complete the installation.
    2-8-2015%2B5-18-13%2BPM.png?resize=320%2C2362-8-2015%2B5-18-13%2BPM.png?resize=320%2C236

    2-8-2015%2B5-18-36%2BPM.png?resize=320%2C2372-8-2015%2B5-18-36%2BPM.png?resize=320%2C237
    2-8-2015%2B5-03-17%2BPM.png?resize=320%2C2362-8-2015%2B5-03-17%2BPM.png?resize=320%2C236

    After installation, TACACS.net service will automatically start. Localhost (127.0.0.1) and RFC 1918 IP address ranges (172.16.0.0/12, 192.168.0.0/16, 10.0.0.0/8) are already added as clients by default. Any user in the Administrators group on the local machine will be authorized as the fallback method.

    1.3 Configuration Tacacs+ server

    The wizard will install the configuration and log files to different locations depending on your OS. Start Menu TACACS.net program group has a configuration shortcut to point to the configuration folder. In my case, all configuration files was installed at this directory: C:ProgramDataTACACS.netconfig

    Check tacplus.xml to make sure server ip is not 127.0.0.1.

    2-8-2015%2B5-30-16%2BPM.png?resize=400%2C3662-8-2015%2B5-30-16%2BPM.png?resize=400%2C366

    You do not need to restart/reload the server when you modify the configuration files. The server
    monitors for changes to the configuration files and reloads them automatically.

    1.4 Verify Tacacs service

    telnet 127.0.0.1 49
    tactest -s 10.9.200.14 -u test1 -p test1

    (test1 is the local administrator account in my Tacacs windows server)

    2. Configure Cisco Switch to Use Tacacs server

    Router(config)# aaa new-model
    Router(config)# tacacs-server host 10.9.200.14 key mysharedsecret
    Router(config)# aaa authentication login default group tacacs+ local
    Router(config)# aaa authorization exec default group tacacs+ local
    Router(config)# line console 0
    Router(config-line)# login authentication default
    Router(config)# line vty 0 15
    Router(config-line)# login authentication default

    Based on above configuration steps 1 and step 2, the switch will be authenticated with Tacacs server’s account in the local administrators group.

    Notes:

    Fallback group includes all local administrators on the server. It should be commented out before it is deployed in production.


    Reference:

    展开全文
  • Part 1 has shown how to install the software Tacacs+ on a windows 2008 server and some fastest configuration to get it working with your Windows server administrators group. In this part 2 post, more....

    Part 1 has shown how to install the software Tacacs+ on a windows 2008 server and some fastest configuration to get it working with your Windows server administrators group.

    In this part 2 post, more configuration will be presented to explain how some other function or feature works.

    After installation, four configuration files will be generated under C:ProgramDataTACACS.netconfig folder. Please keep in mind, different OS will have different location to hold those files. Please create a backup copy in case you want to recover them.

    1. authentication.xml

    1.1 Local Service (File Group) Users

    Tacacs+ Software supports different authentication methods such as Local Service (File Group) Users, Localhost Users and AD users.

    This is the second part to configure cisco switch to work with a Free Tacacs+ Software from http://tacacs.net:

    If you want to use some local Tacacs File group, you could find following configuration in the file authentication.xml. You will only need to remove both <!– and –> comment symbol in that part. Just like the configuration shows below:

    There are two users , user1 and user2 , pre-configured to be used. For example, the user1 ‘s login password is somepassword, and no password for enable.

    2015-02-13_8-58-53.png?resize=640%2C3802015-02-13_8-58-53.png?resize=640%2C380

    <!– FILE GROUP EXAMPLE –>
    <!– This is an example of a File User group.
    The File User groups can be used to define users that only exist
    within the TACACS+ server. –>
        <UserGroup>
          <Name>Local Tacacs Server Group</Name>
          <AuthenticationType>File</AuthenticationType>
    <Users>
    <User>
     <Name>user1</Name>
     <LoginPassword ClearText=”somepassword” DES=””> </LoginPassword>
     <EnablePassword ClearText=”” DES=””></EnablePassword>
     <CHAPPassword ClearText=”” DES=””> </CHAPPassword>
     <OutboundPassword ClearText=”” DES=””> </OutboundPassword>
    </User>
    <User>
     <Name>user2</Name>
     <LoginPassword ClearText=”somepassword” DES=””> </LoginPassword>
     <EnablePassword ClearText=”” DES=””></EnablePassword>
     <CHAPPassword ClearText=”” DES=””> </CHAPPassword>
     <OutboundPassword ClearText=”” DES=””> </OutboundPassword>
    </User>
     </Users>
        </UserGroup>

    1.2 Localhost Users

    Localhost users is the local users and groups in the windows 2008 server itself. In the part 1, there are some steps already shows how to use Localhost users.

    Basically find out following configuration in the authentication.xml, Local System Administrators groups have been permitted. Only thing you will need to do is to add new users into local administrators group in windows 2008 Tacacs server as shown in part 1. There is no need to set up Enable Password, since your localhost user’s password will be enable password too.

    <!– LOCALHOST EXAMPLE –>
    <!– This is an example of a Windows Localhost group.
    This group will authenticate using the users and groups
    configured on the local computer. –>

        <UserGroup>
          <Name>Local System Administrators</Name>
          <AuthenticationType>Localhost</AuthenticationType>
          <LocalhostGroupName>Administrators</LocalhostGroupName>
    </UserGroup>
    <!– / LOCALHOST EXAMPLE –>

    1.3 AD authentication

    AD authentication and LDAP authentication has been detailed documented in the configuration guide. Please check it from there.

    2. authorization.xml

    By default, if you log in your network devices with Tacacs+ software default configuration with your local file users or local server’s administrators group account, you will not be able to get into enable mode. Following error will be shown to you after you type enable command:

    The command ‘enable <cr>’ is not authorized for user user1 

    That is because the authorization.xml did not authorize you to use enable command.

    By adding <Permit>enable</Permit> into following configuration, you will be able to use enable command. Keep in mind, the enable password is same as your login password when you use Local Server’s administrators group or AD users.

    <Authorization>
    <UserGroups>
    <UserGroup>Local System Administrators</UserGroup>
    </UserGroups>
    <!–No client group provided so this authorization section applies to the above user groups from all the clients –>
    <!–this group is allowed to telnet everywhere except from addresses beginning with 161.–>
    <Shell>
    <!–<deny>telnet 161.*</deny>
    <Permit>telnet .*</Permit>–>
    <Permit>enable</Permit>
    <!–this will allow this group to run enable command –>
    <Permit>.*show.*</Permit> <!–This will allow all show commands –>
    <Deny>.*</Deny>           <!–This will deny all other commands –>
    </Shell>
    </Authorization>

    3. Client Configuration

    Until here, a functional Tacacs+ server will be fully up and running. You should be able to use local file users and local administrators group to log into your network device. The client (network devices) configuration for Tacacs+, you should be able to find it from Part 1. Following commands should get you basic ideas how the configuration looks like.

    Router(config)# aaa new-model
    Router(config)# tacacs-server host 10.9.200.14 key mysharedsecret
    Router(config)# aaa authentication login default group tacacs+ local
    Router(config)# aaa authorization exec default group tacacs+ local
    Router(config)# line console 0
    Router(config-line)# login authentication default
    Router(config)# line vty 0 15
    Router(config-line)# login authentication default

    Notes:

    There are a couple of useful tools installed as well , and those are for troubleshooting / testing purpose. You could find it from Start -> All Programs -> TACTACS.net menu:

    • TACDES – Used to Encrypt your password in your configuration files
    • TACTest – Used for testing your authentication
    • TACVerify – USed to verify your configuration files. Each time, after you changed your configuration files, do not forget to run it to validate them. If there is anything wrong in those files, your TACACS.net service won’t be able to start.

    2015-02-13_9-36-25.png?resize=640%2C6352015-02-13_9-36-25.png?resize=640%2C635

    Reference:

    展开全文
  • Add support to specify source address for TACACS+ <strong>- How I did it Add patches for libpam-tacplus and libnss-tacplus. The patches parse the new option 'src_ip' and store the ...
  • TACACS+简单说明

    2019-09-27 08:03:47
    1 TACACS+概述1.1 什么是TACACS+TACACS+(Terminal Access Controller Access Control System,终端访问控制器控制系统协议)是在TACACS协议的基础上进行了功能增强的安全协议。该协议与RADIUS协议的功能类似,采用...


    1 TACACS+概述

    1.1 什么是TACACS+

    TACACS+(Terminal Access Controller Access Control System,终端访问控制器控制系统协议)是在TACACS协议的基础上进行了功能增强的安全协议。该协议与RADIUS协议的功能类似,采用客户端/服务器模式实现NAS与TACACS+服务器之间的通信。

    1.2 TACACS+的用途

    TACACS+协议主要用于PPP和VPDN(Virtual Private Dial-up Network,虚拟私有拨号网络)接入用户及终端用户的AAA。

    AAA是Authentication、Authorization、Accounting(认证、授权、计费)的简称,是网络安全的一种管理机制,提供了认证、授权、计费三种安全功能。

    认证:确认访问网络的远程用户的身份,判断访问者是否为合法的网络用户。

    授权:对不同用户赋予不同的权限,限制用户可以使用的服务。例如用户成功登录服务器后,管理员可以授权用户对服务器中的文件进行访问和打印操作。

    计费:记录用户使用网络服务中的所有操作,包括使用的服务类型、起始时间、数据流量等,它不仅是一种计费手段,也对网络安全起到了监视作用。

    AAA一般采用客户机/服务器结构,客户端运行于NAS(Network Access Server,网络接入服务器)上,服务器上则集中管理用户信息。NAS对于用户来讲是服务器端,对于服务器来说是客户端。AAA的基本组网结构如下图:

    当用户想要通过某网络与NAS建立连接,从而获得访问其它网络的权利或取得某些网络资源的权利时,NAS起到了验证用户的作用。NAS负责把用户的认证、授权、计费信息透传给服务器(RADIUS服务器或HWTACACS服务器),RADIUS协议或HWTACACS协议规定了NAS与服务器之间如何传递用户信息。

    图1-1的AAA基本组网结构中有两台服务器,用户可以根据实际组网需求来决定认证、授权、计费功能分别由使用哪种协议类型的服务器来承担。例如,可以选择HWTACACS服务器实现认证和授权,RADIUS服务器实现计费。

    当然,用户也可以只使用AAA提供的一种或两种安全服务。例如,公司仅仅想让员工在访问某些特定资源的时候进行身份认证,那么网络管理员只要配置认证服务器就可以了。但是若希望对员工使用网络的情况进行记录,那么还需要配置计费服务器。

    TACACS+的典型应用是对需要登录到设备上进行操作的终端用户进行认证、授权、计费。设备作为TACACS+的客户端,将用户名和密码发给TACACS+服务器进行验证。用户验证通过并得到授权之后可以登录到设备上进行操作。

    2 TACACS+和RADIUS的比较

    从上面的描述来看,TACACS+和目前被广泛使用的RADIUS很相似,那么他们有什么区别和联系呢?下面这个表格可以说明这个问题:

    TACACS+协议

    RADIUS协议

    使用TCP,网络传输更可靠

    使用UDP,网络传输效率更高

    除了TACACS+报文头,对报文主体全部进行加密

    只对验证报文中的密码字段进行加密

    协议报文较为复杂,认证和授权分离,使得认证、授权服务可以分离在不同的安全服务器上实现。例如,可以用一个TACACS+服务器进行认证,另外一个TACACS+服务器进行授权

    协议报文比较简单,认证和授权结合,难以分离

    支持对设备的配置命令进行授权使用。用户可使用的命令行受到用户级别和AAA授权的双重限制,某一级别的用户输入的每一条命令都需要通过TACACS+服务器授权,如果授权通过,命令就可以被执行

    不支持对设备的配置命令进行授权使用

    用户登录设备后可以使用的命令行由用户级别决定,用户只能使用缺省级别等于/低于用户级别的命令行

    3 TACACS+的基本原理

    3.1 TACACS+的基本消息交互流程

    下图是TACACS+协议的基本信息交互流程:

    以Telnet用户认证过程为例,基本消息交互流程如下:

    (1) Telnet用户请求登录设备。

    (2) TACACS+客户端收到请求之后,向TACACS+服务器发送认证开始报文。

    (3) TACACS+服务器发送认证回应报文,请求用户名。

    (4) TACACS+客户端收到回应报文后,向用户询问用户名。

    (5) 用户输入用户名。

    (6) TACACS+客户端收到用户名后,向TACACS+服务器发送认证持续报文,其中包括了用户名。

    (7) TACACS+服务器发送认证回应报文,请求登录密码。

    (8) TACACS+客户端收到回应报文,向用户询问登录密码。

    (9) 用户输入密码。

    (10) TACACS+客户端收到登录密码后,向TACACS+服务器发送认证持续报文,其中包括了登录密码。

    (11) TACACS+服务器发送认证回应报文,指示用户通过认证。

    (12) TACACS+客户端向TACACS+服务器发送授权请求报文。

    (13) TACACS+服务器发送授权回应报文,指示用户通过授权。

    (14) TACACS+客户端收到授权回应成功报文,向用户输出设备的配置界面。

    (15) TACACS+客户端向TACACS+服务器发送计费开始报文。

    (16) TACACS+服务器发送计费回应报文,指示计费开始报文已经收到。

    (17) 用户请求断开连接。

    (18) TACACS+客户端向TACACS+服务器发送计费结束报文。

    (19) TACACS+服务器发送计费结束报文,指示计费结束报文已经收到。

    4 TACACS+的报文结构和具体工作过程

    4.1 TACACS+的报文类型

    TACACS+共有7种类型的消息:

    1、Authentication_START

    2、Authentication_CONTIUNE

    3、Authentication_REPLY

    4、Authorization_REQUEST

    5、Authorization_RESPONSE

    6、Accounting_REQUEST

    7、Accounting_REPLY

    4.2 TACACS+包头

    所有的TACACS+数据包都使用12字节长的包头,结构如下:

    图1 TACACS+包头

    图2 TACACS+包头(实例)

    下面对各个字段分别进行说明:

    Major version的取值为0x0C

    Minor version一般为0,一些特殊场景取值为1,本文后面会有说明

    Type为1表示认证,2表示授权,3表示计费

    Seq_no,序列号,从1开始,随报文交互递增

    Flags,用来表示一些特殊条件,比如不加密(0x01),支持单连接多会话(0x04)等

    Session_id为TACACS+会话的ID,是个随机数。

    Length为TACACS+报文除头部之外的长度

    4.3 TACACS+数据包的加密

    TACACS+支持除包头之外所有信息的加密,加密方法如下:

    1、将session_id、secret key, 版本号和sequence number一起进行MD5运算(其中secret key 为TACACS客户端和服务器之间的共享秘密),计算结果为MD5_1

    2、后续的MD5运算将上次MD5运算的结果也纳入运算范围,如下:

    MD5_1 = MD5{session_id, key, version, seq_no}

    MD5_2 = MD5{session_id, key, version, seq_no, MD5_1}

    ....

    MD5_n = MD5{session_id, key, version, seq_no, MD5_n-1}

    3、将所有的运算结果连接起来,直到总长度大于需要加密的数据的长度,然后截断到实际数据的长度,得到pseudo_pad:

    pseudo_pad = {MD5_1 [,MD5_2 [ ... ,MD5_n]]} truncated to len(data)

    4、随后将需要加密的数据和上面的pseudo_pad进行XOR运算,得到密文:

    ENCRYPTED {data} == data ^ pseudo_pad

    由于TACACS+对整个数据包进行加密,私密性要好于RADIUS,窃听者无法根据报文的内容来猜测网络的配置和用户的身份。

    4.4 Authentication 消息

    Authentication 消息包括三种类型:START、CONTINUE和REPLY。

    4.4.1 Authentication Start

    认证开始时,客户端发送START消息,START消息中包括认证类型,同时可能包括用户名和一些认证数据。

    START消息一般来说是认证过程的第一个数据包,其seq_no总是1。

    如果收到RESTART消息,客户端需要发送START消息重新开始认证(使用一个新的会话)。

    Server发送REPLY消息来回应START消息,表示认证结束或者仍需要继续。

    图3 Authentication Start消息

    Action字段表示具体的认证操作,如认证请求、上传密码等等。

    priv_lvl字段表示用户的权限级别。

    authen_type字段表示认证的类型,如PAP、CHAP等。

    Service字段表示服务类型。

    user字段表示用户名,该字段不一定在START消息中存在。

    port字段表示客户端上发生认证行为的端口,具体取值客户端可以自行定义,没有明确的要求。

    rem_addr字段表示用户的地址信息,属于可选字段,一般使用客户端IP地址、ISDN Caller ID等填充。

    data字段用于针对action和authen_type字段的值来传递一些信息。

    4.4.2 Authentication Reply

    REPLY消息是TACACS+服务器向客户端发送的唯一一种Authentication 消息,用于向客户端反馈当前认证的状态。

    图4 Authentication Reply消息

    Status字段表示认证的状态。

    flags字段用于控制客户端是否将用户输入的密码回显,如果该标志位置1,用户输入的密码不会回显。

    server_msg字段为可选字段,用于服务器将一些附加信息带给用户。

    data字段用于向客户端(NAS)提供一些信息。

    4.4.3 Authentication Continue

    客户端收到REPLY消息后,如果确认认证过程没有结束,使用CONTINUE消息应答。

    图5 Authentication Continue消息

    user_msg字段用于回应REPLY消息中的server_msg字段,向服务器提供客户端或用户的一些信息

    flags字段用于中断认证过程

    4.5 TACACS+认证过程

    TACACS+认证的工作过程取决于START消息中的action和authen_type字段的取值。

    不同的action和authen_type字段的组合需要配合不同的priv_lvl、service、port和rem_addr字段,实现不同的业务。

    TACACS+协议中目前描述了13个action和authen_type字段的组合,这里列出几个比较常见的组合:

    4.5.1 Enable Requests

    Enable Requests通常用于提升当前用户的级别的场合,比如Linux系统的su命令,Comware的super命令等,认证过程和后面马上要讲到的Inbound ASCII Login很相似

    Action = TAC_PLUS_AUTHEN_LOGIN

    priv_lvl = implementation dependent

    authen_type = not used

    service = TAC_PLUS_AUTHEN_SVC_ENABLE

    4.5.2 Inbound ASCII Login

    管理用户login的场景,非常常见,该场景下START消息可以携带用户名,整个交互过程包括一个START,中间可能存在一对或多对CONTINUE/REPLY,最后以一个REPLY结束

    action = TAC_PLUS_AUTHEN_LOGIN

    authen_type = TAC_PLUS_AUTHEN_TYPE_ASCII

    4.5.3 Inbound CHAP login

    CHAP认证,最常见的是PPP认证的场景,整个交互过程包括一个START和一个REPLY消息,START消息中必须包含用户名。

    Action = TAC_PLUS_AUTHEN_LOGIN

    authen_type = TAC_PLUS_AUTHEN_TYPE_CHAP

    minor_version = 0x1

    4.5.4 具体认证过程

    如下是Comwarev5平台Telnet用户使用HWTACACS认证过程:

    AUTHEN_REQUEST ------------->

    <------------- AUTHEN_REPLY(status:AUTHEN_STATUS_GETPASS)

    AUTHEN_CONTINUE(with password) ------------->

    <------------- AUTHEN_REPLY(status:AUTHEN_STATUS_PASS)

    4.5.5 认证过程的中止

    客户端可以通过在CONTINUE消息中携带一个TAC_PLUS_CONTINUE_FLAG_ABORT标志位来中止正在进行的认证过程,同时可以在data字段携带中止认证的原因。该CONTINUE消息不需要REPLY消息的回应。

    4.6 Authorization消息

    Authorization 消息包括两种类型:REQUEST和RESPONSE。

    4.6.1 Authorization Request

    Authorization Request消息的机构比较复杂,如下:

    图6 Authorization Request消息

    Authorization Request消息中包括了授权所需的一切信息,这些信息分为两类,一类是必选的,另一类是可选的。

    其中,authen_method字段表示授权的方式,TACACS+的认证和授权是分离的,用户可以使用TACACS+认证而使用其它协议进行授权。

    priv_lvl字段、authen_type字段、authen_service字段、port字段、rem_addr字段的含义和authentication消息中的相应字段一样。

    user字段表示用户名。

    arg_cnt字段表示REQUEST消息中携带的argument的数量, argument是一个AVP的结构,其中attribute和value之间使用等号(=)或星号(*)连接,当使用等号连接时表示该AVP是必选的,使用星号连接时表示该AVP是可选的。

    AVP的类型很多,这里就不一一列举了。

    4.6.2 Authorization Response

    Authorization Response消息的结构如下:

    图7 Authorization Response消息

    Response消息中包括了授权的结果和一些其它的参数

    status字段表示授权的结果和权限的操作方式

    server_msg字段是服务器给用户的提示信息。

    data字段是服务器提供给管理员的信息。

    arg_cnt字段表示RESPONSE消息中携带的argument的数量,argument的格式和REQUEST消息中相同。

    4.7 具体授权过程

    4.7.1 Comwarev5设备使用HWTACACS认证/授权

    AUTHOR_REQUEST ------------->

    <------------- AUTHOR_REPLY(status:AUTHOR_STATUS_PASS_ADD

    4.8 Accounting消息

    Accounting消息包括两种类型:REQUEST和REPLY。

    4.8.1 Accounting Request

    Accounting Request消息的结构如下:

    图8 Accounting Request消息

    Accounting Request消息中包括了计费所需的信息。

    flags字段表示计费报文的类型,包括计费开始。计费停止和实时计费。

    其它字段的含义和与authorization和authentication中对应字段的含义一致,这里不再赘述。

    Accounting REQUEST消息中也可以携带很多AVP形式的参数,参数的数量很多,这里就不一一列举了。

    data字段是服务器提供给管理员的信息。

    4.8.2 Accounting Reply

    Accounting Reply消息的结构如下:

    图9 Accounting Reply消息

    其中status字段表示计费的状态,标志计费是否成功。

    server_msg字段表示服务器发给用户的信息,由客户端来决定是否显示给用户。

    4.9 具体计费过程

    4.9.1 Comwarev5设备使用HWTACACS进行PPP用户计费

    下面是Comwarev5设备使用HWTACACS进行PPP用户计费的过程,包括计费开始,计费持续和计费停止的全过程。

    ACCOUNTING_REQUEST(flag:ACCT_FLAG_START ------------->

    <------------- ACCOUNTING_REPLY(status:ACCT_STATUS_SUCCESS

    ACCOUNTING_REQUEST(flag:ACCT_FLAG_WATCHDOG ------------->

    <------------- ACCOUNTING_REPLY(status:ACCT_STATUS_SUCCESS

    ACCOUNTING_REQUEST(flag:ACCT_FLAG_STOP ------------->

    <------------- ACCOUNTING_REPLY(status:ACCT_STATUS_SUCCESS

    4.10 TACACS+的附加功能

    除了正常的AAA功能外,为确保功能实现的冗余和实时计费准确性等等,很多TACACS+实现都包括下面的内容:

    1、计费停止报文的缓存和重传机制;

    2、认证、授权、计费服务器的主备切换功能。

    4.11 Tacacs in Comware(以V5为例)

    Comware v5的HWTACACS功能基本上实现了TACACS+所规定的功能:

    #

    hwtacacs scheme tacacs

    primary authentication 101.3.201.1

    primary authorization 101.3.201.1

    primary accounting 101.3.201.1

    key authentication h3c

    key authorization h3c

    key accounting h3c

    timer realtime-accounting 3

    user-name-format without-domain

    #

    转载于:https://www.cnblogs.com/skyus/p/9297269.html

    展开全文
  • TACACS+技术

    2017-08-25 11:23:01
    1 TACACS+概述 1.1 什么是TACACS+ TACACS+(Terminal Access Controller Access Control System,终端访问控制器控制系统协议)是在TACACS协议的基础上进行了功能增强的安全协议。该协议与RADIUS协议的功能类似,...

    1 TACACS+概述

    1.1 什么是TACACS+

    TACACS+(Terminal Access Controller Access Control System,终端访问控制器控制系统协议)是在TACACS协议的基础上进行了功能增强的安全协议。该协议与RADIUS协议的功能类似,采用客户端/服务器模式实现NAS与TACACS+服务器之间的通信。

    1.2 TACACS+的用途

    TACACS+协议主要用于PPP和VPDN(Virtual Private Dial-up Network,虚拟私有拨号网络)接入用户及终端用户的AAA。

    AAA是Authentication、Authorization、Accounting(认证、授权、计费)的简称,是网络安全的一种管理机制,提供了认证、授权、计费三种安全功能。

    认证:确认访问网络的远程用户的身份,判断访问者是否为合法的网络用户。

    授权:对不同用户赋予不同的权限,限制用户可以使用的服务。例如用户成功登录服务器后,管理员可以授权用户对服务器中的文件进行访问和打印操作。

    计费:记录用户使用网络服务中的所有操作,包括使用的服务类型、起始时间、数据流量等,它不仅是一种计费手段,也对网络安全起到了监视作用。

    AAA一般采用客户机/服务器结构,客户端运行于NAS(Network Access Server,网络接入服务器)上,服务器上则集中管理用户信息。NAS对于用户来讲是服务器端,对于服务器来说是客户端。AAA的基本组网结构如下图:

    当用户想要通过某网络与NAS建立连接,从而获得访问其它网络的权利或取得某些网络资源的权利时,NAS起到了验证用户的作用。NAS负责把用户的认证、授权、计费信息透传给服务器(RADIUS服务器或HWTACACS服务器),RADIUS协议或HWTACACS协议规定了NAS与服务器之间如何传递用户信息。

    图1-1的AAA基本组网结构中有两台服务器,用户可以根据实际组网需求来决定认证、授权、计费功能分别由使用哪种协议类型的服务器来承担。例如,可以选择HWTACACS服务器实现认证和授权,RADIUS服务器实现计费。

    当然,用户也可以只使用AAA提供的一种或两种安全服务。例如,公司仅仅想让员工在访问某些特定资源的时候进行身份认证,那么网络管理员只要配置认证服务器就可以了。但是若希望对员工使用网络的情况进行记录,那么还需要配置计费服务器。

    TACACS+的典型应用是对需要登录到设备上进行操作的终端用户进行认证、授权、计费。设备作为TACACS+的客户端,将用户名和密码发给TACACS+服务器进行验证。用户验证通过并得到授权之后可以登录到设备上进行操作。

    2 TACACS+和RADIUS的比较

    从上面的描述来看,TACACS+和目前被广泛使用的RADIUS很相似,那么他们有什么区别和联系呢?下面这个表格可以说明这个问题:

    TACACS+协议

    RADIUS协议

    使用TCP,网络传输更可靠

    使用UDP,网络传输效率更高

    除了TACACS+报文头,对报文主体全部进行加密

    只对验证报文中的密码字段进行加密

    协议报文较为复杂,认证和授权分离,使得认证、授权服务可以分离在不同的安全服务器上实现。例如,可以用一个TACACS+服务器进行认证,另外一个TACACS+服务器进行授权

    协议报文比较简单,认证和授权结合,难以分离

    支持对设备的配置命令进行授权使用。用户可使用的命令行受到用户级别和AAA授权的双重限制,某一级别的用户输入的每一条命令都需要通过TACACS+服务器授权,如果授权通过,命令就可以被执行

    不支持对设备的配置命令进行授权使用

    用户登录设备后可以使用的命令行由用户级别决定,用户只能使用缺省级别等于/低于用户级别的命令行

    3 TACACS+的基本原理

    3.1 TACACS+的基本消息交互流程

    下图是TACACS+协议的基本信息交互流程:

    以Telnet用户认证过程为例,基本消息交互流程如下:

    (1) Telnet用户请求登录设备。

    (2) TACACS+客户端收到请求之后,向TACACS+服务器发送认证开始报文。

    (3) TACACS+服务器发送认证回应报文,请求用户名。

    (4) TACACS+客户端收到回应报文后,向用户询问用户名。

    (5) 用户输入用户名。

    (6) TACACS+客户端收到用户名后,向TACACS+服务器发送认证持续报文,其中包括了用户名。

    (7) TACACS+服务器发送认证回应报文,请求登录密码。

    (8) TACACS+客户端收到回应报文,向用户询问登录密码。

    (9) 用户输入密码。

    (10) TACACS+客户端收到登录密码后,向TACACS+服务器发送认证持续报文,其中包括了登录密码。

    (11) TACACS+服务器发送认证回应报文,指示用户通过认证。

    (12) TACACS+客户端向TACACS+服务器发送授权请求报文。

    (13) TACACS+服务器发送授权回应报文,指示用户通过授权。

    (14) TACACS+客户端收到授权回应成功报文,向用户输出设备的配置界面。

    (15) TACACS+客户端向TACACS+服务器发送计费开始报文。

    (16) TACACS+服务器发送计费回应报文,指示计费开始报文已经收到。

    (17) 用户请求断开连接。

    (18) TACACS+客户端向TACACS+服务器发送计费结束报文。

    (19) TACACS+服务器发送计费结束报文,指示计费结束报文已经收到。

    4 TACACS+的报文结构和具体工作过程

    4.1 TACACS+的报文类型

    TACACS+共有7种类型的消息:

    1、Authentication_START

    2、Authentication_CONTIUNE

    3、Authentication_REPLY

    4、Authorization_REQUEST

    5、Authorization_RESPONSE

    6、Accounting_REQUEST

    7、Accounting_REPLY

    4.2 TACACS+包头

    所有的TACACS+数据包都使用12字节长的包头,结构如下:

    图1 TACACS+包头

    图2 TACACS+包头(实例)

    下面对各个字段分别进行说明:

    Major version的取值为0x0C

    Minor version一般为0,一些特殊场景取值为1,本文后面会有说明

    Type为1表示认证,2表示授权,3表示计费

    Seq_no,序列号,从1开始,随报文交互递增

    Flags,用来表示一些特殊条件,比如不加密(0x01),支持单连接多会话(0x04)等

    Session_id为TACACS+会话的ID,是个随机数。

    Length为TACACS+报文除头部之外的长度

    4.3 TACACS+数据包的加密

    TACACS+支持除包头之外所有信息的加密,加密方法如下:

    1、将session_id、secret key, 版本号和sequence number一起进行MD5运算(其中secret key 为TACACS客户端和服务器之间的共享秘密),计算结果为MD5_1

    2、后续的MD5运算将上次MD5运算的结果也纳入运算范围,如下:

    MD5_1 = MD5{session_id, key, version, seq_no}

    MD5_2 = MD5{session_id, key, version, seq_no, MD5_1}

    ....

    MD5_n = MD5{session_id, key, version, seq_no, MD5_n-1}

    3、将所有的运算结果连接起来,直到总长度大于需要加密的数据的长度,然后截断到实际数据的长度,得到pseudo_pad:

    pseudo_pad = {MD5_1 [,MD5_2 [ ... ,MD5_n]]} truncated to len(data)

    4、随后将需要加密的数据和上面的pseudo_pad进行XOR运算,得到密文:

    ENCRYPTED {data} == data ^ pseudo_pad

    由于TACACS+对整个数据包进行加密,私密性要好于RADIUS,窃听者无法根据报文的内容来猜测网络的配置和用户的身份。

    4.4 Authentication 消息

    Authentication 消息包括三种类型:START、CONTINUE和REPLY。

    4.4.1 Authentication Start

    认证开始时,客户端发送START消息,START消息中包括认证类型,同时可能包括用户名和一些认证数据。

    START消息一般来说是认证过程的第一个数据包,其seq_no总是1。

    如果收到RESTART消息,客户端需要发送START消息重新开始认证(使用一个新的会话)。

    Server发送REPLY消息来回应START消息,表示认证结束或者仍需要继续。

    图3 Authentication Start消息

    Action字段表示具体的认证操作,如认证请求、上传密码等等。

    priv_lvl字段表示用户的权限级别。

    authen_type字段表示认证的类型,如PAP、CHAP等。

    Service字段表示服务类型。

    user字段表示用户名,该字段不一定在START消息中存在。

    port字段表示客户端上发生认证行为的端口,具体取值客户端可以自行定义,没有明确的要求。

    rem_addr字段表示用户的地址信息,属于可选字段,一般使用客户端IP地址、ISDN Caller ID等填充。

    data字段用于针对action和authen_type字段的值来传递一些信息。

    4.4.2 Authentication Reply

    REPLY消息是TACACS+服务器向客户端发送的唯一一种Authentication 消息,用于向客户端反馈当前认证的状态。

    图4 Authentication Reply消息

    Status字段表示认证的状态。

    flags字段用于控制客户端是否将用户输入的密码回显,如果该标志位置1,用户输入的密码不会回显。

    server_msg字段为可选字段,用于服务器将一些附加信息带给用户。

    data字段用于向客户端(NAS)提供一些信息。

    4.4.3 Authentication Continue

    客户端收到REPLY消息后,如果确认认证过程没有结束,使用CONTINUE消息应答。

    图5 Authentication Continue消息

    user_msg字段用于回应REPLY消息中的server_msg字段,向服务器提供客户端或用户的一些信息

    flags字段用于中断认证过程

    4.5 TACACS+认证过程

    TACACS+认证的工作过程取决于START消息中的action和authen_type字段的取值。

    不同的action和authen_type字段的组合需要配合不同的priv_lvl、service、port和rem_addr字段,实现不同的业务。

    TACACS+协议中目前描述了13个action和authen_type字段的组合,这里列出几个比较常见的组合:

    4.5.1 Enable Requests

    Enable Requests通常用于提升当前用户的级别的场合,比如Linux系统的su命令,Comware的super命令等,认证过程和后面马上要讲到的Inbound ASCII Login很相似

    Action = TAC_PLUS_AUTHEN_LOGIN

    priv_lvl = implementation dependent

    authen_type = not used

    service = TAC_PLUS_AUTHEN_SVC_ENABLE

    4.5.2 Inbound ASCII Login

    管理用户login的场景,非常常见,该场景下START消息可以携带用户名,整个交互过程包括一个START,中间可能存在一对或多对CONTINUE/REPLY,最后以一个REPLY结束

    action = TAC_PLUS_AUTHEN_LOGIN

    authen_type = TAC_PLUS_AUTHEN_TYPE_ASCII

    4.5.3 Inbound CHAP login

    CHAP认证,最常见的是PPP认证的场景,整个交互过程包括一个START和一个REPLY消息,START消息中必须包含用户名。

    Action = TAC_PLUS_AUTHEN_LOGIN

    authen_type = TAC_PLUS_AUTHEN_TYPE_CHAP

    minor_version = 0x1

    4.5.4 具体认证过程

    如下是Comwarev5平台Telnet用户使用HWTACACS认证过程:

    AUTHEN_REQUEST ------------->

    <------------- AUTHEN_REPLY(status:AUTHEN_STATUS_GETPASS)

    AUTHEN_CONTINUE(with password) ------------->

    <------------- AUTHEN_REPLY(status:AUTHEN_STATUS_PASS)

    4.5.5 认证过程的中止

    客户端可以通过在CONTINUE消息中携带一个TAC_PLUS_CONTINUE_FLAG_ABORT标志位来中止正在进行的认证过程,同时可以在data字段携带中止认证的原因。该CONTINUE消息不需要REPLY消息的回应。

    4.6 Authorization消息

    Authorization 消息包括两种类型:REQUEST和RESPONSE。

    4.6.1 Authorization Request

    Authorization Request消息的机构比较复杂,如下:

    图6 Authorization Request消息

    Authorization Request消息中包括了授权所需的一切信息,这些信息分为两类,一类是必选的,另一类是可选的。

    其中,authen_method字段表示授权的方式,TACACS+的认证和授权是分离的,用户可以使用TACACS+认证而使用其它协议进行授权。

    priv_lvl字段、authen_type字段、authen_service字段、port字段、rem_addr字段的含义和authentication消息中的相应字段一样。

    user字段表示用户名。

    arg_cnt字段表示REQUEST消息中携带的argument的数量, argument是一个AVP的结构,其中attribute和value之间使用等号(=)或星号(*)连接,当使用等号连接时表示该AVP是必选的,使用星号连接时表示该AVP是可选的。

    AVP的类型很多,这里就不一一列举了。

    4.6.2 Authorization Response

    Authorization Response消息的结构如下:

    图7 Authorization Response消息

    Response消息中包括了授权的结果和一些其它的参数

    status字段表示授权的结果和权限的操作方式

    server_msg字段是服务器给用户的提示信息。

    data字段是服务器提供给管理员的信息。

    arg_cnt字段表示RESPONSE消息中携带的argument的数量,argument的格式和REQUEST消息中相同。

    4.7 具体授权过程

    4.7.1 Comwarev5设备使用HWTACACS认证/授权

    AUTHOR_REQUEST ------------->

    <------------- AUTHOR_REPLY(status:AUTHOR_STATUS_PASS_ADD

    4.8 Accounting消息

    Accounting消息包括两种类型:REQUEST和REPLY。

    4.8.1 Accounting Request

    Accounting Request消息的结构如下:

    图8 Accounting Request消息

    Accounting Request消息中包括了计费所需的信息。

    flags字段表示计费报文的类型,包括计费开始。计费停止和实时计费。

    其它字段的含义和与authorization和authentication中对应字段的含义一致,这里不再赘述。

    Accounting REQUEST消息中也可以携带很多AVP形式的参数,参数的数量很多,这里就不一一列举了。

    data字段是服务器提供给管理员的信息。

    4.8.2 Accounting Reply

    Accounting Reply消息的结构如下:

    图9 Accounting Reply消息

    其中status字段表示计费的状态,标志计费是否成功。

    server_msg字段表示服务器发给用户的信息,由客户端来决定是否显示给用户。

    4.9 具体计费过程

    4.9.1 Comwarev5设备使用HWTACACS进行PPP用户计费

    下面是Comwarev5设备使用HWTACACS进行PPP用户计费的过程,包括计费开始,计费持续和计费停止的全过程。

    ACCOUNTING_REQUEST(flag:ACCT_FLAG_START ------------->

    <------------- ACCOUNTING_REPLY(status:ACCT_STATUS_SUCCESS

    ACCOUNTING_REQUEST(flag:ACCT_FLAG_WATCHDOG ------------->

    <------------- ACCOUNTING_REPLY(status:ACCT_STATUS_SUCCESS

    ACCOUNTING_REQUEST(flag:ACCT_FLAG_STOP ------------->

    <------------- ACCOUNTING_REPLY(status:ACCT_STATUS_SUCCESS

    4.10 TACACS+的附加功能

    除了正常的AAA功能外,为确保功能实现的冗余和实时计费准确性等等,很多TACACS+实现都包括下面的内容:

    1、计费停止报文的缓存和重传机制;

    2、认证、授权、计费服务器的主备切换功能。

    4.11 Tacacs in Comware(以V5为例)

    Comware v5的HWTACACS功能基本上实现了TACACS+所规定的功能:

    #

    hwtacacs scheme tacacs

    primary authentication 101.3.201.1

    primary authorization 101.3.201.1

    primary accounting 101.3.201.1

    key authentication h3c

    key authorization h3c

    key accounting h3c

    timer realtime-accounting 3

    user-name-format without-domain

    #

    展开全文
  • TACACS+ Authorization

    2018-11-06 17:00:19
    Within TACACS+, command and login authorizations are dependent on the use of privilege level assignments. Privilege level assignments for users and/or AXOS system interfaces (console, CLI, craft, ) ...
  • TACACS+协议

    千次阅读 2016-04-26 21:06:45
    TACACS+协议 TACACS+是思科私有协议 TACACS+使用TCP的49端口进行通信 TACACS+使用会话的概念来定义执行认证,授权,统计的交换数据集,通常每个会话都有单独的连接,但多个会话可以复用到同一个TCP连接中 ...
  • tacacs+调研文档

    2016-02-24 11:23:08
    tacacs+协议的详细调研,主要侧重认证部分的各类报文格式及加密方式研究。
  • tacacs+协议分析

    2013-03-17 10:20:14
    tacacs+ 协议分析
  • LINUX下tacacs+服务器安装指南 编制孙广伟 日期2007- 审核 日期 批准 日期 安装tacacs+所需软件 tac_plus-F4.0.3.alpha-9.i386.rpm 此软件可以从LINUX安装光盘获取也可以从网上下载使用安装光盘安装比较简单可以用...
  • TACACS+/RADIUS服务器搭建记录 1、TACACS+相关信息 TACACS+软件下载地址 TACACS+首页介绍 2、RADIUS软件下载地址 1)FreeRADIUS下载地址 2)FreeRADIUS官方文档 3)FreeRADIUS的...
  • Tacacs+认证详细调研

    2016-02-18 16:16:00
    1 、TACACS+概述 1.1 什么是TACACS+ TACACS+(Terminal Access Controller Access Control System,终端访问控制器控制系统协议)是在TACACS协议的基础上进行了功能增强的安全协议。该协议与RADIUS协议的功能类似...
  • Tacacs+服务器部署

    千次阅读 2013-12-11 14:36:45
    1.安装开发环境#yum -y install gcc make flex bison libwrap0-...下载安装tacacs+软件包#wget ftp://ftp.shrubbery.net/pub/tac_plus/tacacs+-F4.0.4.26.tar.gz#tar -zxvf tacacs+-F4.0.4.26.tar.gz#cd tacacs+-F4....
  • Linux-Tacacs+ 3A

    千次阅读 2019-03-25 16:16:51
    TACACS+的全称是:Terminal Access Controller Access-Control System Plus(终端访问控制器访问控制系统),它是一款思科专属网络协议,提供了对于路由器,网络服务器等网络设备的访问控制功能。另外,它也包含身份...
  • TACACS+使用方法

    2012-09-02 00:05:44
    TACACS+ 使用是 3A 协议,即认证,授权,记录,在网管系统中,用处广泛,适合网络编程初学者使用!
  • 首先TACACS+是基于TCP 49的协议。所以这也能解释tacacs+和radius的基本区别:radius是一个UDP大包被所有的授权结果一股脑的推给终端,而tacacs+的TCP就可以基于每行一个命令一个个授权。路由器的aaa命令 aaa group ...
  • 【网络安全】TACACS+协议

    千次阅读 2014-11-24 21:35:22
    1 TACACS+概述 1.1 什么是TACACS+ TACACS+(Terminal Access Controller Access Control System,终端访问控制器控制系统协议)是在TACACS协议的基础上进行了功能增强的安全协议。该协议与RADIUS协议的功能类似,...
  • TACACS+ 配置过程

    万次阅读 2012-07-09 15:52:41
    一、TACACS+ 全局配置 1. 认证配置  Router1#configure terminal  Router1(config)#aaa new-model  Router1(config)#aaa authentication login default group tacacs+ local 加上local 代表tacacs+ ...
  • The TACACS+ Protocol

    2013-12-08 10:20:25
    IETF protocol: http://tools.ietf.org/html/draft-grant-tacacs-02 A free tacacs+ server: http://tacacs.net/ The TACACS+ Protocol Version 1.78 Status of This Memo ...
  • TACACS+和RADIUS这两种协议间的差异

    千次阅读 2018-12-31 00:44:48
    其实理解TACACS+和RADIUS这两种协议间的差异非常重要。TACACS+的关键因素包括不兼容TACACS和KTACACS认证和权分离加密所有通信使用TCP端端口49RADIUS的关键因素包括:使用RADIUS代理服务器提供可扩展性将RADIUS认证和...
  • Her0in · 2015/12/18 10:45原文地址:3 attacks on cisco tacacs bypassing...No.1 利用 DoS 攻击绕过 Cisco TACACS+No.2 本地爆破 PSK 绕过 Cisco TACACS+No.3 利用中间人攻击 绕过 Cisco TACACS+一般来说,在一个...
  • 编写Tacacs+客户端,使用Tacacs+协议认证,当认证方式为ARAP时start报文的data字段该怎么封装?
  • Ubuntu下安装tacacs+服务器

    千次阅读 2018-10-26 14:12:42
    下载tacacs+服务器地址ftp://ftp.shrubbery.net/pub/tac_plus/tacacs±F4.0.4.26.tar.gz 把压缩包拷至自己定义的文件夹中解压,# tar zxvf tacacs±F4.0.4.26.tar.gz 进入解压后的文件夹中,# cd tacacs±F4.0.4.26 ...
  • 在一些大型企业中,管理员希望通过TACACS+或RADIUS服务器对各种网络设备的管理接入进行AAA认证,以实现对管理员帐号的集中管理。A10的AX系列负载均衡交换机支持这两种常见的认证方式。 由于TACACS+是Cisco的一个私有...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 188
精华内容 75
关键字:

Tacacs+