• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

H3C VCF控制器认证技术白皮书

Copyright © 2019 新华三技术有限公司 版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。

本文档中的信息可能变动,恕不另行通知。



概述

1.1  产生背景

为了保证网络的安全性以及基于集中管理用户考虑,VCF控制器支持在用户登录时进行本地认证或AAA认证:

·   本地认证方式:通过在控制器上配置的用户名和密码,直接登录控制器并进行相关操作。

·   AAA认证方式:采用远程认证协议(常用的有RADIUSTACACS+等),在客户端和认证服务器之间通过交互协议报文完成认证授权过程,实现对用户权限的控制。由于远程认证协议繁多,客户需求也不尽相同,因此方便快捷地支持新的认证协议显得十分重要。目前,在Linux系统上实现了一种PAMPluggable Authentication Module)机制,利用PAM提供的API可以方便地实现与安全性相关的功能,例如用户认证、数据加密、LDAP等。VCF控制器利用PAM机制来实现AAA认证功能。

同时,令牌超时机制和白名单机制都是认证技术相关的一些常用功能,能够灵活方便的满足用户的认证需求。

1.2  技术优点

针对用户对多种远程认证协议均存在需求的现状,使用PAM机制,可以通过简单地修改配置文件来完成对不同认证协议的支持。

通过令牌超时机制实现了控制器登录超时断开功能,增加了用户操作控制器的安全性。

白名单功能可以让控制器管理员为特定客户源开放免认证服务。

本地认证机制

2.1  概念介绍

本地认证是通过用户在控制器上配置的用户名和密码直接登录控制器。此种认证方式无需借助其他第三方设备或认证协议,仅在控制器上即可完成全部操作,部署简单。

2.2  运行机制

在控制器的[控制器/系统管理/配置管理/认证管理]界面,指定认证模式(AuthMode)。本地认证方式下,选择的认证模式为Local。配置界面如下:

图1 认证管理配置页面

 

选择认证模式为Local后,还需在[控制器/系统管理/用户配置]界面创建登录控制器所需用户名和密码。创建用户时,可通过“角色”右侧的下拉框指定该用户的角色为“管理员”或“普通用户”。创建完成后,可直接使用该用户名和密码登录控制器进行相应操作。

图2 增加用户配置页面

 

AAA认证机制

3.1  概念介绍

3.1.1  PAM机制

PAM是由Sun提出的一种认证机制。PAM通过提供动态链接库和统一的API,将系统提供的服务和该服务对应的认证方式分离,系统管理员可以根据需求灵活地进行配置。例如,可以在不更改服务程序的情况下为不同的服务配置不同的认证方式,灵活地向系统中添加新的认证手段。PAM支持如下4种模块:

·   身份鉴别模块:用于验证用户或设置/销毁凭证;

·   帐户管理模块:用于账户权限访问控制和凭证有效期管理等;

·   会话管理模块:用于初始化和终止会话;

·   口令管理模块:执行与密码更改/更新有关的操作。

图3 PAM实现机制

 

3.1.2  RADIUS认证协议

RADIUS协议认证机制灵活,可以采用PAPCHAP等多种方式进行认证。RADIUS是一种可扩展的协议,它可以通过Attribute-Length-Value(属性-长度-值)的向量进行任意的扩充,RADIUS支持厂商扩充厂家专有属性。目前,使用H3C厂家专有的29号属性来描述用户角色,包括普通用户与管理员两种角色。控制器可以根据该属性值来设置用户对控制器资源的访问和控制。

3.1.3  TACACS+认证协议

TACACS+协议是在TACACS协议的基础上进行了功能增强的安全协议。该协议与RADIUS协议的功能类似,采用客户端/服务器模式实现NASNetwork Access Server,网络接入服务器)与TACACS+服务器之间通信。TACACS+协议使用TCP封装报文,TACACS+报文头不加密,其余报文主体进行加密。TACACS+协议可以设置某种服务里某种协议的自定义属性。目前支持的自定义服务类型为:h3c-vcfc,协议类型:auth,同时定义“29=value”(value用来描述用户角色,取值03分别表示普通用户或管理员)。

3.2  运行机制

在控制器的[控制器/系统管理/配置管理/认证管理]界面,指定认证模式。AAA认证方式下,选择的认证模式为TACACS+RADIUS。配置界面如下:

图4 认证管理配置页面

 

AAA认证时,除了配置认证模式,还需配置如下内容:

·   AAA认证服务器的IP地址:远程认证服务器的IP地址。

·   用户认证方式:支持PAPCHAP两种。

¡   PAP认证的用户名和密码信息使用明文方式传送,安全性低。

