是否有必要通过共享私有 VPS 网络保护 PHP FPM 的 TCP 流量?

是否有必要通过共享私有 VPS 网络保护 PHP FPM 的 TCP 流量?

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

这是否有必要,或者有没有相关文献的原因(例如,流量是加密的,或者没有理智的 VPS/云提供商会以混杂模式运行私有网络接口)?当请求进入 HTTPS 站点时,我可以看到问题,站点将请求详细信息发送到 PHP-FPM 池(包括密码或信用卡号),第三方以某种方式监听该流量。

答案1

SSH 隧道是跨恶意网络进行安全连接的绝佳选择。我们发现 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 行以执行适当的隧道。您使用“start”或“stop”参数调用该脚本。该脚本运行一个守护进程,如果 SSH 死机,它将重新启动它。

对于隧道,在另一端创建一个具有最小权限的用户和组来连接,此处为“tunnelusername”。

答案2

关于信用卡:要使用这些信用卡,您必须获得许可证,如果在这样的环境中运行,您将不会获得许可证,这不是偶然的,而是由于您上面提到的原因。关于您的问题:如果专用网络与其他人共享,我建议通过以下方式加密所有流量隧道例如。

(但它仍然是一个共享的环境:如果你旁边的人发现一个漏洞,使他们能够接管主机或其他虚拟机,他们可以在加密之前读取流量 - 这不应该使我刚刚写的内容变得无用,只是为了记住这一点。)

相关内容