【问题标题】:RHEL7 dockerd remote connectionRHEL7 docker远程连接
【发布时间】:2019-05-28 22:38:59
【问题描述】:

我正在探索创建一个可以在 rhel7 系统上启动和停止 docker 容器的网关。我已经对我的 /usr/lib/systemd/system/docker.service 进行了更改,以在具有以下内容的接口上启动 docker。

ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:23751 --containerd=/run/containerd/containerd.sock

除非我禁用防火墙,否则我无法连接到 dockerd 以获取容器的状态。但是如果我禁用防火墙,我就无法启动容器。

Caused by: com.amihaiemil.docker.UnexpectedResponseException: Expected status 204 but got 500 when calling
 http://192.168.1.70:23751/v1.35/containers/e3f0f09269a699ec27bbac8a5027d1383ae15cf64b5e6b649e76be1297cc2535/start. 
Response body was {"message":"driver failed programming external connectivity on endpoint hello-service 
(eef135f889322f1899800f19612404e9d8b1f39c7866f31ca5059562aa501bf6):  
(iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 34570 -j DNAT --to-destination 192.168.10.40:8080 ! -i br-4982fe847356: iptables: No chain/target/match by that name.\n (exit status 1))"}

我意识到为 dockerd 运行开放的 tcp 端口会产生后果。之前,我得到了一切安全,我想了解网关如何做这样的事情。

有没有人做过类似的事情?

【问题讨论】:

  • “有后果” ==> “任何可以到达该端口的人都可以不受限制地访问您的系统”。 “Docker cryptojacking”是一个很好的搜索词。
  • 明白。我不打算在没有保护它的情况下将其制成成品。这是对启动容器的网关的探索。

标签: docker iptables rhel7 firewalld


【解决方案1】:

经过反复试验,我发现 firewalld 正在阻止该端口。
要启用端口,请执行以下操作。

sudo firewall-cmd --zone=public --add-port=2375/tcp

请注意,正如上面的评论者所指出的那样,这样做会打开一个非常大的安全漏洞。就我而言,这是在防火墙后面完成的,没有外部连接可以连接到我的网络防火墙内部。这仍然是一个坏主意,但在这种情况下,它被用来探索一些概念,并且在不使用时被关闭。请探索执行此操作时的安全隐患。 此外,防火墙不会保存上述命令中的配置,除非您使用 --permanent 参数

【讨论】:

    猜你喜欢
    • 2021-11-09
    • 1970-01-01
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    相关资源
    最近更新 更多