IT评测·应用市场-qidao123.com技术社区
标题:
Ollama 的“裸奔”大冒险:怎样给你的 AI 穿上“安全裤”
[打印本页]
作者:
玛卡巴卡的卡巴卡玛
时间:
2025-4-5 13:44
标题:
Ollama 的“裸奔”大冒险:怎样给你的 AI 穿上“安全裤”
Ollama 的“裸奔”大冒险:怎样给你的 AI 穿上“安全裤”
如今人工智能(AI)已经像春天的野草一样,疯狂地在各个领域蔓延。而大模型工具 Ollama,无疑是这场 AI 狂潮中的“网红”。它就像一个超级智能的“管家”,能够资助用户在当地轻松部署和管理各种大模型,比如 DeepSeek-R1。然而,最近国家网络安全转达中心的一则告诫,却让这个“网红”工具陷入了“裸奔”的尴尬田地。
Ollama 的“裸奔”危机
Ollama 默认配置下存在严重的安全隐患,这就好比一个超级智能的“管家”在没有任何衣服的环境下出门,效果被一群“不怀好意”的客户盯上了。具体来说,Ollama 在当地部署时会启动一个 Web 服务,并默认开放 11434 端口,而且没有任何身份验证机制。这意味着,任何路过的“坏人”都可以随意调用它的 API,获取模型信息,乃至窃取模型文件,就像在无人看管的超市里随意拿走商品一样。
更糟糕的是,如果这个服务暴露在公网,这些路人们就可以像“免费的午餐”一样,滥用服务器的算力,乃至发起 DDoS 攻击,让服务器刹时瘫痪。这不仅会导致数据泄漏,还会让辛苦训练的 AI 模型沦为他人的“嫁衣”,乃至让服务器沦为“挖矿肉鸡”,让用户的云服务器账单暴涨。
这个说法并不夸张,让我们进入搜索引擎搜索:Ollama is running,大批裸奔的 Ollama 服务暴露在公网上。
我们随机选择一个服务器,发送一个简单的哀求:curl http://<host>:<port>//api/tags,获取 Ollama 已加载的模型:
调用这个"deepseek-r1:32b"模型小试一下:
要是直接通过 REST API 哀求 Ollama 的 run 或 pull 接口,拉取大参数的模型去运行,那可就直接把服务器的负载打崩了。
怎样给 Ollama 穿上“安全的外套”?
面对如此严重的安全隐患,用户们该怎样掩护自己的服务器和数据呢?以下是一些“安全加固”的发起:
1.克制公网访问
Ollama 如果设置了OLLAMA_HOST=0.0.0.0,这意味着它对全部网络接口开放,包括公网。为了制止这种环境,你需要让 Ollama 只在当地运行。启动 Ollama 时,加上--host 127.0.0.1参数,如许它就只能在当地访问了。
ollama serve --host 127.0.0.1
复制代码
2.防火墙限定 IP 访问
如果你不警惕把服务器暴露在公网,黑客还是有可能找到弊端。这时候,防火墙就派上用场了。你可以使用 UFW(Uncomplicated Firewall)或 iptables 来限定外部访问。
如果你用的是 UFW,可以如许设置:
sudo ufw allow from 192.168.1.0/24 to any port 11434
sudo ufw enable
复制代码
如果你用的是 iptables,可以如许设置:
sudo iptables -A INPUT -p tcp --dport 11434 -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 11434 -j DROP
复制代码
这就好比在 Ollama 的“家”周围设置了一道“防火墙”,只有来自特定 IP 段的“客人”才气进入。
3.Nginx配置Authorization校验
防止 Ollama 暴露在公网上最简单的方法是使用 Nginx 作为代理,并配置 Authorization 校验来确保只有经过授权的哀求才气访问。
步骤 1
:安装 Nginx
如果你还没有安装 Nginx,可以通过以下命令安装(以下为Centos7版本命令):
# 安装nginx所需要的依赖包,确保安装了必要的依赖项
yum install -y gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel
cd /opt # 进入根目录下的 opt 目录
wget https://nginx.org/download/nginx-1.26.3.tar.gz # 下载tar包(如果没有wget命令,需要先安装,centos7版本命令:`yum install -y wget`)
tar -zxvf nginx-1.26.3.tar.gz -C /opt/module # 解压到 /opt/module 目录下(module目录需自行创建)
cd /opt/module/nginx-1.26.3 # 进入 nginx-1.26.3 目录
./configure # 执行 ./configure 命令
make && make install # 编译并安装(可以组合成一个命令执行:`./configure && make && make install`)
# 编译安装完后,在 /usr/local/ 目录下会自动生成一个 nginx 目录,代表安装成功!
(base) [root@root nginx-1.26.3]# whereis nginx
nginx: /usr/local/nginx
#启动脚本是在 /usr/local/nginx/sbin 目录下的 nginx 可执行文件启动
cd /usr/local/nginx/sbin/ # 进入 sbin 目录
./nginx # 启动 Nginx(或直接执行 `/usr/local/nginx/sbin/nginx` )
复制代码
步骤 2
:配置 Nginx 代理和 Authorization 校验
编辑 Nginx 配置文件,通常位于/etc/nginx/nginx.conf或/usr/local/nginx/conf/nginx.conf。以下是一个示例配置:
# 定义API Key校验规则
map $http_authorization $api_auth {
default 0; # 默认拒绝
"Bearer sk-wNssKJnXLiDPygfBUY4dc73e" 1; # 仅允许此Key
}
server {
listen 8080;
server_name your_domain_or_ip;
location / {
# 校验Authorization头
if ($api_auth = 0) {
return 403 '{"status":403,"message":"Invalid API Key"}\n'; # 自定义错误响应
}
# 代理到后端服务
proxy_pass http://127.0.0.1:11434;
# (配置可选项...)
proxy_set_header Authorization $http_authorization;
proxy_set_header Host $host;
}
}
复制代码
配置了 Authorization 校验后重启 Nginx:./nginx -s reload,这时哀求则需要添加 Authorization 哀求头参数,如下所示:
# curl 命令行授权请求
curl -H "Authorization: Bearer your_secret_token" http://your_domain_or_ip
# headers 请求头配置参考
headers = {
"Authorization": "Bearer " + your_secret_token, # 替换为实际校验的 API Key
"Content-Type": "application/json"
}
复制代码
如果配置准确,未授权哀求将返回
403 Invalid API Key
,而授权哀求将返回正常相应。
4.Nginx配置身份认证
如果 Ollama 服务没有配置任何验证,这时候你需要给 Ollama 加上一层“安全防护”。常见的方法是使用 Nginx 作为代理,并配置 htpasswd 来举行身份验证。
首先,安装 Nginx 和 htpasswd:
sudo apt-get install nginx apache2-utils
复制代码
然后,创建一个用户和密码文件:
sudo htpasswd -c /etc/nginx/.htpasswd your_username
复制代码
接着,配置 Nginx 代理:
server {
listen 8080;
server_name your_domain_or_ip;
location / {
proxy_pass http://127.0.0.1:11434;
proxy_set_header Host $host;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
# (配置可选项...)
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
复制代码
Nginx 配置身份验证后,哀求格式示比方下:
# curl 命令行请求
curl -X POST -u <username>:<password> -H "Content-Type: application/json" -d '<json_data>' <url>
# requests 客户端请求
response = requests.post(url, auth=HTTPBasicAuth(username, password), json=data)
复制代码
如许只有输入准确的用户名和密码的“客人”才气正常哀求 Ollama 的模型。
5.关闭远程下载模型
Ollama 默认允许远程下载模型,为了制止这种环境,你需要关闭远程下载功能。启动 Ollama 时,加上--no-remote参数:
ollama serve --no-remote
复制代码
通过关闭远程下载功能,从而增强体系的安全性、优化资源的管理,并确保对模型的完全控制。
6.监控异常连接
你还可以使用netstat或lsof命令来监控网络,用于监控异常的连接,及时发现并克制“坏人”。
sudo netstat -tuln
sudo lsof -i :11434
复制代码
或使用其它更高级的网络监听工具,对不健康的网络流量举行监控及防范。
总结
Ollama 的“裸奔”危机给我们敲响了警钟:在享受 AI 技术带来的便利时,我们绝不能忽视安全问题。盼望广大用户能够器重这些安全隐患,及时采取措施,给自己的服务器和数据穿上“安全的外套”,让 Ollama 在安全的环境中继续发挥它的“大模型智能管家”作用。
大数据
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/)
Powered by Discuz! X3.4