【问题标题】:How can I block all external IPs to endpoints behind AWS ELB?如何阻止所有外部 IP 到 AWS ELB 后面的端点?
【发布时间】:2015-11-29 21:25:40
【问题描述】:

好的 - 所以我有一个开发人员不希望我们的 REST 端点可以从外部访问,唯一允许的访问是 localhost 和内部网络方案。我们的内网方案是10.10.x.x.

我们这样做的方式是使用 .conf 文件中的 开关,如下所示:

<LocationMatch "/foo/bar/*">
  Order deny,allow
  Deny from all
  Allow from 10.10
  Allow from 127
</LocationMatch>

现在,我们面临的挑战是 AWS 负载均衡器上有一个 X-Forward-Host 规则,因此所有原始源 IP 以及如果我从 10 开始允许 - 显然,将允许从外部访问所有端点,因为这个。

如前所述,我们的内部 IP 是 10.10,所以我可以从 10.10 开始允许,这会解决它,但如果我创建更多区域,那么网络方案可能是 10.20.x。 10.30.x.x 10.40.x.x 然后它就变成了一场管理噩梦。

所以,有人提到在 http.conf 级别做某事是有意义的:

<Directory />
    #Example..
    SetEnvIF X-Forwarded-For "(,| |^)192\.168\.1\.1(,| |$)" DenyIP
    SetEnvIF X-Forwarded-For "(,| |^)10\.1\.1\.1(,| |$)" DenyIP
    Order allow,deny
    Deny from env=DenyIP
    Allow from all
</Directory>

found from this blog

所以,我不确定如何遵循这种格式并确保它拒绝这些目录的所有外部 IP。

http.conf 文件是否会有类似的内容:

<VirtualHost>
    #Example..
    SetEnvIF X-Forwarded-For "(,| |^)*\.*\.*\.*(,| |$)" DenyIP
</VirtualHost>

和我的其他具有 规则的 conf 文件有:

<LocationMatch "/foo/bar/*">
  Order deny,allow
  Deny from env=DenyIP
  Allow from 10.
  Allow from 127
</LocationMatch>

感谢您的帮助!

【问题讨论】:

  • 我们是否应该从中了解到您的 API 不是在它们自己的服务器上,而是在服务器(和 ELB)上,而这些服务器也提供应该可以公开访问的内容?

标签: apache amazon-web-services load-balancing httpd.conf blacklist


【解决方案1】:

使用安全组,而不是修改 apache!

  1. 为您的弹性负载均衡器创建一个安全组。允许从 0.0.0.0/0 对端口 80 和 443 进行入站访问。
  2. 为您的 apache 服务器创建一个安全组。允许来自 ELB 安全组的入站访问(一个安全组可以引用另一个安全组)。还可以添加访问权限,以便您可以通过 SSH 连接到服务器。

就是这样!安全组将阻止试图访问您的 apache 服务器而不通过负载均衡器的流量。

见:

【讨论】:

    猜你喜欢
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 2016-11-06
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    相关资源
    最近更新 更多