nginx之安全基础(nginx+waf+lua)
感谢网上的大神们提供的文档。
nginx waf +lua 安全模块搭建,nginx上的web应用防火墙
需要的软件:
1、LuaJIT下载 网站: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
一、安装LuaJIT
tar -zxvf LuaJIT.tar.gz
make
make install
安装后lib、include直接放在/usr/local/lib和/usr/local/include中
二、解压ngx_devel_kit、lua-nginx-module
三、设置环境变量
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
四、安装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 debug模块,减少nginx安装包大小
4.2优化nginx
解释:优化nginx性能,在内存分配效率和速度上提高很多,降低负载。需要安装libunwind和gperftools
4.2.1安装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
tar -xf /usr/local/src/gperftools.tar.gz
cd /usr/local/src/gperftools
make && make install
mkdir /tmp/tcmalloc //创建tcmalloc线程写入文件
chmod 777 /tmp/tcmalloc
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/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/" #指定waf规则存放文件夹
logdir = "/home/nginx_waf_log" #指定waf日志存放地
vim /usr/local/nginx/conf/nginx.conf
#在pid下添加,支持gperftools库
google_perftools_profiles /tmp/tcmalloc/tcmalloc.;
#在http 添加
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;
然后启动nginx
网站子连接url后增加?id=../etc/passwd;查看是否会出现防火墙阻挡页面
lsof -n | greo tcmalloc 查看gperftools是否正常运行
在正式使用时候,使用的www.wooyun.org上提供的waf模块,规则根据自己所需要的进行修改
以上就介绍了nginx之安全基础(nginx+waf+lua),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Untuk membenarkan pelayan Tomcat mengakses rangkaian luaran, anda perlu: mengubah suai fail konfigurasi Tomcat untuk membenarkan sambungan luaran. Tambahkan peraturan tembok api untuk membenarkan akses kepada port pelayan Tomcat. Buat rekod DNS yang menunjukkan nama domain ke IP awam pelayan Tomcat. Pilihan: Gunakan proksi terbalik untuk meningkatkan keselamatan dan prestasi. Pilihan: Sediakan HTTPS untuk meningkatkan keselamatan.

Langkah-langkah untuk menjalankan ThinkPHP Framework secara setempat: Muat turun dan nyahzip ThinkPHP Framework ke direktori tempatan. Buat hos maya (pilihan) yang menunjuk ke direktori akar ThinkPHP. Konfigurasikan parameter sambungan pangkalan data. Mulakan pelayan web. Mulakan aplikasi ThinkPHP. Akses URL aplikasi ThinkPHP dan jalankannya.

Untuk menyelesaikan ralat "Selamat datang ke nginx!", anda perlu menyemak konfigurasi hos maya, dayakan hos maya, muat semula Nginx, jika fail konfigurasi hos maya tidak dapat ditemui, buat halaman lalai dan muat semula Nginx, kemudian mesej ralat akan hilang dan laman web akan menjadi paparan biasa.

Menukar fail HTML kepada URL memerlukan pelayan web, yang melibatkan langkah berikut: Dapatkan pelayan web. Sediakan pelayan web. Muat naik fail HTML. Buat nama domain. Halakan permintaan.

Langkah-langkah penggunaan pelayan untuk projek Node.js: Sediakan persekitaran penggunaan: dapatkan akses pelayan, pasang Node.js, sediakan repositori Git. Bina aplikasi: Gunakan npm run build untuk menjana kod dan kebergantungan yang boleh digunakan. Muat naik kod ke pelayan: melalui Git atau Protokol Pemindahan Fail. Pasang kebergantungan: SSH ke dalam pelayan dan gunakan pemasangan npm untuk memasang kebergantungan aplikasi. Mulakan aplikasi: Gunakan arahan seperti node index.js untuk memulakan aplikasi, atau gunakan pengurus proses seperti pm2. Konfigurasikan proksi terbalik (pilihan): Gunakan proksi terbalik seperti Nginx atau Apache untuk menghalakan trafik ke aplikasi anda

Arahan yang paling biasa digunakan dalam Dockerfile ialah: DARI: Cipta imej baharu atau terbitkan imej baharu RUN: Laksanakan arahan (pasang perisian, konfigurasikan sistem) COPY: Salin fail tempatan ke imej TAMBAH: Sama seperti COPY, ia boleh menyahmampat secara automatik tar arkib atau dapatkan fail URL CMD: Tentukan arahan apabila bekas bermula DEDAHKAN: Isytiharkan port mendengar kontena (tetapi tidak umum) ENV: Tetapkan pembolehubah persekitaran VOLUME: Pasang direktori hos atau volum tanpa nama WORKDIR: Tetapkan direktori kerja dalam bekas ENTRYPOINT: Tentukan perkara yang hendak dilaksanakan apabila bekas itu memulakan Fail Boleh laku (serupa dengan CMD, tetapi tidak boleh ditimpa)

Ya, Node.js boleh diakses dari luar. Anda boleh menggunakan kaedah berikut: Gunakan Cloud Functions untuk menggunakan fungsi dan menjadikannya boleh diakses secara umum. Gunakan rangka kerja Express untuk membuat laluan dan menentukan titik akhir. Gunakan Nginx untuk membalikkan permintaan proksi kepada aplikasi Node.js. Gunakan bekas Docker untuk menjalankan aplikasi Node.js dan dedahkannya melalui pemetaan port.

Untuk berjaya menggunakan dan menyelenggara tapak web PHP, anda perlu melakukan langkah berikut: Pilih pelayan web (seperti Apache atau Nginx) Pasang PHP Cipta pangkalan data dan sambungkan PHP Muat naik kod ke pelayan Sediakan nama domain dan Pemantauan DNS penyelenggaraan tapak web langkah termasuk mengemas kini PHP dan pelayan web, dan membuat sandaran tapak web, memantau log ralat dan mengemas kini kandungan.
