跳到主要内容

配置RADIUS认证

要成功启用 CLI 用户和/或客户端的 RADIUS 认证,必须配置以下内容:

  • 在外部主机机器上,最多配置三个 RADIUS 服务器(请参阅配置 RADIUS 服务器)
  • 在 Solace PubSub+ 事件代理上:
    • RADIUS 域(请参阅分配 RADIUS 域)
    • RADIUS 配置文件(请参阅配置 RADIUS 配置文件)

配置RADIUS服务器

要成功启用 CLI 用户和/或客户端的 RADIUS 认证,RADIUS 管理员必须在外部主机机器上安装并配置最多三个 RADIUS 服务器,以便存储用户认证和访问信息。有关选择主机机器和安装服务器软件的信息,请参阅第三方 RADIUS 服务器文档。

当 Solace 消息网络中有大量客户端时,RADIUS 管理员必须配置 RADIUS 服务器以处理客户端认证的峰值速率。如果不这样做,RADIUS 服务器可能会丢弃认证请求,客户端连接速率可能会因缓慢的认证重试而大幅降低,事件代理可能会暂时消耗更多的连接资源。要排查此场景,请查看 show radius-profile <profile> stats 用户 EXEC 命令的输出,以确保没有超时。超时表明 RADIUS 服务器未配置为处理客户端认证的峰值速率.

分配RADIUS域

要为 CLI 用户和/或客户端分配 RADIUS 域字符串,请输入以下命令:

solace(configure/authentication/user-class)# radius-domain <radius-domain>

其中:

  • <radius-domain> 是附加到传出 RADIUS 访问请求中用户名的认证域字符串。例如,testuser@<radius-domain string>.

配置RADIUS配置文件

RADIUS 配置文件包含认证请求重传和超时值以及每个 RADIUS 服务器的 RADIUS 认证配置。每个 RADIUS 配置文件可以使用最多三个 RADIUS 服务器,最多可以配置十个 RADIUS 配置文件。

  • 要创建新的 RADIUS 配置文件,请输入以下命令:
solace(configure/authentication)# create radius-profile <profile-name>
  • 要编辑现有 RADIUS 配置文件的属性,请输入以下 CONFIG 命令:
solace(configure/authentication)# radius-profile <profile-name>

其中:

  • <profile-name> 是 RADIUS 配置文件的名称。

此命令的 no 版本,no radius-profile <profile-name>,会从事件代理中删除给定的 RADIUS 配置文件(名为 default 的 RADIUS 配置文件不能被删除)。在删除 RADIUS 配置文件之前:

  • 必须通过 shutdown RADIUS Profile Authentication CONFIG 命令禁用它
  • 不能有其他配置对象引用它

对于 RADIUS 配置文件,您可以执行以下任何配置任务:

  • 配置最大重传尝试次数
  • 启用 RADIUS 配置文件
  • 注册 RADIUS 服务器
  • 设置重试超时

配置最大重传尝试次数

认证请求会根据设定的间隔发送到主 RADIUS 主机,并且请求可以重试多达十次。如果从主主机没有收到响应并且达到最大尝试值,则请求会发送到次级主机(如果已配置)。如果从次级主机没有收到响应并且达到最大尝试值,则请求会发送到第三级主机(如果已配置)。如果从第三级主机没有收到响应并且达到最大尝试值,则过程会重复。Solace PubSub+ 消息代理只会循环使用已配置的主机。

如果请求被任何服务器拒绝,则不会在其他服务器上重试。

要设置对 RADIUS 服务器重试请求的次数,请输入以下命令:

solace(configure/authentication/radius-profile)# retransmit <attempts>

其中:

  • <attempts> 是一个从 1 到 10 的整数,表示重试请求的次数。

启用RADIUS配置文件

当您关闭 RADIUS 配置文件时,所有尝试使用该 RADIUS 配置文件进行认证的用户和/或客户端将失败,直到再次启用它。

  • 要在事件代理上启用当前 RADIUS 配置文件,请输入以下命令:
