Linux下详细教程:安装配置nginx+naxsi及安全规则设置

5星 · 超过95%的资源 需积分: 49 45 下载量 106 浏览量 更新于2024-09-10 收藏 91KB DOCX 举报
本文档主要介绍了在Linux环境下如何安装和配置nginx服务器,并结合naxsi模块实现Web应用的安全防护。naxsi是一个开源的Web应用防火墙,能够帮助检测并阻止SQL注入、跨站脚本(XSS)、文件包含漏洞(RFI)等常见攻击。 首先,安装nginx前需要确保系统已经安装了必要的依赖包,包括gcc-c++、openSSL和pcre。你可以通过以下命令来安装这些依赖: 1. 安装gcc-c++:如果你的源码在gcc-4.4.7目录下,可以执行相应的编译安装步骤。 2. 安装pcre:从dependenceRPM包中提取pcre及其相关包并进行安装。 3. 安装openSSL:同样从dependenceRPM包中提取openSSL及其相关包并进行安装。 接下来,开始编译安装nginx。在编译过程中,你需要链接naxsi模块,这样nginx在启动时就能加载naxsi。编译选项可能类似于以下命令: ```bash ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_realip_module --with-http_ssl_module --with-pcre=路径/to/pcre --with-openssl=路径/to/openssl --add-module=路径/to/naxsi make make install ``` 配置naxsi规则需要在nginx的主配置文件`nginx.conf`中引入naxsi的核心规则库,例如: ```nginx http { ... include /path/to/naxsi_core.rules; ... } ``` 然后在`location`块中配置naxsi模块的参数,比如启用学习模式(LearningMode)和规则检查(SecRulesEnabled),并定义阻断请求的URL(DeniedUrl): ```nginx location / { error_log logs/error.test.log; proxy_pass http://dmmng; ... # Naxsi 模块配置 LearningMode; SecRulesEnabled; DeniedUrl "/RequestDenied"; include wl.conf; ... # 检查规则 CheckRule "$XSS>=4" BLOCK; CheckRule "$TRAVERSAL>=4" BLOCK; CheckRule "$EVADE>=8" BLOCK; CheckRule "$UPLOAD>=8" BLOCK; CheckRule "$RFI>=8" BLOCK; CheckRule "$SQL>=8" BLOCK; } ``` 配置好后,记得设置一个用于显示请求被阻断的`location`,例如: ```nginx location /RequestDenied { return 405; } ``` 完成配置后,重启nginx服务以应用新的配置: ```bash sudo service nginx restart ``` 为了让naxsi更好地学习网站的行为,你需要在系统中遍历整个网站,确保在此期间naxsi会记录所有非正常请求,但不会立即阻断。这些记录会被写入到`error.test.log`日志文件中。 在学习阶段结束后,你可以通过修改`nx_util.conf`文件并运行`nx_util.py`脚本来生成白名单。具体操作如下: 1. 打开`naxsi/nx_util/nx_util.conf`,根据提示进行相应修改。 2. 运行`naxsi/nx_util/nx_util.py`,指定`error.test.log`作为输入,生成白名单。 这样,naxsi将根据学习到的正常行为建立白名单,从而在未来能够更准确地识别和阻止恶意请求。务必在学习阶段避免混杂攻击流量,以免误判。