如何在Linux环境中为Nginx安装Web应用防火墙(WAF)模块?

avatar
作者
猴君
阅读量:0
在Linux下为Nginx安装WAF模块,通常可以使用mod_securitynaxsi。以下是简要步骤:,,1. 安装依赖包:, ``sh, sudo apt-get update, sudo apt-get install libnginx-mod-http-modsecurity, `,,2. 配置Nginx使用ModSecurity:, 编辑Nginx配置文件(通常是/etc/nginx/nginx.conf/etc/nginx/sites-available/default),添加以下内容:, `nginx, # Enable ModSecurity, include /etc/nginx/modsecurity/modsecurity.conf;, `,,3. 重启Nginx服务:, `sh, sudo systemctl restart nginx, `,,4. 安装Naxsi:, 如果需要更多高级功能,可以安装Naxsi:, `sh, sudo apt-get install libnginx-mod-http-naxsi, `,,5. 配置Nginx使用Naxsi:, 同样,编辑Nginx配置文件,添加以下内容:, `nginx, # Enable Naxsi, include /etc/nginx/naxsi.rules;, `,,6. 再次重启Nginx服务:, `sh, sudo systemctl restart nginx, ``,,通过以上步骤,你就可以在Linux下的Nginx中安装并启用WAF模块了。

Linux下给nginx安装waf模块

如何在Linux环境中为Nginx安装Web应用防火墙(WAF)模块?

在Linux系统下为Nginx服务器安装Web应用防火墙(WAF)模块,可以显著提升网站的安全性,以下是详细的安装步骤:

准备工作

步骤 描述
1更新系统软件包
确保所有系统软件包都是最新的。
sudo apt-get update && sudo apt-get upgrade -y
2安装依赖工具
安装编译Nginx和WAF模块所需的工具。
sudo apt-get install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev

下载并安装LuaJIT

步骤 描述
1下载LuaJIT源码
从官方网站下载LuaJIT的最新版本。
wget http://luajit.org/download/LuaJIT-2.1.0-beta3.tar.gz
2解压并编译安装
解压文件并进入目录进行编译和安装。
tar xzf LuaJIT-2.1.0-beta3.tar.gz && cd LuaJIT-2.1.0-beta3 && make && sudo make install

下载并安装ngx_devel_kit

步骤 描述
1下载ngx_devel_kit源码
从GitHub仓库下载ngx_devel_kit的源码。
wget https://github.com/openresty/ngx_devel_kit/archive/refs/tags/v0.3.2.tar.gz
2解压并编译安装
解压文件并进入目录进行编译和安装。
tar xzf v0.3.2.tar.gz && cd ngx_devel_kit-0.3.2 && ./configure && make && sudo make install

四、下载并安装lua-nginx-module

步骤 描述
1下载lua-nginx-module源码
从GitHub仓库下载lua-nginx-module的源码。
wget https://github.com/openresty/lua-nginx-module/archive/refs/tags/v0.10.15.tar.gz
2解压并编译安装
解压文件并进入目录进行编译和安装。
tar xzf v0.10.15.tar.gz && cd lua-nginx-module-0.10.15 && ./configure && make && sudo make install

配置和编译Nginx

步骤 描述
1下载Nginx源码
从官方网站下载Nginx的稳定版本源码。
wget http://nginx.org/download/nginx-1.21.3.tar.gz
2解压并进入目录
解压文件并进入Nginx源码目录。
tar xzf nginx-1.21.3.tar.gz && cd nginx-1.21.3
3添加模块路径并配置
在配置时添加之前安装的模块路径。
./configure --add-module=/usr/local/ngx_devel_kit-0.3.2 --add-module=/usr/local/lua-nginx-module-0.10.15 --with-http_ssl_module
4编译并安装Nginx
编译并安装Nginx。
make && sudo make install

配置WAF规则

步骤 描述
1创建WAF规则目录
在Nginx配置目录中创建存放WAF规则的目录。
sudo mkdir /usr/local/nginx/conf/waf
2将规则文件复制到目录
将从GitHub下载的WAF规则文件复制到创建的目录中。
sudo cp /path/to/waf/rules/* /usr/local/nginx/conf/waf/
3编辑Nginx配置文件
在Nginx配置文件中添加WAF规则路径。
vim /usr/local/nginx/conf/nginx.conf
在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并测试WAF

步骤 描述
1启动Nginx
启动Nginx服务以应用新的配置。
sudo systemctl start nginx
2测试WAF规则
使用常见的攻击工具或手动构造请求来测试WAF规则是否生效,尝试SQL注入或XSS攻击,查看响应是否符合预期。
如果WAF规则生效,攻击请求应被阻止并记录在日志中,检查Nginx的错误日志和访问日志以确认规则执行情况。
tail -f /var/log/nginx/error.log
tail -f /var/log/nginx/access.log

相关问题与解答

问题1:为什么在启动Nginx时提示找不到libluajit库?

解答:

如何在Linux环境中为Nginx安装Web应用防火墙(WAF)模块?

如果在启动Nginx时出现类似“找不到libluajit库”的错误,通常是因为系统无法找到LuaJIT库的路径,解决方法是在启动Nginx前运行以下命令,创建一个符号链接:

 ln -s /usr/local/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2

这将创建一个指向实际库文件的符号链接,使Nginx能够正确加载LuaJIT库。

问题2:如何调整WAF规则以满足特定的安全需求?

解答:

WAF规则可以根据具体的安全需求进行调整,WAF规则分为全局过滤规则、GET请求过滤规则、POST请求过滤规则、白名单规则和User-Agent过滤规则,每条规则可以单独配置,并以换行符或管道符分隔,要调整规则,可以编辑存放在/usr/local/nginx/conf/waf目录下的规则文件,根据需要添加或修改规则。

如何在Linux环境中为Nginx安装Web应用防火墙(WAF)模块?

 -global是全局过滤文件,里面的规则对post和get都过滤 -get是只在get请求过滤的规则 -post是只在post请求过滤的规则 -whitelist是白名单,里面的url匹配到不做过滤 -user-agent是对user-agent的过滤规则

保存修改后,重启Nginx以使新规则生效。

以上就是关于“Linux下给nginx安装waf模块”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!