Nginx+ModSecurity セキュリティモジュールの導入

Nginx+ModSecurity セキュリティモジュールの導入

Nginx はインストールされているが ModSecurity が追加されていない状況を示すために、次の操作では、最初に Nginx をインストールし、次に ModSecurity モジュールを追加します。

ModSecurity は、nginx と完全に互換性のあるオープンソースのクロスプラットフォーム Web アプリケーション ファイアウォール (WAF) エンジンです。nginx によって公式に推奨されている WAF であり、OWASP ルールをサポートしています。

中国語ウェブサイト: http://www.modsecurity.cn

実際の適用については、http://www.modsecurity.cn/practice/ を参照してください。

1. ダウンロード

1. Nginxをダウンロードする

http://nginx.org/download/nginx-1.14.2.tar.gz をダウンロードしてください

2. ModSecurityのダウンロード

http://www.modsecurity.cn/download/modsecurity/modsecurity-v3.0.4.tar.gz をダウンロードしてください

2. 展開

1.Nginxのデプロイメント

1.1 インストールの依存関係

yum インストール -y pcre* openssl* gcc c++ make

1.2 解凍したファイルをコンパイルしてインストールする

tar -xvf nginx-1.14.2.tar.gz 
nginx-1.14.2をインストールします

構成モジュール

./CONFIGURE ---PREFIX =/usr/local/nginx  -  sbin-path =/usr/local/nginx/sbin/nginx  -  conf-path =/usr/nginx/conf/nginx.conf -error-log-path =/var/log/nginx/error.log-http-log-path = bar/var/var/var /nginx/nginx.pid  -  lock-path =/var/lock/nginx.lock.lock  -  user = nginx  -  group = nginx -with-http_ssl_module -with-http_stub_status_module -with-http_gzip_static_module -htp-hptpats/tmp-bodule-bodule-bodule-bodule-body-body ttp-proxy-temp-path =/var/tmp/nginx/proxy/-http-fastcgi-temp-path =/var/tmp/nginx/fcgi/ -  http-uwsgi-temp-path =/var/tmp/nginx/uwsgi-http-scgi-temp-p-ppat -PCREで

コンパイルの実行

作る
インストールする

アカウントとディレクトリを作成する

ユーザー追加 nginx -s /sbin/nologin
mkdir /var/tmp/nginx/

2. ModSecurityの展開

2.1 インストールの依存関係

yum install -y gcc-c++ flex bison yajl yajl-devel curl-devel curl GeoIP-devel doxygen zlib-devel pcre-devel lmdb-devel libxml2-devel ssdeep-devel lua-devel libtool autoconf automake

2.2 解凍したファイルをコンパイルしてインストールする

tar -xvf modsecurity-v3.0.4.tar.gz
cd modsecurity-v3.0.4/

コンパイルしてインストールする

./configure
作る
インストールする
cp modsecurity.conf-推奨 /usr/local/modsecurity/modsecurity.conf
cp unicode.mapping /usr/local/modsecurity/

3. ModSecurityモジュールを追加する

3.1 Nginx コンパイルパラメータを表示する

nginx の sbin ディレクトリに nginx の sbin ディレクトリを作成します。

3.2 ModSecurityモジュールをダウンロードする

git クローン https://github.com/SpiderLabs/ModSecurity-nginx.git

または、https://github.com/SpiderLabs/ModSecurity-nginx からダウンロードしてください。 

3.3 Nginxを再コンパイルする

減圧モジュール

ModSecurity-nginx-master.zip を解凍します。 
#インストールパッケージをダウンロードする場合のみ、git cloneの場合は不要

コンパイルしてインストールする

./CONFIGURE ---PREFIX =/usr/local/nginx  -  sbin-path =/usr/local/nginx/sbin/nginx  -  conf-path =/usr/nginx/conf/nginx.conf -error-log-path =/var/log/nginx/error.log-http-log-path = bar/var/var/var /nginx/nginx.pid  -  lock-path =/var/lock/nginx.lock.lock  -  user = nginx  -  group = nginx -with-http_ssl_module -with-http_stub_status_module -with-http_gzip_static_module -htp-hptpats/tmp-bodule-bodule-bodule-bodule-body-body ttp-proxy-temp-path =/var/tmp/nginx/proxy/-http-fastcgi-temp-path =/var/tmp/nginx/fcgi/ -  http-uwsgi-temp-path =/var/tmp/nginx/uwsgi-http-scgi-temp-p-ppat -with-pcre -add-module = ../modsecurity-nginx

 
#ここに注意/ModSecurity-nginx パスを作成
インストールする

/usr/local/nginx/sbin/nginx -V #ModSecurityモジュールがすでに利用可能であることを確認します

プロフィールを追加する

/usr/local/nginx/conf/modsecurity ディレクトリに移動します。
cp /usr/local/modsecurity/modsecurity.conf /usr/local/nginx/conf/modsecurity/
cp /usr/local/modsecurity/unicode.mapping /usr/local/nginx/conf/modsecurity/

4. Nginx仮想ホストを構成する

4.1 仮想ホストの設定

