欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx 配置 ModSecurity 網(wǎng)絡(luò)應(yīng)用防火墻實現(xiàn)

 更新時間:2023年12月24日 15:29:36   作者:Roman Gherta  
這篇文章主要介紹了Nginx 配置 ModSecurity 網(wǎng)絡(luò)應(yīng)用防火墻實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

OSI(開放系統(tǒng)互聯(lián)) 是最常被網(wǎng)絡(luò)相關(guān)討論引用的網(wǎng)絡(luò)流量框架之一。當數(shù)據(jù)包通過第 6 層(表示層)移動到第 7 層(應(yīng)用層)時,它會進行解密或解碼操作。這些操作可能會因異常解碼和解釋而產(chǎn)生漏洞,而這些漏洞可能被利用來打破標準應(yīng)用上下文。注入就是這種漏洞的一種類型,而且因為傳統(tǒng)的 IDS/IPS 設(shè)備無法應(yīng)對這些威脅,所以其長時間以來一直是人們特別關(guān)注的問題。

ModSecurity 簡介

ModSecurity 本質(zhì)上就是 網(wǎng)絡(luò)應(yīng)用防火墻web application firewall(WAF)引擎。它與 Apache、IIS 和 Nginx 兼容,并由第三方公司維護。該防火墻會將一份規(guī)則列表與由 Web 服務(wù)器/代理提供的 HTTP 頭流進行交叉引用。目前這個倉庫已經(jīng)被簡化,只包含主要的 LibModSecurity 庫。你可以直接在自己的服務(wù)器實現(xiàn)中調(diào)用這個庫,或通過特定編程語言的封裝進行調(diào)用。

其母公司的支持計劃于 2024 年 7 月 1 日結(jié)束,之后這個項目將由開源社區(qū)維護。

安裝 Nginx 連接器

Nginx 連接器 是一個 Nginx 動態(tài)模塊,可以通過 Fedora 包 nginx-mod-modsecurity 進行安裝。它依賴于 libmodsecurity.so,所以在這個使用場景中,這個包本身就是防火墻。

[user@fedora ~]$ sudo dnf install -y nginx nginx-mod-modsecurity
[user@fedora ~]$ rpm -qR nginx-mod-modsecurity
config(nginx-mod-modsecurity) = 1.0.3-3.fc38
libc.so.6(GLIBC_2.4)(64bit)
libmodsecurity.so.3()(64bit)
nginx(abi) = 1.24.0
nginx-filesystem
...

安裝完成后,你會見到連接器在 /etc/nginx 中添加了一些重要的文件。

[user@fedora ~]$ rpm -ql nginx-mod-modsecurity
/etc/nginx/modsecurity.conf                   # waf 配置
/etc/nginx/nginx.conf.modsecurity             # nginx 示例配置
/usr/lib64/nginx/modules/ngx_http_modsecurity_module.so
/usr/share/nginx/modules/mod-modsecurity.conf
/usr/share/doc/nginx-mod-modsecurity/README.md
...

通過提供一些額外的配置指令,連接器對 Nginx 進行了擴展。下面的部分將演示 nginx.conf.modsecurity 文件中一些示例指令。指令的完整列表可以在 README.md 文件或項目的 GitHub 頁面找到。

啟動網(wǎng)絡(luò)應(yīng)用防火墻

nginx.conf.modsecurity 是我們將要運行的 Nginx 配置。解開如下所示的 modsecurity

[user@fedora ~]$ sudo sed -i 's/#modsec/modsec/g' /etc/nginx/nginx.conf.modsecurity
[user@fedora ~]$ grep -C2 modsecurity /etc/nginx/nginx.conf.modsecurity
        # 如有需要,啟用 ModSecurity WAF
        modsecurity on;
        # 如有需要,加載 ModSecurity CRS
        modsecurity_rules_file /etc/nginx/modsecurity.conf;

在 shell 中啟動服務(wù)器并查看日志,確保在 modsecurity.conf 加載了七個默認規(guī)則。

[user@fedora ~]$ sudo nginx -c /etc/nginx/nginx.conf.modsecurity
[user@fedora ~]$ head /var/log/nginx/error.log
2023/10/21 23:55:09 [notice] 46218#46218: ModSecurity-nginx v1.0.3 (rules loaded inline/local/remote: 0/7/0)
2023/10/21 23:55:09 [notice] 46218#46218: using the "epoll" event method
2023/10/21 23:55:09 [notice] 46218#46218: nginx/1.24.0
2023/10/21 23:55:09 [notice] 46218#46218: OS: Linux 6.5.7-200.fc38.x86_64

