nginx waf安裝配置


1、編譯安裝ModSecurity
1.1)安裝依賴包
sudo apt install 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

1.2)安裝modsecurity
git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity
cd ModSecurity
git submodule init
git submodule update
./build.sh
注:build時出現fatal: No names found, cannot describe anything.時不用管它
./configure
make
sudo make install
安裝位置/usr/local/modsecurity

2、編譯安裝ModSecurity-nginx
2.1)下載連接器源碼
git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git

2.2)查看nginx版本號
nginx -v
nginx version: nginx/1.14.0 (Ubuntu)

2.3)下載nginx對應版本號的源碼包,並gpg驗證
wget http://nginx.org/download/nginx-1.14.0.tar.gz

gpg簽名驗證
wget http://nginx.org/download/nginx-1.14.0.tar.gz.asc
wget http://nginx.org/keys/nginx_signing.key
gpg --import nginx_signing.key
gpg --verify nginx-1.14.0.tar.gz.asc nginx-1.14.0.tar.gz
如果還找不到public key時,可以按提示的KEY ID 搜索一下 gpg --search-keys 520A9993A1C052F8

2.4)編譯模塊,並配置到nginx中
編譯模塊:
tar zxvf nginx-1.14.0.tar.gz
cd nginx-1.14.0/
./configure (這里把nginx -V查看到配置參數全放到這里) --add-dynamic-module=../ModSecurity-nginx
配置提示error: SSL modules require the OpenSSL library時需要安裝
sudo apt install libssl-dev
配置提示error: the HTTP XSLT module requires the libxml2/libxslt時需要安裝
sudo apt install libxslt1-dev
配置提示 error: the HTTP image filter module requires the GD library時需要安裝
sudo apt install libgd-dev
make modules

復制模塊到對應位置:
sudo cp objs/ngx_http_modsecurity_module.so /usr/lib/nginx/modules
sudo chmod -x /usr/lib/nginx/modules/ngx_http_modsecurity_module.so

創建模塊配置文件:
sudo cp /usr/share/nginx/modules-available/mod-http-geoip.conf /usr/share/nginx/modules-available/mod-http-modsecurity.conf

編輯模塊配置文件:
load_module modules/ngx_http_modsecurity_module.so;

創建鏈接:
sudo ln -s /usr/share/nginx/modules-available/mod-http-modsecurity.conf /etc/nginx/modules-enabled/50-mod-http-modsecurity.conf

檢查配置:
sudo nginx -t

3、nginx站點開啟waf
sudo mkdir /etc/nginx/modsec
sudo cp ~/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf
sudo cp ~/ModSecurity/unicode.mapping /etc/nginx/modsec/
modsecurity.conf中SecRuleEngine 設置為On

sudo touch /etc/nginx/modsec/main.conf
內容:
Include "/etc/nginx/modsec/modsecurity.conf"
SecRule ARGS:testparam "@contains test" "id:1234,deny,status:403"

默認站點配置啟用WAF
server {
# ...
modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/main.conf;
}
main.conf和modsecurity.conf修改后也需要sudo nginx -s reload
測試 curl localhost?testparam=test 返回403

4、modsecurity常用配置文件
TODO


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM