# DD - Apache2 ModSecurity + HAProxy Instalación de los servicios Apache2 ModSecurity y HAProxy. * En el servicio de Apache2 con ModSecurity V3 se incluyen las reglas OWASP * En servicio HAProxy actua de frontend de la aplicación, gestiona y negocia el certificado del dominio a través de letsencrypt. ## HAProxy Podemos encontrar la configuración del servicio en [dd-waf/haproxy](dd-waf/harpoxy) La versión por defecto que se usara en HAProxy es `haproxy:2.4.12-alpine3.15` pero podemos definir usar otra versión definiendo el valor de la variable `HAPROXY_IMG` en nuestro fichero dd.conf La configuración del servicio se encuentra en fichero haproxy.cfg. El fichero ya esta configurado para enrutar todo el tráfico a través del servicio Apache2-ModSecurity. El servicio de HAProxy se encarga de negociar y configurar el certicado del dominio de instalación La comunicación externa es cifrada, pero internamente la comunción usa el protocolo http ## Apache - ModSecurity Podemos encontrar la configuración del servicio en [dd-waf/haproxy](dd-waf/harpoxy) Tenemos diferentes ficheros para configurar este servicio * En el fichero 000-default.conf tendremos la configuración del servidor web Apache2. * En el fichero crs-setup.conf configuramos OWASP ModSecurity Core Rule Set ver.3.2.0 * En el fichero modsec_rules.conf incluimos los ficheros necesarios del owasp servicio de Apache2 * En el fichero rules_apps.conf se configuran los falsos positivos, de las diferentes aplicaciones, que se tienen idenficados hasta el momento. ## Instalación Para la instalación del haproxy + modsecurity debemos que definir a `true` la variable `BEHIND_PROXY` en el fichero `dd.conf` ``` BEHIND_PROXY=true ``` Ahora tenemos que desplegar el modsecurity + haproxy ejecutando el comando `update` del `dd-ctl` ``` ./dd-ctl update ``` ## Configuración En la instalación el ModSecurity se encuentra deshabilitado para no interferir en el proceso de setup inicial del DD. Una vez finalizada la parte de setup, podemos activarlo o desactivarlo según necesitemos, Se configuran los siguientes directorios como volumen para persistir la configuración. * En el directorio [dd-waf/haproxy](dd-waf/modsecurity/rules) podemos añadir las reglas que necesitemos para excluir los falsos positivos que nos da el modsecurity. El nombre de los ficheros debe terminar en `.conf` i* En del directorio [dd-waf/haproxy](dd-waf/modsecurity/vhosts) se encuentra el fichero de configuración del Virtual Host del Apache2 ### Activar ModSecurity con las reglas OWASP ``` ./dd-ctl enable_waf ``` ### Desactivar ModSecurity con las reglas OWASP ``` ./dd-ctl disable_waf ```