Requisitos: Se construyó un sistema privado de álbumes domésticos usando contenedores Docker, que está limitado al acceso y visualización en la LAN doméstica, porque la imagen Docker está desarrollada por un desarrollador externo, y no sé si será una situación de seguridadGenerar brechas de privacidadPara resolver mejor este problema, queremos añadir una garantía de privacidad prohibiendo que los contenedores Docker accedan a Internet (red externa).
Este artículo utiliza un sistema CentOS7, versión Docker: 20.10.20, y utiliza imágenes nginx para proporcionar pruebas.
El acceso a Internet (extranet) está permitido por defecto
Crea un nuevo contenedor nginx que proporcione servicios web accesibles mediante18080 Acceso al puerto, el contenedor puede acceder a Internet (red externa) por defecto, el comando es el siguiente:
Introduzca el contenedor y solicite los recursos de este sitio mediante el comando curl, que puede obtenerse normalmente, como se muestra en la figura siguiente:
Deshabilitando el acceso a internet de contenedores Docker (extranet)
Primero, necesitamos crear una red personalizada a través de docker y crear una tarjeta de red virtual, con el siguiente comando:
Establezca una regla en la tarjeta virtual de red a través de iptables para prohibir el acceso a Internet con el siguiente comando:
Independientemente de si el servicio iptables está disponible o no, independientemente de si el cortafuegos está activado o no,Las reglas de iptables añadidas por comando entran en vigor inmediatamente!!!
Nota: Este plan es apropiadoSi diferentes contenedores se unen a la misma red, ¡no podrán comunicarse entre sí!!!!
Mira la regla DOCKER-USER que se muestra a continuación:
Crea de nuevo un contenedor nginx, el contenedor proporciona el servicio web, y el18081 El puerto proporciona servicios al exterior, y el contenedor tiene prohibido acceder a Internet (red pública), el comando es el siguiente:
Hemos conseguido nuestro objetivo, pero,Tras reiniciar el servidor, las reglas que creamos en iptables desaparecerán¿Cómo podemos cargar automáticamente nuestras reglas personalizadas después de reiniciar el servidor?
El comando iptables-save se utiliza para exportar la tabla iptables en el núcleo de Linux a un proveedor estándar de salida, normalmente usando la función de redirección de E/S en el shell para guardar su salida en un archivo especificado. Guardar la regla existente de iptables
Añade la regla de restauración iptables al arranque, el archivo de arranque es /etc/rc.d/rc.local, edita el archivo y añade el siguiente comando al final:
Finalmente, añade el permiso de ejecución con el siguiente comando:
Una vez completadas las configuraciones, las reglas de iptables seguirán vigentes incluso si el servidor se reinicia.
Todos los contenedores en Docker tienen prohibido acceder a Internet (extranet),No probado, el comando es el siguiente:
(Fin)
|