V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
galtjay
V2EX  ›  程序员

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

  •  
  •   galtjay · 2023-04-26 08:16:44 +08:00 · 747 次点击
    这是一个创建于 580 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在日常的部署过程中,为了规避扫描器对于我们服务器的探测,减轻漏洞修复的压力。或者想要防火墙对于中间件等敏感服务进行访问的保护,我们都有需求对于 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/

    galtjay
        1
    galtjay  
    OP
       2023-04-26 08:21:18 +08:00
    欢迎大家留言指教
    0x49
        2
    0x49  
       2023-04-26 09:17:03 +08:00
    最近刚好遇到 docker 防火墙问题,感谢😋
    kaedeair
        3
    kaedeair  
       2023-04-26 09:42:41 +08:00
    因为 docker 直接操作 iptables ,并且优先于 firewalld ,所以配置不生效
    我的方案是在 daemon.json 里禁用 iptable ,把需要放行的端口在 firewalld 里放行,把需要连接外网的容器加入专门的网段,并且添加该网段到 docker0 的 Masquerading 规则
    galtjay
        4
    galtjay  
    OP
       2023-04-26 11:16:44 +08:00
    @kaedeair 也是一个思路。可以稍微详细一点吗。可以的话,我加到解决方案中去。
    julyclyde
        5
    julyclyde  
       2023-04-26 11:46:25 +08:00
    封杀内部扫描,难道是腾讯的么?
    haimianbihdata
        6
    haimianbihdata  
       2023-04-29 20:17:28 +08:00 via Android
    @kaedeair 最后一点是怎么操作的。不是很懂。
    kaedeair
        7
    kaedeair  
       2023-04-29 21:42:24 +08:00
    @haimianbihdata #6 普通的 snat ,除了到 docker0 的都进行伪装
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3079 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:25 · PVG 22:25 · LAX 06:25 · JFK 09:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.