我正在使用docker-compose,只是发现我从docker-compose.yml中公开的所有端口实际上已添加到iptables中,以允许世界访问。不知道,但这给我留下了巨大的安全漏洞。
码头页面说要运行:iptables -I DOCKER-USER -i ext_if ! -s 192.168.1.1 -j DROP
但是那对我没有任何帮助。我仍然可以在不建立隧道的情况下远程访问数据库服务器。
我不确定我的本地IP地址是什么。我仍然希望允许主机OS上的内部连接连接到这些端口,而不是整个世界。
[如果您不希望公开的公开端口公开,那么解决方案要比考虑Docker的iptables规则更容易。
只是不要暴露它们。
您无需仅公开端口即可访问服务。您只需连接到容器ip地址即可访问任何打开的容器端口。
仅在本地主机上公开它们。
而不是写-p 8080:8080
(只在环回地址上暴露端口),而不是写-p 127.0.0.1:8080:8080
(在所有接口上的主机端口8080上暴露容器端口8080)。现在您可以在主机上的localhost:8080
上找到它,但其他任何人都无法使用。