偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

近期Ollama未授權(quán)訪問漏洞Nginx反向代理解決方案

發(fā)布于 2025-3-7 10:37
瀏覽
0收藏

一、摘要
近期,國家信息安全漏洞共享平臺(CNVD)收錄了Ollama未授權(quán)訪問漏洞(CNVD - 2025 - 04094)。在此漏洞下,未經(jīng)授權(quán)的攻擊者能夠遠(yuǎn)程訪問Ollama服務(wù)接口,進(jìn)而執(zhí)行諸如敏感資產(chǎn)獲取、虛假信息投喂、拒絕服務(wù)等惡意操作。CNVD已建議受影響的單位和用戶盡快采取措施防范該漏洞攻擊風(fēng)險(xiǎn)。
近期互聯(lián)網(wǎng)上都是漏洞相關(guān)信息,常見的解決方案如封端口、限制遠(yuǎn)程、限制IP訪問等,這些方式缺乏針對性且可操作性不強(qiáng)??紤]到將Ollama服務(wù)默認(rèn)監(jiān)聽地址從127.0.0.1:11434改為0.0.0.0:11434是有業(yè)務(wù)需求的,采取“一刀切”的防范方式并不適宜。為了保障Ollama服務(wù)的安全性,本文提出使用Nginx作為反向代理,并通過設(shè)置認(rèn)證頭信息的方式防止未授權(quán)訪問。
二、解決思路
為有效解決Ollama未授權(quán)訪問問題,確保其遠(yuǎn)程調(diào)用的安全性,本文利用Nginx反向代理并結(jié)合認(rèn)證頭信息進(jìn)行驗(yàn)證。在Nginx配置中,代理轉(zhuǎn)發(fā)請求至目標(biāo)服務(wù)的同時(shí),添加專門的認(rèn)證邏輯。通過驗(yàn)證請求頭中的認(rèn)證信息(如Authorization: Bearer YOUR_SECRET_TOKEN),若認(rèn)證失敗,返回401狀態(tài)碼;若認(rèn)證成功,則將請求正常轉(zhuǎn)發(fā)給目標(biāo)服務(wù)。以下為一個示例請求:

POST /api/generate HTTP/1.1
Host: your_domain_or_ip
Content-Type: application/json
Authorization: Bearer YOUR_SECRET_TOKEN
User-Agent: python-requests/2.26.0
Accept: */*
Connection: keep-alive

三、解決步驟
因作者使用LocalAPI.ai進(jìn)行遠(yuǎn)程調(diào)用,為方便調(diào)試將相關(guān)設(shè)置代理到根目錄,若無需此功能,可刪除location / {}代碼塊。具體操作步驟如下:

  1. 安裝Nginx并編輯配置文件
    首先安裝Nginx服務(wù),隨后編輯Nginx配置文件nginx.conf,配置反向代理。以下是配置文件內(nèi)容:
events {
 worker_connections 1024;
}

http {
 include mime.types;
 default_type application/octet-stream;

 sendfile on;
 keepalive_timeout 65;

 # 禁用緩沖以支持流式響應(yīng)
 proxy_buffering off;

 # 增大緩沖區(qū)設(shè)置,避免 502 Bad Gateway
 proxy_buffer_size 256k;
 proxy_buffers 4 256k;
 proxy_busy_buffers_size 512k;

 server {
    listen 80;  # 綁定80端口
    server_name your_domain_or_ip;  # 替換為你的域名或IP地址

    # 由于這里使用LocalAPI.ai進(jìn)行遠(yuǎn)程調(diào)用,避免出現(xiàn)跨域問題,同時(shí)代理 LocalAPI.ai 到80端口根目錄

    location / {
        if ($request_method = 'OPTIONS') {
            return 204;  # 處理OPTIONS預(yù)檢請求
        }

        proxy_pass http://localapi.ai;  # 代理到目標(biāo)網(wǎng)站
    }

    # 代理 Ollama 服務(wù)到 /api/,并進(jìn)行請求頭認(rèn)證
    location /api/ {
        proxy_pass http://127.0.0.1:11434/api/;  # 代理目標(biāo)地址
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # 驗(yàn)證請求頭中的認(rèn)證信息
        set $auth_header $http_authorization;
        if ($auth_header != "Bearer YOUR_SECRET_TOKEN") {  # 替換為你的認(rèn)證令牌
            add_header 'WWW-Authenticate' 'Bearer realm="Access to the API"';  # 提示客戶端需要認(rèn)證
            return 401;  # 如果認(rèn)證失敗,返回 401 Unauthorized
        }

        # 處理 OPTIONS 請求
        if ($request_method = 'OPTIONS') {
            add_header 'Access-Control-Max-Age' 1728000;
            add_header 'Content-Type' 'text/plain charset=UTF-8';
            add_header 'Content-Length' 0;
            return 204;
        }
        
    }
 }
}

  1. 測試配置文件
    在完成配置文件的編輯后,通過命令nginx -t對配置文件進(jìn)行測試,確保配置正確無誤。
  2. 驗(yàn)證認(rèn)證效果
    ?未添加請求頭訪問:在未添加請求頭的情況下直接訪問Ollama服務(wù),將會出現(xiàn)401錯誤頁,表明認(rèn)證失敗。

近期Ollama未授權(quán)訪問漏洞Nginx反向代理解決方案-AI.x社區(qū)

?添加認(rèn)證請求頭訪問:添加正確的認(rèn)證請求頭后,則可以正常調(diào)用Ollama服務(wù)。
近期Ollama未授權(quán)訪問漏洞Nginx反向代理解決方案-AI.x社區(qū)
4. 實(shí)現(xiàn)遠(yuǎn)程調(diào)用聊天功能
配置認(rèn)證請求頭
近期Ollama未授權(quán)訪問漏洞Nginx反向代理解決方案-AI.x社區(qū)
成功配置后,即可實(shí)現(xiàn)通過遠(yuǎn)程調(diào)用與Ollama進(jìn)行聊天。
近期Ollama未授權(quán)訪問漏洞Nginx反向代理解決方案-AI.x社區(qū)

四、總結(jié)
Nginx支持多種認(rèn)證方式,如基本認(rèn)證(Basic Authentication)、OAuth2等。本文以認(rèn)證頭為例,給出了解決Ollama未授權(quán)訪問問題的思路以及詳細(xì)的實(shí)際配置文件。通過Nginx反向代理為Ollama WEB API服務(wù)設(shè)置認(rèn)證頭信息,能夠有效防止未授權(quán)訪問。
在進(jìn)行Nginx配置過程中,需要特別注意將配置文件中的YOUR_SECRET_TOKEN替換為一個安全程度較高的字符串,以確保系統(tǒng)的安全性,避免認(rèn)證令牌泄露帶來的風(fēng)險(xiǎn) 。

標(biāo)簽
已于2025-3-7 10:37:34修改
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