解决 AWS 网络 ACL 规则限制

解决 AWS 网络 ACL 规则限制

一个 VPC 网络 ACL 最多可以应用 40 条规则。

我有一份包含 50 多个 IP 地址的列表,我需要明确阻止通过任何端口和任何协议访问我们的系统。这是 ACL 的理想用途,但限制阻碍了我完成这项任务。

当然,我可以在每个主机上的 IPTables 中执行此操作,但我想阻止所有 VPC 中组件的流量(例如 ELB 的流量)。此外,在一个地方管理这些规则比在每个主机上管理这些规则更为理想。

我希望在系统/平台级别上有一些我不理解的方法。安全组是明确允许的,没有拒绝操作,所以它们不会起作用。

答案1

这是一个出乎意料的想法......您可以通过向每个 IP 的 VPC 路由表添加“损坏”路由来“空路由”这 50 个被阻止的 IP。

这不会阻止来自 IP 的流量到达您的基础设施(只有 NACL 和 SG 会阻止这种情况),但它会阻止返回流量“返回原点”。

答案2

无法增加 NACL 的限制,并且大量的 NACL 规则会影响网络性能。

您可能首先遇到的是架构问题。

  1. 您的实例必须位于公共子网中吗?
  2. 您是否设置了 NAT 网关来限制入站流量?
  3. 对于那些必须位于公共子网中的实例,您是否有最低限度的入站安全组规则?
  4. 你正在用吗AWS WAF IP 匹配条件阻止不必要的流量到 CloudFront 和负载均衡器?

如果你达到了 NACL 规则限制,很可能是因为你没有采用 AWS 推荐的 VPC 架构方法,也没有使用 WAF 等服务(以及防御 DDoS 攻击(即 DDoS 攻击)来阻止不必要的流量和公开攻击。

如果您担心 DDoS 攻击:如何使用 Amazon CloudFront 和 Amazon Route 53 保护动态 Web 应用程序免受 DDoS 攻击

答案3

这不完全是您所要求的,但可能足以完成工作。

在基础设施前端设置 CloudFront。使用IP 匹配条件有效地阻止流量。CloudFront 可处理静态和动态内容,并且可以加速动态内容,因为它使用 AWS 主干而不是公共互联网。以下是文档中的内容

如果您想要根据请求来源的 IP 地址允许某些 Web 请求并阻止其他请求,请为想要允许的 IP 地址创建一个 IP 匹配条件,并为想要阻止的 IP 地址创建另一个 IP 匹配条件。

使用 CloudFront 时,您应该使用安全组阻止对任何公共资源的直接访问。AWS 更新安全组 lambda将使您的安全组保持最新状态,以允许 CloudFront 流量进入但拒绝其他流量。如果您使用 CloudFront 将 http 重定向到 https,则可以稍微调整脚本以防止 http 访问您的基础设施。您还可以将需要直接管理员访问权限的任何 IP 列入白名单。

或者,您可以使用第三方 CDN,例如 CloudFlare。CloudFlare 拥有有效的防火墙,但对于您想要的规则数量,每月费用为 200 美元。这可能比 CloudFront 便宜,AWS 带宽相当昂贵​​。免费计划仅提供 5 条防火墙规则。

相关内容