¡   CHAP认证的用户名和密码信息使用密文传送,安全性高。

¡   认证服务器可以分别设置两种认证方式及其对应的密码,VCF控制器只有认证方式和密码同时匹配时才能通过认证。

·   AAA认证服务器和客户端传输报文加解密所需的共享密钥:用于加密传输的报文,需要和服务器端的配置保持一致。

配置完成后,系统会在控制器安装目录下的PAM目录(/opt/sdn/virgo/pam/pam.d/)里生成jpam-radiusjpam-tacacs配置文件,并在登录流程中生效。

图5 VCF控制器AAA认证组网图

 

3.2.1  RADIUS认证流程

RADIUS协议的认证和授权通过认证报文的一次交互完成,授权信息被包含在认证返回报文中。

图6 RADIUS认证流程示意图

 

(1)       用户输入用户名/密码,认证信息通过REST请求发送给VCF控制器。

(2)       VCF控制器根据获取到的用户名和密码,封装RADIUS认证请求报文,并发送给RADIUS服务器,其中的密码在共享密钥的参与下利用MD5算法进行加密处理。

(3)       RADIUS服务器收到请求报文后解析并对用户名和密码进行认证。如果认证成功,则RADIUS服务器向VCF控制器发送认证接受报文,同时报文中携带了授权信息和私有属性。

(4)       VCF控制器解析报文,根据私有属性确定用户权限为管理员还是普通用户,并设置该用户可访问的控制器资源规则。

(5)       用户访问控制器相应权限的控制器资源。

RADIUS认证请求和回应报文如下:

图7 RADIUS认证请求报文

 

图8 RADIUS认证回应报文

 

认证成功时,查看报文中表示H3C公司的用户权限的私有属性Vendor-Specific26 v=H3C(25506)VSA29=00000003,其中00000003表示管理员,如果是普通用户,其值为0

3.2.2  TACACS+认证流程

RADIUS协议不同,TACACS+认证和授权分独立的两步进行。首先通过一次报文交互认证用户名和密码,认证通过之后再进行一次报文交互以确认授权信息。

图9 TACACS+认证流程示意图

 

(1)     用户输入用户名/密码,认证信息通过REST请求发送给VCF控制器。

(2)     VCF控制器封装TACACS+认证请求报文,发送给TACACS+服务器。

(3)     TACACS+服务器收到请求报文后解析,并返回认证成功/失败报文。

(4)     VCF控制器解析报文,如果认证成功,再次发送授权请求报文。

(5)     TACACS+服务器解析请求报文并回应携带授权信息和私有属性的回应报文。

(6)     VCF控制器解析报文,根据私有属性确定用户权限为管理员还是普通用户,并设置该用户可访问的控制器资源规则。

(7)     用户访问控制器指定权限资源。

TACACS+认证请求和回应报文如下:

图10 TACACS+认证授权报文

 

图11 认证请求报文

 

图12 认证请求回应报文

 

图13 授权请求报文

 

图14 授权请求回应报文

 

TACACS+协议使用Authentication(认证)和Authorization(授权)两类报文完成认证流程。Authentication报文完成用户名密码的验证,Authorization报文完成用户授权。在授权协议报文中,我们使用用户私有属性“29=329号属性值为3表示此用户为管理员权限。由于TACACS+协议报文实体被加密,所以无法通过抓取报文观察认证内容。

令牌超时机制

4.1  概念介绍

基于登录安全的考虑,在用户登录后如长时间不操作控制器,当再次使用控制器时应当重新进行登录认证操作才可以确保安全性。具体为:

·   当用户登录控制器后,控制器会记录用户此次登录的认证信息。在一定有效期间内,用户无需认证就可以访问控制器页面,并且用户的每次操作(除登出操作)都会刷新此有效时间。

·   如果用户两次操作之间的时间间隔超过该有效时间,则再次操作控制器时需重新输入用户名密码登录控制器。此有效时间称为令牌超时时间。

4.2  运行机制

用户初次登录控制器时,后台根据令牌超时时间为此用户分配一个Token。如果在有效时间内该Token没有被刷新,系统会删除此Token。用户在GUI界面进行操作时发起的请求都会携带此Token,后台检查Token有效后会刷新超时时间且此次操作无需认证;如果发起的请求中不携带此Token,则系统认为该令牌时间已超时,将要求用户重新登录控制器。

令牌超时时间可通过[控制器/系统管理/配置管理/认证管理]界面的CachedTokenIdle参数进行配置。

图15 令牌超时时间配置界面

 

认证管理白名单机制

5.1  概念介绍

