Citrix ADC

使用Citrix Web应用防火墙保护AWS API网关

您可以在AWS API网关前部署Citrix ADC设备,并保护API网关免受外部威胁。Citrix Web应用程序防火墙(WAF)可以保护您的API免受OWASP十大威胁和零日攻击。Citrix WAF在所有ADC外形中使用单一代码库。因此,您可以在任何环境中一致地应用和实施安全策略。Citrix WAF易于部署,并可作为单一许可证获得。Citrix WAF为您提供以下功能:

  • 简化的配置
  • 机器人管理
  • 整体的可见性
  • 从多个来源整理数据,并在一个统一的屏幕上显示数据

除了API网关保护之外,您还可以使用Citrix ADC的其他特性。有关更多信息,请参见Citrix ADC文档。除了避免数据中心故障转移和最小化停机时间外,您还可以将ADC置于可用性区域内或跨可用性区域的高可用性中。您还可以使用或配置具有Autoscale特性的集群。

早些时候,AWS API网关不支持保护其背后的应用程序所需的保护。如果没有Web应用程序防火墙(WAF)保护,api很容易受到安全威胁。

在AWS API网关前部署Citrix ADC设备

在下面的示例中,Citrix ADC设备部署在AWS API网关前。

将ADC部署在AWS API网关前

让我们假设有一个针对AWS Lambda服务的真正API请求。此请求可以针对中提到的任何API服务亚马逊API网关文档。如上图所示,交通流如下:

  1. 客户端向AWS Lambda函数(XYZ)发送请求。这个客户端请求被发送到Citrix ADC虚拟服务器(192.168.1.1)。
  2. 虚拟服务器对报文进行检查,检查是否存在恶意内容。
  3. Citrix ADC设备触发重写策略来更改客户端请求中的主机名和URL。例如,您想要更改https://restapi.citrix.com/default/LamdaFunctionXYZhttps://citrix.execute-api。<地区> .amazonaws.com/default/LambdaFunctionXYZ
  4. Citrix ADC设备将此请求转发到AWS API网关。
  5. AWS API网关进一步将请求发送到Lambda服务,并调用Lambda函数“XYZ”。
  6. 同时,如果攻击者发送带有恶意内容的API请求,则恶意请求将落在Citrix ADC设备上。
  7. Citrix ADC设备根据配置的操作检查数据包并丢弃数据包。

配置启用WAF的Citrix ADC设备

要在Citrix ADC设备上启用WAF,请执行以下步骤:

  1. 添加内容交换或负载平衡虚拟服务器。假设虚拟服务器的IP地址是192.168.1.1,它解析为一个域名(restapi.citrix.com)。
  2. 在Citrix ADC虚拟服务器上启用WAF策略。有关更多信息,请参见配置Web应用防火墙
  3. 启用“重写策略”,修改域名。假设,您希望将传入的请求更改为负载平衡器,域名为“restapi.citrix.com”,并将其重写为后端AWS API网关,地址为“citrix.execute-api”。<地区>.amazonaws”域名。
  4. 在Citrix ADC设备上启用L3模式,使其充当代理。使用如下命令:

    启用ns mode L3 

在前面示例的第3步中,假设网站管理员希望Citrix ADC设备将“restapi.citrix.com”域名替换为“citrix.execute-api”。<地区>.amazonaws.com”和URL“default/lambda/XYZ”。

下面的步骤描述了如何使用重写特性修改客户端请求中的主机名和URL:

  1. 使用SSH登录到Citrix ADC设备。
  2. 添加重写操作。

    添加重写操作rewrite_host_hdr_act替换"HTTP.REQ.HEADER(\"Host\")"\"citrix.execute-api..amazonaws.com\""添加重写操作rewrite_url_act替换HTTP.REQ.URL。PATH_AND_QUERY "\"/default/lambda/XYZ\"" 
  3. 为重写操作添加重写策略。

    添加重写策略rewrite_host_hdr_pol "HTTP.REQ.HEADER(\"Host\").CONTAINS(\"restapi.citrix.com\")"rewrite_host_hdr_act添加重写策略rewrite_url_pol "HTTP.REQ.HEADER(\"Host\").CONTAINS(\"restapi.citrix.com\") "“rewrite_url_act < !——NeedCopy >
  4. 将重写策略绑定到虚拟服务器。

    绑定lb vserver LB_API_Gateway -policyName rewrite_host_hdr_pol -priority 10 -gotoPriorityExpression 20 -gotoPriorityExpression END -type REQUEST 

有关更多信息,请参见配置重写以更改Citrix ADC设备上客户端请求中的主机名和URL

Citrix ADC的特性和功能

Citrix ADC设备除了保护部署之外,还可以根据用户需求增强请求。Citrix ADC设备提供以下关键特性。

  • API网关负载均衡:如果您有多个API网关,您可以使用Citrix ADC设备对多个API网关进行负载平衡,并定义API请求的行为。

    • 可以使用不同的负载均衡方法。例如,最小连接方法避免了API网关限制的过载,自定义负载方法在特定的API网关上维护特定的负载,等等。有关更多信息,请参见负载均衡算法

    • 在不中断流量的情况下配置SSL卸载。
    • 启用USIP (Use Source IP)模式,保留客户端IP地址。
    • 用户自定义SSL设置:您可以使用自己签名的证书和算法拥有自己的SSL虚拟服务器。
    • 备份虚拟服务器:如果API网关不可达,您可以将请求发送到备份虚拟服务器以进行进一步操作。
    • 还有许多其他负载平衡特性可用。有关更多信息,请参见Citrix ADC设备上的负载平衡流量
  • 认证、授权和审计:您可以定义自己的身份验证方法,如LDAP、SAML、RADIUS,并对API请求进行授权和审计。

  • 应答:您可以在关闭期间将API请求重定向到其他API网关。

  • 速度限制:通过配置限速功能,可以避免API网关过载。

  • 更好的Availablity:您可以在高可用性设置或集群设置中配置Citrix ADC设备,以便为AWS API流量提供更好的可用性。

  • REST API:支持REST API,可用于在云生产环境中自动化工作。

  • 监控数据:监控和记录数据以供参考。

Citrix ADC设备提供了更多的特性,这些特性可以与AWS API网关集成。有关更多信息,请参见Citrix ADC文档

使用Citrix Web应用防火墙保护AWS API网关