Instalación de la HTML5 Gateway Docker¶
Importación de la imagen Docker¶
Antes de poder crear un contenedor HTML5 Gateway Docker, debe importar la imagen Docker. Para ello, abra un shell desde el que disponga de los comandos Docker, así como del archivo cleanroom-html5-4.6.1-33-v2.tgz. Desde el shell, ejecute el siguiente comando, ajustando la ruta del archivo TGZ si no se encuentra en el directorio actual:
1 | |
A continuación, compruebe que la importación se ha realizado correctamente con el siguiente comando:
1 | |
El resultado esperado es el siguiente. Si no es así, la importación ha fallado:
1 2 3 4 5 6 | |
Resultado completo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | |
Configuración del contenedor¶
Variables de entorno¶
Variables para el despliegue por emparejamiento¶
| Nombre | Obligatorio | Valor predeterminado | Comentario |
|---|---|---|---|
ENV_MEDIATION |
SÍ | Se utiliza para la conexión por emparejamiento. Indica el nombre DNS o la dirección IP para conectarse a la interfaz web de una plataforma CyberElements Bastion. |
|
ENV_TOKEN |
SÍ | Se utiliza para la conexión por emparejamiento. Indica el token de emparejamiento que debe utilizarse para la conexión al Mediation Controller. |
|
ENV_NO_CHECK_CERT |
NO | false |
Se utiliza para las conexiones por emparejamiento. Desactiva o no la comprobación del certificado web del Mediation Controller; resulta útil con CyberElements Bastion cuando el acceso se realiza por dirección IP o cuando el certificado web no está reconocido por las autoridades de certificación públicas predeterminadas. Valores aceptados: true o false. |
Variables para el despliegue manual¶
| Nombre | Obligatorio | Valor predeterminado | Comentario |
|---|---|---|---|
ENV_GW_CERT_NAME |
SÍ | Se utiliza para la conexión con configuración manual. Nombre del archivo de certificado para la conexión al enrutador SSL. |
|
ENV_GW_CERT_PASSWORD |
SÍ | Se utiliza para la conexión con configuración manual. Contraseña del archivo de certificado para la conexión al enrutador SSL. |
|
ENV_SSL_ROUTER_IP |
SÍ | Se utiliza para la conexión con configuración manual. Dirección IP o nombre DNS del enrutador SSL al que se conectará la HTML5 Gateway. |
|
ENV_SSL_ROUTER_PORT |
NO | 443 |
Se utiliza para la conexión con configuración manual. Puerto del enrutador SSL al que se conectará la HTML5 Gateway. |
Variables diversas¶
| Nombre | Obligatorio | Valor predeterminado | Comentario |
|---|---|---|---|
ENV_DISABLE_RSYSLOG |
NO | false |
Desactivación del servicio rsyslog.Valores aceptados: true o false. |
Volúmenes¶
| Volumen | Comentario |
|---|---|
/etc/ipdiva/ |
Volumen de configuración de la HTML5 Gateway. Se recomienda montarlo en un volumen con nombre o en el sistema de archivos de la máquina anfitriona. |
/opt/certificates/ |
Volumen que contiene el o los certificados de la HTML5 Gateway en caso de configuración sin emparejamiento. |
/var/log/ |
Volumen que contiene los logs de la HTML5 Gateway. |
Puertos¶
| Puerto | Comentario |
|---|---|
8080 |
Puerto de escucha del servicio HTML5. |
Despliegue de la HTML5 Gateway Docker¶
Despliegue con emparejamiento¶
Requisitos previos
Antes de desplegar la HTML5 Gateway Docker, debe obtener un token de emparejamiento.
El despliegue descrito a continuación utilizará todos los volúmenes disponibles (salvo /opt/certificates/, que no es útil en este contexto) y expondrá todos los puertos.
Los volúmenes se montarán en el sistema de archivos de la máquina anfitriona en la ubicación HTML5_GATEWAY_REP. Dentro de esta ubicación se encuentran los siguientes subdirectorios:
- config
- log
Puede personalizar las variables de los comandos siguientes:
| Valor personalizado | Variable | Comentario |
|---|---|---|
DOCKER_NAME |
Nombre del contenedor Docker. | |
HTML5_GATEWAY_REP |
Ubicación en el sistema de archivos donde montar los volúmenes. | |
ENV_MEDIATION_VALUE |
Valor de la variable de entorno ENV_MEDIATION. |
|
ENV_TOKEN_VALUE |
Valor de la variable de entorno ENV_TOKEN. |
|
ENV_NO_CHECK_CERT_VALUE |
Valor de la variable de entorno ENV_NO_CHECK_CERT. |
Cree el árbol de directorios necesario para montar los volúmenes en el sistema de archivos:
1 2 | |
Y, por último, inicie un nuevo contenedor:
1 2 3 4 5 6 7 8 | |
Los logs del contenedor pueden consultarse con el siguiente comando:
1 | |
Despliegue manual¶
Requisitos previos
Antes de desplegar la HTML5 Gateway Docker, debe disponer del certificado necesario para la HTML5 Gateway.
El despliegue descrito a continuación utilizará todos los volúmenes disponibles y expondrá todos los puertos.
Los volúmenes se montarán en el sistema de archivos de la máquina anfitriona en la ubicación MANUAL_REP. Dentro de esta ubicación se encuentran los siguientes subdirectorios:
- config
- log
- certificates
Puede personalizar las variables de los comandos siguientes:
| Valor personalizado | Variable | Comentario |
|---|---|---|
MANUAL_NAME |
Nombre del contenedor Docker. | |
MANUAL_REP |
Ubicación en el sistema de archivos donde montar los volúmenes. | |
ENV_GW_CERT_NAME_VALUE |
Valor de la variable de entorno ENV_GW_CERT_NAME. |
|
ENV_GW_CERT_PASSWORD_VALUE |
Valor de la variable de entorno ENV_GW_CERT_PASSWORD. |
|
ENV_SSL_ROUTER_IP_VALUE |
Valor de la variable de entorno ENV_SSL_ROUTER_IP. |
|
ENV_SSL_ROUTER_PORT_VALUE |
Valor de la variable de entorno ENV_SSL_ROUTER_PORT. |
Cree el árbol de directorios necesario para montar los volúmenes en el sistema de archivos:
1 2 3 | |
A continuación, coloque los certificados de la HTML5 Gateway y del servicio de grabación en MANUAL_REP/certificates.
Por último, inicie un nuevo contenedor:
1 2 3 4 5 6 7 8 9 10 | |
Los logs del contenedor pueden consultarse con el siguiente comando:
1 | |
Configuración del Mediation Controller¶
Para que la nueva HTML5 Gateway Docker sea operativa, queda por configurar el servidor Mediation Controller mediante un acceso SSH o consola y con permisos root.
Esta última configuración es necesaria para permitir que el Mediation Controller se comunique con el servicio HTML5.
No obstante, esta configuración varía según la ubicación de la HTML5 Gateway Docker:
El esquema general es el siguiente:
flowchart LR
subgraph DMZ
direction TB
HTML5(HTML5 Gateway Docker)
MED(Mediation Controller)
end
subgraph LAN
GW(Edge Gateway)
end
MED -.-> |Conexión al servicio HTML5 ; TCP 8080| HTML5
HTML5 --> |TLS Tunnel| MED
MED ~~~ GW
GW --> |TLS Tunnel| MED
GW ~~~ MED
linkStyle 0 stroke:#d22,color;
En este contexto, será necesario añadir al archivo /etc/ipdiva/httpd/commonParameters.extra.conf la información indicada a continuación, o bien crearlo.
Es posible personalizar los parámetros:
| Valor personalizado | Variable | Comentario |
|---|---|---|
HTML5_URL_DMZ |
URL configurada al declarar la HTML5 Gateway en la consola de administración. | |
HTML5_IP_DMZ |
Nombre DNS o dirección IP del servidor Docker en el que está activa la HTML5 Gateway Docker. | |
HTML5_PORT_DMZ |
Puerto publicado por el servidor Docker para la HTML5 Gateway Docker. |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
El esquema general es el siguiente:
flowchart LR
subgraph DMZ
direction TB
MED(Mediation Controller)
end
subgraph LAN
HTML5(HTML5 Gateway Docker)
GW(Edge Gateway)
end
MED -.- | Conexión al servicio HTML5 ; a través del túnel TLS| GW -.-> |Conexión al servicio HTML5 ; TCP 8080| HTML5
HTML5 --> |TLS Tunnel| MED
GW --> |TLS Tunnel| MED
linkStyle 0,1 stroke:#d22,color;
En este contexto, será necesario añadir al archivo /etc/ipdiva/httpd/commonParameters.extra.conf la información indicada a continuación, o bien crearlo.
Es posible personalizar los parámetros:
| Valor personalizado | Variable | Comentario |
|---|---|---|
HTML5_URL_LAN |
URL configurada al declarar la HTML5 Gateway en la consola de administración. | |
GW_NAME_LAN |
Nombre de la Edge Gateway utilizada para conectarse al servicio HTML5. El carácter de barra vertical al final de la línea debe conservarse. | |
ORGANIZATION_NAME_LAN |
Nombre de la organización a la que se conecta la Edge Gateway. | |
HTML5_IP_LAN |
Nombre DNS o dirección IP del servidor Docker en el que está activa la HTML5 Gateway Docker. | |
HTML5_PORT_LAN |
Puerto publicado por el servidor Docker para la HTML5 Gateway Docker. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
Consejo
Esta configuración también puede utilizarse en la situación siguiente, en la que una Edge Gateway Docker y una HTML5 Gateway Docker se ejecutan en la misma red Docker:
flowchart LR
subgraph DMZ
direction TB
MED(Mediation Controller)
end
subgraph LAN
subgraph docker[Docker Server]
HTML5([HTML5 Gateway Docker])
GW([Edge Gateway])
end
end
MED -.- | Conexión al servicio HTML5 ; a través del túnel TLS| GW -.-> |Conexión al servicio HTML5 ; TCP 8080 a través de la red Docker| HTML5
HTML5 --> |TLS Tunnel| MED
GW --> |TLS Tunnel| MED
linkStyle 0,1 stroke:#d22,color;
Ejemplo
En este ejemplo, desplegaremos una Edge Gateway y una HTML5 Gateway en el mismo servidor Docker.
La infraestructura utilizada para el ejemplo es la siguiente:
- Servidor Mediation Controller
- Dirección IP web:
10.0.10.10 - Nombre de la organización:
my-organization-name - Token para la Edge Gateway:
YJ5N-JN05-N5LS-N26H-7JHA-HZ9R-BGJF-MAVH - Token para la HTML5 Gateway:
ATCW-OMVR-0RY4-LW1M-D9G9-H5VF-WPX5-YCXF - URL de acceso al servicio HTML5:
HTML5_DOCKER
- Dirección IP web:
- Servidor Docker
- Nombre de la red Docker:
cyberelements-cleanroom-network - Edge Gateway
- Nombre:
my-edge-gateway-docker - Ubicación raíz en el sistema de archivos:
/opt/my-edge-gateway-docker
- Nombre:
- HTML5 Gateway
- Nombre:
my-html5-gateway-docker - Ubicación raíz en el sistema de archivos:
/opt/my-html5-gateway-docker
- Nombre:
- Nombre de la red Docker:
En primer lugar, en el servidor Docker, debe crear el árbol de directorios para montar los volúmenes Docker:
1 2 3 4 5 6 | |
A continuación, cree una red Docker de tipo bridge para que ambos contenedores puedan comunicarse entre sí:
1 | |
A continuación, inicie el contenedor de la Edge Gateway. Tenga en cuenta que el ejemplo establece una conexión por emparejamiento, con acceso al Mediation Controller mediante su dirección IP y sin comprobación de certificado. Además, se añade el parámetro --network para indicar el uso de la red Docker creada anteriormente:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
A continuación, inicie el contenedor de la HTML5 Gateway. Tenga en cuenta que el ejemplo establece una conexión por emparejamiento, con acceso al Mediation Controller mediante su dirección IP y sin comprobación de certificado. Además, se añade el parámetro --network para indicar el uso de la red Docker creada anteriormente y, dado que el acceso al servicio HTML5 se realizará a través de la red Docker, no es necesario publicar el puerto 8080:
1 2 3 4 5 6 7 8 | |
Por último, hay que configurar el archivo /etc/ipdiva/httpd/commonParameters.extra.conf del o de los servidores Mediation Controller. Debe añadirse la sección siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
Antes de aplicar los nuevos parámetros, debe comprobar que la nueva configuración no provoca ningún error bloqueante en el servidor web Apache2.
Para ello, ejecute el siguiente comando:
1 | |
Si la respuesta es Syntax OK, los cambios pueden aplicarse con el comando siguiente. En caso contrario, compruebe la configuración de su archivo /etc/ipdiva/httpd/commonParameters.extra.conf.
1 | |