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

7 天前
 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 权限上...

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

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

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

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

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

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

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

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

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

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

© 2021 V2EX