我想阻止对默认docker.io注册表的访问。为了安全/ IP保护,我们需要阻止对公共Docker集线器的推/拉访问。
已经有很多尝试将其设置为配置选项,但是所有PR都一直被拒绝。红帽已经实现了“ --block-registry”和“ --add-registry”,这正是我所需要的,但是它仅适用于Red Hat的docker v1.10的fork,我想使用docker v1。 12+
我正在使用RHEL / Centos 7
通过/ etc / hosts中的以下命令,DNS欺骗似乎不再起作用(不再):
127.0.0.1 index.docker.io registry.docker.io registry-1.docker.io docker.io
而且我似乎无法通过以下规则来阻止防火墙访问(其中,IP地址当前是来自/ etc / hosts中列出的上述主机的IP):
# firewall-cmd --direct --get-rules ipv4 filter OUTPUT 0 -p tcp -m tcp --dport 5000 -j REJECT 0 -p tcp -m tcp --dport 443 -j REJECT 0 -p tcp -m tcp -d 52.207.178.113 -j DROP 0 -p tcp -m tcp -d 52.73.159.23 -j DROP 0 -p tcp -m tcp -d 54.85.12.131 -j DROP 0 -p tcp -m tcp -d 52.6.119.223 -j DROP 0 -p tcp -m tcp -d 52.0.53.94 -j DROP 0 -p tcp -m tcp -d 34.192.123.224 -j DROP 0 -m state --state ESTABLISHED,RELATED -j ACCEPT 1 -p tcp -m tcp --dport 80 -j ACCEPT 1 -p tcp -m tcp --dport 53 -j ACCEPT 1 -p udp --dport 53 -j ACCEPT 1 -p tcp -m tcp --dport 2376 -j ACCEPT 2 -j REJECT
要么
# firewall-cmd --direct --get-rules ipv4 filter FORWARD 0 -p tcp -m tcp --dport 5000 -j REJECT 0 -p tcp -m tcp --dport 443 -j REJECT 0 -p tcp -m tcp -d 52.207.178.113 -j DROP 0 -p tcp -m tcp -d 52.73.159.23 -j DROP 0 -p tcp -m tcp -d 54.85.12.131 -j DROP 0 -p tcp -m tcp -d 52.6.119.223 -j DROP 0 -p tcp -m tcp -d 52.0.53.94 -j DROP 0 -p tcp -m tcp -d 34.192.123.224 -j DROP
在所有这些都到位之后,我仍然可以从docker.io搜索/拉取。
维护人员关闭了解决此问题的PR之一,维护人员说,防火墙似乎应该解决该问题。有人可以告诉我如何实际完成吗?
在redhat / centos上添加
--block-registry docker.io
到您从任何位置启动docker引擎的位置(可能/etc/sysconfig/docker
在redhat上,或者可能/lib/systemd/system/docker.service
)
无论是哪种情况,请不要忘记刷新systemd
服务文件(systemctl daemon-reload
)和重新启动docker引擎(systemctl restart docker.service
)
现在,如果您执行ps auxwwf | grep docker
docker engine --block-register标志,则该标志应出现在进程列表中。
我来这里是因为这在debian / ubuntu上不起作用,我正在寻找在debian上这样做的方法。= / HTH