在docker实例中防止传出连接ssh,sftp等

我正在CentOS 7上运行Docker实例1.6。我正在使用这些实例进行开发,用户可以login并完成开发工作。 我的要求是我不希望任何开发人员从实例内部进行任何forms的传出连接。 我试图在主机使用IP表,但它阻止从主机连接,但不是从docker。 这里是我的iptable中可用的条目。

如果您能够build议我阻止docker集装箱内部连接到外部世界而不影响http连接,这将是一个很大的帮助。

# Generated by iptables-save v1.4.21 on Sun Jun 28 23:20:14 2015 *nat :PREROUTING ACCEPT [6680:929529] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [521:165135] :POSTROUTING ACCEPT [0:0] :DOCKER - [0:0] -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER -A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE COMMIT # Completed on Sun Jun 28 23:20:14 2015 # Generated by iptables-save v1.4.21 on Sun Jun 28 23:20:14 2015 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :DOCKER - [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80:65000 -j ACCEPT -A INPUT -j DROP -A FORWARD -o docker0 -j DOCKER -A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A FORWARD -i docker0 ! -o docker0 -j ACCEPT -A FORWARD -i docker0 -o docker0 -j ACCEPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 80:65000 -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 6667 -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 6697 -j ACCEPT -A OUTPUT -j DROP COMMIT # Completed on Sun Jun 28 23:20:14 2015 

你需要在你的FORWARD CHAIN工作,因为DOCKERstream量进入docker -> your host interface

例如,我需要阻止泊坞窗内的HTTPstream量。

 iptables -A FORWARD -i virbr0 -p tcp -d 0/0 --dport 80 -m conntrack --ctstate NEW -j DROP