当用户通过客户端对VCF控制器的REST API进行操作时,需要首先进行认证操作,但是该认证过程较为复杂,操作不便。VCF控制器通过配置白名单,实现客户端的免认证,即不需要登录认证即可直接进行REST API操作。在[控制器/系统管理/认证管理]页面下配置客户端的IP地址,从该IP发出的REST API请求都不需认证即可执行。

5.2  运行机制

VCF控制器接收到Web请求后,首先检查是否为REST API请求。如果是,系统会解析出此REST请求的源IP地址,并检查此IP地址是否存在于配置的白名单中。如果存在,则根据角色类型执行REST操作,如果不存在则返回失败。角色分为普通用户和管理员,普通用户角色只能够执行查看认证管理的配置信息操作。

添加认证管理白名单可通过[控制器/系统管理/认证管理]页面进行配置。需要注意的是,普通用户仅可以执行查看配置的操作,如需通过REST API进行添加或修改配置,请指定客户端角色为管理员。

图16 白名单配置界面

 

 

典型组网应用

图17 VCF控制器认证典型配置组网图

 

6.1  RADIUS/TACACS+认证配置举例

6.1.1  认证服务器配置

如下举例中以Cisco Secure ACS软件作为认证服务器,描述认证服务器配置过程。

1. ACS基础配置

(1)       ACS 4.2软件安装成功后,进入ACS主页面,单击左侧的<User Setup>按钮,在User输入框输入用户名,单击<Add/Edit>按钮进入用户属性配置页面。该用户名即登录控制器的用户名。

图18 创建登录用户

 

(2)       在用户属性配置页面的Password输入框中输入该用户名对应的密码。具体配置方式为:

a.   CiscoSecure PAP参数的Password输入框中输入PAP认证密码。如果下方的Separate(CHAP/MS-CHAP/ARAP)参数未勾选,则该密码将同时用于CHAP认证。

b.   勾选Separate(CHAP/MS-CHAP/ARAP)参数的复选框,同时在Password输入框中输入CHAP认证密码。

图19 设置认证密码

 

(3)       首次安装ACS时,默认未开启“Per-user TACACS+/RADIUS Attributes”和“Network Device Groups”功能,需要在Interface Configuration界面开启才能使用。具体步骤为:单击左侧的<Interface Configuration>按钮,进入Interface Configuration页面,单击“Advanced Options”链接,进入Advanced Options配置页面,勾选“Per-user TACACS+/RADIUS Attributes”和“Network Device Groups”前的复选框,单击<Submit>按钮,完成上述功能的开启。“Per-user TACACS+/RADIUS Attributes”为基于用户配置权限属性功能。“Network Device Groups”为网络设备组功能,CiscoSecure ACS以组的形式管理登录客户端和认证服务器。

图20 Advanced Options配置页面

 

(4)       单击左侧的<Network Configuration>按钮,进入Network Configuration页面,单击<Add Entry>按钮,在新页面中配置Network Device Group NameShared Secret(共享密钥),单击<Submit>按钮,完成Network Device Groups的创建。每一个“Network Device Group”中可以包含多个登录客户端和服务器,同一个组里面都使用组设置的共享密钥。如果没有设置组共享密钥,登录时使用客户端配置中的共享密钥。

图21 创建Network Device Group

 

图22 配置Network Device Group参数

 

2. RADIUS认证配置

(1)       配置RADIUS H3C权限私有属性。在认证服务器的C盘根目录下创建名称为h3c.ini私有属性配置文件并添加如下配置信息。创建完成后,进入系统的CMD命令提示符界面,首先切换工作目录至ACS软件安装路径下的bin目录,然后使用CSUtil.exe –addUDV 0 c:\h3c.ini命令加载配置文件。配置文件的具体内容为:

[User Defined Vendor]

Name=H3C

IETF Code=25506

 

VSA 29=H3C_Exec_Privilege

[H3C_Exec_Privilege]

Type=INTEGER

Profile=IN OUT

Enums=H3C_Exec_Privilege-Values

[H3C_Exec_Privilege-Values]

0=Visit

3=Manage

图23 私有属性配置文件

 

图24 配置RADIUS H3C权限私有属性

 

(2)       单击左侧的<Network Configuration>按钮,进入Network Configuration页面,单击已创建的Network Device Group名称,进入AAA认证服务器和客户端创建页面。

图25 进入认证服务器和客户端创建页面

 

图26 认证服务器和客户端配置页面

 

(3)       单击AAA认证客户端区域的<Add Entry>按钮,进入认证客户端配置页面。使用Authenticate Using右侧的下拉框选择RADIUS参数,以指定该客户端为RADIUS类型的客户端。同时配置AAA Client HostnameAAA Client IP AddressShared Secret等,配置完成后单击下方的<Submit+Apply>按钮应用配置。

