今天踩了一个 Docker 和 UFW 的安全坑,分享一下恐怖经历

330 天前
 Livid
在一台公网服务器上通过 Docker 安装某个网络服务用于测试,在 UFW 里添加了规则只允许内网访问。

但是没想到,docker -p 的端口映射的实现,会忽略系统的 UFW 规则,于是新安装的那个服务就对公网敞开了。

具体说明可参考这篇文章:

https://www.techrepublic.com/article/how-to-fix-the-docker-and-ufw-security-flaw/
3673 次点击
所在节点    Docker
10 条回复
defunct9
329 天前
这不是坑,当初部署的时候就该考虑到这一点
chinvo
329 天前
没记错 UFW 是单独的规则表,不是直接在 iptables 的 INCOMING 和 OUTGOING 上做规则的。
kslr
329 天前
记录
How to fix this
Fortunately, there's a way to fix this. Go back to the terminal on your Docker server and issue the command sudo nano /etc/default/docker and add the following line:

DOCKER_OPTS="--iptables=false"
aoaoho
329 天前
Shura
329 天前
这是一个 feature
rrfeng
325 天前
一直对 docker 使用 iptables 做端口转发怀有极大的抵触情绪。

根本不应该出现这个功能。
Cbdy
325 天前
-p 的时候记得前面加 ip
yanaraika
325 天前
这是一个 feature,Docker 新版添加了 DOCKER-USER chain 可以自己在里面添加规则
mritd
325 天前
一直就是这样的🙃
Sylv
173 天前
今天遇到同样的坑,但不同的是添加 DOCKER_OPTS="--iptables=false" 到 /etc/default/docker 文件的修复方法对于 Ubuntu 并不管用,这是因为用 systemd 来启动 docker 时并不会读取 /etc/default/docker 文件,正确的解决办法是使用 /etc/docker/daemon.json 文件:
{
"iptables": false
}

https://github.com/moby/moby/issues/9889

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

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

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

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

© 2017 V2EX