公网大量暴露无鉴权LLM端点,安全扫描报告解读

安全扫描报告里出现“公网大量暴露无鉴权LLM端点”时,说明你或所在机构在公网上运行的 LLM 服务(比如 Ollama、vLLM、FastChat 等)没有做身份认证,任何能访问到该 IP 和端口的人都可以直接调用模型接口。
这类端点通常依赖默认端口和未配置的鉴权参数,风险很高。
本文按排查顺序讲清报告怎么读、端点怎么找、漏洞怎么补,以及修复后如何验证。

无鉴权 LLM 端点是什么

LLM 在服务器上运行时,会通过 HTTP 接口对外提供对话、向量化或模型管理能力。
常见的项目包括 Ollama(默认 11434 端口)、vLLM(常用 8000 端口)、LocalAI 等。

“无鉴权”意味着这些接口没有校验请求方的身份凭证,没有 API Key、没有 Token,也没有来源 IP 限制。
扫描器一旦发现端口开放并且响应了接口路径,就会把该端点标为高风险。

判断标准很简单:用浏览器或 curl 直接访问端点地址,如果返回模型列表或允许提交推理请求,就说明鉴权缺失。

扫描报告里这些字段代表什么

安全扫描报告通常会列出暴露的 IP、端口、路径和风险等级,常见描述有:

  • unauth-api-access:未授权 API 访问
  • llm-endpoint-exposed:LLM 端点暴露在公网
  • missing-authentication:缺少身份认证
  • data-exfiltration-risk:数据泄露风险

报告里的 portservice 字段直接告诉你哪个服务在监听,path 字段说明扫描器访问了哪些路由。
把这几项记录好,后续定位就能直接派上用场。

从报告到确认:三步定位暴露端点

第一步:找出所有正在监听的端口

登录服务器后,执行:

ss -tlnp

重点看 0.0.0.0:114340.0.0.0:8000 这类监听在全部网卡的端口。0.0.0.0 表示公网所有网卡都能访问,是暴露的直接证据。

第二步:判断服务类型

ps aux | grep ollamaps aux | grep vllm 确认对应的进程,拿到服务名后到项目文档里查默认端口。

第三步:从外网模拟访问验证

在本地电脑上执行:

curl -X GET http://服务器IP:11434/api/tags

如果返回类似 {"models":[...]} 的 JSON,说明确实没有任何鉴权。
同理,vLLM 可以用 /v1/models 路径测试,OpenAI 兼容接口则是 /v1/chat/completions

实际操作时,请先从扫描报告确认端口再测试,避免对未知目标发起扫描。

修复:先断网,再加固

第一步:立即限制公网访问

如果服务不需要公网访问,最快的方式是让监听地址只保留本地回环。
以 Ollama 为例,编辑服务配置文件:

sudo systemctl edit ollama

写入:

[Service]
Environment="OLLAMA_HOST=127.0.0.1"

然后重启服务:

sudo systemctl restart ollama

之后再用 ss -tlnp 检查,端口应该只监听在 127.0.0.1 上,公网已经无法直接访问。

如果服务必须对公网开放,至少要用防火墙限制来源 IP。
以 UFW 为例:

sudo ufw allow from 你的办公IP to any port 11434 proto tcp
sudo ufw deny 11434/tcp

注意先放行自己的 IP,再执行拒绝规则,否则会把自己也挡在外面。

第二步:启用 API Key 或 Token 认证

很多 LLM 框架自带鉴权开关。
Ollama 本身不带原生 API Key,建议放在 Nginx 反向代理后面,由 Nginx 校验认证信息。

Nginx 配置片段:

server {
    listen 11434;
    location / {
        auth_request /auth;
        proxy_pass http://127.0.0.1:11434;
    }
    location = /auth {
        internal;
        if ($http_authorization != "Bearer 你的密钥") {
            return 401;
        }
        return 200;
    }
}

vLLM 启动时可以加上 --api-key 参数,或通过环境变量 VLLM_API_KEY 启用,具体以当前版本官方文档为准。

第三步:检查是否还有其他暴露入口

用 Nmap 对自身公网 IP 做一次简易扫描,确认没有遗漏端口:

nmap -sT 你的公网IP -p 1-65535

如果发现其他未知开放端口,逐项确认服务用途,不需要的就关闭。

修复后的验证与监控

修复完成后,必须用外网视角重新测试。

curl -X GET http://服务器IP:11434/api/tags

如果原来能返回模型列表,现在返回 401403,说明鉴权已经生效。
如果用了防火墙规则,最好从另一台外网机器测试,确认连接超时或被拒绝。

日常监控方面,可以设置端口监听告警和 API Key 使用量日志。
日志里重点看两类异常:短时间内大量 401 状态码,以及 来自陌生 IP 的 models 请求,这两类都可能是扫描或攻击行为。

遇到这类报告不用慌,先按“找端口、确认服务、限制监听、启用认证、复查外网”的顺序处理,就能把暴露面收住。
如果服务器上还有其他 LLM 服务,建议以后部署时直接就把鉴权配置好,不要等扫描报告出来再做补救。

分享到:
上一篇
Ollama使用非root运行,权限最小化安全加固
下一篇
Qwen3.8‑Max私有化部署
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意