通过 DMZ 移动上传的文件

通过 DMZ 移动上传的文件

我正在将一个 Web 应用程序(在 LAMP 上运行)从单个主机转换为在 DMZ 中面向公众的服务器上运行 php/apache 应用程序的配置。该应用程序连接到位于 DMZ 后面的专用网络中的 mysql。我的主要标准是将所有用户数据(在数据库或用户上传的文件中)完全排除在 DMZ 之外,并且只允许通过 ACL 访问它。即通过网络和身份验证/访问将应用程序层与数据层隔离。

我已经用 mysql 很好地实现了这种隔离,但我还没有想出任何关于如何从 Web 服务器访问文件服务器上的文件存储的好主意。我目前已在安装在 Web 服务器上的 NFS 导出上运行它,但这会使文件服务器及其所有数据对任何有权访问 Web 服务器(基本上)而无需身份验证的人开放。

我意识到任何严肃的解决方案都可能涉及大量的开发时间,我准备这样做。如果需要,我也准备花一些钱购买现成的解决方案以正确完成工作。我觉得我在这里忽略了一些显而易见的东西。

答案1

您确实无法同时实现这两种方式:如果您想从 Web 服务器访问文件服务器上的资源,则需要为其打开防火墙漏洞。
为 NFS 和 MySQL 打开防火墙漏洞实际上没有区别——如果有人闯入您的 Web 服务器,他们就可以获取您的 MySQL 数据库(或者至少获取凭据并访问用户可以访问的任何数据库)。同样,如果他们闯入 Web 服务器,他们可以访问 Web 服务器有权访问的任何内容,但要遵守您对 NFS 导出设置的任何限制。

在这种情况下,您能做的最好的事情就是将 NFS 导出限制到文件服务器的最小实际窗口(保护您免受 Web 服务器的攻击),并对 NFS 客户端使用强身份验证,例如通过 Kerberos(保护您免受 DMZ 的附带攻击)。这里还有一些带有标签的问题其中讨论了授权和身份验证问题、安全性等,可以为您提供一些指点。

相关内容