solace(configure/authentication/radius-profile)# no shutdown
  • 要在事件代理上禁用当前 RADIUS 配置文件,请输入以下命令:
solace(configure/authentication/radius-profile)# shutdown

RADIUS 配置文件在 Solace PubSub+ 事件代理上默认是禁用的(即,未启用)。

注册RADIUS服务器

要注册 RADIUS 配置文件使用的每个 RADIUS 服务器的连接信息(最多可以使用三个 RADIUS 服务器),请为每个 RADIUS 主机输入以下命令:

solace(configure/authentication/radius-profile)# radius-server <ip-port> index <server index> key <shared-secret-key>

其中:

  • <ip-port> 是 RADIUS 主机的 IP 地址或完全限定域名 (FQDN) 和端口。如果您使用 RADIUS 主机的 FQDN 设置此值,请注意系统必须为每个连接执行 DNS 查找。在具有大量客户端连接的部署中,认证时间可能会增加。
  • <server index> 是要配置的主机的优先级索引。有效值为 1、2 或 3,其中 1 是主服务器,2 是次级服务器,3 是第三级服务器。默认值是下一个可用的。
  • <shared-secret-key> 是 RADIUS 主机和 Solace PubSub+ 事件代理之间交换的共享密钥。如果密钥包含空格,则必须放在引号内(例如,“包含空格的共享密钥”)。这是新条目的必填参数。

此命令的 no 版本,no radius-server <ip-port>,会取消配置 RADIUS 主机并删除共享密钥。

设置重试超时

要设置重试对 RADIUS 服务器请求之前等待的时间,请输入以下命令:

solace(configure/authentication/radius-profile)# timeout <duration>

其中:

  • <duration> 是一个从 1 到 10 的整数,指定重试请求之前等待的时间(以秒为单位)。

显示RADIUS配置文件信息

要查询当前配置的 RADIUS 配置文件的配置详细信息,请输入以下命令:

solace> show radius-profile <profile-name> [detail | stats]

其中:

  • <profile-name> 是指定的 RADIUS 配置文件的名称。
  • detail 指定显示 RADIUS 配置文件的详细信息。
  • stats 指定显示 RADIUS 配置文件的统计信息。

要清除与当前配置的 RADIUS 配置文件相关的统计信息,请输入以下命令:

solace> enable
solace# clear radius-profile <profile-name> stats

RADIUS服务器配置示例

以下示例会话显示如何将主 RADIUS 主机设置为 192.168.1.4:1812,共享密钥为 sharedSecret1,次级主机设置为 192.168.1.5:1812,共享密钥为 sharedSecret2

solace(configure)# authentication
solace(configure/authentication)# radius-profile solace1
solace(configure/authentication/radius-profile)# radius-server 192.168.1.4 index 1 key sharedSecret1
solace(configure/authentication/radius-profile)# radius-server 192.168.1.5 index 2 key sharedSecret2

以下示例会话显示如何显示配置的 RADIUS 配置文件 solace 1

img示例

solace> show radius-profile solace1

Radius Profile Name: solace1
Shutdown: Yes
Retransmit: 3 attempts/server
Timeout: 5 secs/attempt

Index | Radius Servers
------+----------------------------
1 | 192.168.1.4:1812
2 | 192.168.1.5:1812
3 | N/A

solace> show radius-profile solace1 stats

Radius Profile Name: solace1

Host | Requests | Requests | Timeouts | Server | Errors
| Accepted | Rejected | | Unavail |
----------------------+-----------+-----------+-----------+----------+----------
192.168.1.4:1812 | 0 | 0 | 0 | 0 | 0
192.168.1.5:1812 | 0 | 0 | 0 | 0 | 0
N/A | 0 | 0 | 0 | 0 | 0

solace> show radius-profile solace1 detail
Radius Profile Name: solace1
Shutdown: Yes
Retransmit: 3 attempts/server
Timeout: 5 secs/attempt
Radius Server:
Host: 192.168.1.4:1812 Index 1

-------- Last reply message --------

------------------------------------
Radius Server:
Host: 192.168.1.5:1812 Index 2
-------- Last reply message --------

