Citrix ADC

用例:使用IP黑名单过滤客户端

HTTP调出可用于阻止来自管理员列入黑名单的客户端的请求。客户端列表可以是公开的黑名单、您为组织维护的黑名单或两者的组合。

Citrix ADC设备根据预先配置的黑名单检查客户端的IP地址,如果IP地址已被列入黑名单,则阻止事务。如果IP地址不在列表中,设备将处理事务。

为实现此配置,需完成以下任务:

  1. 启用Citrix ADC设备上的响应器。
  2. 在Citrix ADC设备上创建一个HTTP调出,并使用有关外部服务器和其他所需参数的详细信息对其进行配置。
  3. 配置响应器策略以分析对HTTP调出的响应,然后全局绑定该策略。
  4. 在远程服务器上创建HTTP调出代理。

使回答者

在使用响应器之前,必须启用它。

使用GUI启用响应器

  1. 确保您已经安装了响应器许可证。
  2. 在配置实用工具中,展开AppExpert并单击右键应答器,然后按使回答者特性。

在Citrix ADC设备上创建HTTP调出

创建一个HTTP callout, HTTP_Callout,参数设置如下表所示。有关创建HTTP调出的详细信息,请参见配置HTTP Calloutpdf。

配置响应器策略并全局绑定

配置HTTP调出后,请验证调出配置,然后配置响应器策略来调用调出。虽然您可以在Policies子节点中创建响应器策略,然后通过使用responder policy Manager全局绑定它,但本演示使用responder policy Manager创建响应器策略并全局绑定策略。

创建响应器策略并全局绑定

  1. 导航到AppExpert>应答器
  2. 在详细信息窗格中策略管理器,点击策略管理器
  3. 响应器策略管理器对话框,单击覆盖全球
  4. 点击插入政策,然后,下政策的名字,点击新政策
  5. 创建响应器策略对话框中,执行以下操作:

    1. 在“名称”中输入PolicyResponder1
    2. 行动中,选择重置
    3. Undefined-Result行动中,选择全球undefined-result行动。
    4. 表达式,输入以下高级策略表达式:

      “HTTP.REQ.HEADER(“请求”)。EQ (Callout请求”)。没有T && SYS.HTTP_CALLOUT(HTTP_Callout).CONTAINS("IP Matched")" 
    5. 点击创建,然后按关闭
  6. 点击申请更改,然后按关闭

在远程服务器上创建HTTP调出代理

现在必须在远程调出服务器上创建一个HTTP调出代理,该代理将接收来自Citrix ADC设备的调出请求并进行适当响应。HTTP调出代理是一个脚本,对于每个部署都是不同的,必须在编写时考虑到服务器规范,例如数据库类型和支持的脚本语言。

下面是一个示例调出代理,它验证给定的IP地址是否是IP黑名单的一部分。该代理是用Perl脚本语言编写的,并使用MYSQL数据库。

以下CGI脚本在调出服务器上检查给定的IP地址。

# !/usr/bin/perl -w print "Content-type: text/html\n\n";使用DBI ();使用CGI qw(:standard);$ip_to_check = param('cip');我的$dsn = 'DBI: MYSQL:BAD_CLIENT:localhost';#数据库用户名连接我的$db_user_name = ' dbuser ';$db_password = 'dbpassword';My ($id, $password);#连接数据库my $dbh = DBI->connect($dsn, $db_user_name, $db_password); my $sth = $dbh->prepare(qq{ select * from bad_clnt }); $sth->execute(); while (my ($ip_in_database) = $sth->fetchrow_array()) { chomp($ip_in_database); # Check for IP match if ($ip_in_database eq $ip_to_check) { print "\n IP Matched\n"; $sth->finish(); exit; } } print "\n IP Failed\n"; $sth->finish(); exit; 
用例:使用IP黑名单过滤客户端