El firewall no está para para eliminar TODOS los accesos de la DMZ a la red interna, de la misma forma que no está para elimiminar TODOS los accesos de Internet a la DMZ. El firewall es una medida de seguridad más, de varias que puede haber, que sirve para situar un punto de control de acceso entre zonas cuyos requisitos de seguridad son distintos. Lo que el firewall permita entrar o salir dependerá de la política de seguridad, y no hay una regla absoluta.
No lo veas como un diodo (que permite todo el tráfico en un sentido y nada en el otro), sino como la típica garita de seguridad, donde un guardia verifica quien eres y a dónde vas, decide en base a sus instrucciones si te deja, y por supuesto una vez que te ha dejado entrar te deja salir.
La finalidad de la DMZ es que si un atacante gana acceso a un equipo situado en la misma, por el medio que sea, eso no le sitúe automáticamente en la red interna, donde por la naturaleza de los servicios que corren en la misma, las medidas de protección suelen ser más relajadas. Existiendo una DMZ, el atacante aún tendría que salvar las protecciones que existan entre esta y la red interna. El nivel de protección entre la DMZ y la red interna siempre será mayor que entre dos equipos de la red interna.
En un caso simple como el que dices (Internet, una DMZ con un servidor web, y una red interna con un servidor de aplicaciones):
- se debe permitir acceso desde Internet al servidor web, en la medida que sea necesario (por ejemplo si el servidor web funciona en los puertos TCP 80 y 443, permitiremos esos, pero no otros).
- se debe permitir acceso desde sl servidor web a los servidores de aplicaciones que necesite (de nuevo, es solo a lo que necesite, y sólo por los protocoloes que necesite - si el servidor no tiene por qué hablar directamente con el SGBD, pues esto no se permitiría).
- No asumas que hay que permitir todas las conexiones salientes. El servidor tendrá que poder hacer consultas DNS, y tal vez abra conexiones a otros sitios, dependiendo de cómo está diseñado el sistema. Pero si el servidor no tiene por qué hacer conexiones SQL al exterior, mejor no permitirlas: si recordáis el gusano Slammer, hacía justamente eso para causar un ataque de denegación de servicio. No asumáis que las conexiones salientes son siempre inofensivas.
(Ya he visto tu segundo mensaje, pero bueno como ya había escrito el tocho, lo pongo
De todas formas para el cuarto no hay que entrar a este nivel, con que estén ben diseñadas las distintas zonas de seguridad y los mecanismos de seguridad entre las mismas, basta).
Saludos.