Sí, y hay varias razones para hacerlo.
Los firewalls, como otros dispositivos informáticos, ocasionalmente tienen fallas de seguridad que deben ser parcheadas. Si tuviera que pensar en dos cortafuegos o pares de cortafuegos (uno detrás del otro) como dos capas de defensa, si la primera capa tenía un problema y se podía pasar por alto, el segundo cortafuegos podría evitar que personas externas accedan a su red .
Del mismo modo, diferentes tipos de cortafuegos pueden procesar diferentes tipos de ataques a diferentes velocidades. Los dispositivos de estilo de hardware tienden a procesar paquetes a una velocidad mucho más rápida que los firewalls de software, pero no procesan ni bloquean paquetes tan profundamente, mientras que otros tipos de firewalls pueden bloquear un número mucho mayor de ataques porque no inspeccionan más. Elementos o cubrir más de las comunicaciones que se están filtrando. Si un cliente implementara ambos, querría que el cortafuegos de hardware con conexión a Internet bloquee la mayor cantidad de ataques y luego tenga el firewall de software detrás de él para bloquear los ataques en una capa más profunda.
Lleve esto un paso más allá y tenemos dispositivos de firewall especializados, como los firewalls de aplicación web (WAF), que solo filtran en http y https. Estos casi siempre se usan junto con los firewalls más tradicionales que se encuentran frente a ellos.
Del mismo modo, en un entorno de nube no es infrecuente utilizar un cortafuegos primario en la parte frontal y también ejecutar un software de cortafuegos en cada una de las computadoras en lo que se conoce como un modelo de cortafuegos Zero-Trust que también es efectivamente dos capas (o más) .
Nota: el firewall de Zero-Trust no tiene que tener un firewall separado, esto es simplemente un patrón de implementación común que veo especialmente en los entornos de AWS.
Finalmente, para disipar dicha "regla": puede usar dos firewalls de software como IPTables y mod_security (esencialmente un WAF) en una computadora o incluso puede hacer que IPTables reenvíe el tráfico entrante a un segundo firewall de software para una inspección adicional para cosas como la Prevención de pérdida de datos (DLP) o para el filtrado avanzado de aplicaciones o malware. El uso del segundo firewall de software como WAF es en realidad muy común para las personas que ejecutan el software WAF.
Dice que tener dos firewalls de software no es común en la computación tradicional, pero es una forma muy legítima de agregar buenos controles de seguridad a un sistema y siempre que esté agregando controles de seguridad únicos en cada capa y no afecte negativamente a sus aplicaciones, lo haría. Digamos que es muy sabio hacerlo.
Con respecto a tener un firewall de hardware detrás del enrutador. Esto es muy similar a cómo todas las empresas tienen su propio firewall detrás de su enrutador y tienen listas de acceso en el enrutador. Todas las compañías necesitan asegurar que el enrutador externo sea tan efectivo que casi todas las compañías efectivamente tienen dos capas de cortafuegos, incluso si una se usa más activamente que la otra. Lo hago yo mismo porque el ISP tiene acceso al enrutador de la red en mi casa y no confío en que el ISP lo asegure. Esto es muy común en los negocios y semi-común para los enrutadores domésticos entre las personas que conocen la seguridad.
No obtienes Defensa en Profundidad de una sola capa, por lo que tener una segunda capa siempre es sensato y creo que sería prudente cuestionar esta "regla" que mencionas sobre un firewall.
Por cierto: una vez vi un banco que usaba tres pares diferentes de cortafuegos seguidos para su aplicación de banca orientada a Internet.
Enlaces útiles para comparación:
enlace
enlace
enlace