Heim >Backend-Entwicklung >PHP-Tutorial >Sicherheitsgrundlage von Nginx (Nginx WAF Lua)

Sicherheitsgrundlage von Nginx (Nginx WAF Lua)

WBOY
WBOYOriginal
2016-07-29 09:15:231286Durchsuche

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. Nginx installieren (Version 1.6.1, fehlgeschlagen in 1.9.4)

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 Nginx

Erlä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.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:DedeCMS-LernenNächster Artikel:DedeCMS-Lernen