应答器的半径支持
Citrix ADC表达式语言包含可以从和操作RADIUS请求中提取信息的表达式。这些表达式使您可以使用响应者功能来响应RADIUS请求。您的响应程序策略和操作可以使用适当或与RADIUS请求相关的任何表达式。可用的表达式使您可以识别RADIUS消息类型,从连接中提取任何属性值对(AVP),并根据该信息发送不同的响应。您还可以创建策略标签,调用半径连接的所有响应策略。
您可以使用RADIUS表达式来构造不需要与发送请求的RADIUS服务器通信的简单响应。当响应策略与连接匹配时,Citrix ADC构造并在不接触RADIUS认证服务器的情况下发送适当的RADIUS响应。例如,如果RADIUS请求的源IP地址来自响应策略中指定的子网,则Citrix ADC可以使用访问拒绝消息回复该请求,或者只需删除请求即可。
您还可以创建策略标签,通过一系列适合于特定类型RADIUS请求的策略来路由这些请求。
注:当前的RADIUS表达式不适用于RADIUS IPv6属性。
Citrix ADC文档中支持RADIUS的表达式假设您熟悉RADIUS通信的基本结构和目的。如果需要关于RADIUS的更多信息,请参阅RADIUS服务器文档或在线搜索RADIUS协议的介绍。
为RADIUS配置响应程序策略
下面的过程使用Citrix ADC命令行配置响应器动作和策略,并将策略绑定到特定于radius的全局绑定点。
要配置响应操作和策略,并绑定策略:
在命令提示下,键入以下命令:
添加响应者操作
添加响应策略
<规则> bind responder policy
哪里-type
表示一个特定于RADIUS的全局绑定点之一。
RADIUS表达式响应者
在响应者配置中,您可以使用以下Citrix ADC表达式来引用RADIUS请求的各个部分。
识别连接类型:
RADIUS.IS_客户端。如果连接是RADIUS客户端(请求)消息,则返回TRUE。
RADIUS.IS_SERVER。如果连接是RADIUS服务器(响应)消息,则返回TRUE。
请求表达:
RADIUS.REQ.CODE
. 返回与RADIUS请求类型对应的数字。类中num_的导数。例如,RADIUS访问请求将返回1(一)。RADIUS记帐请求将返回4。半径要求长度
.返回RADIUS请求的长度,包括标题。num_at类的导数。Radius.req.identifier
.返回RADIUS请求标识符,这是分配给每个请求的编号,允许请求与相应的响应进行匹配。num_at类的导数。RADIUS.REQ.AVP(
.将此AVP的第一次出现的值返回为类型Text_T的字符串。)。值 RADIUS.REQ.AVP(
.将AVP的指定实例返回为RACP_T类型的字符串。特定的RADIUS AVP可以在RADIUS消息中多次发生。实例(0)返回第一个实例,实例(1)返回第二个实例,依此类推,最多可达十六个实例。).实例(实例编号) RADIUS.REQ。AVP (< avon代码没有>)。值(实例)
. 以text\t类型的字符串形式返回AVP的指定实例的值。RADIUS.REQ.AVP(
.返回RADIUS连接中特定AVP的实例数,作为整数。)。计数 RADIUS.REQ.AVP(
.如果消息中存在指定类型的AVP类型,则返回true,或者如果没有,则为false。)。存在
回应表达:
RADIUS响应表达式与RADIUS请求表达式相同,除了RES替换REQ之外。
AVP值的键盘:
ADC支持将RADIUS AVP值类型转换为文本、整数、无符号整数、长、无符号长、ipv4地址、ipv6地址、ipv6前缀和时间数据类型的表达式。语法与其他Citrix ADC类型转换表达式相同。
例子:
ADC支持将RADIUS AVP值类型转换为文本、整数、无符号整数、长、无符号长、ipv4地址、ipv6地址、ipv6前缀和时间数据类型的表达式。语法与其他Citrix ADC类型转换表达式相同。
半径要求AVP(8).值(0).在<处键入广播\u ip\u地址--需要复制-->
AVP类型表达式:
Citrix ADC支持使用RFC2865和RFC2866中描述的分配的整数代码提取RADIUS AVP值。您还可以使用文本别名来完成相同的任务。一些例子。
- RADIUS.REQ.AVP (1). value或RADIUS.REQ.USERNAME.value。提取RADIUS用户名。
- RADIUS.REQ.AVP(4)。值或RADIUS.REQ。acct_session_id.Value。从消息中提取acct-session-id avp(代码44)。
- RADIUS.REQ.AVP(26)。值或RADIUS.REQ.VENDOR_特定值。提取特定于供应商的值。
最常用的RADIUS avp值也可以用同样的方法提取。
半径绑定点:
有四个全局绑定点可用于包含RADIUS表达式的策略。
- Radius_req_override。优先级/覆盖请求策略队列。
- RADIUS_REQ_DEFAULT。标准请求策略队列。
- 半径重置。优先级/覆盖响应策略队列。
- 半径默认值。标准响应策略队列。
RADIUS响应程序特定表达式:
- RADIUS_RECUNDWITH。响应指定的RADIUS响应。使用Citrix ADC表达式创建响应,包括RADIUS表达式和适用的任何其他表达式。
- RADIUS.NEW_ANSWER。向用户发送新的RADIUS应答。
- Radius.new_accessreject。拒绝RADIUS请求。
- RADIUS.NEW_AVP。将指定的新AVP添加到响应中。
用例
以下是RADIUS与响应器的用例。
阻止特定网络的RADIUS请求
要配置响应者功能以阻止来自特定网络的身份验证请求,首先创建拒绝请求的响应操作。使用策略中的操作,该策略中选择要阻止的网络的请求。将响应者策略绑定到格式的RADIUS的全局绑定点,指定:
- 优先事项
- 结束作为nextExpr值,以确保在匹配此策略时停止策略评估
- RADIUS_REQ_OVERRIDE作为分配策略的队列,以便在分配策略到默认队列之前对其进行评估
配置Responder以阻止来自特定网络的登录**
添加响应者操作
添加响应策略
<规则> 绑定响应程序全局
-type
例子:
> add responder action rspActRadiusReject respondwith radius。new_accessreject Done > add responder policy rspPolRadiusReject client.ip.src.in_subnet(10.224.80.5 /24) rspActRadiusReject Done > bind responder global rspPolRadiusReject 1 END -type RADIUS_REQ_OVERRIDE