------------------------------------
Radius Server:
Host: N/A Index 3
-------- Last reply message --------

------------------------------------

事件代理使用的RADIUS属性

Solace PubSub+ 事件代理在 RADIUS 配置文件中使用以下 RADIUS 属性来定义用户和/或客户端的特定认证和授权元素。配置文件存储在 RADIUS 服务器上。RADIUS 消息包含这些属性,以在 Solace PubSub+ 消息代理和 RADIUS 服务器之间传递信息,例如支持的访问级别。Solace 的 RADIUS 厂商标识符为 17337。

访问请求属性

下表列出了从 Solace PubSub+ 事件代理发送到 RADIUS 服务器的 RADIUS 访问请求属性,以确定特定用户和/或客户端是否允许访问事件代理。

属性类型代码描述
User-Name1CLI 用户或客户端用户名,后跟“@<域名>”,其中域名是可配置的。如果配置的域名为空,则不修改用户名。
User-Password2CLI 用户或客户端密码
NAS-IP4Solace PubSub+ 事件代理的管理接口 IP 地址

RADIUS 访问请求属性

访问接受属性

以下三个表格列出了从 RADIUS 服务器发送到 Solace PubSub+ 事件代理的 RADIUS 访问接受属性。RADIUS 访问接受消息是对访问请求消息的回复。当事件代理接收到访问接受消息时,会检查其内容以确定要采取的行动。

属性类型代码厂商特定属性 (VSA) 类型描述
Service-Type6n/a如果值不是 Login,消息将作为访问接受完成解析,然后被视为访问拒绝,并终止连接。这是最通用的 Service-Type 值——它表明用户或客户端应连接到服务器。该字段的其他 RADIUS 定义值不能充分定义提供的服务。相反,使用厂商特定属性来确定要授予的服务类型。
Vendor-Specific261User-Type: 值可以是 cli_userclient_user
对于 CLI 用户连接,期望的 VSA 值为 cli_user User-Type。任何其他类型将导致 CLI 和 SSH 会话终止。
5CliGlobalAccessLevel: 仅在 User-Typecli_user 时有效。值可以是 noneread-onlymesh-managerread-writeadmin
6CliDefaultMessageVpnAccessLevel: 仅在 User-Type 为 cli_user 时有效。值可以是 noneread-onlyread-write
7CliMessageVpnAccessLevelException: 仅在 User-Type 为 cli_user 时有效。格式为 <access-level>@<vpn-name>,其中 access-level 可以是 noneread-onlyread-write。这将覆盖由 CliDefaultMessageVpnAccessLevel 指定的默认访问级别。

RADIUS 访问接受属性

名称描述
cli_user0x00000002CLI 用户;它限制在事件代理的 SSH 端口上。
可以发送 CliGlobalAccessLevel 值以授予 CLI 用户特定的访问级别。此值是一个字符串,必须是以下 CliGlobalAccess VSA 值表中列出的值之一。如果没有发送 CliGlobalAccessLevel,则 CLI 用户将被分配默认全局访问级别指定的权限,如事件代理上配置的那样。
client_user0x00000003客户端;它限制在发布 SMF 请求上。

User-Type VSA 值

名称描述
noneCLI 用户没有全局访问权限。
read-onlyCLI 用户只允许执行 show 命令。
mesh-managerCLI 用户允许执行所有 show 命令和一些配置命令,包括与客户端连接、网格连接和客户端安全功能相关的所有方面。
read-writeCLI 用户允许执行所有命令,除了与创建和修改 CLI 用户账户相关的命令。
adminCLI 用户允许执行所有 CLI 命令。

CliGlobalAccess VSA 值

访问拒绝属性

下表列出了当识别到未经授权的 CLI 用户时,从 RADIUS 服务器发送到 Solace PubSub+ 事件代理的 RADIUS 访问拒绝属性。

属性类型代码描述
Reply-Message18在接收到访问拒绝消息时,Solace PubSub+ 事件代理将关闭 SSH 会话。

RADIUS 访问拒绝属性