Depende de su propósito del firewall, honestamente, algunos firewalls de aplicaciones web generalmente ofrecen una solución diferente entre sí.
Desde mi propia experiencia, creé el llamado servidor de seguridad de la aplicación web utilizando el proxy inverso nginx para recibir la solicitud primero en un servidor y luego filtrarlos a mi servidor backend donde se encuentran las cosas reales.
Nginx tiene una gran documentación al respecto , puede comenzar desde ahí.
Luego puede agregar sus propias funciones desde su servidor proxy inverso. Puede agregar un montón de reglas de iptables si lo prefiere, especialmente a proporcione una protección DDoS básica .
También puede agregar mod_security para características de protección más avanzadas. Esta guía puede ayudarlo a explorarla, y también algunas reglas OWASP porque (quizás) es un estándar común para las personas que construyen su firewall usando mod_security.
Una vez más, la función del cortafuegos de su aplicación web es su propia elección. Es un campo grande para explorar, comience desde "servidor proxy inverso reforzado" (nombre interesante, ¿eh?), Puede continuar con otro tipo, como un firewall basado en DNS, o algo similar.