
近期Ollama未授权访问漏洞Nginx反向代理解决方案
一、摘要
近期,国家信息安全漏洞共享平台(CNVD)收录了Ollama未授权访问漏洞(CNVD - 2025 - 04094)。在此漏洞下,未经授权的攻击者能够远程访问Ollama服务接口,进而执行诸如敏感资产获取、虚假信息投喂、拒绝服务等恶意操作。CNVD已建议受影响的单位和用户尽快采取措施防范该漏洞攻击风险。
近期互联网上都是漏洞相关信息,常见的解决方案如封端口、限制远程、限制IP访问等,这些方式缺乏针对性且可操作性不强。考虑到将Ollama服务默认监听地址从127.0.0.1:11434改为0.0.0.0:11434是有业务需求的,采取“一刀切”的防范方式并不适宜。为了保障Ollama服务的安全性,本文提出使用Nginx作为反向代理,并通过设置认证头信息的方式防止未授权访问。
二、解决思路
为有效解决Ollama未授权访问问题,确保其远程调用的安全性,本文利用Nginx反向代理并结合认证头信息进行验证。在Nginx配置中,代理转发请求至目标服务的同时,添加专门的认证逻辑。通过验证请求头中的认证信息(如Authorization: Bearer YOUR_SECRET_TOKEN),若认证失败,返回401状态码;若认证成功,则将请求正常转发给目标服务。以下为一个示例请求:
三、解决步骤
因作者使用LocalAPI.ai进行远程调用,为方便调试将相关设置代理到根目录,若无需此功能,可删除location / {}代码块。具体操作步骤如下:
- 安装Nginx并编辑配置文件
首先安装Nginx服务,随后编辑Nginx配置文件nginx.conf,配置反向代理。以下是配置文件内容:
- 测试配置文件
在完成配置文件的编辑后,通过命令nginx -t对配置文件进行测试,确保配置正确无误。 - 验证认证效果
未添加请求头访问:在未添加请求头的情况下直接访问Ollama服务,将会出现401错误页,表明认证失败。
添加认证请求头访问:添加正确的认证请求头后,则可以正常调用Ollama服务。
4. 实现远程调用聊天功能
配置认证请求头
成功配置后,即可实现通过远程调用与Ollama进行聊天。
四、总结
Nginx支持多种认证方式,如基本认证(Basic Authentication)、OAuth2等。本文以认证头为例,给出了解决Ollama未授权访问问题的思路以及详细的实际配置文件。通过Nginx反向代理为Ollama WEB API服务设置认证头信息,能够有效防止未授权访问。
在进行Nginx配置过程中,需要特别注意将配置文件中的YOUR_SECRET_TOKEN替换为一个安全程度较高的字符串,以确保系统的安全性,避免认证令牌泄露带来的风险 。
