2022-11-15 11:07:30 +01:00
|
|
|
# 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.
|
2022-11-22 23:05:54 +01:00
|
|
|
* En la instalación el ModSecurity se encuentra deshabilitado para no interferir en el proceso de setup inicial del DD.
|
|
|
|
* La instalación se puede realizar con o sin la parte WAF.
|
|
|
|
* Si tenemos instalado el WAF podemos tenerlo activo o en modo bypass
|
2022-11-15 11:07:30 +01:00
|
|
|
|
|
|
|
|
|
|
|
## 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
|
|
|
|
|
2022-11-22 23:05:54 +01:00
|
|
|
La configuración del servicio se encuentra en fichero haproxy.cfg. Todo el tráfico que pasa por el haproxy se enruta al Apache2-ModSecurity.
|
2022-11-15 11:07:30 +01:00
|
|
|
|
|
|
|
El servicio de HAProxy se encarga de negociar y configurar el certicado del dominio de instalación
|
2022-11-22 23:05:54 +01:00
|
|
|
|
|
|
|
La comunicación desde fuera del stack de la aplicación es cifrada pero internamente la comunción usa el protocolo http
|
2022-11-15 11:07:30 +01:00
|
|
|
|
|
|
|
|
|
|
|
## 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.
|
|
|
|
|
|
|
|
|
2022-11-22 23:05:54 +01:00
|
|
|
## Instalación WAF
|
|
|
|
|
|
|
|
Podemos hacer la intalación del proyecto con o sin servico waf.
|
2022-11-16 17:14:23 +01:00
|
|
|
|
2022-11-22 23:05:54 +01:00
|
|
|
### Instalación
|
2022-11-16 17:14:23 +01:00
|
|
|
|
2022-11-22 23:05:54 +01:00
|
|
|
Para la instalación del haproxy + modsecurity debemos definir a `true` la variable `BEHIND_PROXY` en el fichero `dd.conf`
|
|
|
|
|
|
|
|
* Instalación del servicio WAF
|
2022-11-16 17:14:23 +01:00
|
|
|
```
|
2022-11-16 17:46:34 +01:00
|
|
|
BEHIND_PROXY=true
|
|
|
|
```
|
|
|
|
|
2022-11-22 23:05:54 +01:00
|
|
|
* No se instala el servicio WAF
|
2022-11-16 17:46:34 +01:00
|
|
|
```
|
2022-11-22 23:05:54 +01:00
|
|
|
BEHIND_PROXY=true
|
2022-11-16 17:14:23 +01:00
|
|
|
```
|
|
|
|
|
2022-11-15 11:07:30 +01:00
|
|
|
|
2022-11-22 23:05:54 +01:00
|
|
|
### Enable/Disable
|
2022-11-15 11:07:30 +01:00
|
|
|
|
2022-11-22 23:05:54 +01:00
|
|
|
Si tenemos instalado la parte del WAF en nuestro proyecto podemos tenerlo activo o desactivado.
|
2022-11-18 18:05:05 +01:00
|
|
|
|
2022-11-22 23:05:54 +01:00
|
|
|
* HAProxy activado
|
|
|
|
```
|
|
|
|
DISABLE_WAF=false
|
|
|
|
```
|
2022-11-15 11:07:30 +01:00
|
|
|
|
2022-11-22 23:05:54 +01:00
|
|
|
* HAProxy desactivado
|
2022-11-15 11:07:30 +01:00
|
|
|
```
|
2022-11-22 23:05:54 +01:00
|
|
|
DISABLE_WAF=true
|
2022-11-15 11:07:30 +01:00
|
|
|
```
|
|
|
|
|
2022-11-22 23:05:54 +01:00
|
|
|
### Configuración
|
|
|
|
|
|
|
|
Ahora tenemos que desplegar el modsecurity + haproxy ejecutando el comando `update` del `dd-ctl`
|
2022-11-15 11:07:30 +01:00
|
|
|
|
|
|
|
```
|
2022-11-22 23:05:54 +01:00
|
|
|
./dd-ctl update
|
2022-11-15 11:07:30 +01:00
|
|
|
```
|