docker 服务如何透过 iptables 或 firewalld 实现端口权限控制?

2023-04-26 08:16:44 +08:00
 galtjay

在日常的部署过程中,为了规避扫描器对于我们服务器的探测,减轻漏洞修复的压力。或者想要防火墙对于中间件等敏感服务进行访问的保护,我们都有需求对于 docker 的端口进行访问控制。然而,在实际配置过程中,大家应该也发现了,在采用端口映射的方式进行端口放开的情况下,直接对于 INPUT 进行规则的配置,是不会生效的。而且,在网络上直接进行搜索,给出的答案往往就是对于 INPUT 进行规则的配置。

因此本文主要就是给出真正能够生效的方案,供大家参考,希望对于大家的实际工作产生帮助:

https://watermelonwater.tech/docker-%e6%9c%8d%e5%8a%a1%e5%a6%82%e4%bd%95%e9%80%8f%e8%bf%87iptables%e6%88%96firewalld%e5%ae%9e%e7%8e%b0%e7%ab%af%e5%8f%a3%e6%8e%a7%e5%88%b6/

659 次点击
所在节点    程序员
7 条回复
galtjay
2023-04-26 08:21:18 +08:00
欢迎大家留言指教
0x49
2023-04-26 09:17:03 +08:00
最近刚好遇到 docker 防火墙问题,感谢😋
kaedeair
2023-04-26 09:42:41 +08:00
因为 docker 直接操作 iptables ,并且优先于 firewalld ,所以配置不生效
我的方案是在 daemon.json 里禁用 iptable ,把需要放行的端口在 firewalld 里放行,把需要连接外网的容器加入专门的网段,并且添加该网段到 docker0 的 Masquerading 规则
galtjay
2023-04-26 11:16:44 +08:00
@kaedeair 也是一个思路。可以稍微详细一点吗。可以的话,我加到解决方案中去。
julyclyde
2023-04-26 11:46:25 +08:00
封杀内部扫描,难道是腾讯的么?
haimianbihdata
2023-04-29 20:17:28 +08:00
@kaedeair 最后一点是怎么操作的。不是很懂。
kaedeair
2023-04-29 21:42:24 +08:00
@haimianbihdata #6 普通的 snat ,除了到 docker0 的都进行伪装

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

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

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

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

© 2021 V2EX