Nginx Proxy Manager 好像不太安全?几百个 CVE 漏洞...

306 天前
 t41372

刚接触 docker 和反向代理的时候,我用的是 Nginx Proxy Manager 。

但后来我注意到 Nginx Proxy Manager 的 GitHub 页面上有 1.5K 个待解决的 issues... 这对于一个反向代理,一个负责管理你公开 80 和 443 端口的服务,并不是个好现象。因为写过 web 应用的应该都知道,web 这玩意儿,更新很重要,一会儿不更新你用的什么依赖就爆出漏洞了。如果一个重要的 web 项目上有一堆 bug ,那安全性就要打问号了。

我之前没怎么注意,就只是把 nginx proxy manager 换成 caddy ,把自己服务器所有端口关掉,改用 tailscale 访问而已。

但我今天在网上晃悠的时候看到了这个 Nginx Proxy Manager 的 issue ,2024 年 1 月的 issue: https://github.com/NginxProxyManager/nginx-proxy-manager/issues/3503

该死,400 多个 CVE 漏洞,真的假的?

他 issue 里面提供的扫描容器的网址已经挂了,不过没关系。有个开源的容器漏洞扫描工具叫做 Trivvy ,我用这个工具扫描了一下最新的 Nginx Proxy Manager 的 docker 镜像。 https://github.com/aquasecurity/trivy

该死,真的有好几百个 CVE 漏洞,还有两个 Critical 级别的漏洞...

有点吓人,考虑到 Nginx Proxy Manager 应该现在还是自部署领域比较主流的反向代理工具,影响面还是挺大的。

如果可以的话还是改用其他的反向代理吧。

关于 “容器被黑了又能怎么样” 的问题

虽然 Docker 容器具有隔离性,但这不是绝对安全的!

Docker 的隔离性主要依赖于 Linux 内核的 namespaces 和 cgroups 技术。

Namespaces: Namespaces 提供了进程、网络、挂载点、用户等资源的隔离。

Cgroups: Cgroups 用于限制容器可以使用的资源,例如 CPU 、内存、磁盘 I/O 等。

然而,隔离性不是万无一失的,它依赖于以下因素:

内核的安全性: 容器与宿主机共享同一个内核,因此内核漏洞可能导致容器逃逸。

Docker 的配置: Docker 守护进程和容器的配置是否安全,例如是否以 root 权限运行 Docker 守护进程,是否将宿主机的敏感目录挂载到容器中,是否禁用了不安全的功能等。

容器内部的应用安全: 容器内部运行的应用是否存在漏洞,例如 SQL 注入、代码执行等。

我自己比较担心的是黑客攻破服务器之后,拿来当跳板干花活,最后给我惹上麻烦...

另外还在把 docker 运行在 root 权限上的,记得去配置一下 无 root docker ,不要把 docker 进程跑在 root 权限上...

6876 次点击
所在节点    信息安全
40 条回复
aarontian
306 天前
用了十多年 nignx ,第一次听说有 nginx proxy manager 这种东西。。
jqtmviyu
306 天前
Nginx Proxy Manager 比原生的 nginx 还难用。

我遇到过容器内部的某些依赖版本过新导致更新证书报错,也有更新证书进程失败导致容器启动失败的。反正一堆问题。

后来把配置抄一抄,直接本地运行 nginx ,把证书续签换成 lego ,舒服多了。
xuhuanzy
306 天前
都用 npm 了,不如直接上 caddy ,更省心
luckyc
306 天前
superchijinpeng
306 天前
caddy 啊,比这个好用多了
t41372
306 天前
@fuzzsh 笑死,当然没区别,我就是应届生🤡 也不是搞网络安全的
t41372
306 天前
这种反带工具最佳实践毫无疑问是限内网访问,很多佬也不会用这种奇奇怪怪的 GUI 玩意儿,我自己也是 caddy + tailscale 纯内网访问。

但现在自部署相关的文章/视频有一大把都是用 nginx proxy manager 的 (国内外都是),搞自部属的,刚入门的 用这个一堆... 这也很合理,nginx caddy 都没有 GUI ,而 nginx proxy manager 有。很多人会倾向有个 web ui 来管这个的...

最近我才遇到一个用这个的,还把源服务器 ip 漏出来了,随便扫一下就扫出了好多服务,甚至 ssh 用的还是密码登入... 这样的人很多... 起码得提醒他们一下吧...
since2021
305 天前
我都是手动配置,写监听脚本同步配置到不同服务器上
xlh001
305 天前
我选择 traefik
lyfeixue316
305 天前
用 lucky,刚好解决 ipv6 和 ipv4 的问题
安全方面用 ufw 做好
muzihuaner
305 天前
但是这个简单好用啊,别的还得手写配置,懒~
fstab
305 天前
还是 caddy 反代简单,也就使用基础的一些功能,刚好够用。
vhus
305 天前
nginx proxy manager 问题很多,启动时总去访问亚马逊的一个地址去同步一个 ip 库,这个域名被国内运营商给屏蔽了,如果你在国内云主机上部署多半会中招,然后就会出现 502 错误什么的。
pckillers
305 天前
生产都是用最新版 nginx stable alpine 镜像的。 东西越少越好。

想偷懒用反代面板,我直接 docker-compose 起个免费的 waf 。 顺便就把反代做了。
1018ji
305 天前
自己写不就是了,用这玩意干啥
jpyl0423
305 天前
我原来也是手搓 nginx 配置,现在就用 NPM ,一大堆自建服务还是图形化的方便
SakuraYuki
305 天前
我直接 surge ponte 回家加自定义域名重映射,放弃反代
adoal
305 天前
老司机都用自动化运维工具了
winglight2016
305 天前
其实,用了也没啥,大部分的黑客都是基于 ip 扫描端口,http 的端口是不会费精神攻击的,因为几乎没有提权的可能性
Danswerme
262 天前
@pckillers 你用的什么 waf 呀?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1101070

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX