如何阻止Dockerregistry?
我想阻止对默认docker.ioregistry的访问。 为了安全/ IP保护,我们需要阻止对公共Docker集线器的推入/拉出访问。
已经有很多尝试使这个configuration选项,但所有PR只是不断被拒绝。 红帽已经实现了'–block-registry'和'–add-registry',这正是我所需要的,但它只适用于Red Hat的docker v1.10版本,我想使用docker v1。 12+
我正在使用RHEL / Centos 7
DNS欺骗似乎不能通过/ etc / hosts(以下)中的以下内容工作:
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中search/提取。
解决这个问题的PR之一被一位维护人员closures了,他说这看起来像是防火墙应该解决的问题。 有人可以告诉我这可以怎么做吗?
在红帽/ centos添加
--block-registry docker.io
无论你从哪里启动docker引擎(可能是/etc/sysconfig/docker
/lib/systemd/system/docker.service
在redhat上,或者可能是/lib/systemd/system/docker.service
)
如果您编辑了服务文件( systemctl daemon-reload
),并且在任一情况下systemctl restart docker.service
引擎( systemctl restart docker.service
),请不要忘记刷新systemd
现在如果你做了ps auxwwf | grep docker
ps auxwwf | grep docker
docker docker engine –block-register标志应该出现在进程列表中。
我来到这里,因为这不适用于Debian / Ubuntu的,我正在寻找一种方式在debian上做到这一点。 = / HTH