RADIUS 身份验证
Junos OS 支持 RADIUS 对网络设备上的用户进行集中身份验证。要在设备上使用 RADIUS 身份验证,您(网络管理员)必须配置有关网络上一个或多个 RADIUS 服务器的信息。您还可以在设备上配置 RADIUS 计费,以收集有关登录或注销 LAN 的用户的统计数据,并将这些数据发送到 RADIUS 计费服务器。
配置 RADIUS 服务器身份验证
RADIUS 身份验证是一种对试图访问网络设备的用户进行身份验证的方法。以下部分介绍为什么要使用 RADIUS 以及如何进行配置。
为什么使用 RADIUS
您(网络管理员)可以使用不同的协议对网络设备上的用户进行集中身份验证,包括 RADIUS 和 TACACS+。我们推荐使用 RADIUS,因为它是多供应商 IETF 标准,其功能比 TACACS+ 或其他专有系统更广泛地被接受。此外,我们建议使用一次性密码系统来提高安全性,这些系统的所有供应商都支持 RADIUS。
当您的优先级是互操作性和性能时,应使用 RADIUS:
-
互操作性 — RADIUS 比 TACACS+ 更具可互操作性,这主要是因为 TACACS+ 的专有性质。虽然 TACACS+ 支持更多协议,但普遍支持 RADIUS。
-
性能 — 路由器和交换机上的 RADIUS 重量要轻得多。因此,网络工程师通常更喜欢 RADIUS 而不是 TACACS+。
配置 RADIUS 服务器详细信息
要在设备上使用 RADIUS 身份验证,请通过在层次结构级别为[edit system]每台 RADIUS 服务器添加一个radius-server语句,来配置有关网络上一个或多个 RADIUS 服务器的信息。设备将按配置顺序查询 RADIUS 服务器。如果主服务器(配置的第一个服务器)不可用,设备将尝试联系列表中的每台服务器,直到收到响应。
网络设备可以将经过 RADIUS 身份验证的用户映射到本地定义的用户帐户或用户模板帐户,由此决定授权。默认情况下,在以下情况下, Junos OS 会将经过 RADIUS 身份验证的用户分配给用户模板帐户 remote(如果已配置):
-
经过身份验证的用户没有在本地设备上配置用户帐户。
-
RADIUS 服务器未将用户分配给本地用户模板,或服务器分配的模板未在本地设备上配置。
RADIUS 服务器可以将经过身份验证的用户分配给其他用户模板,以便向该用户授予不同的管理权限。用户在 CLI 中保留相同的登录名,但从分配的模板继承登录类、访问权限和有效用户 ID。如果经过 RADIUS 身份验证的用户未映射到任何本地定义的用户帐户或用户模板,并且 remote 未配置该模板,则身份验证将会失败。
用户名是 remote Junos OS 中的一种特殊情况,必须始终使用小写。它充当由远程服务器进行身份验证但在设备上没有本地配置用户帐户的用户的模板。 Junos OS 会将模板的 remote 权限应用于那些没有本地定义帐户的经过身份验证的用户。映射到 remote 模板的所有用户都在同一登录类中。
由于要在多台设备上配置远程身份验证,因此通常在配置组中进行配置。此处显示的步骤位于名为 global的配置组中。使用配置组是可选的。
要配置 RADIUS 服务器的身份验证,请执行以下操作:
配置基于 TLS 的 RADIUS (RADSEC) 进行系统认证
基于 TLS 的 RADIUS (RADSEC) 可在 Junos 设备与 RADIUS 服务器之间进行安全加密通信,以进行系统身份验证和计费。系统使用 OpenSSL API 建立 SSL/TLS 会话并执行证书验证。
system系统级身份验证(管理访问)。对于网络访问控制的 RADSEC 配置,请在层次结构下
access配置 RADSEC。
RADSEC 在 TCP 端口 2083(而不是 UDP 端口 1812/1813)上使用 TLS 加密来保护管理身份验证流量。RADSEC 支持两种身份验证模式:
- 单向 TLS: 客户端使用受信任的 CA 证书验证服务器的证书颁发机构证书。
- 相互 TLS (mTLS): 客户端和服务器都使用证书相互验证。
开始之前:
确保以下几点:
- 证书颁发机构证书可用于服务器验证
- 客户端证书可用(仅相互身份验证需要)
配置 CA 证书颁发机构证书:
您可以复制该文件并将其重命名为主题 <hash>.0 /var/tmp/certs/<trusted-ca-group>/。或者,您还可以创建一个带有主题 <hash>.0 /var/tmp/certs/<trusted-ca-group> 的符号链接,并将其链接到实际的证书文件。
- 生成主题名称哈希:
openssl x509 -in <CA-file-name> -noout -subject_hash
- 创建符号链接:
ln -s <CA-file-name> <hash>.0
如果有多个证书颁发机构文件具有相同的主题名称哈希值,则它们的扩展名应该不同;例如,“E5D93F80.1”等。搜索将根据分机号码的相应排序方式进行。
示例:
cd /var/tmp/certs/grp1/ openssl x509 -in root-ca.crt -noout -subject_hash ln -s root-ca.crt e5d93f80.0
配置客户端证书(仅限相互认证):
为了进行相互身份验证,请将客户端证书和私钥 /var/tmp/certs/<certificate-id>/放在 中。
该文件夹必须包含:
client.crt- 客户端证书文件client.key- 客户端私钥文件
示例:
mkdir -p /var/tmp/certs/ca1/ cp client.crt /var/tmp/certs/ca1/ cp client.key /var/tmp/certs/ca1/
要为系统身份验证配置 RADSEC:
以下示例显示了具有相互身份验证的完整 RADSEC 配置:
[edit]
user@host# show system
login {
user remote {
class operator;
}
}
authentication-order [ radius password ];
radius-server {
1.1.1.1 {
port 2083;
tls {
trusted-ca-group grp1;
mutual-authentication {
certificate-id ca1;
}
}
secret "$9$ABC123"; ## SECRET-DATA
}
}
accounting {
destination {
radius {
server {
1.1.1.1 {
accounting-port 2083;
tls {
trusted-ca-group grp1;
mutual-authentication {
certificate-id ca1;
}
}
secret "$9$ABC123"; ## SECRET-DATA
}
}
}
}
}
验证:
登录网络设备并验证身份验证成功。要确认 RADSEC 正常工作,请尝试使用未配置本地密码的帐户登录。
配置参数:
trusted-ca-group- 与 下/var/tmp/certs/包含证书颁发机构证书的文件夹相对应的可信证书颁发机构组名称。OpenSSL 使用这些 证书颁发机构证书来验证 RADIUS 服务器的证书。certificate-id- 与 下/var/tmp/certs/包含客户端证书和私钥的文件夹相对应的证书标识符。相互身份验证所必需。
配置 RADIUS 以使用管理实例
默认情况下, Junos OS 通过默认路由实例路由 RADIUS 的身份验证、授权和计费数据包。您还可以通过非默认 VRF 实例中的管理接口路由 RADIUS 数据包。
要通过 mgmt_junos 管理实例路由 RADIUS 数据包,请执行以下操作:
-
启用
mgmt_junos管理实例。[edit system] user@host# set management-instance
-
为 RADIUS 身份验证服务器和 RADIUS 计费服务器(如果已配置)配置
routing-instance mgmt_junos该语句。[edit system] user@host# set radius-server server-address routing-instance mgmt_junos user@host# set accounting destination radius server server-address routing-instance mgmt_junos
示例:为系统身份验证配置 RADIUS 服务器
此示例通过 RADIUS 服务器配置系统身份验证。
要求
开始之前:
-
执行初始设备配置。请参阅您设备的入门指南。
-
在网络上至少设置一台 RADIUS 服务器。
概述
在此示例中,您将添加 IP 地址为 172.16.98.1 的新 RADIUS 服务器。将 RADIUS 服务器的共享密钥密码指定为 Radiussecret1。设备将密钥作为加密值存储在配置数据库中。最后,指定设备在 RADIUS 服务器请求中使用的源地址。大多数情况下,您可以使用设备的环路地址,在本例中为 10.0.0.1。
您可以在网络设备上配置对多种用户身份验证方法的支持,例如本地密码身份验证、RADIUS 和 TACACS+,当您配置多种身份验证方式时,可以确定设备尝试不同方式的顺序的优先级。在此示例中,您先将设备配置为使用 RADIUS 身份验证服务,如果失败,则尝试本地密码身份验证。
经过 RADIUS 身份验证的用户必须映射到网络设备上的本地用户帐户或本地用户模板帐户,这决定了授权。默认情况下,如果经过 RADIUS 身份验证的用户未映射到本地用户帐户或特定用户模板,则会将该用户分配到 remote 用户模板(如果已配置)。此示例配置用户 remote 模板。
配置
过程
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层次结构级别的 [edit] CLI 中,然后从配置模式进入。commit
set system radius-server 172.16.98.1 set system radius-server 172.16.98.1 secret Radiussecret1 set system radius-server 172.16.98.1 source-address 10.0.0.1 set system authentication-order [radius password] set system login user remote class operator
分步程序
要为系统身份验证配置 RADIUS 服务器:
-
添加新的 RADIUS 服务器并设置其 IP 地址。
[edit system] user@host# set radius-server 172.16.98.1
-
指定 RADIUS 服务器的共享密钥(密码)。
[edit system] user@host# set radius-server 172.16.98.1 secret Radiussecret1
-
将设备的环路地址指定为源地址。
[edit system] user@host# set radius-server 172.16.98.1 source-address 10.0.0.1
-
指定设备的身份验证顺序,并包括该
radius选项。[edit system] user@host# set authentication-order [radius password]
- 配置
remote用户模板及其登录类。[edit system] user@host# set login user remote class operator
结果
在配置模式下,输入 show system 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明进行更正。
以下输出仅包含与此示例相关的配置层次结构部分。
[edit]
user@host# show system
login {
user remote {
class operator;
}
}
authentication-order [ radius password ];
radius-server {
172.16.98.1 {
secret "$9$ABC123"; ## SECRET-DATA
source-address 10.0.0.1;
}
}
配置设备后,进入 commit 配置模式。
配置 RADIUS 身份验证(QFX 系列或 OCX 系列)
RADIUS 身份验证是一种对试图访问路由器或交换机的用户进行身份验证的方法。配置 RADIUS 身份验证的任务包括:
QFabric 系统上的层次结构级别不[edit system-radius-server name]支持该source-address语句。
配置 RADIUS 服务器详细信息
要在路由器或交换机上使用RADIUS身份验证,请通过在层次结构级别为[edit system]每台RADIUS服务器包含一个radius-server语句来配置网络上一个或多个RADIUS服务器的信息:
[edit system] radius-server server-address { accounting-port port-number; accounting-retry number; accounting-timeout seconds; dynamic-request-port number; max-outstanding-requests value; port number; preauthentication-port number; preauthentication-secret secret; retry number; routing-instance routing-instance-name; secret password; source-addresssource-address; timeout seconds; }
server-address 是 RADIUS 服务器的地址。
您可以指定要联系 RADIUS 服务器的端口。默认情况下,使用端口号 1812(如 RFC 2865 中指定)。您还可以指定用于发送计费数据包的计费端口。默认值为 1813(如 RFC 2866 中指定)。
您必须在语句中 secret password 指定密码。如果密码中包含空格,请用引号括起来。本地路由器或交换机使用的密钥必须与服务器使用的密钥匹配。
或者,您可以指定本地路由器或交换机等待接收来自 RADIUS 服务器的响应的时间长度(在语句中 timeout )以及路由器或交换机尝试联系 RADIUS 身份验证服务器的次数(在语句中 retry )。默认情况下,路由器或交换机等待 3 秒。您可以将其配置为 1 到 90 秒之间的值。默认情况下,路由器或交换机会重试连接到服务器三次。您可以将其配置为 1 到 10 倍的值。
您可以使用该 source-address 语句为单个服务器或多个 RADIUS 服务器指定逻辑地址。
要配置多个 RADIUS 服务器,请包含多个 radius-server 语句。
要配置一组共享单个帐户以进行授权的用户,请创建一个模板用户。为此,请在层次结构级别包含[edit system login]该user语句,如 LDAP、RADIUS、TACACS+ 和本地密码的身份验证顺序中所述。
您还可以在[edit access][edit access profile]层次结构级别配置 RADIUS 身份验证。Junos OS 使用以下搜索顺序来确定哪一组服务器用于身份验证:
[edit access profile profile-name radius-server server-address][edit access radius-server server-address][edit system radius-server server-address]
配置 MS-CHAPv2 以支持密码更改
在配置 MS-CHAPv2 以支持密码更改之前,请确保您:
配置 RADIUS 服务器身份验证参数。
设置 身份验证顺序 以使用 RADIUS 服务器进行初始密码尝试。
可以在路由器或交换机上配置质询握手身份验证协议版本 2 (MS-CHAPv2) 的 Microsoft 实现,以支持密码更改。此功能为访问路由器或交换机的用户提供在密码过期、重置或配置为下次登录时更改密码的选项。
要配置 MS-CHAP-v2,请在 [edit system radius-options] 层次结构级别加入以下语句:
[edit system radius-options] password-protocol mschap-v2;
以下示例显示用于配置 MS-CHAPv2 密码协议、密码身份验证顺序和用户帐户的语句:
[edit]
system {
authentication-order [ radius password ];
radius-server {
192.168.69.149 secret "$ABC123"; ## SECRET-DATA
}
radius-options {
password-protocol mschap-v2;
}
login {
user bob {
class operator;
}
}
}
为 Junos OS 指定访问外部 RADIUS 服务器的源地址
您可以指定 Junos OS 在访问您的网络时使用哪个源地址,以便与外部 RADIUS 服务器联系以进行身份验证。您还可以指定 Junos OS 在联系 RADIUS 服务器以发送计费信息时使用的源地址。
要为 RADIUS 服务器指定源地址,请在层次结构级别包含[edit system radius-server server-address]该source-address语句:
[edit system radius-server server-address] source-address source-address;
source-address 是在其中一个路由器接口或交换机接口上配置的有效 IP 地址。
瞻博网络供应商特定 RADIUS 属性
Junos OS 支持在身份验证服务器上配置瞻博网络 RADIUS 供应商特定属性 (VSA)。这些 VSA 封装在特定于 RADIUS 供应商的属性中,供应商 ID 设置为瞻博网络 ID 号 2636。
表 1 列出了可以配置的瞻博网络 VSA。
某些属性接受扩展正则表达式,如 POSIX 1003.2 中所定义。如果正则表达式包含任何空格、运算符或通配符,请用引号将其括起来。有关详细信息,请参阅:
| 姓名 |
描述 |
类型 |
长度 |
字符串 |
|---|---|---|---|---|
| 瞻博网络本地用户名称 |
指示在用户登录设备时分配给此用户的用户模板的名称。此属性仅用于访问-接受数据包。 |
1 |
≥3 |
一个或多个包含可打印 ASCII 字符的八位位组。 |
| 瞻博网络允许命令 |
包含一个扩展正则表达式,使用户能够运行命令以及由用户的登录类权限位授权的命令。此属性仅用于访问-接受数据包。 |
2 |
≥3 |
一个或多个包含可打印 ASCII 字符的八位位组,形式为扩展正则表达式。 |
| 瞻博网络拒绝命令 |
包含一个扩展正则表达式,该正则表达式拒绝用户运行由用户的登录类权限位授权的命令的权限。此属性仅用于访问-接受数据包。 |
3 |
≥3 |
一个或多个包含可打印 ASCII 字符的八位位组,形式为扩展正则表达式。 |
| 瞻博网络允许配置 |
包含一个扩展正则表达式,除了由用户的登录类权限位授权的语句之外,还允许用户查看和修改配置语句。此属性仅用于访问-接受数据包。 |
4 |
≥3 |
一个或多个包含可打印 ASCII 字符的八位位组,形式为扩展正则表达式。 |
| 瞻博网络拒绝配置 |
包含一个扩展正则表达式,拒绝用户查看或修改由用户的登录类权限位授权的配置语句的权限。此属性仅用于访问-接受数据包。 |
5 |
≥3 |
一个或多个包含可打印 ASCII 字符的八位位组,形式为扩展正则表达式。 |
| 瞻博网络交互命令 |
指示用户输入的交互式命令。此属性仅用于计费请求数据包。 |
8 |
≥3 |
一个或多个包含可打印 ASCII 字符的八位位组。 |
| 瞻博网络-配置-更改 |
指示导致配置(数据库)更改的交互式命令。此属性仅用于计费请求数据包。 |
9 |
≥3 |
一个或多个包含可打印 ASCII 字符的八位位组。 |
| 瞻博网络用户权限 |
包含服务器用于指定用户权限的信息。此属性仅用于访问-接受数据包。
注意:
当 RADIUS 服务器定义 |
10 |
≥3 |
一个或多个包含可打印 ASCII 字符的八位位组。 字符串是用空格分隔的权限标志列表。必须完整指定每个标志的确切名称。 |
| 瞻博网络身份验证类型 |
指示用于对用户进行身份验证的身份验证方法(本地数据库或 RADIUS 服务器)。如果使用本地数据库对用户进行身份验证,则属性值显示“本地”。如果使用 RADIUS 或 LDAP 服务器对用户进行身份验证,则属性值会显示“远程”。 |
11 |
≥5 |
一个或多个包含可打印 ASCII 字符的八位位组。 |
| 瞻博网络会话端口 |
指示已建立会话的源端口号。 |
12 |
整数大小 |
整数 |
| 瞻博网络-允许-配置-正则表达式 |
包含一个扩展正则表达式,除了由用户的登录类权限位授权的语句之外,还允许用户查看和修改配置语句。此属性仅用于访问-接受数据包。 |
13 |
≥3 |
一个或多个包含可打印 ASCII 字符的八位位组,形式为扩展正则表达式。 |
| 瞻博网络-拒绝-配置-正则表达式 |
包含一个扩展正则表达式,拒绝用户查看或修改由用户的登录类权限位授权的配置语句的权限。此属性仅用于访问-接受数据包。 |
14 |
≥3 |
一个或多个包含可打印 ASCII 字符的八位位组,形式为扩展正则表达式。 |
有关 VSA 的详细信息,请参阅 RFC 2138,远程认证拨号用户服务 (RADIUS)。
在RADIUS或TACACS+服务器上使用正则表达式允许或拒绝命令
Junos OS 可以将经过 RADIUS 和 TACACS+ 身份验证的用户映射到本地定义的用户帐户或用户模板帐户,用于定义用户的访问权限。您还可以通过在相应的身份验证服务器上定义瞻博网络 RADIUS 和 TACACS+ 供应商特定属性 (VSA) 来选择配置用户的访问权限。
用户的登录类定义了一组权限,这些权限决定了用户有权执行哪些操作模式和配置模式命令,以及用户可以查看和修改哪些配置区域。登录类还可以定义正则表达式,这些正则表达式允许或拒绝用户执行某些命令或查看和修改配置的某些区域,以及权限标志授权的内容。登录类可以包含以下语句来定义用户授权:
-
permissions -
allow-commands -
allow-commands-regexps -
allow-configuration -
allow-configuration-regexps -
deny-commands -
deny-commands-regexps -
deny-configuration -
deny-configuration-regexps
同样,RADIUS 或 TACACS+ 服务器配置可以使用瞻博网络 VSA 来定义确定用户访问权限的特定权限或正则表达式。有关受支持的 RADIUS 和 TACACS+ VSA 列表,请参阅以下内容:
- 瞻博网络供应商特定 RADIUS 属性
- ../concept/../topic-map/user-access-tacacs-身份验证.html#id-juniper-networks-vendor-specific-tacacs-attributes
您可以将 RADIUS 或 TACACS+ 服务器上的用户权限定义为以空格分隔的值列表。
-
RADIUS 服务器使用以下属性和语法:
Juniper-User-Permissions += "flag1 flag2 flag3",
例如:
Juniper-User-Permissions += "interface interface-control configure",
-
TACACS+服务器使用以下属性和语法:
user-permissions = "flag1 flag2 flag3"
例如:
user-permissions = "interface interface-control configure"
RADIUS 或 TACACS+ 服务器还可以定义使用单个扩展正则表达式(如 POSIX 1003.2 中所定义)的瞻博网络 VSA,以允许或拒绝用户执行某些命令或查看和修改配置区域。将多个命令或配置层次结构括在括号中,并使用管道符号将它们分隔开。如果正则表达式包含任何空格、运算符或通配符,请用引号将其括起来。在本地和远程配置授权参数时,设备会将 TACACS+ 或 RADIUS 授权期间收到的正则表达式与本地设备上定义的任何正则表达式合并。
-
RADIUS 服务器使用以下属性和语法:
Juniper-Allow-Commands += "(cmd1)|(cmd2)|(cmdn)", Juniper-Deny-Commands += "(cmd1)|(cmd2)|(cmdn)", Juniper-Allow-Configuration += "(config1)|(config2)|(confign)", Juniper-Deny-Configuration += "(config1)|(config2)|(confign)",
例如:
Juniper-Allow-Commands += "(test)|(ping)|(quit)", Juniper-Deny-Commands += "(request)|(restart)", Juniper-Allow-Configuration += "(groups re0)|(system radius-server)", Juniper-Deny-Configuration += "(system radius-options)|(system accounting)",
-
TACACS+服务器使用以下属性和语法:
allow-commands = "(cmd1)|(cmd2)|(cmdn)" deny-commands = "(cmd1)|(cmd2)|(cmdn)" allow-configuration = "(config1)|(config2)|(confign)" deny-configuration = "(config1)|(config2)|(confign)"
例如:
allow-commands = "(test)|(ping)|(quit)" deny-commands = "(request)|(restart)" allow-configuration = "(groups re0)|(system tacplus-server)" deny-configuration = "(system tacplus-options)|(system accounting)"
RADIUS 和 TACACS+ 服务器还支持配置与可在本地设备上配置的相同 *-regexps 语句相对应的属性。 *-regexps TACACS+属性和 *-Regexps RADIUS属性使用与先前属性相同的正则表达式语法,但使您能够使用变量配置正则表达式。
-
RADIUS 服务器使用以下属性和语法:
Juniper-Allow-Configuration-Regexps += "(config1)|(config2)|(confign)", Juniper-Deny-Configuration-Regexps += "(config1)|(config2)|(confign)",
-
TACACS+服务器使用以下属性和语法:
allow-commands-regexps = "(cmd1)|(cmd2)|(cmdn)" deny-commands-regexps = "(cmd1)|(cmd2)|(cmdn)" allow-configuration-regexps = "(config1)|(config2)|(confign)" deny-configuration-regexps = "(config1)|(config2)|(confign)"
例如,TACACS+ 服务器配置可能定义以下属性:
allow-commands-regexps = "(show cli .*)|(ping 10.1.1..*)" deny-commands-regexps = "(configure .*)|(edit)|(commit)|(rollback .*)"
在RADIUS或TACACS+服务器上,您还可以使用简化的语法来定义属性,在单独的行上指定每个单独的表达式。
对于 RADIUS 服务器,请使用以下语法指定各个正则表达式:
Juniper-User-Permissions += "permission-flag1", Juniper-User-Permissions += "permission-flag2", Juniper-User-Permissions += "permission-flagn", Juniper-Allow-Commands += "cmd1", Juniper-Allow-Commands += "cmd2", Juniper-Allow-Commands += "cmdn", Juniper-Deny-Commands += "cmd1", Juniper-Deny-Commands += "cmd2", Juniper-Deny-Commands += "cmdn", Juniper-Allow-Configuration += "config1", Juniper-Allow-Configuration += "config2", Juniper-Allow-Configuration += "confign", Juniper-Deny-Configuration += "config1", Juniper-Deny-Configuration += "config2", Juniper-Deny-Configuration += "confign",
对于 TACACS+ 服务器,请使用以下语法指定各个正则表达式:
user-permissions1 = "permission-flag1" user-permissions2 = "permission-flag2" user-permissionsn = "permission-flagn" allow-commands1 = "cmd1" allow-commands2 = "cmd2" allow-commandsn = "cmdn" deny-commands1 = "cmd1" deny-commands2 = "cmd2" deny-commandsn = "cmdn" allow-configuration1 = "config1" allow-configuration2 = "config2" allow-configurationn = "confign" deny-configuration1 = "config1" deny-configuration2 = "config2" deny-configurationn = "confign"
-
在TACACS+服务器语法中,1到 n 数值必须是唯一的,但不必是顺序的。例如,以下语法是有效的:
allow-commands1="cmd1" allow-commands3="cmd3" allow-commands2="cmd2" deny-commands3="cmd3" deny-commands2="cmd2" deny-commands1="cmd1"
-
RADIUS 或 TACACS+ 服务器对单个正则表达式行的数量施加限制。
-
发出命令
show cli authorization时,命令输出将以单行显示正则表达式,即使您在单独的行上指定了每个单独的表达式也是如此。
用户可以通过发出 show cli authorization 操作模式命令来验证其类别、权限以及命令和配置授权。
user@host> show cli authorization
在网络设备上本地配置授权参数并在 RADIUS 或 TACACS+ 服务器上远程配置授权参数时,设备会将 TACACS+ 或 RADIUS 授权期间收到的正则表达式与任何本地配置的正则表达式合并。如果最终表达式包含语法错误,则总体结果为无效正则表达式。
瞻博网络交换过滤器 VSA 准则、匹配条件和操作
设备支持配置特定于瞻博网络的 RADIUS 服务器属性。这些属性称为供应商特定属性 (VSA),如 RFC 2138, 远程身份验证拨入用户服务 (RADIUS) 中所述。特定于供应商的属性将 RADIUS 服务器的功能扩展到公共标准属性之外,从而支持实施订阅者管理和服务支持所需的许多实用功能。
瞻博网络 VSA 的供应商 ID 设置为 2636。
属性是由于身份验证成功或失败而从 RADIUS 服务器发送到设备的明文字段。身份验证通过在端口上阻止请求方来防止未经授权的用户访问,直到 RADIUS 服务器对设备进行身份验证。在 RADIUS 服务器上通过身份验证实施过滤属性,为控制请求方的 LAN 访问提供了一个中心位置。
瞻博网络交换过滤器属性与 802.1X 身份验证协同工作,以集中控制请求方对网络的访问。您可以使用此属性在 RADIUS 服务器上配置过滤器。这些过滤器将发送到交换机,并应用于已使用 802.1X 身份验证进行身份验证的用户。
瞻博网络交换过滤器可以包含一个或多个过滤器术语。使用一个或多个 匹配条件 和结果 操作来配置过滤器术语。匹配条件是数据包必须满足的标准,才能对其应用已配置的操作。配置的操作是数据包满足匹配条件中指定的条件时交换机执行的操作。交换机可以执行的操作是接受或拒绝数据包。
将端口防火墙过滤器添加到 RADIUS 服务器无需将过滤器添加到多个端口和设备。一种方法是使用 瞻博网络-Firewall-filter-name VSA 将先前配置的端口防火墙过滤器直接应用于RADIUS服务器。与端口过滤属性一样,此过滤器在身份验证过程中应用,其操作在设备端口上应用。
VSA 指南
特定于供应商的 RADIUS 属性每个属性最多包含 247 个字符。如果需要更多长度,瞻博网络支持同一属性的多个实例,最多 4000 个字符。要支持超过 247 个字符的过滤器,请使用多个瞻博网络交换过滤器属性。下面的示例显示了两个属性,每个属性都包含一个在 247 个字符限制内的新筛选器术语:
Juniper-Switching-Filter = "Match ip-protocol 17 destination-port 67 Destination-ip 192.168.1.0/24 Action deny, match destination-ip 10.1.7.253 destination-port 53 action allow" Juniper-Switching-Filter += "Match ip-protocol 1 destination-port 4000 Destination-ip 192.168.21.0/24 Action deny"
4000 个字符的限制取决于 RADIUS 服务器和瞻博网络设备上支持的 MTU 以及使用的其他 RADIUS 属性的数量。
以下准则适用于 VSA 匹配条件和操作:
-
语句和
action语句都是match必需的。 -
如果未指定匹配条件,则默认情况下将任何数据包视为匹配数据包。
-
如果未指定任何操作,则默认操作是拒绝数据包。
-
每个
matchandaction语句中可以包含任何或所有选项。 -
AND 运算对不同类型的字段执行,用逗号分隔。同一类型的字段不能重复。
-
要应用该
forwarding-class选项,必须在交换机上配置转发类。如果交换机上未配置转发类,则忽略此选项。
匹配条件
表 2 介绍了在 RADIUS 服务器上使用命令match将 VSA 属性配置为防火墙过滤器时可以指定的匹配条件。定义匹配条件的字符串称为 match 语句。
| 选项 |
描述 |
|---|---|
|
|
数据包的目标介质访问控制 (MAC) 地址。 |
|
|
802.1Q 标头中的标记值,范围 |
|
|
最终目标节点的地址。 |
|
|
IPv4 协议值。可以指定以下文本同义词之一来代替数值: 、 、 、 |
|
|
TCP 或用户数据报协议 (UDP) 源端口字段。通常,将此 match 语句 |
|
|
TCP 或 UDP 目标端口字段。通常,将此 match 语句 、 、 、 |
操作
定义一个或多个用于指定过滤条件的术语时,还可定义数据包与所有条件匹配时要执行的操作。 表 3 显示了可以在术语中指定的操作。
| 选项 |
描述 |
|---|---|
| ( |
以静默方式接受数据包或丢弃数据包,而不发送互联网控制消息协议 (ICMP) 消息。 |
|
|
(选答)将数据包分类为以下转发类之一:
|
|
|
(选答)将数据包丢弃优先级 (PLP) 设置为 |
也可以看看
了解 RADIUS 记账
网络设备支持 IETF RFC 2866 RADIUS 记账。您可以在设备上配置 RADIUS 计费,以收集有关用户登录或注销 LAN 的统计数据,并将这些数据发送到 RADIUS 计费服务器。统计数据可用于一般网络监控、分析和跟踪使用模式,或根据会话持续时间或访问的服务类型向用户计费。
要配置 RADIUS 记帐,请指定:
-
一个或多个 RADIUS 计费服务器,用于从设备接收统计数据
-
要收集的会计数据类型
您可以将同一台服务器用于 RADIUS 核算和身份验证,也可以使用单独的服务器。您可以指定 RADIUS 计费服务器的列表。设备将按服务器的配置顺序查询服务器。如果主服务器(配置的第一个服务器)不可用,设备将尝试联系列表中的每台服务器,直到收到响应。
设备与 RADIUS 服务器之间的 RADIUS 计费过程的工作方式如下:
-
RADIUS 计费服务器侦听特定端口上的用户数据报协议 (UDP) 数据包。RADIUS 记账的默认端口为 1813。
-
设备将包含事件记录的 计费请求 数据包转发至计费服务器。与此请求方关联的事件记录包含一个 Acct-Status-Type 属性,其值指示此请求方的用户服务开始。当请求方的会话结束时,计费请求将包含一个 Acct-Status-Type 属性值,该属性值指示用户服务的结束。RADIUS 计费服务器会将此记录为停止计费记录,其中包含会话信息和会话长度。
-
RADIUS 计费服务器将这些事件记录在文件中,作为启动计费或停止计费记录。在 FreeRADIUS 上,文件名是服务器的地址,例如 192.0.2.0。
-
计费服务器向设备发送计 费响应 数据包,确认其已收到计费请求。
-
如果设备未收到来自服务器的计费-响应数据包,它将继续发送计费请求,直到服务器返回响应。
您可以在 RADIUS 服务器上查看通过此过程收集的统计信息。要查看这些统计信息,请访问配置为接收这些统计信息的日志文件。
配置 RADIUS 系统计费
启用 RADIUS 记账后,充当 RADIUS 客户端的瞻博网络设备可以向 RADIUS 服务器通知用户活动,例如软件登录、配置更改和交互式命令。RFC 2866,RADIUS 核算中介绍了 RADIUS 核算的框架。
配置 RADIUS 服务器上的用户事件审核
要配置 RADIUS 记账:
以下示例为 RADIUS 记帐配置三台服务器(10.5.5.5、10.6.6.6 和 10.7.7.7):
system {
accounting {
events [ login change-log interactive-commands ];
destination {
radius {
server {
10.5.5.5 {
accounting-port 3333;
secret $ABC123;
source-address 10.1.1.1;
retry 3;
timeout 3;
}
10.6.6.6 secret $ABC123;
10.7.7.7 secret $ABC123;
}
}
}
}
}
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。