作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我在不同的虚拟服务器上有两个 Rails 应用程序,但在同一个设施中。这两个应用程序都可以通过本地 IP 地址进行通信。
这是一个两部分的问题:
1) 如何检查请求的来源并将请求限制为仅来自该位置的请求?
2) 你认为这足够安全吗?
我的直觉告诉我,由于 IP 欺骗,这不够安全,但我认为 OAuth 或类似工具对我的需求来说有点太硬核了。虽然,也许不是。
这是我第一次接触这样的事情,我正在寻找任何可以将我推向正确方向的人。
谢谢。
最佳答案
根据托管您的主机,本地网络(您的本地地址所属)可能是仅供您的实例访问的专用网络,或者更有可能与其他虚拟机共享那不属于你。您不会对直接的外部攻击持开放态度,但任何与您共享同一本地网络的受感染虚拟机都可能成为攻击的跳板,因此您的担忧是绝对有道理的。
按顺序回答您的两个问题:
iptables
以仅接受来自特定本地 IP 的特定端口的请求(阅读 a tutorial 以更好地理解 iptables
配置。)本地网络上的所有其他虚拟机应该无法探测到您,尽管它们可能能够拦截您的流量(在下面解决。)iptables
,或者因为您的 iptables
配置被管理员覆盖),其次它会保护你的数据不被窥视(例如,攻击者将无法窥探你的密码流量。)一些应用程序(例如大多数数据库引擎,网络-snmpd 设置为 v3 模式等) native 支持 SSL。或者,建立并使用 ssh
隧道,或使用 stunnel 示例基础 iptables
配置允许公共(public)(互联网)接口(interface)上的基本服务(HTTP、SSH 等),以及允许 www1
和 www2
在 eth0
接口(interface)(www1
和 www2
定义在 /etc/hosts
以便它们解析为适当的 IP 地址。):
# * raw
#
# Allows internal traffic without loading conntrack
# -A PREROUTING -i lo -d 127.0.0.0/8 -j NOTRACK
*filter
# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -i ! lo -d 127.0.0.0/8 -j DROP
# Accepts all established inbound connections (TCP, UDP, ICMP incl. "network unreachable" etc.)
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allows all outbound traffic
# You can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT
# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
# Allows SSH connections
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
# Allow ping
-A INPUT -p icmp -m icmp --icmp-type echo-request -j ACCEPT
# log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level debug
# Reject all other inbound - default deny unless explicitly allowed policy
-A INPUT -j REJECT
-A FORWARD -j REJECT
# Allows MySQL within our cluster ONLY
-A INPUT -p tcp -s www1 -i eth0 --dport 3306 -j ACCEPT
-A INPUT -p udp -s www1 -i eth0 --dport 3306 -j ACCEPT
-A INPUT -p tcp -s www2 -i eth0 --dport 3306 -j ACCEPT
-A INPUT -p udp -s www2 -i eth0 --dport 3306 -j ACCEPT
COMMIT
关于ruby-on-rails - 目录 : Securing a Closed API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/604924/
我是一名优秀的程序员,十分优秀!