通過發(fā)送一些不符合 Content-Type 頭格式的數(shù)據(jù)來測試默認規(guī)則。

[user@fedora ~]$ curl -X POST http://localhost -H "Content-Type: application/json" --data "<xml></xml>"
[user@fedora ~]$ tail /var/log/modsec_audit.log
...
---rH5bFain---H--
ModSecurity: Warning. Matched "Operator `Eq' with parameter `0' against variable `REQBODY_ERROR' (Value: `1' ) [file "/etc/nginx/modsecurity.conf"] [line "75"] [id "200002"] [rev ""] [msg "Failed to parse request body."] [data "JSON parsing error: lexical error: invalid char in json text.\n"] [severity "2"] [ver ""] [maturity "0"] [accuracy "0"] [hostname "10.0.2.100"] [uri "/"] [unique_id "169795900388.487044"] [ref "v121,1"]

用 OWASP 核心規(guī)則集擴展你的網(wǎng)絡(luò)應(yīng)用防火墻

默認的 Nginx 連接器帶有七條規(guī)則。OWASP Core Rule Set v3.3.5 則更為詳盡,涵蓋了許多場景。

復制并提取規(guī)則的存檔。

[user@fedora ~]$ curl -fSL https://github.com/coreruleset/coreruleset/archive/refs/tags/v3.3.5.tar.gz --output /tmp/v3.3.5.tar.gz
[user@fedora ~]$ sudo tar -C /etc/nginx -xvf /tmp/v3.3.5.tar.gz
[user@fedora ~]$ tree -L 1 /etc/nginx/
/etc/nginx/
├── conf.d
├── default.d
├── modsecurity.conf          # waf 配置
├── nginx.conf
├── nginx.conf.modsecurity    # nginx 啟用 waf
├── coreruleset-3.3.5
├   ├── rules                 # 規(guī)則目錄
├       ...
├   ...

現(xiàn)在,你在 Nginx 配置文件夾中有了一個包含所有當前 OWASP 規(guī)則的 rules 目錄。接下來,讓 Nginx 知道這些規(guī)則。以下操作指南來源于 OWASP INSTALL 文件。

創(chuàng)建一個 crs.conf 文件,并在全局網(wǎng)絡(luò)應(yīng)用防火墻配置文件( modsecurity.conf )中包含所有相關(guān)的配置文件。

