perryk.nginx_modsec3_crs3

Rola Ansible do instalacji Nginx, kompilacji ModSecurity3 i instalacji zestawu reguł OWASP CRS v3

ModSecurity3 to potężny ogólnodostępny, wieloplatformowy zapora aplikacji webowych (WAF).

Dawniej: https://modsecurity.org/, teraz należy do https://owasp.org/

Działa w ścisłej współpracy z zestawem reguł znanym jako OWASP CRS. Należy zauważyć, że ta rola często odnosi się do CRS3, chociaż wersja 4 CRS została już wydana.

Dawniej: https://modsecurity.org/crs/, teraz https://owasp.org/www-project-modsecurity-core-rule-set/ także: https://coreruleset.org/ i https://github.com/coreruleset/coreruleset/

Oba te komponenty współpracują z serwerem internetowym, takim jak Apache czy Nginx, jednak ta rola obsługuje tylko Nginx.

https://www.nginx.com

Istnieje wiele bibliotek i pakietów, od których zależy ModSecurity3, a które zostaną zainstalowane za pomocą tej roli.

Ta rola zainstaluje również wszystkie kompilatory i inne narzędzia budowlane wymagane do kompilacji. Następnie usunie te narzędzia, jeśli nie były wcześniej zainstalowane.

Wsparcie dla Nginx jest głównie zapewniane przez zależną rolę ansible-role-nginx od jdauphant.

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

Domyślnie ta rola zainstaluje pakiety Nginx z repozytoriów dostarczonych przez system operacyjny, zaleca się jednak, aby zmienić to na instalację z oficjalnego repozytorium Nginx.

Można to zrobić, ustawiając tę zmienną:

nginx_official_repo: true

Opcjonalnie, ta rola może zbudować moduły GeoIP i/lub MaxMind dla Nginx, jeśli chcesz korzystać z wyszukiwań geolokalizacyjnych. Jeśli chcesz używać MaxMind, prawdopodobnie będziesz potrzebować licencjonowanej wersji aktualnej bazy danych, dostępnej tutaj: https://www.maxmind.com/en/geoip-databases

Możesz włączyć te funkcje za pomocą następujących zmiennych:

nginx_modsec3_crs3_geoip_enabled: false
nginx_modsec3_crs3_maxmind_enabled: true

Uwaga: ta rola nie uruchomi ponownie kroków konfiguracyjnych i kompilacyjnych, jeśli ich wyniki istnieją, więc jeśli zmienisz opcje, które chcesz, takie jak różne moduły, być może będziesz musiał usunąć plik Makefile i usunąć wszystkie pliki .so z folderu objs/.

Wymagania

Przed uruchomieniem playbooka, który wywołuje tę rolę:

Zainstaluj wszystkie wymagane role Ansible z requirements.yml. Zobacz tutaj.

ansible-galaxy install -r requirements.yml

Uwaga, ta rola wywoła pewne zadania z roli nginx, więc upewnij się, że jest zainstalowana w tym samym miejscu co ta rola i z konkretną nazwą "ansible-role-nginx".

Tj. w pliku requirements.yml dla twojego playbooka (nie pliku requirements.yml dla tej roli) musisz uwzględnić zarówno tę rolę, jak i rolę wymienioną powyżej w ten sposób:

- src: perryk.nginx_modsec3_crs3

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

Zmienne roli

Przeglądaj pliki defaults/main.yml i vars/main.yml roli, aby zobaczyć, czy jest coś, co chciałbyś zmienić lub co musisz nadpisać, ustawiając w swoim playbooku.

Obecnie nie ma żadnych istotnych zmiennych ustawionych.

Jest jednak wiele zmiennych w roli nginx, a najlepsze opisy tych zmiennych można znaleźć w przykładach w pliku README.md.

Przykładowy Playbook

Przykładowy playbook wywołujący rolę dodającą i aktywującą ModSecurity dla domyślnej witryny 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

Licencja

MIT

Informacje o autorze

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

O projekcie

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

Zainstaluj
ansible-galaxy install perryk.nginx_modsec3_crs3
Licencja
mit
Pobrania
364
Właściciel