Vielen Dank an die tollen Leute im Internet für die Bereitstellung der Dokumentation.
Nginx WAF + Lua-Sicherheitsmodulaufbau, Webanwendungs-Firewall auf Nginx
Erforderliche Software:
1 . LuaJIT-Download-Website: http://luajit.org (aktuelle stabile Version: 2.0.4)
ngx_devel_kit-0.2.19.tar
3 🎜>4, master.zip
5, nginx
nginx-Paket optimieren
1, libunwind
2, gperftools
1. InstallationLuaJIT
tar -zxvf LuaJIT.tar.gz
make
make install
Nach der Installation lib, include Platzieren Sie direkt in /usr/local/lib und /usr/local/include
2. Entpacken Sie ngx_devel_kit, lua-nginx-module
3. Umgebungsvariablen festlegen
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.1 Nginx optimieren
vim /usr/local/src/nginx-1.6.1/auto /cc/gcc
Kommentar: #debug
#CFLAGS="$CFLAGS -g"
Erläuterung: Nginx-Debug-Modul schließen, Reduzieren Sie die Größe des Nginx-Installationspakets
4.2 Optimieren Sie NginxErläuterung: Optimieren Sie die Nginx-Leistung und verbessern Sie die Speicherzuweisung Effizienz und Geschwindigkeit. Viel niedriger die Ladung. Libunwind und gperftools müssen installiert werden
4.2.1 Installieren Sie libunwind
tar -xf /usr/local/src / libunwind.tar.gz
cd /usr/local/src/libunwind CFLAGS=-fPIC ./configure
make CFLAGS=-fPIC
make CFLAGS = -fPIC install
4.2.2 gperftools installieren
tar -xf /usr/local/src/gperftools.tar.gz cd /usr/local/src/gperftools
make && make install
mkdir /tmp/tcmalloc //Erstelle einen tcmalloc-Thread, um die Datei zu schreiben
chmod 777 /tmp/tcmalloc
echo "/usr/local/lib" >/etc/ld.so.conf.d/usr_local_lib .conf # Machen Sie die Konfiguration von google_perftools_profiles in nginx.conf wirksam
4.2.3 Nginx installieren
cd /usr/ local/src/nginx- 1.6.1/
Zum Beispiel: Produktionsumgebung: Beachten Sie, dass die Pfade von ngx_devel_kit-0.2.19 und lua-nginx-module-0.9.5rc2 korrekt sein müssen--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 hinzufügen
unzip -o /usr/local/src/ngx_lua_waf_master.zip mv /usr/local/src/ngx_lua_waf_master /usr/local/nginx/conf/waf
#Erstellen Sie einen Ordner zum Speichern von WAF-Protokollen, für den eine Schreibberechtigung erforderlich ist mkidr /home/nignx_waf_log/
chmod 777 /home/nginx_waf_log/
vim /usr/local/src/nginx/conf/waf/conf.lua
RulePath = "/usr/local / nginx-help/conf/waf/wafconf/" #Geben Sie den WAF-Regelspeicherordner an
logdir = "/home/nginx_waf_log" #Geben Sie den WAF-Protokollspeicherort an
vim /usr/local/nginx/conf/nginx.conf #Unter pid hinzufügen, gperftools-Bibliothek unterstützen
google_perftools_profiles /tmp/tcmalloc/tcmalloc.;
#Unter http hinzufügen
lua_package_path "/usr/local/nginx/conf/waf/?.lua";
lua_shared_dict limit 10m;
init_by_lua_file /usr/local/nginx/conf/waf/init.lua;
access_by_lua_file / usr /local/nginx/conf/waf/waf.lua;
Dann starten Sie nginx
Fügen Sie ?id= nach der Website-Unterverbindung hinzu url ../etc/passwd; Überprüfen Sie, ob die Firewall-Blockierungsseite angezeigt wird
greo tcmalloc Überprüfen Sie, ob gperftools normal ausgeführt wird
Verwenden Sie für den offiziellen Gebrauch das auf www.wooyun.org bereitgestellte WAF-Modul und ändern Sie die Regeln entsprechend Ihren Anforderungen
Das Obige stellt die Sicherheitsgrundlage von Nginx (Nginx WAF Lua) vor, einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.