[user@fedora ~]$ sudo cp /etc/nginx/coreruleset-3.3.5/crs-setup.conf.example /etc/nginx/coreruleset-3.3.5/crs.conf
[user@fedora ~]$ echo -e "\nInclude /etc/nginx/coreruleset-3.3.5/crs.conf"  | sudo tee -a /etc/nginx/modsecurity.conf
[user@fedora ~]$ echo -e "\nInclude /etc/nginx/coreruleset-3.3.5/rules/*.conf" | sudo tee -a /etc/nginx/modsecurity.conf
[user@fedora ~]$ tail /etc/nginx/modsecurity.conf
Include /etc/nginx/coreruleset-3.3.5/crs.conf
Include /etc/nginx/coreruleset-3.3.5/rules/*.conf

根據(jù)文檔,包含這些文件的順序很重要。上面的 tee 的命令將新的 Include 行放在了 modsecurity.conf 文件的末尾?,F(xiàn)在,用這個新配置重啟 Nginx。

[user@fedora ~]$ sudo nginx -s stop && sudo nginx -c /etc/nginx/nginx.conf.modsecurity
[user@fedora ~]$ tail /var/log/nginx/error.log
2023/10/22 10:53:23 [notice] 202#202: exit
2023/10/22 10:53:50 [notice] 230#230: ModSecurity-nginx v1.0.3 (rules loaded inline/local/remote: 0/921/0)
2023/10/22 10:53:50 [notice] 230#230: using the "epoll" event method
2023/10/22 10:53:50 [notice] 230#230: nginx/1.24.0
2023/10/22 10:53:50 [notice] 230#230: OS: Linux 6.5.7-200.fc38.x86_64
2023/10/22 10:53:50 [notice] 230#230: getrlimit(RLIMIT_NOFILE): 524288:524288
2023/10/22 10:53:50 [notice] 231#231: start worker processes

注意,Nginx 成功加載了 921 條規(guī)則。還需要做一些測試來確保規(guī)則實際上是被網(wǎng)絡(luò)應(yīng)用防火墻檢查過的。這里再次引用 INSTALL 文件中的 “Testing the Installation” 片段。

[user@fedora ~]$ curl 'http://localhost/?param=''><script>alert(1);</script>'
[user@fedora ~]$ tail /var/log/modsec_audit.log
...
---8NSpdnLe---H--
ModSecurity: Warning. detected XSS using libinjection. [file "/etc/nginx/coreruleset-3.3.5/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf"] [line "38"] [id "941100"] [rev ""] [msg "XSS Attack Detected via libinjection"] [data "Matched Data: XSS data found within ARGS:param: ><script>alert(1);</script>"] [severity "2"] [ver "OWASP_CRS/3.3.5"]
...

結(jié)論

本文演示了如何為 Nginx 服務(wù)器配置網(wǎng)絡(luò)應(yīng)用防火墻。這個部署使用了標準規(guī)則和 OWASP Core Rule Set v3.3.5。演示的防火墻在檢測模式中運行并記錄不尋常的行為。將防火墻運行在防御模式要對 modsecurity.conf 進行更多改動。請參考 ModSecurity Reference Manual v3.x 獲取如何啟用防御模式和更多信息。

到此這篇關(guān)于Nginx 配置 ModSecurity 網(wǎng)絡(luò)應(yīng)用防火墻實現(xiàn)的文章就介紹到這了,更多相關(guān)Nginx ModSecurity 應(yīng)用防火墻內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Tomcat請求處理在源碼中的輪轉(zhuǎn)解析

    Tomcat請求處理在源碼中的輪轉(zhuǎn)解析

    這篇文章主要為大家介紹了Tomcat請求處理在源碼中的輪轉(zhuǎn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • 使用nginx解決前端js下載跨域問題

    使用nginx解決前端js下載跨域問題

    訂單系統(tǒng)增加附件預覽,下載的功能,但是這個附件是客戶推單時推送過來的,文件連接是類似oss連接,但是是客戶的域名,所以導致跨域問題,本文小編將給大家介紹如何用nginx解決前端js下載跨域問題,需要的朋友可以參考下
    2023-10-10
  • 國外著名論壇程序IPB(Invision Power Board)在nginx下的配置示例

    國外著名論壇程序IPB(Invision Power Board)在nginx下的配置示例

    這篇文章主要介紹了國外著名論壇程序IPB(Invision Power Board)在nginx下的配置示例,使用fastcgi配置模式,需要的朋友可以參考下
    2014-07-07
  • Nginx反向代理出現(xiàn)靜態(tài)文件404異常處理

    Nginx反向代理出現(xiàn)靜態(tài)文件404異常處理

    本文主要介紹了Nginx反向代理出現(xiàn)靜態(tài)文件404異常處理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-05-05
  • Nginx反向代理出現(xiàn)502與504錯誤問題詳解及排查指南

    Nginx反向代理出現(xiàn)502與504錯誤問題詳解及排查指南

    Nginx 作為反向代理服務(wù)器時,502(Bad Gateway)和 504(Gateway Timeout)錯誤是常見的兩類問題,下面我們就來看看這兩個錯誤問題的排查與解決吧
    2025-05-05
  • keepalived+nginx高可用實現(xiàn)方法示例

    keepalived+nginx高可用實現(xiàn)方法示例

    這篇文章主要介紹了keepalived+nginx高可用實現(xiàn)方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • Nginx服務(wù)器實現(xiàn)數(shù)據(jù)靜態(tài)壓縮的方法

    Nginx服務(wù)器實現(xiàn)數(shù)據(jù)靜態(tài)壓縮的方法

    這篇文章主要介紹了Nginx服務(wù)器實現(xiàn)數(shù)據(jù)靜態(tài)壓縮的方法,服務(wù)器中壓縮CSS和JavaScript進行緩存一定程度上可以幫助提高服務(wù)器的IO速度,需要的朋友可以參考下
    2015-07-07
  • nginx location語法使用介紹

    nginx location語法使用介紹

    Nginx 中的 Location 指令 是NginxHttpCoreModule中重要指令。Location 指令,是用來為匹配的 URI 進行配置,URI 即語法中的”/uri/”,可以是字符串或正則表達式。但如果要使用正則表達式,則必須指定前綴
    2015-01-01
  • nginx搭建高可用集群的實現(xiàn)方法

    nginx搭建高可用集群的實現(xiàn)方法

    本文主要介紹了nginx搭建高可用集群的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • 配置ab來為Nginx服務(wù)器做壓力測試的方法

    配置ab來為Nginx服務(wù)器做壓力測試的方法

    這篇文章主要介紹了配置ab來為Nginx服務(wù)器做壓力測試的方法,ab是針對Apache的測試工具但本文講解其測試Nginx的過程,需要的朋友可以參考下
    2016-01-01

最新評論