perryk.nginx_modsec3_crs3

Rol de Ansible para instalar Nginx, compilar ModSecurity3 e instalar el conjunto de reglas OWASP CRS v3

ModSecurity3 es un potente firewall de aplicaciones web (WAF) de código abierto y multiplataforma.

Antes: https://modsecurity.org/, ahora es propiedad de https://owasp.org/

Funciona junto con un conjunto de reglas conocido como OWASP CRS. Nota que este rol a menudo se refiere a CRS3, sin embargo, ahora se ha lanzado la versión 4 de CRS.

Antes: https://modsecurity.org/crs/, ahora https://owasp.org/www-project-modsecurity-core-rule-set/ También: https://coreruleset.org/ y https://github.com/coreruleset/coreruleset/

Además, ambos se complementan con un servidor web, ya sea Apache o Nginx, pero este rol solo soporta Nginx.

https://www.nginx.com

Hay varias bibliotecas y paquetes de los que depende ModSecurity3, y se instalarán a través de este rol.

Este rol también instalará cualquier compilador y otras herramientas de construcción necesarias para la compilación. Luego, eliminará estas herramientas si no estaban instaladas previamente.

El soporte para Nginx es proporcionado principalmente por el rol dependiente ansible-role-nginx de jdauphant.

https://github.com/jdauphant/ansible-role-nginx

Por defecto, este rol instalará los paquetes de Nginx desde los repositorios proporcionados por el sistema operativo. Se recomienda cambiar esto para instalar desde el repositorio oficial de Nginx en su lugar.

Esto se puede hacer configurando esta variable:

nginx_official_repo: true

Opcionalmente, este rol puede compilar los módulos GeoIP y/o MaxMind de Nginx si deseas hacer búsquedas de geolocalización. Es probable que necesites una copia con licencia de una base de datos actualizada desde aquí si quieres usar MaxMind: https://www.maxmind.com/en/geoip-databases

Puedes habilitar estas opciones desde las siguientes variables:

nginx_modsec3_crs3_geoip_enabled: false nginx_modsec3_crs3_maxmind_enabled: true

Nota: este rol no volverá a ejecutar los pasos de configuración y compilación si ya existen los archivos de salida. Así que si cambias las opciones que deseas, como los diferentes módulos mencionados, puede que necesites eliminar el Makefile y quitar cualquier archivo .so de la carpeta objs/.

Requisitos

Antes de ejecutar un playbook que llama a este rol:

Instala cualquier rol requerido de Ansible desde requirements.yml. Ver aquí.

ansible-galaxy install -r requirements.yml

Nota: en particular, este rol llamará a ciertas tareas del rol de nginx, así que asegúrate de tenerlo instalado en la misma ubicación que este rol y con el nombre específico de "ansible-role-nginx".

Es decir, en el archivo requirements.yml de tu playbook de proyecto (no en el archivo requirements.yml de este rol), necesitarás incluir tanto este rol como el rol mencionado anteriormente de la siguiente manera:

- src: perryk.nginx_modsec3_crs3

- src: https://github.com/jdauphant/ansible-role-nginx
  version: master

Variables del Rol

Explora los archivos defaults/main.yml y vars/main.yml del rol para ver si hay algo que te gustaría cambiar o que necesitas sobrescribir en tu playbook.

Actualmente no hay variables destacadas configuradas.

Sin embargo, hay muchas variables en el rol de nginx, quizás la mejor explicación de estas se encuentra en todos los ejemplos en el archivo README.md del rol.

Ejemplo de Playbook

Ejemplo de playbook que llama al rol, agregando y habilitando ModSecurity para el sitio Nginx por defecto.

- hosts: servers

  vars:

    nginx_pkgs:
      - nginx
    nginx_install_epel_repo: false
    nginx_official_repo: true
    nginx_official_repo_mainline: true
    nginx_module_configs:
      - ngx_http_modsecurity_module
      - ngx_http_geoip2_module
    nginx_modules_disable:
      - ngx_http_geoip_module
    nginx_sites:
      default:
       - listen 80
       - server_name _
       - "modsecurity on"
       - "modsecurity_rules_file /etc/nginx/modsec/main.conf"
       - root "/usr/share/nginx/html"
       - index index.html

  roles:
    - perryk.nginx-modsec3-crs3

Licencia

MIT

Información del Autor

Perry Kollmorgen - https://github.com/perryk

Acerca del proyecto

Installs Nginx, Compiles ModSecurity3, and downloads the OWASP CRS ruleset (https://nginx.com, https://owasp.org/, https://coreruleset.org/)

Instalar
ansible-galaxy install perryk.nginx_modsec3_crs3
Licencia
mit
Descargas
364
Propietario