De acuerdo con Jeff Ferland, los servidores de bases de datos deben estar en su cuenta: debe tener una red limpia para la replicación & copia de seguridad.
Perdone mi arte ASCII, una visión general rápida de un ideal razonable:
[internet]
|
outer-firewall--- [proxy-zone]
|
----- [app-zone]
|
inner-firewall
[lan]--/ \-- [database-zone]
- Ejecute un proxy inverso, Apache + mod_security / varnish / nginx / WAF / lo que sea, en la zona de proxy. Agregue balanceo de carga / failover aquí si es necesario también. También servidor proxy / de retransmisión para conexiones salientes (DNS, SMTP, proxy HTTP), si es necesario.
- Cuando la lógica de la aplicación se ejecuta en un servidor web (Java / PHP / ASP), prefiero llamarlo servidor de aplicaciones.
- Cuando necesita escalar, puede escalar horizontalmente, los balanceadores de carga lo hacen más fácil. También puede considerar la replicación de contenido estático no autenticado a los proxies front-end.
- es posible que desee agregar una o más de las zonas: IDS, administración, copia de seguridad, acceso remoto, proxy de salida
Estás intentando mitigar, por lo que:
- la comunicación entre zonas debe limitarse al mínimo requerido para fines de servicio y monitoreo.
- reverse-proxy acepta conexiones no confiables de Internet, solo puede conectarse a servicios en servidores de aplicaciones. Si desea clasificar sus zonas por tráfico, debe considerar cuidadosamente la terminación de HTTPs, y si desea crear nuevas conexiones HTTP a los servidores de aplicaciones.
- la zona de la aplicación acepta conexiones de confianza parcial desde proxies, solo puede conectarse a bases de datos. Puedes confiar un poco más en tus servidores de aplicaciones cuando sabes que no están hablando directamente a Internet.
- los servidores de bases de datos solo aceptan conexiones desde los servidores de aplicaciones, la zona de la base de datos debe ser su red "más limpia"
- considere usar diferentes firewalls (proveedor / producto) para los firewalls externos e internos
- para los servicios de salida requeridos (DNS, SMTP o parches / actualizaciones), estos deben ir a través de un servidor distinto (por ejemplo, en la zona proxy o en la zona proxy saliente).
- lo mismo sucede con cualquier conexión HTTPS de validación de CC saliente. (Si tiene la mala suerte de tener una caja negra proporcionada por un proveedor para la validación, eso también debería ir en una zona dedicada, IMHO).
- use direcciones IP públicas solo en la zona proxy, direcciones privadas en otros lugares. Ningún servidor fuera de la zona proxy necesita tener una IP pública, NAT o una ruta predeterminada a Internet.
Las zonas separadas facilitan el trabajo de su IDS y hacen que el registro sea más efectivo.
Si tiene los recursos, agregue una zona de administración, NIC de administración separadas para cada servidor (puertos protegidos, si puede).
En realidad, puede terminar compactando la "red ideal" a un único firewall y VLAN, pero si considera sus opciones ahora con lo anterior en mente, debería ser más fácil migrar en el futuro, es decir, poco después de la próxima visita de su amigable auditor PCI-DSS de barrio ;-)