我正在运行CoreOS
来托管一些Docker
个容器,我想阻止SSH
从容器访问CoreOS
主机,我猜将是一个合理的安全问题。
我尝试使用/etc/hosts.deny
文件或使用iptables
来限制此访问权限。这种方法的问题在于它们都需要专门定义的容器的IP范围,而且我找不到在所有新主机上自动指定它的保证方法。
如docker documentation所述,桥接接口的默认网络定义是:
$ sudo docker network inspect bridge
[
{
"name": "bridge",
"id": "7fca4eb8c647e57e9d46c32714271e0c3f8bf8d17d346629e2820547b2d90039",
"driver": "bridge",
"containers": {
"bda12f8922785d1f160be70736f26c1e331ab8aaf8ed8d56728508f2e2fd4727": {
"endpoint": "e0ac95934f803d7e36384a2029b8d1eeb56cb88727aa2e8b7edfeebaa6dfd758",
"mac_address": "02:42:ac:11:00:03",
"ipv4_address": "172.17.0.3/16",
"ipv6_address": ""
},
"f2870c98fd504370fb86e59f32cd0753b1ac9b69b7d80566ffc7192a82b3ed27": {
"endpoint": "31de280881d2a774345bbfb1594159ade4ae4024ebfb1320cb74a30225f6a8ae",
"mac_address": "02:42:ac:11:00:02",
"ipv4_address": "172.17.0.2/16",
"ipv6_address": ""
}
}
}
]
Docker文档还说,docker0
接口在-b
接口可用时使用172.17.42.1/16(也可以使用10.1.41.2
选项进行配置)。但我看到一些容器拥有像--icc
这样的IP,并且很难使用硬编码 IP范围阻止它们。
我知道_FORTIFY_SOURCE
选项将影响守护进程上的容器间通信,并希望找到一个这样的干净方式并限制从容器到其主机的SSH访问。
谢谢。
答案 0 :(得分:1)
您可以使用iptables设置阻止此操作的防火墙规则。
iptables -A INPUT -i docker0 -p tcp --destination-port 22 -j DROP
(在主持人上运行)