我有一个经典的 DMZ 架构:
我的网络服务器放置在 DMZ 中。网络服务器需要与数据库服务器通信。该数据库服务器是我网络中最关键的组件,因为它包含机密数据。
我应该在哪里放置数据库服务器,为什么?我应该添加第二个防火墙并创建另一个 DMZ 吗?
我有一个经典的 DMZ 架构:
我的网络服务器放置在 DMZ 中。网络服务器需要与数据库服务器通信。该数据库服务器是我网络中最关键的组件,因为它包含机密数据。
我应该在哪里放置数据库服务器,为什么?我应该添加第二个防火墙并创建另一个 DMZ 吗?
同意 Jeff Ferland 的观点,数据库服务器应该是独立的:你应该有一个干净的网络来进行复制和备份。
请原谅我的 ASCII 艺术,一个合理的理想的快速概述:
[internet]
|
outer-firewall--- [proxy-zone]
|
+---- [app-zone]
|
inner-firewall
| |
[lan]--+ +-- [database-zone]
您正在尝试减轻,因此:
单独的区域使您的 IDS 的工作更容易,并且记录更有效。区域应在第 2 层(交换)和第 3 层 (IP) 隔离。如果您有资源,请为每个服务器添加一个管理区域、单独的管理 NIC(如果可以,请保护端口)。服务监控最好通过运营网络进行。
实际上,您最终可能会将“理想”网络压缩为单个防火墙和 VLAN。任何 dev/preprod 环境都应该尽可能地复制操作网络(特别是如果您不想追踪引入的尾部调试问题,例如丢弃的空闲连接)。如果您现在考虑上述选项,那么将来迁移应该会更容易,即在您友好的邻居 PCI-DSS 审核员下次访问后不久;-)
以下是 DMZ 架构的常见设置:
互联网
^
防火墙1
^
DMZ(在此处托管您的 dmz 服务器,仅允许特定端口通过防火墙)
^
防火墙2
^
数据库网络(仅允许从防火墙 2 到该网络的特定端口和协议)
正如您提到的数据库包含信用卡(敏感)数据,那么即使在防火墙2 的内部,数据库网络也应该与公司和用户网络隔离。很多时候,我看到公司的皇冠上的宝石在内部网络上敞开着供所有用户探测和访问。更进一步,您可以让数据库管理 VLAN 仅允许此 VLAN 权限内的系统访问数据库(当然,需要从 DMZ 访问它的应用程序除外)。
希望这可以帮助。
三层架构是最安全和可扩展的解决方案。随着客户端流量的增加,我们可以添加尽可能多的中间层来确保性能。三层架构也更安全,因为中间层正在保护数据库层。我们需要保护数据库层不被直接访问,并且需要将其放置在受信任的区域中,并且它应该只接受来自应用程序服务器的连接。