图27 配置RAIDUS类型的AAA认证客户端

 

(4)       单击AAA认证服务器区域的<Add Entry>按钮,进入认证服务器配置页面。在该页面配置AAA Server NameAAA Server IP AddressKey等,同时使用AAA Server Type右侧的下拉框选择认证服务器类型为RADIUS。配置完成后单击下方的<Submit+Apply>按钮应用配置。

图28 配置RAIDUS类型的AAA认证服务器

 

(5)       单击左侧<Interface Configuration>按钮,进入Interface Configuration页面,单击RADIUSH3C),进入RADIUSH3C)配置页面,勾选User复选框,单击<Submit>按钮完成基于用户配置RADIUS权限私有属性功能的开启。

图29 RADIUSH3C)配置页面

 

(6)       配置RADIUS的用户权限私有属性。单击左侧的<User Setup>按钮,在该页面中单击<List all users>按钮显示已创建的所有用户。单击需配置的用户名进入用户配置界面,在下方的“RADIUS (H3C) Attributes”区域勾选[25506\029] H3C_Exec_Privilege选项,并在右侧的下拉框中指定用户角色,选择“Manage”表示该用户为管理员用户,选择“Visit”表示该用户为普通用户。

图30 User List页面

 

图31 配置RADIUS私有属性

 

(7)       至此,RADIUS认证服务器配置完成。

3. TACACS+认证配置

(1)       单击左侧的<Network Configuration>按钮,进入Network Configuration页面,单击已创建的Network Device Group名称,进入AAA认证服务器和客户端创建页面

图32 进入认证服务器和客户端创建页面

 

图33 认证服务器和客户端配置页面

 

(2)       单击AAA认证客户端区域的<Add Entry>按钮,进入认证客户端配置页面。使用Authenticate Using右侧的下拉框选择TACACS+参数,指定该客户端为TACACS+类型的认证客户端。同时配置AAA Client HostnameAAA Client IP AddressShared Secret等,配置完成后单击下方的<Submit+Apply>按钮应用配置。

图34 配置TACACS+类型的AAA认证客户端

 

(3)       单击AAA认证服务器区域的<Add Entry>按钮,进入认证服务器配置页面。在该页面配置AAA Server NameAAA Server IP AddressKey等,同时使用AAA Server Type右侧的下拉框选择认证服务器类型为TACACS+。配置完成后单击下方的<Submit+Apply>按钮应用配置。

图35 配置TACACS+类型的AAA认证服务器

 

(4)       配置TACACS+私有属性。单击左侧的<Interface Configuration>按钮,进入Interface Configuration页面,单击TACACS+Cisco IOS),进入TACACS+Cisco)配置页面,在该页面的New Services区域勾选User复选框,并创建新的服务类型:“Service:h3c-vcfcProtocol:auth表示认证服务为H3C控制器的认证服务。具体配置见下图:

图36 配置TACACS+私有认证服务类型

 

(5)       配置TACACS+的用户权限私有属性。单击左侧的<User Setup>按钮,在该页面中单击<List all users>按钮显示已创建的所有用户,单击需配置的用户名进入用户配置界面,在下方的TACACS+ Settings区域勾选上一步骤配置的私有属性,同时勾选并在输入框中配置具体的属性值。属性取值为:

¡   29=0:表示该用户角色为普通用户。

¡   29=3:表示该用户角色为管理员用户。

图37 User List页面

 

图38 配置TACACS+私有属性

 

(6)       至此,TACACS+认证服务器配置完成。

6.1.2  VCF控制器配置

缺省情况下,VCF控制器默认使用本地认证方式。用户如需使用RADIUSTACACS+认证方式,需登录VCF控制器,通过[控制器/系统管理/配置管理/认证管理]页面,配置认证服务器IP地址、认证类型及共享密钥等参数。认证协议报文在认证服务器和VCF控制器之间进行交互,完成认证授权业务。

6.2  令牌超时配置举例

用户登录VCF控制器后,单击[控制器/系统管理/配置管理]菜单项进入配置管理页面,单击“认证管理”左侧的按钮展开详细配置信息,通过配置“CachedTokenIdle”参数设置令牌超时时间。用户两次操作时间间隔超过此时间,则需要重新登录控制器。

6.3  认证管理白名单配置举例

用户登录VCF控制器后,单击[控制器/系统管理/认证管理]菜单项进入认证管理页面。在该页面单击<增加>按钮,通过指定IP地址配置白名单。IP地址在白名单中的客户端不需要登录认证即可直接进行REST API操作。

新华三官网
联系我们