ドキュメントを提供してくれたインターネット上の偉大な人々に感謝します。
nginx waf +lua セキュリティ モジュールの構築 、nginx 上の Web アプリケーション ファイアウォール
必要なソフトウェア:
1. LuaJIT ダウンロード Web サイト: http://luajit.org (現在の安定バージョン: 2.0.4 )
2、ngx_devel_kit-0.2.19.tar
3、lua-nginx-module-0.9.5rc2.tar
4、master.zip
5、nginx
nginxパッケージを最適化
1、libunwind
2、gperftools
1. LuaJITをインストールします
tar -zxvf LuaJIT.tar.gz
make
make install
インストール後、lib、includeの場所/usr/local/lib および /usr/local/include に直接追加
2. ngx_devel_kit、lua-nginx-module を解凍します
3. 環境変数を設定します
export LUAJIT_LIB=/usr /local /lib
export LUAJIT_INC=/usr/local/include/luajit-2.0
export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH
4. nginx (バージョン 1.6.1) をインストールします、失敗しました1.9.4)
4.1 で最適化された nginx
vim /usr/local/src/nginx-1.6.1/auto/cc/gcc
コメント: #debug
#CFLAGS ="$ CFLAGS -g"
説明: nginx デバッグモジュールをオフにして、nginx インストールパッケージのサイズを削減します
4.2 nginx を最適化します
説明: nginx のパフォーマンスを最適化し、メモリ割り当ての効率と速度を大幅に改善します, 負荷を軽減します。 libunwind と gperftools をインストールする必要があります
4.2.1 libunwind をインストールします
tar -xf /usr/local/src/libunwind.tar.gz
cd /usr/local/src/libunwind CFLA GS =-fPIC ./configure
make CFLAGS=-fPIC
make CFLAGS=-fPIC install
4.2.2 gperftoolsのインストール
tar -xf /usr/local/src/gperftools.tar.gz cd / usr/local/src/gperftools
make && make install
mkdir /tmp/tcmalloc //ファイルを書き込むための tcmalloc スレッドを作成します
777 echo "/usr/local /lib" > /etc/ld.so.conf.d/usr_local_lib.conf #nginx.conf の google_perftools_profiles の設定を有効にして有効化します
4.2.3 nginx をインストールします
cd /usr/local/src/ nginx -1.6.1/
例: 本番環境: ngx_devel_kit-0.2.19 および lua-nginx-module-0.9.5rc2 のパスが正しい必要があることに注意してください--prefix=/usr/local/nginx -- user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module --add-module=/usr/local/nginx_upstream_check_module-master --with-http_stub_status_module - -add- module=/usr/local/src/ngx_devel_kit-0.2.19 --add-module=/usr/local/src/lua-nginx-module-0.9.5rc2 --with-google_perftools_module
make && make install
4.2.4 ngx_lua_waf_master を追加
unzip -o /usr /local/src/ngx_lua_waf_master.zip mv /usr/local/src/ngx_lua_waf_master /usr/local/nginx/conf/waf
#書き込み権限が必要な waf ログを保存するフォルダーを作成します
mkidr /home / niignx_waf_log/
777 /home/nginx_waf_log/
vim /usr/local/src/nginx/conf/waf/conf.lua
RulePath = "/ usr/local/nginx-help / conf/waf/wafconf/" #wafルールの保存先フォルダーを指定
logdir = "/home/nginx_waf_log" #wafログの保存場所を指定
vim /usr/local/nginx/conf/nginx.conf #pid の下に追加、gperftools ライブラリをサポート google_perftools_profiles /tmp/tcmalloc/tcmalloc.;
lua_package_path "/usr/local/nginx/conf/waf/?.lua"; dict lua_shared_limit 10m;
init_by_lua_file; /usr/local/nginx/conf/waf/init.lua;
access_by_lua_file /usr/local/nginx/conf/waf/waf.lua;
次に、nginx を起動し
ウェブサイトのサブ接続を追加しますurl? id=../etc/passwd; ファイアウォールブロックページが表示されるか確認してください
lsof -n | greo tcmalloc 正式に使用する場合は、www で提供されているものを使用してください。 wooyun.org waf モジュール、ルールはニーズに応じて変更できます
上記は、nginx のセキュリティ基盤 (nginx+waf+lua) を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。