Meu objetivo é limitar o acesso aos contêineres do docker a apenas alguns endereços IP públicos. Existe um processo simples e repetível para alcançar meu objetivo? Compreendendo apenas o básico do iptables ao usar as opções padrão do Docker, estou achando muito difícil.
Eu gostaria de executar um contêiner, torná-lo visível para a Internet pública, mas apenas permitir conexões de hosts selecionados. Eu esperaria definir uma política de entrada padrão de REJECT e permitir apenas conexões de meus hosts. Mas as regras e cadeias NAT do Docker atrapalham e minhas regras INPUT são ignoradas.
Alguém pode fornecer um exemplo de como realizar meu objetivo, considerando as seguintes premissas?
- IP público do host 80.80.80.80 em eth0
- Hospedar IP privado 192.168.1.10 no eth1
docker run -d -p 3306:3306 mysql
- Bloquear toda a conexão com o host / contêiner 3306, exceto os hosts 4.4.4.4 e 8.8.8.8
Estou feliz em vincular o contêiner apenas ao endereço IP local, mas precisaria de instruções sobre como configurar as regras de encaminhamento do iptables corretamente, que sobrevivam ao processo do docker e reinicia o host.
Obrigado!
--ctdir
? Eu uso-m conntrack --ctstate NEW --ctorigdstport 3306 --ctdir ORIGINAL