perryk.nginx_modsec3_crs3

Ansible-Rolle zum Installieren von Nginx, Kompilieren von ModSecurity3 und Installieren des OWASP CRS v3 Regelwerks

ModSecurity3 ist eine leistungsstarke, quelloffene, plattformübergreifende Firewall für Webanwendungen (WAF).

Früher: https://modsecurity.org/, jetzt im Besitz von https://owasp.org/

Es wird zusammen mit einem Regelwerk namens OWASP CRS verwendet. Beachte, dass diese Rolle oft auf CRS3 verweist, jedoch die CRS-Version 4 jetzt veröffentlicht wurde.

Früher: https://modsecurity.org/crs/, jetzt https://owasp.org/www-project-modsecurity-core-rule-set/ auch: https://coreruleset.org/ und https://github.com/coreruleset/coreruleset/

Beide benötigen zudem einen Webserver, entweder Apache oder Nginx, diese Rolle unterstützt jedoch nur Nginx.

https://www.nginx.com

Es gibt eine Reihe von Bibliotheken und Paketen, von denen ModSecurity3 abhängt und die über diese Rolle installiert werden.

Diese Rolle wird auch alle Compiler und anderen Build-Tools installieren, die für die Kompilierung erforderlich sind. Diese Tools werden dann entfernt, wenn sie zuvor nicht installiert waren.

Die Nginx-Unterstützung wird hauptsächlich über die abhängige Rolle ansible-role-nginx von jdauphant bereitgestellt.

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

Standardmäßig installiert diese Rolle Nginx-Pakete aus den vom Betriebssystem bereitgestellten Repositories. Es wird empfohlen, stattdessen die Installation aus dem offiziellen Nginx-Repository zu ändern.

Dies kann durch Setzen dieser Variable erfolgen:

nginx_official_repo: true

Optional kann diese Rolle die GeoIP- und/oder MaxMind-Nginx-Module erstellen, wenn du Geolokalisierungsabfragen möchtest. Du benötigst wahrscheinlich eine lizenzierte Kopie einer aktuellen Datenbank von hier, wenn du MaxMind nutzen möchtest: https://www.maxmind.com/en/geoip-databases

Du kannst diese über die folgenden Variablen aktivieren:

nginx_modsec3_crs3_geoip_enabled: false nginx_modsec3_crs3_maxmind_enabled: true

Hinweis: Diese Rolle führt die Konfigurations- und Kompilierungsschritte nicht erneut aus, wenn ihre Ausgabe vorhanden ist. Wenn du also die Optionen änderst, z. B. die verschiedenen Module, musst du möglicherweise die Makefile löschen und alle .so-Dateien aus dem objs/-Ordner entfernen.

Anforderungen

Bevor du ein Playbook ausführst, das diese Rolle aufruft:

Installiere alle erforderlichen Ansible Rollen aus requirements.yml. Siehe hier.

ansible-galaxy install -r requirements.yml

Hinweis: Insbesondere wird diese Rolle bestimmte Aufgaben aus der Nginx-Rolle aufrufen, also stelle sicher, dass sie im selben Verzeichnis wie diese Rolle installiert ist und den spezifischen Namen „ansible-role-nginx“ hat.

Das heißt, in der requirements.yml-Datei für dein Projekt-Playbook (nicht die requirements.yml-Datei für diese Rolle) musst du sowohl diese Rolle als auch die oben genannte Rolle wie folgt einfügen:

- src: perryk.nginx_modsec3_crs3

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

Rollenvariablen

Durchsuche die Dateien defaults/main.yml und vars/main.yml der Rolle, um zu sehen, ob es etwas gibt, das du ändern oder in deinem Playbook überschreiben möchtest.

Derzeit sind keine bemerkenswerten Variablen gesetzt.

Es gibt jedoch viele Variablen in der Nginx-Rolle. Vielleicht sind die besten Erklärungen dazu alle Beispiele in der README.md der Rolle.

Beispiel-Playbook

Beispiel-Playbook, das die Rolle aufruft und ModSecurity für die Standard-Nginx-Website hinzufügt und aktiviert.

- 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

Lizenz

MIT

Autorinformationen

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

Über das Projekt

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

Installieren
ansible-galaxy install perryk.nginx_modsec3_crs3
Lizenz
mit
Downloads
364