LEMPをすべてセットアップしました。ここで、mod_securityを追加したいと思います。
調べてみましたが、nginxを再コンパイルする方法の説明しか見つかりませんでした。再コンパイルせずにmod_securityを追加する方法はありますか?
私はHTTP/2の後だったので、現在PPAがインストールされたnginx /1.9.15を実行しています。私はnginxをコンパイルした経験がなく、PPAから入手したので、再コンパイルしてもnginxが壊れてしまうかどうかわかりません。
あなたが助けることができることを願っています。
ありがとうございました。
ModSecurityを動的モジュールとして追加することでそれを行うことができます。
apt-get install -y apt-utils autoconf automake build-essential git libcurl4-openssl-dev libgeoip-dev liblmdb-dev libpcre++-dev libtool libxml2-dev libyajl-dev pkgconf wget zlib1g-dev
git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity
cd ModSecurity
git submodule init
git submodule update
./build.sh
./configure
make
make install
注:システムの処理能力にもよりますが、コンパイルには約15分かかります。
git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar zxvf nginx-1.13.7.tar.gz
cd nginx-1.13.7
./configure --with-compat --add-dynamic-module=../ModSecurity-nginx
make modules
cp objs/ngx_http_modsecurity_module.so /etc/nginx/modules
この行をに追加します /etc/nginx/nginx.conf
load_module modules/ngx_http_modsecurity_module.so;
適切なModSecurity構成ファイルを設定します。ここでは、ModSecurityの企業スポンサーであるTrustWaveSpiderlabsが提供する推奨ModSecurity構成を使用しています。
mkdir /etc/nginx/modsec
wget -P /etc/nginx/modsec/ https://raw.githubusercontent.com/SpiderLabs/ModSecurity/v3/master/modsecurity.conf-recommended
wget -P /etc/nginx/modsec/ https://raw.githubusercontent.com/SpiderLabs/ModSecurity/v3/master/unicode.mapping
mv /etc/nginx/modsec/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf
構成のSecRuleEngineディレクティブを変更して、デフォルトの「検出のみ」モードから悪意のあるトラフィックを積極的にドロップするように変更します。
sed -i 's/SecRuleEngine DetectionOnly/SecRuleEngine On/' /etc/nginx/modsec/modsecurity.conf
1つ以上のルールを構成します。このブログの目的のために、testparamというURL引数の値に文字列testが含まれるリクエストを削除する単一の単純なルールを作成しています。次のテキストを /etc/nginx/modsec/main.conf
# From https://github.com/SpiderLabs/ModSecurity/blob/master/\
# modsecurity.conf-recommended
#
# Edit to set SecRuleEngine On
Include "/etc/nginx/modsec/modsecurity.conf"
# Basic test rule
SecRule ARGS:testparam "@contains test" "id:1234,deny,status:403"
Modsecurityおよびmodsecurity_rules_fileディレクティブをNGINX構成に追加して、ModSecurityを有効にします。
server {
# ...
modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/main.conf;
}
ソース: nginx.com
リポジトリから利用可能なパッケージがあります ppa:phusion.nl/misc
。基本的な インストールする手順 :
Sudo add-apt-repository ppa:phusion.nl/misc
Sudo apt update
Sudo apt install libnginx-mod-http-modsecurity
その後、 その他の回答 から構成手順に従うことができます。