En ocasiones en algunos de los módulos (más relacionados con redes normalmente) puede que queramos montar ciertos entornos, compuestos por varias máquinas, en los que sea necesario que tengamos nosotros el control de las reglas iptables de las distintas máquinas que los conforman.
Normalmente esto se hace con distintas máquinas virtuales pero en vista de las posibilidades de red que nos dan los contenedores, ¿podría montar entornos de ese estilo con contenedores?. Por defecto esto no es posible en los contenedores, pero podemos conseguirlo de una de estas dos maneras:
- Arrancar el contenedor con el flag --cap-add=NET_ADMIN. Así le damos al contenedor la "capacidad" Linux de administrar la red.
- Arrancar el contenedor de con flag --privileged que le da todas las capacidades al contenedor que puede hacer lo mismo que se puede hacer desde el host. Esto, además de habilitar el uso de iptables, me permitiría cosas como "instalar docker dentro de un contenedor docker". Debemos de tener mucho cuidado con esta característica porque puede presentar varios problemas al levantar ciertas limitaciones a los cgroups..
Independientemente de la opción que elijamos, antes de poder usar iptables, y dado las pocas cosas que incluye por defecto un contenedor, deberemos:
- apt update (para recargar los repositorios que no vienen cargados por defecto).
- apt install -y iptables (para instalar la herramienta de firewall para Linux).