我在不同的虚拟服务器上有两个rails应用程序,但在同一个工具中。这两个应用程序都可以通过本地IP地址进
这是一个两部分问题:
1)如何检查请求的来源,并将请求仅限于来自该位置的请求?
2)你认为这足够安全吗?
我的直觉告诉我,由于IP欺骗,这不够安全,但我认为OAuth或类似的东西对我的需求来说太硬了。虽然,也许不是。
这是我第一次接近这样的事情而且我正在寻找任何可以让我朝着正确方向前进的人。
感谢。
答案 0 :(得分:3)
根据您的托管对象,本地网络(您的本地地址所属的)可能是仅可由您的实例访问的专用网络,或者更有可能与其他虚拟机共享那不属于你的。您不会接受直接的外部攻击,但任何受到攻击的虚拟机共享同一个本地网络,因为您可以成为攻击的跳板,因此您的担忧绝对有效。
按顺序回答你的两个问题:
iptables
,仅接受来自特定本地IP的特定端口上的请求(阅读a tutorial,以便更好地了解iptables
配置。)本地网络上的所有其他虚拟机都不应该能够探测到您,尽管它们可能能够拦截您的流量(如下所述)。iptables
,或者因为您{{1} } config被管理员覆盖,其次它会保护你的数据免受窥探(例如,攻击者将无法窥探你的密码的流量。)一些应用程序(例如大多数数据库引擎,net-snmpd在v3中设置)模式等)原生支持SSL。或者,建立并使用iptables
隧道,或使用stunnel 示例基础ssh
配置允许公共(Internet)接口上的基本服务(HTTP,SSH等),以及允许iptables
和www1
连接到此节点的MySQL www2
接口上的端口3306(eth0
和www1
在www2
中定义,因此它们会解析为相应的IP地址。):
/etc/hosts
答案 1 :(得分:1)
这听起来并不像Rails问题,更多的是关于Web架构的问题。我假设这两台机器都可以通过HTTP访问外部世界。如果是这种情况,您可能需要考虑在两台计算机前放置防火墙,以创建两台计算机所在的本地网络。
完成此操作后,您应该能够根据您指定的任何条件配置防火墙以禁止请求。鉴于这是一个Rails应用程序,我将假设API是一组资源。如果是这种情况,您可以配置防火墙以过滤对私有API的请求。
这样,本地网络上的计算机可以自由通信,因为它们之间的请求不会通过防火墙。