WAF
Vamos a configurar un nodo para los WAF, esta configuración solo la tendremos que replicar con tantos nodos como queramos y añadirlos al HAProxy en la sección bk_waf para que la granja crezca según nuestras necesidades.
Instalamos apache
Instalamos ModSecurity
Reiniciamos apache para cargar el modulo
Comprobamos que el modulo se cargo correctamente
Y deberíamos que obtener el siguiente resultado
Ahora que ya tenemos tanto apache como modsecurity instalado y cargado vamos a proceder a configurarlo.
Editamos la configuración recomendada para que en vez de detectar nos pare los ataques.
Cambiado el valor SecRuleEngine
de DetectionOnly
a On
ModSecurity tiene un conjunto de reglas predeterminado ubicado en el directorio /usr/share/modsecurity-crs . Sin embargo, nosotros vamos a cargar las reglas de OWASP
Hacemos copia de seguridad de las reglas
Descargamos las nuevas reglas
Copiamos la configuración por defecto de las reglas descargas
Para que las reglas funcionen tenemos que editar el fichero
Y añadir las dos siguientes lineas
Estamos cargando un monto de reglas por defecto que seguramente no necesitaremos por lo que ahora tendríamos que adaptarlos a las aplicaciones que vayan a correr en nuestro cluster.
Una vez que que tenemos nuestro WAF vamos a configurarlo para que funcione como proxy reverso y escuche las peticiones de los HAPRoxys y se las devuelva.
Lo primero que hacemos es cambiar el puerto en el que escuchamos del 80 al 81
y dejamos el Listen de la siguiente manera
Activamos el módulos de proxy de apache
Ahora vamos a configurar el VirtualHost por defecto para que haga de proxy reverso
Quedando de la siguiente manera, poniendo en IP_WAF la ip interna de dicho servidor en el VRack y en XXX.XXX.XXX.XXX la ip flotante interna que configuramos en el keepalived
Eliminar el banner de la versión del servidor
Apache por defecto nos muestra en las peticiones su versión y el sistema operativo en el que esta corriendo.
Vamos a ocultar las versiones y el sistema operativo de nuestro servidor para dar la menor información posible a los atacantes, para ello editamos el siguiente fichero
Dejando los siguiente valores de esta manera
Healthchecks para HAProxy
Ahora tenemos que agregar una regla personalizada para que el HAProxy sepa que nuestros WAF están vivos, para ello creamos el fichero
con el siguiente contenido
Ya solo nos queda reiniciar apache para cargar todos los cambios y nuestro primer WAF de la granja estaría listo
Para que la gente no se pueda conectar por la ip publica al puerto 81, dado que al no tener dominio luego no sabría donde ir.
Como las iptables si se reinicia el equipo se pierden y no queremos estar agregándolas manualmente vamos a instalar el paquete iptables-persistent
Las configuraciones se guardan en estos dos ficheros
Si hacemos algún cambio a las iptables nos tenemos que acordar de guardarlas
Última actualización