如何阻止所有外部 IP 到 AWS ELB 后面的端点?
How can I block all external IPs to endpoints behind AWS ELB?
好的 - 所以我有一个开发人员不希望我们的 REST 端点可以从外部访问,唯一允许的访问是本地主机和内部网络方案。我们的内网方案是10.10.x.x.
我们这样做的方法是使用 .conf 文件中的 < LocationMatch > 开关,如下所示:
<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>
所以,我不确定如何遵循这种格式并确保它拒绝这些目录的所有外部 IP。
http.conf 文件会不会有这样的东西:
<VirtualHost>
#Example..
SetEnvIF X-Forwarded-For "(,| |^)*\.*\.*\.*(,| |$)" DenyIP
</VirtualHost>
我的其他带有 < LocationMatch > 规则的 conf 文件有:
<LocationMatch "/foo/bar/*">
Order deny,allow
Deny from env=DenyIP
Allow from 10.
Allow from 127
</LocationMatch>
感谢您的帮助!
而不是修改 apache,使用安全组!
- 为您的弹性负载均衡器创建一个安全组。允许来自
0.0.0.0/0
的入站访问端口 80 和 443。
- 为您的 apache 服务器创建一个安全组。允许来自 ELB 安全组的入站访问(一个安全组可以引用另一个安全组)。还要添加访问权限,以便您可以通过 SSH 连接到服务器。
就是这样!安全组将阻止在不通过负载均衡器的情况下尝试访问您的 Apache 服务器的流量。
参见:
好的 - 所以我有一个开发人员不希望我们的 REST 端点可以从外部访问,唯一允许的访问是本地主机和内部网络方案。我们的内网方案是10.10.x.x.
我们这样做的方法是使用 .conf 文件中的 < LocationMatch > 开关,如下所示:
<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>
所以,我不确定如何遵循这种格式并确保它拒绝这些目录的所有外部 IP。
http.conf 文件会不会有这样的东西:
<VirtualHost>
#Example..
SetEnvIF X-Forwarded-For "(,| |^)*\.*\.*\.*(,| |$)" DenyIP
</VirtualHost>
我的其他带有 < LocationMatch > 规则的 conf 文件有:
<LocationMatch "/foo/bar/*">
Order deny,allow
Deny from env=DenyIP
Allow from 10.
Allow from 127
</LocationMatch>
感谢您的帮助!
而不是修改 apache,使用安全组!
- 为您的弹性负载均衡器创建一个安全组。允许来自
0.0.0.0/0
的入站访问端口 80 和 443。 - 为您的 apache 服务器创建一个安全组。允许来自 ELB 安全组的入站访问(一个安全组可以引用另一个安全组)。还要添加访问权限,以便您可以通过 SSH 连接到服务器。
就是这样!安全组将阻止在不通过负载均衡器的情况下尝试访问您的 Apache 服务器的流量。
参见: