Evitando a conexão de saída ssh, sftp etc de dentro de uma instância do docker

2

Estou executando a instância 1.6 do docker no CentOS 7. Estou usando essas instâncias para fins de desenvolvimento em que o usuário pode efetuar login e fazer seu trabalho de desenvolvimento. Minha exigência é que eu não quero que nenhum desenvolvedor faça qualquer tipo de conexão de saída dentro da instância. Eu tentei usar ip table na máquina host, mas impedir a conexão da máquina host, mas não da janela de encaixe. Aqui estão as entradas disponíveis no meu iptable.

Será de grande ajuda se você puder me sugerir uma maneira de impedir essa conexão de um contêiner docker ao mundo externo sem afetar a conexão 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 
    
por user1405309 29.06.2015 / 07:36

1 resposta

4

Você precisa trabalhar em FORWARD CHAIN , porque o tráfego DOCKER é de docker -> your host interface

por exemplo, preciso bloquear meu tráfego http na janela de encaixe.

iptables -A FORWARD -i virbr0 -p tcp -d 0/0 --dport 80 -m conntrack --ctstate NEW -j DROP
    
por 29.06.2015 / 08:01

Tags