我一直在互联网上search解决scheme或最佳做法,无济于事。 我一直在玩Virtual Box的Ubuntu服务器实例,并试图复制一个服务器环境,我可以使用它来托pipe一个我一直在思考的Web应用程序。 我真的很喜欢在一堆nodejs进程前面使用NGINX作为负载平衡器和静态文件服务器。
基本上,我在我的电脑上安装了一系列的Ubuntu Server虚拟机。 我有一个互联网面向虚拟机与NGINX安装三个额外的上游服务器设置为内部networking。
我有NGINX机器在与三台上游机器相同的内部networking上,以及在一个单独的桥接networking适配器上。 所有四台机器都可以互相ping通,只有NGINX反向代理才能访问互联网。
我的问题是,更新服务器的最佳方式(甚至是一种好方法),而不会对支持反向代理的安全性带来不利影响? 我的理解是,使用反向代理的好处之一是,它只为攻击者创build一个访问点来攻击你的服务器,尽pipeXSS / SQL注入漏洞。
我应该让我的上游服务器临时访问互联网来更新应用程序,还是将逆向代理服务器同时设置为正向代理服务器?
感谢您的帮助!
仅仅因为服务器可以访问Internet,并不意味着Internet可以访问该服务器。
您可以(也应该)在您拥有的每个盒子上configuration防火墙。 您还可以configuration保护所有框的独立防火墙。
常见的防火墙configuration模式是允许所有出站stream量,然后拒绝除已build立的连接(即由防火墙内的机器启动的那些连接)之外的所有入站stream量。 这种模式将允许您的机器通过互联网请求更新,但不会允许互联网上的任何人连接到您的NodeJS服务。
在反向代理服务器上,您将不得不添加另一个规则,以允许端口80和443上的入站通信。
还有其他方法可以解决这个问题,例如在DMZ框上运行代理服务器,并在所有其他框上configurationapt以使用该代理。 这可以在你无法直接访问互联网的情况下工作,比如PCI卡数据环境。