Saltar a contenido

Instalación de la Edge Gateway Docker

Importación de la imagen Docker

Antes de poder crear un contenedor Edge 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-gateway-4.6.1-33-v4.tgz. Desde el shell, ejecute el siguiente comando, ajustando la ruta del archivo TGZ si no se encuentra en el directorio actual:

1
docker load --input cleanroom-gateway-4.6.1-33-v4.tgz

A continuación, compruebe que la importación se ha realizado correctamente con el siguiente comando:

1
docker inspect --type=image cleanroom-gateway:4.6.1-33-v4

El resultado esperado es el siguiente (el identificador SHA256 puede variar según el sistema operativo en el que esté instalado Docker; los ejemplos proceden de Debian 13). Si no es así, la importación ha fallado:

1
2
3
4
5
6
[
    {
        "Id": "sha256:c63645a09181bc3b83958bedf2eb3d7ea5fbbc2526126edb660a519b93338974",
        "RepoTags": [
            "cleanroom-gateway:4.6.1-33-v4"
        ],
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
74
75
76
77
78
79
80
81
82
83
[
    {
        "Id": "sha256:c63645a09181bc3b83958bedf2eb3d7ea5fbbc2526126edb660a519b93338974",
        "RepoTags": [
            "cleanroom-gateway:4.6.1-33-v4"
        ],
        "RepoDigests": [
            "cleanroom-gateway@sha256:fd96104ea219a05216c90c71c39b761083c989cbab8ef1f388cac09015bd54a3"
        ],
        "Comment": "buildkit.dockerfile.v0",
        "Created": "2026-02-17T16:21:12.399890264+01:00",
        "Config": {
            "User": "root",
            "ExposedPorts": {
                "9080/tcp": {}
            },
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "DEBIAN_FRONTEND=noninteractive",
                "IMAGE_BUILD_DATE=20260217T161839",
                "IMAGE_BUILD_VERSION=4.6.1-33-v4",
                "IMAGE_IPDIPC=IPC-54826,IPC-53702,IPC-55425"
            ],
            "Entrypoint": [
                "/entrypoint.sh"
            ],
            "Volumes": {
                "/etc/ipdiva/": {},
                "/var/log/": {}
            },
            "Labels": {
                "maintainer": "contact@systancia.com",
                "org.label-schema.build-date": "20260217T161839",
                "org.label-schema.description": "Systancia Cleanroom Gateway",
                "org.label-schema.name": "Systancia Cleanroom 4.6.1-33-v4 Gateway",
                "org.label-schema.url": "http://systancia.com/",
                "org.label-schema.vendor": "Systancia",
                "version": "4.6.1-33-v4"
            },
            "Healthcheck": {
                "Test": [
                    "CMD-SHELL",
                    "/usr/lib/nagios/plugins/IPdivaSensorGateway -a isConnected -g 127.0.0.1:9080"
                ],
                "Interval": 300000000000,
                "Timeout": 10000000000,
                "Retries": 3
            }
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 1248982227,
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/5a32af4bf30239320f2d4f04e9dde6e448d138d0e00dbcd0aa07ff859518bfd5/diff:/var/lib/docker/overlay2/da3ceed2e06933403d5e2b503f654efe58afd3067562d4991615cc79109f5000/diff:/var/lib/docker/overlay2/022f1b9fc82a6210ac50a7bf20705651a5a6bd2bfcdd8ca4993778870c4f04ce/diff:/var/lib/docker/overlay2/7675c3cb606871d89d593c5b40746256a109640e03d4846ee49392792f94c29b/diff:/var/lib/docker/overlay2/a0bc243e1069486711b74a39142def4596f99b21d00d286a2bd6212cf8902401/diff:/var/lib/docker/overlay2/fe91732a9355873a0d60ec041ea365567f0fbc963173c9428ab896b591fcb460/diff:/var/lib/docker/overlay2/d4af0110a3ab43120dea8c19e35b7552ad8f8d993d556c34143ecb3c4bd7e670/diff:/var/lib/docker/overlay2/399d72a9751679283e1435dffa5ea7b5abc07f264987815be3846e8e617cf031/diff:/var/lib/docker/overlay2/5c1723a91777858469dc540b3a91738f4b6fc6c0a3cc6686d48b4cb85a9c0400/diff:/var/lib/docker/overlay2/60b4e962507a658aa32be63de9cea55df0a45459b2f3549b3eef3443b35519b9/diff:/var/lib/docker/overlay2/9ff870b850857af52af3de1939f1abd129e96a91d608f3b8f68e0cbcd09eb181/diff",
                "MergedDir": "/var/lib/docker/overlay2/48efe7a9b5e8c4e24a395024dd0876c942b03a52ea161df553d5ee566505c4a8/merged",
                "UpperDir": "/var/lib/docker/overlay2/48efe7a9b5e8c4e24a395024dd0876c942b03a52ea161df553d5ee566505c4a8/diff",
                "WorkDir": "/var/lib/docker/overlay2/48efe7a9b5e8c4e24a395024dd0876c942b03a52ea161df553d5ee566505c4a8/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:51e78f04fd47b324ef2558bbed0cb5bc0d6d8e5ca3c56d5b98b91866a88f37bb",
                "sha256:3bb2b94a7a30506f2a91d55a04aa0e90a487b3a321d2e1df4f97dfbcfe32cfc0",
                "sha256:deb44bbc3e3d6990e142dc66532aeace714d6c191f1ede7a0f6fd8dcd7e751d3",
                "sha256:e61e4e2f89a04cb7bed974b2c8f510dd72d76e4bf998a000d082fc33bf29947e",
                "sha256:96b1236ab0e31d36a0d0fd17878770d969a11c8d4d33f8cacac568d0b0d76324",
                "sha256:989a4d7dbba1836ad30f58ca73f3101b21b80929f732d5ebdc87a69939b8cf6d",
                "sha256:1f2b05f37aceed6edd80cbe798657a7eb8fce3c7383df8d40d9fdeb273867a9d",
                "sha256:63aa193be3dc44af0057719f79991745e40d8b522a2aa49743dd04fe81b6a637",
                "sha256:02dcea7c2ed886996c81bd6980516420b90e2cdd930dc805388bcd5c7e14b5b3",
                "sha256:1f8c0ab2de5021d138baa67506b22d4d21750a23d0e9278a152daa2e7e953bff",
                "sha256:3601c2e047e3c5019a5e45fb23b478154beb6188761e31aeddb4326bfe16f81c",
                "sha256:20963ed8264d1ceaeb3680375c9c3df4045aa17af258957f3fa83f6224e62138"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]

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.
Nombre DNS o dirección IP de conexión 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_CARE_CERT_NAME NO Valor de ENV_GW_CERT_NAME Se utiliza para la conexión con configuración manual.
Nombre del archivo de certificado del servicio de grabación.
ENV_CARE_CERT_PASSWORD NO Valor de ENV_GW_CERT_PASSWORD Se utiliza para la conexión con configuración manual.
Contraseña del archivo de certificado del servicio de grabación.
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 Edge 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 Edge Gateway.

Variables diversas

Nombre Obligatorio Valor predeterminado Comentario
ENV_DISABLE_RSYSLOG NO false Desactivación del servicio rsyslog.
Valores aceptados: true o false.
ENV_KERBEROS_CONFIG_ENABLE NO false Activa la configuración Kerberos para permitir que las aplicaciones RDP se autentiquen en modo sin agente mediante Kerberos.
Valores aceptados: true o false.
Si es false, las demás variables Kerberos se ignoran.
ENV_KERBEROS_DEFAULT_REALM SÍ
(si la configuración Kerberos está activada)
Nombre del realm Kerberos.
ENV_KERBEROS_DEFAULT_DOMAIN SÍ
(si la configuración Kerberos está activada)
Nombre del dominio Kerberos.
ENV_KERBEROS_CONTROLLER_ADDRESS SÍ
(si la configuración Kerberos está activada)
Dirección de conexión al controlador Kerberos.

Volúmenes

Volumen Comentario
/etc/ipdiva/ Volumen de configuración de la Edge 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 Edge Gateway en una configuración sin emparejamiento.
/var/lib/ipdiva/carerecord/archives/ Volumen que contiene los archivos gráficos.
Se recomienda montarlo en un volumen con nombre o en el sistema de archivos de la máquina anfitriona.
/var/ipdiva/care/sshrecord/ Volumen que contiene los archivos SSH.
Se recomienda montarlo en un volumen con nombre o en el sistema de archivos de la máquina anfitriona.
/var/log/ Volumen que contiene los logs de la Edge Gateway.

Puertos

Puerto Comentario
2222 (o cualquier otro puerto disponible elegido por el administrador) Puerto de escucha del servicio de acceso directo SSH/SFTP.
3389 Puerto de escucha del servicio de acceso directo RDP.
8443 Puerto de escucha del servicio de grabación, que debe exponerse cuando se utiliza el agente de grabación Windows.

Despliegue de la Edge Gateway Docker

Despliegue con emparejamiento

Requisitos previos

Antes de desplegar la Edge 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 EDGE_GATEWAY_REP. Dentro de esta ubicación se encuentran los siguientes subdirectorios:

  • config
  • graphical_archives
  • ssh_archives
  • log

Puede personalizar las variables de los comandos siguientes:

Valor personalizado Variable Comentario
DOCKER_NAME Nombre del contenedor Docker.
EDGE_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.
ENV_KERBEROS_CONFIG_ENABLE_VALUE Valor de la variable de entorno ENV_KERBEROS_CONFIG_ENABLE.
ENV_KERBEROS_DEFAULT_REALM_VALUE Valor de la variable de entorno ENV_KERBEROS_DEFAULT_REALM.
ENV_KERBEROS_DEFAULT_DOMAIN_VALUE Valor de la variable de entorno ENV_KERBEROS_DEFAULT_DOMAIN.
ENV_KERBEROS_CONTROLLER_ADDRESS_VALUE Valor de la variable de entorno ENV_KERBEROS_CONTROLLER_ADDRESS.

Cree el árbol de directorios necesario para montar los volúmenes en el sistema de archivos:

1
2
3
4
mkdir -p EDGE_GATEWAY_REP/config
mkdir EDGE_GATEWAY_REP/graphical_archives
mkdir EDGE_GATEWAY_REP/ssh_archives
mkdir EDGE_GATEWAY_REP/log
1
New-Item -ItemType Directory -Force -Path "EDGE_GATEWAY_REP\config", "EDGE_GATEWAY_REP\graphical_archives", "EDGE_GATEWAY_REP\ssh_archives", "EDGE_GATEWAY_REP\log"

Y, por último, inicie un nuevo contenedor:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
docker run -d --restart unless-stopped --name "DOCKER_NAME" \
-e ENV_MEDIATION="ENV_MEDIATION_VALUE" \
-e ENV_TOKEN="ENV_TOKEN_VALUE" \
-e ENV_NO_CHECK_CERT="ENV_NO_CHECK_CERT_VALUE" \
-e ENV_KERBEROS_CONFIG_ENABLE="ENV_KERBEROS_CONFIG_ENABLE_VALUE" \
-e ENV_KERBEROS_DEFAULT_REALM="ENV_KERBEROS_DEFAULT_REALM_VALUE" \
-e ENV_KERBEROS_DEFAULT_DOMAIN="ENV_KERBEROS_DEFAULT_DOMAIN_VALUE" \
-e ENV_KERBEROS_CONTROLLER_ADDRESS="ENV_KERBEROS_CONTROLLER_ADDRESS_VALUE" \
-v "EDGE_GATEWAY_REP/config/:/etc/ipdiva/:rw" \
-v "EDGE_GATEWAY_REP/graphical_archives/:/var/lib/ipdiva/carerecord/archives/:rw" \
-v "EDGE_GATEWAY_REP/ssh_archives/:/var/ipdiva/care/sshrecord/:rw" \
-v "EDGE_GATEWAY_REP/log/:/var/log/:rw" \
-p 2222:2222 \
-p 3389:3389 \
-p 8443:8443 \
cleanroom-gateway:4.6.1-33-v4
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
docker run -d --restart unless-stopped --name "DOCKER_NAME" `
-e "ENV_MEDIATION=ENV_MEDIATION_VALUE" `
-e "ENV_TOKEN=ENV_TOKEN_VALUE" `
-e "ENV_NO_CHECK_CERT=ENV_NO_CHECK_CERT_VALUE" `
-e "ENV_KERBEROS_CONFIG_ENABLE=ENV_KERBEROS_CONFIG_ENABLE_VALUE" `
-e "ENV_KERBEROS_DEFAULT_REALM=ENV_KERBEROS_DEFAULT_REALM_VALUE" `
-e "ENV_KERBEROS_DEFAULT_DOMAIN=ENV_KERBEROS_DEFAULT_DOMAIN_VALUE" `
-e "ENV_KERBEROS_CONTROLLER_ADDRESS=ENV_KERBEROS_CONTROLLER_ADDRESS_VALUE" `
-v "EDGE_GATEWAY_REP\config:/etc/ipdiva/:rw" `
-v "EDGE_GATEWAY_REP\graphical_archives:/var/lib/ipdiva/carerecord/archives/:rw" `
-v "EDGE_GATEWAY_REP\ssh_archives:/var/ipdiva/care/sshrecord/:rw" `
-v "EDGE_GATEWAY_REP\log:/var/log/:rw" `
-p 2222:2222 `
-p 3389:3389 `
-p 8443:8443 `
cleanroom-gateway:4.6.1-33-v4

Los logs del contenedor pueden consultarse con el siguiente comando:

1
docker logs -f DOCKER_NAME

Despliegue manual

Requisitos previos

Antes de desplegar la Edge Gateway Docker, debe disponer de los certificados necesarios para la Edge Gateway y para el servicio de grabación.

Contraseñas visibles con docker inspect

Las variables de entorno de un contenedor, incluidas las contraseñas de los certificados, siguen siendo legibles para cualquier persona autorizada a ejecutar docker inspect en el servidor Docker. Por ello, es preferible el despliegue con emparejamiento, que no utiliza ninguna contraseña de certificado.

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
  • graphical_archives
  • ssh_archives
  • 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_CARE_CERT_NAME_VALUE Valor de la variable de entorno ENV_CARE_CERT_NAME.
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.
ENV_KERBEROS_CONFIG_ENABLE_MANUAL_VALUE Valor de la variable de entorno ENV_KERBEROS_CONFIG_ENABLE.
ENV_KERBEROS_DEFAULT_REALM_MANUAL_VALUE Valor de la variable de entorno ENV_KERBEROS_DEFAULT_REALM.
ENV_KERBEROS_DEFAULT_DOMAIN_MANUAL_VALUE Valor de la variable de entorno ENV_KERBEROS_DEFAULT_DOMAIN.
ENV_KERBEROS_CONTROLLER_ADDRESS_MANUAL_VALUE Valor de la variable de entorno ENV_KERBEROS_CONTROLLER_ADDRESS.

Cree el árbol de directorios necesario para montar los volúmenes en el sistema de archivos:

1
2
3
4
5
mkdir -p MANUAL_REP/config
mkdir MANUAL_REP/graphical_archives
mkdir MANUAL_REP/ssh_archives
mkdir MANUAL_REP/log
mkdir MANUAL_REP/certificates
1
New-Item -ItemType Directory -Force -Path "MANUAL_REP\config", "MANUAL_REP\graphical_archives", "MANUAL_REP\ssh_archives", "MANUAL_REP\log", "MANUAL_REP\certificates"

A continuación, coloque los certificados de la Edge Gateway y del servicio de grabación en MANUAL_REP/certificates.

Para que las contraseñas de los certificados no queden en el historial del shell, introdúzcalas en variables de entorno de la sesión actual (lo que se escribe no se muestra):

1
2
3
read -rsp "Edge Gateway certificate password: " ENV_GW_CERT_PASSWORD; echo
read -rsp "Recording service certificate password: " ENV_CARE_CERT_PASSWORD; echo
export ENV_GW_CERT_PASSWORD ENV_CARE_CERT_PASSWORD
1
2
$env:ENV_GW_CERT_PASSWORD = [Net.NetworkCredential]::new('', (Read-Host -AsSecureString "Edge Gateway certificate password")).Password
$env:ENV_CARE_CERT_PASSWORD = [Net.NetworkCredential]::new('', (Read-Host -AsSecureString "Recording service certificate password")).Password

Por último, inicie un nuevo contenedor:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
docker run -d --restart unless-stopped --name "MANUAL_NAME" \
-e ENV_GW_CERT_NAME="ENV_GW_CERT_NAME_VALUE" \
-e ENV_GW_CERT_PASSWORD \
-e ENV_CARE_CERT_NAME="ENV_CARE_CERT_NAME_VALUE" \
-e ENV_CARE_CERT_PASSWORD \
-e ENV_SSL_ROUTER_IP="ENV_SSL_ROUTER_IP_VALUE" \
-e ENV_SSL_ROUTER_PORT="ENV_SSL_ROUTER_PORT_VALUE" \
-e ENV_KERBEROS_CONFIG_ENABLE="ENV_KERBEROS_CONFIG_ENABLE_MANUAL_VALUE" \
-e ENV_KERBEROS_DEFAULT_REALM="ENV_KERBEROS_DEFAULT_REALM_MANUAL_VALUE" \
-e ENV_KERBEROS_DEFAULT_DOMAIN="ENV_KERBEROS_DEFAULT_DOMAIN_MANUAL_VALUE" \
-e ENV_KERBEROS_CONTROLLER_ADDRESS="ENV_KERBEROS_CONTROLLER_ADDRESS_MANUAL_VALUE" \
-v "MANUAL_REP/config/:/etc/ipdiva/:rw" \
-v "MANUAL_REP/graphical_archives/:/var/lib/ipdiva/carerecord/archives/:rw" \
-v "MANUAL_REP/ssh_archives/:/var/ipdiva/care/sshrecord/:rw" \
-v "MANUAL_REP/log/:/var/log/:rw" \
-v "MANUAL_REP/certificates/:/opt/certificates/:ro" \
-p 2222:2222 \
-p 3389:3389 \
-p 8443:8443 \
cleanroom-gateway:4.6.1-33-v4
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
docker run -d --restart unless-stopped --name "MANUAL_NAME" `
-e "ENV_GW_CERT_NAME=ENV_GW_CERT_NAME_VALUE" `
-e ENV_GW_CERT_PASSWORD `
-e "ENV_CARE_CERT_NAME=ENV_CARE_CERT_NAME_VALUE" `
-e ENV_CARE_CERT_PASSWORD `
-e "ENV_SSL_ROUTER_IP=ENV_SSL_ROUTER_IP_VALUE" `
-e "ENV_SSL_ROUTER_PORT=ENV_SSL_ROUTER_PORT_VALUE" `
-e "ENV_KERBEROS_CONFIG_ENABLE=ENV_KERBEROS_CONFIG_ENABLE_MANUAL_VALUE" `
-e "ENV_KERBEROS_DEFAULT_REALM=ENV_KERBEROS_DEFAULT_REALM_MANUAL_VALUE" `
-e "ENV_KERBEROS_DEFAULT_DOMAIN=ENV_KERBEROS_DEFAULT_DOMAIN_MANUAL_VALUE" `
-e "ENV_KERBEROS_CONTROLLER_ADDRESS=ENV_KERBEROS_CONTROLLER_ADDRESS_MANUAL_VALUE" `
-v "MANUAL_REP\config:/etc/ipdiva/:rw" `
-v "MANUAL_REP\graphical_archives:/var/lib/ipdiva/carerecord/archives/:rw" `
-v "MANUAL_REP\ssh_archives:/var/ipdiva/care/sshrecord/:rw" `
-v "MANUAL_REP\log:/var/log/:rw" `
-v "MANUAL_REP\certificates:/opt/certificates/:ro" `
-p 2222:2222 `
-p 3389:3389 `
-p 8443:8443 `
cleanroom-gateway:4.6.1-33-v4

Una vez iniciado el contenedor, elimine estas variables de la sesión:

1
unset ENV_GW_CERT_PASSWORD ENV_CARE_CERT_PASSWORD
1
Remove-Item Env:ENV_GW_CERT_PASSWORD, Env:ENV_CARE_CERT_PASSWORD

Los logs del contenedor pueden consultarse con el siguiente comando:

1
docker logs -f MANUAL_NAME