perryk.nginx_modsec3_crs3

Rôle Ansible pour l'installation de Nginx, la compilation de ModSecurity3 et l'installation du jeu de règles OWASP CRS v3

ModSecurity3 est un pare-feu d'application web (WAF) puissant et open source, multi-plateforme.

ancien site : https://modsecurity.org/, maintenant détenu par https://owasp.org/

Il fonctionne de pair avec un jeu de règles connu sous le nom de OWASP CRS. Notez que ce rôle fait souvent référence à CRS3, cependant la version 4 de CRS a maintenant été publiée.

ancien site : https://modsecurity.org/crs/, maintenant https://owasp.org/www-project-modsecurity-core-rule-set/ également : https://coreruleset.org/ et https://github.com/coreruleset/coreruleset/

De plus, ces deux éléments nécessitent un serveur web, soit Apache soit Nginx, cependant ce rôle ne prend en charge que Nginx.

https://www.nginx.com

Il existe un certain nombre de bibliothèques et de paquets dont ModSecurity3 dépend, et qui seront installés via ce rôle.

Ce rôle installera également tous les compilateurs et autres outils de construction nécessaires à la compilation. Il supprimera ensuite ces outils s'ils n'étaient pas installés auparavant.

Le support pour Nginx est principalement fourni par le rôle dépendant ansible-role-nginx de jdauphant.

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

Par défaut, ce rôle installera les paquets Nginx à partir des dépôts fournis par le système d'exploitation, il est recommandé de changer cela pour installer à partir du dépôt officiel de Nginx à la place.

Cela peut être fait en définissant cette variable :

nginx_official_repo: true

Optionnellement, ce rôle peut construire les modules GeoIP et/ou MaxMind pour Nginx si vous souhaitez des consultations de géolocalisation. Vous avez probablement besoin d'une copie sous licence d'une base de données à jour disponible ici si vous voulez utiliser MaxMind : https://www.maxmind.com/en/geoip-databases

Vous pouvez activer ces options à partir des variables suivantes :

nginx_modsec3_crs3_geoip_enabled: false nginx_modsec3_crs3_maxmind_enabled: true

Remarque : ce rôle ne relancera pas les étapes de configuration et de compilation si leur sortie existe, donc si vous changez les options que vous souhaitez, comme les différents modules ci-dessus, vous devrez peut-être supprimer le Makefile et retirer tous les fichiers .so du dossier objs/.

Exigences

Avant d'exécuter un playbook qui appelle ce rôle :

Installez tous les rôles Ansible requis à partir de requirements.yml. Consultez la documentation ici.

ansible-galaxy install -r requirements.yml

n.b : en particulier, ce rôle appellera certaines tâches du rôle Nginx, donc assurez-vous de l'avoir installé au même endroit que ce rôle et avec un nom spécifique de "ansible-role-nginx".

C'est-à-dire que dans le fichier requirements.yml du playbook de votre projet (pas le fichier requirements.yml de ce rôle), vous devrez inclure à la fois ce rôle et le rôle mentionné ci-dessus comme ceci :

- src: perryk.nginx_modsec3_crs3

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

Variables du rôle

Parcourez les fichiers defaults/main.yml et vars/main.yml du rôle pour voir s'il y a quelque chose que vous voudriez modifier ou que vous devez remplacer dans votre playbook.

Actuellement, aucune variable notable n'est définie.

Il y a beaucoup de variables dans le rôle nginx, peut-être que la meilleure explication de celles-ci se trouve dans tous les exemples du fichier README.md.

Exemple de Playbook

Exemple de playbook appelant le rôle pour ajouter et activer ModSecurity pour le site par défaut de Nginx.

- 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

Licence

MIT

Informations sur l'auteur

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

À propos du projet

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

Installer
ansible-galaxy install perryk.nginx_modsec3_crs3
Licence
mit
Téléchargements
364
Propriétaire