我使用127.0.0.1:9000上的tcp socket将nginx连接到php5-cgi。 但是我想确保没有外部的请求可以对这个IP,所以没有攻击者可以混淆IP和绕过nginx用php做恶心的东西。
现在我想知道是否真的有可能做这样的利用,如果是这样,我怎样才能避免使用iptables?
通常不可能从外部地址访问仅绑定到localhost服务。 SF的问题相当 充满 ,如何扭转这种状况,而做这件事所需要的健美操并不是微不足道的,正是因为只有绑定到localhost的整个概念才能给你带来安全感。
您可以创build一个防火墙规则来阻止此stream量,但反而启用反向path过滤要容易得多。
(root)$ echo 1 > /proc/sys/net/ipv4/conf/eth0/rp_filter
反向path过滤使用路由表过滤掉传入数据包中的伪造地址。
您可以通过将以下内容添加到/etc/systcl.conf来在所有接口上默认启用此function:
net.ipv4.conf.default.rp_filter=1 net.ipv4.conf.all.rp_filter=1
更多信息: http : //www.slashroot.in/linux-kernel-rpfilter-settings-reverse-path-filtering
然而…
正如MadHatter已经提到的,对于127.0.0.1/8来说这是完全不必要的。 (如果需要,可以使用net.ipv4.conf.all.log_martians = 1来logging这些数据包)。