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.
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
Installs Nginx, Compiles ModSecurity3, and downloads the OWASP CRS ruleset (https://nginx.com, https://owasp.org/, https://coreruleset.org/)
ansible-galaxy install perryk.nginx_modsec3_crs3