保护 Crate.io 安装的推荐方法是什么

保护 Crate.io 安装的推荐方法是什么

我已经在 CentOS 6.6 机器上通过 docker 安装了 Crate.io 的一个实例。

默认情况下,Crate.io 在端口 4200 上运行并向全世界开放。

我想确保这一点,以便只有本地主机可以连接到 Crate 服务。

我尝试使用以下命令来实现这一点:

iptables -A INPUT -p tcp --dport 4200 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 4200 -j DROP
service iptables save

但是,该服务仍可通过 4200 端口访问

我还注意到我的 iptables 中有以下行:

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             172.17.0.2          tcp dpt:4200 

该规则与 docker 容器有关,所以我不确定这里该如何进行。

有人对此有推荐的程序吗?

答案1

如果你通过 Docker 运行服务,那么对INPUT链的更改将不会产生任何影响。iptablesINPUT链用于发往对于您的主人.docker 容器有自己的 IP 地址,因此当你的主持人在其中一个暴露端口上接收到一个数据包,它转发到容器。这意味着FORWARD链中的规则是相关的。

当您使用-p或公开端口时,Docker 会添加转发规则-P。您可以通过在 docker 规则之前在链中插入其他规则来阻止访问FORWARD,但这很棘手(因为每次重新部署容器时都需要手动更新规则)。

如果您只想从本地主机访问服务,最好的办法就是不要使用-p或公开任何端口-P。您仍然可以使用容器的 IP 地址(在您的示例中为 172.17.0.2)访问容器化服务。

相关内容