什么:
我们正在使用iptables,并将我们的服务器locking到只有特定的端口和IP。 最近我们要求打开第三方服务的stream量。
但是, 第三方服务在ELB后面使用AWS及其后端实例。 当然,后端实例IP可以随时更改,因为它们不是静态的。 同时亚马逊也不能给出一定的IP范围。
怎么样:
理想情况下,如果我们有IP范围,那么我们可以将此添加到iptables规则,但我们没有它,我们不能添加的URL(由于显而易见的原因,这是不可能在iptables中)。
我可以针对两个主要的URL(api和主站点)运行dig命令,这会给我大部分的IP地址,但问题是它不会接收所有的后端实例。
我能够findIP的唯一方法就是观看日志,看看哪些被阻止。 一旦我添加这些IP的规则,然后开始工作….
无论如何,这可以有效地脚本? 或者我们必须废除使用iptables ….或find另一个第三方服务?
如果有帮助,我们正在尝试使用的服务是Mollom:
www.mollom.com,rest.mollom.com
您可能没有从DNS获取所有IP,因为与您的服务通信的一些实例是后台工作人员或任务框等。如果没有可靠的方法来确定哪些IP可能尝试访问您的服务,则不会能够通过IP来限制访问。
您可以使用亚马逊的IP范围API来打开对整个AWS区域的访问权限,但是这有点失败。 或许他们访问应用程序的方式是独一无二的,你可以使用粗略的共享秘密forms,并限制对类似请求(用户代理头,特定查询参数等)的访问。
如果您只使用REST API,则通常会从您所联系的IP地址进行响应,否则HTTP TCP连接将不起作用。 但是,如果您实际上使用的是创build带外TCP连接的服务返回到原始客户端IP或其他IP,则该API的所有者需要向您公开源IP列表,以便您可以将白名单他们真的没有更好的办法。