是否有必要通过共享私有VPSnetworking保护PHP FPM的TCPstream量?

当运行在其他私有networkingstream量被其他潜在敌对的主机(例如,AWS,Vultr,DigitalOcean)共享的群集中时,有很多推荐的实践和教程来保护LEMP / LAMP堆栈的各种组件。 您可以使用TLS来保护反向代理和MySQLstream量。 但是,对于涉及一组托pipePHP-FPM池的实例的集群,似乎没有关于保护Web服务器实例和PHP-FPM实例之间的TCP通信的任何文献。

是否甚至有必要,还是有一个没有文献的原因(例如,stream量是encryption的,或没有理智的VPS /云提供商将在混杂模式下运行专用networking接口)? 当请求进入HTTPS站点时,我们可以看到问题,站点将请求细节发送到PHP-FPM池(包括密码或信用卡号码),第三方以某种方式监听该stream量。

SSH隧道可以成为安全连接恶意networking的绝佳select。 我们发现SSH隧道的实现和理解非常简单,而且比一些VPN选项更可靠。 即使当本地应用程序协议不支持SSL / TLS时也可以隧道连接各种东西。

很好把你的SSH放在一个bash脚本中,它将在一个循环中运行SSH隧道,如果它死了,重新启动它。

以下是我们使用的脚本示例(名称已更改为保护不诚实):

#!/bin/bash umask 0077 if [ -L "$0" ] then EXE=`readlink -e "$0"` else EXE="$0" fi if [ "$1" = "daemon" ] then while [ 1 ] do /usr/bin/ssh -L 127.0.0.1:5432:127.0.0.1:5432 -n -T -x [email protected] sleep 100000000 >> "$EXE.log" 2>&1 & echo "$!" > "$EXE.ssh.pid" wait sleep 5 done elif [ "$1" = "stop" ] then if [ -f "$EXE.pid" ] then kill `cat "$EXE.pid"` sleep 0.1 rm -f "$EXE.pid" fi if [ -f "$EXE.ssh.pid" ] then kill `cat "$EXE.ssh.pid"` sleep 0.1 rm -f "$EXE.ssh.pid" fi else "$0" stop nohup "$0" daemon >> "$EXE.log" 2>&1 & echo "$!" > "$EXE.pid" fi 

您修改SSH线路以执行适当的隧道。 用“开始”或“停止”参数调用脚本。 脚本运行一个守护进程,如果它永远死掉,它将重新启动SSH。

对于隧道,在另一端创build一个最低权限的用户和组以连接到“tunnelusername”。

关于信用卡:要使用这些信用卡,您必须获得许可证,如果在这样的环境中运行,您不会发生意外,而是出于上述原因。 关于你的问题:如果私人networking与他人共享,我会build议encryption所有的stream量,例如通过stunnel 。

(但是,这仍然是一个共享的环境:如果旁边的人发现了一个可以让他们接pipe主机或其他虚拟机的漏洞,那么他们可以在encryption之前就读取stream量 – 这不应该使我无所事事只是为了记住这一点。)