国家网络安全通报中心2025年03月03日通报ollama存在安全风险,风险隐患重点来自ollama服务无任何鉴权机制,存在数据泄露、算力盗取、服务中断等安全风险,极易引发网络和数据安全事件。
鉴于ollama提供的api服务与openai规范一致,建议安全加固落地方法为启用api密钥管理。我们接下来采用nginx反向代理来解决这个问题。
首先我们修改ollama服务的端口,如端口5000:
# 编辑ollama的Systemd服务文件 root@uzen.zone:~# vim /etc/systemd/system/ollama.service [Service] # 追加环境变量 Environment="OLLAMA_HOST=127.0.0.1:5000" # 重新加载systemd的配置文件 root@uzen.zone:~# systemctl daemon-reload # 重启ollama服务 root@uzen.zone:~# systemctl restart ollama
然后,安装好nginx后编辑nginx配置文件:
root@uzen.zone:/usr/local/nginx/conf# vim nginx.conf worker_processes 2; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; gzip on; server { listen 11434; server_name xxx.xxx.xxx.xxx; # 服务域名或IP location / { 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; # 检查请求头中是否包含 Authorization if ($http_authorization = "") { return 403; } # 检查API密钥是否为有效值 if ($http_authorization != "Bearer YOUR_API_KEY") { return 403; } proxy_set_header Authorization $http_authorization; proxy_pass http://localhost:5000/; } } }
最后,启动nginx服务,记得对外开放11434端口。
root@uzen.zone:/usr/local/nginx/sbin# ./nginx
测试ollama的api key是否生效:
root@uzen.zone:~# curl -H "Authorization: Bearer YOUR_API_KEY" http://localhost:11434 Ollama is running. root@uzen.zone:~# curl http://localhost:11434/ <html> <head><title>403 Forbidden</title></head> <body> <center><h1>403 Forbidden</h1></center> <hr><center>nginx/1.26.3</center> </body> </html>
通过以上测试发现,如果不携带正确的api key,则请求不到接口返回403。
其他:为本地ollama客户端配置服务端口,以便相关相关ollama指令能正常执行。
root@uzen.zone:~# echo 'export OLLAMA_HOST=http://localhost:5000' >> ~/.bashrc root@uzen.zone:~# source ~/.bashrc # 执行ollama指令测试 root@uzen.zone:~# ollama list NAME ID SIZE MODIFIED qwen2.5:7b-instruct-q5_0 16c4cf552635 5.3 GB 2 days ago
下一篇:没有了
Copyright ©2017-2024 uzen.zone
湘ICP备17013178号-3