• 精创网络
  • 精创网络
  • 首页
  • 产品优势
  • 产品价格
  • 产品功能
  • 关于我们
  • 在线客服
  • 登录
  • DDoS防御和CC防御
  • 精创网络云防护,专注于大流量DDoS防御和CC防御。可防止SQL注入,以及XSS等网站安全漏洞的利用。
  • 免费试用
  • 新闻中心
  • 关于我们
  • 资讯动态
  • 帮助文档
  • 白名单保护
  • 常见问题
  • 政策协议
  • 资讯动态
  • 如何在不同服务器环境下部署开源WAF
  • 来源:www.jcwlyf.com更新时间:2025-04-01
  • Web 应用防火墙(WAF)在保障 Web 应用安全方面起着至关重要的作用。开源 WAF 以其免费、可定制的特点,受到了众多开发者和企业的青睐。然而,在不同的服务器环境下部署开源 WAF 可能会面临一些挑战。本文将详细介绍如何在常见的服务器环境中部署开源 WAF。

    一、常见开源 WAF 介绍

    在开始部署之前,我们需要了解一些常见的开源 WAF。

    1. ModSecurity:它是一个开源的 Web 应用防火墙引擎,可作为 Apache、Nginx 等 Web 服务器的模块使用。ModSecurity 具有强大的规则引擎,能够检测和阻止各种 Web 攻击,如 SQL 注入、跨站脚本攻击(XSS)等。

    2. NAXSI:是一个基于 Nginx 的开源 WAF。它采用了白名单和黑名单相结合的方式进行规则匹配,具有较高的性能和较低的误报率。

    3. OpenResty WAF:基于 OpenResty(一个基于 Nginx 与 Lua 的高性能 Web 平台)实现的 WAF。它利用 Lua 脚本进行灵活的规则编写和处理,能够快速响应各种安全需求。

    二、在 Linux 服务器(以 Ubuntu 为例)上部署 ModSecurity

    1. 安装依赖包

    首先,我们需要安装一些必要的依赖包,以确保 ModSecurity 能够正常编译和运行。打开终端,执行以下命令:

    sudo apt-get update
    sudo apt-get install build-essential libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4-openssl-dev

    2. 下载和编译 ModSecurity

    从 ModSecurity 的官方 GitHub 仓库下载最新版本的源码,并进行编译安装:

    git clone https://github.com/SpiderLabs/ModSecurity.git
    cd ModSecurity
    git submodule init
    git submodule update
    ./build.sh
    ./configure
    make
    sudo make install

    3. 配置 Apache 与 ModSecurity

    如果你使用的是 Apache 服务器,需要安装 ModSecurity 的 Apache 模块。安装完成后,编辑 Apache 的配置文件,启用 ModSecurity 模块:

    sudo apt-get install libapache2-mod-security2
    sudo nano /etc/apache2/mods-enabled/security2.conf

    在配置文件中,你可以根据需要调整 ModSecurity 的规则和参数。

    4. 启用规则集

    ModSecurity 提供了一些默认的规则集,你可以下载并启用它们:

    git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
    sudo cp -r owasp-modsecurity-crs /etc/modsecurity/
    sudo nano /etc/modsecurity/modsecurity.conf

    在配置文件中添加规则集的引用:

    Include /etc/modsecurity/owasp-modsecurity-crs/crs-setup.conf
    Include /etc/modsecurity/owasp-modsecurity-crs/rules/*.conf

    5. 重启 Apache 服务器

    完成上述配置后,重启 Apache 服务器使配置生效:

    sudo systemctl restart apache2

    三、在 Nginx 服务器上部署 NAXSI

    1. 安装 Nginx 和 NAXSI

    可以通过源码编译的方式安装 Nginx 并启用 NAXSI 模块。首先,下载 Nginx 和 NAXSI 的源码:

    wget http://nginx.org/download/nginx-1.21.6.tar.gz
    git clone https://github.com/nbs-system/naxsi.git

    解压 Nginx 源码并进行编译安装:

    tar -zxvf nginx-1.21.6.tar.gz
    cd nginx-1.21.6
    ./configure --add-module=../naxsi/naxsi_src
    make
    sudo make install

    2. 配置 NAXSI

    编辑 Nginx 的配置文件,启用 NAXSI 模块并配置规则:

    sudo nano /usr/local/nginx/conf/nginx.conf

    在配置文件中添加以下内容:

    include /path/to/naxsi_config/naxsi_core.rules;
    
    server {
        listen 80;
        server_name example.com;
    
        location / {
            # Enable NAXSI
            SecRulesEnabled;
            # Check rules
            CheckRule "$SQL >= 8" BLOCK;
            CheckRule "$XSS >= 8" BLOCK;
    
            root /var/www/html;
            index index.html index.htm;
        }
    }

    3. 重启 Nginx 服务器

    保存配置文件后,重启 Nginx 服务器:

    sudo /usr/local/nginx/sbin/nginx -s reload

    四、在 OpenResty 环境下部署 OpenResty WAF

    1. 安装 OpenResty

    可以从 OpenResty 的官方网站下载最新版本的源码,并进行编译安装:

    wget https://openresty.org/download/openresty-1.21.4.1.tar.gz
    tar -zxvf openresty-1.21.4.1.tar.gz
    cd openresty-1.21.4.1
    ./configure
    make
    sudo make install

    2. 下载和配置 OpenResty WAF

    从 OpenResty WAF 的 GitHub 仓库下载源码,并将其配置到 OpenResty 中:

    git clone https://github.com/p0pr0ck5/lua-resty-waf.git
    sudo cp -r lua-resty-waf /usr/local/openresty/lualib/

    编辑 OpenResty 的配置文件,启用 WAF 功能:

    sudo nano /usr/local/openresty/nginx/conf/nginx.conf

    在配置文件中添加以下内容:

    lua_package_path "/usr/local/openresty/lualib/lua-resty-waf/?.lua;;";
    init_by_lua_block {
        local waf = require "waf"
        waf.init()
    }
    
    server {
        listen 80;
        server_name example.com;
    
        access_by_lua_block {
            local waf = require "waf"
            waf.run()
        }
    
        location / {
            root /var/www/html;
            index index.html index.htm;
        }
    }

    3. 重启 OpenResty 服务器

    保存配置文件后,重启 OpenResty 服务器:

    sudo /usr/local/openresty/nginx/sbin/nginx -s reload

    五、部署后的测试与优化

    1. 测试 WAF 功能

    部署完成后,需要对 WAF 的功能进行测试。可以使用一些常见的 Web 攻击测试工具,如 SQLMap、XSSer 等,对 Web 应用进行模拟攻击,检查 WAF 是否能够正确检测和阻止这些攻击。

    2. 优化规则集

    根据测试结果,对 WAF 的规则集进行优化。可以调整规则的阈值、添加或删除规则,以降低误报率和提高检测准确率。

    3. 监控和日志分析

    定期查看 WAF 的日志文件,分析攻击事件的类型、来源和频率。根据分析结果,及时调整 WAF 的配置和规则,以应对不断变化的安全威胁。

    六、总结

    在不同的服务器环境下部署开源 WAF 需要根据具体的服务器类型和需求进行选择和配置。通过本文的介绍,你可以了解到如何在 Linux 服务器(以 Ubuntu 为例)、Nginx 服务器和 OpenResty 环境下部署常见的开源 WAF。部署完成后,还需要进行测试、优化和监控,以确保 WAF 能够有效地保护 Web 应用的安全。

    以上文章详细介绍了在不同服务器环境下部署开源 WAF 的方法,希望对你有所帮助。在实际部署过程中,你可以根据自己的需求和服务器环境进行适当的调整。

  • 关于我们
  • 关于我们
  • 服务条款
  • 隐私政策
  • 新闻中心
  • 资讯动态
  • 帮助文档
  • 网站地图
  • 服务指南
  • 购买流程
  • 白名单保护
  • 联系我们
  • QQ咨询:189292897
  • 电话咨询:16725561188
  • 服务时间:7*24小时
  • 电子邮箱:admin@jcwlyf.com
  • 微信咨询
  • Copyright © 2025 All Rights Reserved
  • 精创网络版权所有
  • 皖ICP备2022000252号
  • 皖公网安备34072202000275号