vim /usr/local/nginx/conf/nginx.conf
    modsecurity オン;
    modsecurity_rules_file /usr/local/nginx/conf/modsecurity/modsecurity.conf;
    
 #httpノードに追加するとグローバル構成が示され、serverノードに追加すると特定のWebサイトの構成が示されます

4.2Modsecurityの設定

下記のコマンドを実行して、 /usr/local/nginx/conf/modsecurity/modsecurity.conf を編集します。
#次の部分を変更する SecRuleEngine On
SecAuditLogParts ABCDEFHZ

#設定ファイルに /usr/local/nginx/conf/modsecurity/crs-setup.conf を追加します
/usr/local/nginx/conf/modsecurity/rules/*.conf を含める

4.3 ルールファイルのダウンロード

http://www.modsecurity.cn/download/corerule/owasp-modsecurity-crs-3.3-dev.zip をダウンロードしてください
#ModsecurityChinese ウェブサイトのダウンロード wget https://github.com/coreruleset/coreruleset
#github ダウンロード

4.4 構成ルール

owasp-modsecurity-crs-3.3-dev.zip を解凍します。 
cd owasp-modsecurity-crs-3.3-dev/

cp crs-setup.conf.example /usr/local/nginx/conf/modsecurity/crs-setup.conf
cp -r ルール /usr/local/nginx/conf/modsecurity/

cd /usr/local/nginx/conf/modsecurity/rules
mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
mv RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf

4.5 テスト

#ブラウザまたはcurlアクセステスト、403を返す
curl -I 'http://localhost/?id=1 AND 1=1'

Nginx+ModSecurity セキュリティ モジュールの導入実装に関するこの記事はこれで終わりです。Nginx ModSecurity 導入に関するより詳しい内容については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Nginx を使用して静的ページを展開する方法
  • Nginx + Tomcat リバースプロキシが 1 つのサーバーに複数のサイトを効率的に展開する方法の詳細な説明
  • NodeJS によるフロントエンドとバックエンドの分離の考え方と実践 (VI) Nginx + Node.js + Java のソフトウェアスタック展開実践
  • サーバー上で Nginx を使用して Springboot プロジェクトをデプロイする方法の詳細なチュートリアル (jar パッケージ)
  • ThinkPHP プロジェクトを Nginx にデプロイするチュートリアル
  • nginx で vue プロジェクトをデプロイするときに js css ファイルが見つからない問題の解決策

<<:  Vue+ElementUI で超大規模なフォーム例を処理する方法

>>:  CSS リンク アドレスの後に疑問符 (?) を追加すると、どのような意味になりますか?

推薦する

CentOS に PHP5 をインストール、PHP をアンインストール、PHP7 をインストールするチュートリアル

まず、PHP5をインストールするのはとても簡単ですyum install php PHP5 を使用し...

MySQL スロークエリログの設定と使用方法のチュートリアル

序文MySQL スロー クエリ ログは、日常業務でよく遭遇する機能です。MySQL スロー クエリ ...

Linux コマンドにおける Ctrl+z、Ctrl+c、Ctrl+d の違いと使い方

Linux で Ctrl+c、Ctrl+d、Ctrl+z はどういう意味ですか? Ctrl+c と ...

Windows での PyTorch 開発環境のインストール チュートリアル

アナコンダのインストールAnaconda は、Python の使用を容易にするために作成されたソフト...

Tomcatを使用して共有ライブラリを設定し、同じjarを共有する

デプロイされるプロジェクトが増えるにつれて、Tomcat にデプロイされるリリース パッケージも増え...

MySQL での実行計画の explain コマンド例の詳細な説明

序文explain コマンドは、クエリ オプティマイザーがクエリの実行を決定した方法を確認する主な方...

echarts ワードクラウドチャートを使用した Vue の実践記録

echartsワードクラウドはechartsの拡張版ですhttps://echarts.apache...

計算機機能を実装するミニプログラム

この記事の例では、計算機機能を実装するためのミニプログラムの具体的なコードを参考までに共有しています...

Linuxのseqコマンドを使用して数字のシーケンスを生成します(推奨)

Linux の seq コマンドは、数字のリストを非常に高速に生成でき、使いやすく柔軟性に優れてい...

Vueタイムラインコンポーネントの使い方

この記事の例では、参考までにvueタイムラインコンポーネントの具体的な実装コードを共有しています。具...

JavaScript ドキュメント オブジェクト モデル DOM

目次1. JavaScriptはページ内のすべてのHTML要素を変更できる1. IDでHTML要素を...

DockerにFastDFSをインストールする方法

画像をプルする docker pull season/fastdfs:1.2トラッカーを開始 doc...

CentOS8 yum/dnfで国内ソースを設定する方法

CentOS 8 ではソフトウェア パッケージのインストール プログラムが変更され、yum 構成方法...

win10 で mysql8.0.23 をインストールし、「サービスが制御機能に応答しません」という問題を解決する方法

Windows10にmysqlをインストールする1. 公式サイトからMySQLをダウンロードするウェ...

MySQL マルチバージョン同時実行制御 MVCC の基本原理の分析

目次1 トランザクションの同時実行で発生する問題1.1 ダーティリード1.2 繰り返し不可能な読み取...