自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

近期Ollama未授權訪問漏洞Nginx反向代理解決方案

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

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

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進行遠程調(diào)用,為方便調(diào)試將相關設置代理到根目錄,若無需此功能,可刪除location / {}代碼塊。具體操作步驟如下:

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

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

 sendfile on;
 keepalive_timeout 65;

 # 禁用緩沖以支持流式響應
 proxy_buffering off;

 # 增大緩沖區(qū)設置,避免 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進行遠程調(diào)用,避免出現(xiàn)跨域問題,同時代理 LocalAPI.ai 到80端口根目錄

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

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

    # 代理 Ollama 服務到 /api/,并進行請求頭認證
    location /api/ {
        proxy_pass http://127.0.0.1:11434/api/;  # 代理目標地址
        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;

        # 驗證請求頭中的認證信息
        set $auth_header $http_authorization;
        if ($auth_header != "Bearer YOUR_SECRET_TOKEN") {  # 替換為你的認證令牌
            add_header 'WWW-Authenticate' 'Bearer realm="Access to the API"';  # 提示客戶端需要認證
            return 401;  # 如果認證失敗,返回 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對配置文件進行測試,確保配置正確無誤。
  2. 驗證認證效果
    ?未添加請求頭訪問:在未添加請求頭的情況下直接訪問Ollama服務,將會出現(xiàn)401錯誤頁,表明認證失敗。

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

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

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

標簽
已于2025-3-7 10:37:34修改
收藏
回復
舉報
回復
相關推薦