Mi objetivo es limitar el acceso a los contenedores acoplables a solo unas pocas direcciones IP públicas. ¿Existe un proceso simple y repetible para lograr mi objetivo? Al comprender solo los conceptos básicos de iptables al usar las opciones predeterminadas de Docker, me resulta muy difícil.
Me gustaría ejecutar un contenedor, hacerlo visible para el Internet público, pero solo permitir conexiones de hosts seleccionados. Esperaría establecer una política de ENTRADA predeterminada de RECHAZAR y luego solo permitir conexiones desde mis hosts. Pero las reglas y cadenas NAT de Docker se interponen y mis reglas INPUT son ignoradas.
¿Alguien puede proporcionar un ejemplo de cómo lograr mi objetivo teniendo en cuenta los siguientes supuestos?
- Host public IP 80.80.80.80 en eth0
- Host privado IP 192.168.1.10 en eth1
docker run -d -p 3306:3306 mysql
- Bloquee todas las conexiones al host / contenedor 3306 excepto desde los hosts 4.4.4.4 y 8.8.8.8
Me complace vincular el contenedor solo a la dirección IP local, pero necesitaría instrucciones sobre cómo configurar correctamente las reglas de reenvío de iptables que sobrevivan al proceso de acoplamiento y reinicios del host.
¡Gracias!
--ctdir
? Yo uso-m conntrack --ctstate NEW --ctorigdstport 3306 --ctdir ORIGINAL