Citrix ADC

应答器的半径支持

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 
应答器的半径支持