用例:使用IP黑名单过滤客户端
HTTP调出可用于阻止来自管理员列入黑名单的客户端的请求。客户端列表可以是公开的黑名单、您为组织维护的黑名单或两者的组合。
Citrix ADC设备根据预先配置的黑名单检查客户端的IP地址,如果IP地址已被列入黑名单,则阻止事务。如果IP地址不在列表中,设备将处理事务。
为实现此配置,需完成以下任务:
- 启用Citrix ADC设备上的响应器。
- 在Citrix ADC设备上创建一个HTTP调出,并使用有关外部服务器和其他所需参数的详细信息对其进行配置。
- 配置响应器策略以分析对HTTP调出的响应,然后全局绑定该策略。
- 在远程服务器上创建HTTP调出代理。
使回答者
在使用响应器之前,必须启用它。
使用GUI启用响应器
- 确保您已经安装了响应器许可证。
- 在配置实用工具中,展开AppExpert并单击右键应答器,然后按使回答者特性。
在Citrix ADC设备上创建HTTP调出
创建一个HTTP callout, HTTP_Callout,参数设置如下表所示。有关创建HTTP调出的详细信息,请参见配置HTTP Calloutpdf。
配置响应器策略并全局绑定
配置HTTP调出后,请验证调出配置,然后配置响应器策略来调用调出。虽然您可以在Policies子节点中创建响应器策略,然后通过使用responder policy Manager全局绑定它,但本演示使用responder policy Manager创建响应器策略并全局绑定策略。
创建响应器策略并全局绑定
- 导航到AppExpert>应答器.
- 在详细信息窗格中策略管理器,点击策略管理器.
- 在响应器策略管理器对话框,单击覆盖全球.
- 点击插入政策,然后,下政策的名字,点击新政策.
在创建响应器策略对话框中,执行以下操作:
- 在“名称”中输入PolicyResponder1.
- 在行动中,选择重置.
- 在Undefined-Result行动中,选择全球undefined-result行动。
在表达式,输入以下高级策略表达式:
“HTTP.REQ.HEADER(“请求”)。EQ (Callout请求”)。没有T && SYS.HTTP_CALLOUT(HTTP_Callout).CONTAINS("IP Matched")"
- 点击创建,然后按关闭.
- 点击申请更改,然后按关闭.
在远程服务器上创建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黑名单过滤客户端
复制!
失败了!