perryk.nginx_modsec3_crs3
Nginxのインストール、ModSecurity3のコンパイル、OWASP CRS v3ルールセットのインストールのためのAnsibleロール
ModSecurity3は強力なオープンソースのクロスプラットフォームWebアプリケーションファイアウォール(WAF)です。
以前は:https://modsecurity.org/ でしたが、現在は https://owasp.org/ が保有しています。
これはOWASP CRSというルールセットと密接に関連しています。このロールではCRS3と呼ぶことが多いですが、現在はCRSのバージョン4もリリースされています。
以前は:https://modsecurity.org/crs/ でしたが、現在は https://owasp.org/www-project-modsecurity-core-rule-set/ です。 その他の参考リンク: https://coreruleset.org/ と https://github.com/coreruleset/coreruleset/。
さらに、これらはApacheまたはNginxのいずれかのWebサーバーと一緒に使用されますが、このロールはNginxのみをサポートしています。
ModSecurity3は多くのライブラリやパッケージに依存しており、これらはこのロールを通じてインストールされます。
このロールは、コンパイルに必要なコンパイラやその他のビルドツールもインストールします。それらのツールが以前にインストールされていない場合は削除します。
Nginxのサポートは、jdauphantによる依存ロールansible-role-nginx
によって主に提供されます。
https://github.com/jdauphant/ansible-role-nginx
デフォルトでは、このロールはOS提供のリポジトリからNginxパッケージをインストールしますが、公式のNginxリポジトリからインストールすることを推奨します。
これは以下の変数を設定することで実行できます:
nginx_official_repo: true
オプションで、GeoIPやMaxMindのNginxモジュールをビルドすることができます。MaxMindを使用したい場合は、ここから最新のデータベースのライセンスコピーが必要になるでしょう: https://www.maxmind.com/en/geoip-databases
以下の変数からこれを有効にできます:
nginx_modsec3_crs3_geoip_enabled: false
nginx_modsec3_crs3_maxmind_enabled: true
注意:このロールは、出力ファイルが存在する場合、configureとmakeのステップを再実行しないので、上記の異なるモジュールなどのオプションを変更したい場合は、Makefileを削除し、objs/フォルダから任意の.soファイルを削除する必要があります。
必要条件
このロールを呼び出すプレイブックを実行する前に:
requirements.yml
から必要なAnsibleロールをインストールしてください。ここでビューできます:requirements.yml。
ansible-galaxy install -r requirements.yml
特に、このロールはnginxロールから特定のタスクを呼び出すため、このロールと同じ場所に、特定の名前である「ansible-role-nginx」をインストールしておく必要があります。
すなわち、あなたのプロジェクトのプレイブック(このロールのrequirements.ymlファイルではなく)のrequirements.ymlファイルに、以下のようにこのロールと上記のロールの両方を含める必要があります:
- src: perryk.nginx_modsec3_crs3
- src: https://github.com/jdauphant/ansible-role-nginx
version: master
ロール変数
あなたのプレイブックで変更したい、または上書きする必要がある項目がないか、ロールのdefaults/main.ymlとvars/main.ymlファイルをチェックしてください。
現在、特に設定するべき変数はありません。
しかし、nginxロールにはたくさんの変数があります。それらの最良の説明は、ロールのREADME.mdファイルのすべての例にあります。
例プレイブック
デフォルトのNginxサイト用にModSecurityを追加して有効にするロールを呼び出す例のプレイブック。
- 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
ライセンス
MIT
著者情報
ペリー・コルモルゲン - 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