Qual é a melhor maneira de limitar os endereços IP que podem ser acessados de dentro de um contêiner docker?

0

Eu tenho uma resposta que limitará os contêineres do docker para poder acessar apenas um único endereço IP fora do host. Usando esta regra do iptables no host:

iptables -I FORWARD -i docker0! -d 8.8.8.8 -j DROP

significa que de dentro de qualquer contêiner docker só é possível acessar o endereço IP 8.8.8.8.

Isso é bastante drástico - basicamente, se o destino NÃO for 8.8.8.8, elimine o pacote.

Qual é a melhor maneira de configurar regras que me permitam limitar os contêineres a um determinado número de endereços IP?

    
por bailey86 02.06.2015 / 16:41

1 resposta

0

Eu precisava garantir que a cópia de desenvolvimento do site que estava no contêiner docker não pudesse acessar nenhum recurso ativo - Paypal, várias APIs etc. O código no site era herdado e muitas coisas / URLs eram codificados.

A maneira como consegui isso foi ter algo parecido com isso no script de construção:

echo
echo "Setting up firewall rules for all docker containers..."
sudo ipset create dockerdests hash:ip -exist
sudo ipset add dockerdests x.x.x.x -exist
sudo ipset add dockerdests y.y.y.y -exist
sudo ipset add dockerdests 8.8.8.8 -exist
sudo ipset add dockerdests 8.8.4.4 -exist
sudo iptables -I FORWARD 1 -i docker0 -m set --match-set dockerdests dst -j ACCEPT
sudo iptables -I FORWARD 2 -i docker0 -j DROP

em que x.x.x.x e y.y.y.y são recursos dev.

    
por 28.07.2015 / 17:30