Vai al contenuto

Installazione dell'Edge Gateway Docker

Importazione dell'immagine Docker

Prima di poter creare un container Edge Gateway Docker, è necessario importare l'immagine Docker. A tale scopo, aprire una shell dalla quale siano disponibili i comandi Docker, così come il file cleanroom-gateway-4.6.1-33-v4.tgz. Dalla shell, eseguire il comando seguente, adattando il percorso del file TGZ se non si trova nella directory corrente:

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

Verificare quindi che l'importazione sia riuscita con il comando seguente:

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

Il risultato atteso è il seguente (l'identificativo SHA256 può variare in funzione del sistema operativo su cui è installato Docker; gli esempi provengono da Debian 13). In caso contrario, l'importazione è fallita:

1
2
3
4
5
6
[
    {
        "Id": "sha256:c63645a09181bc3b83958bedf2eb3d7ea5fbbc2526126edb660a519b93338974",
        "RepoTags": [
            "cleanroom-gateway:4.6.1-33-v4"
        ],
Risultato 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"
        }
    }
]

Configurazione del container

Variabili d'ambiente

Variabili per la distribuzione tramite pairing

Nome Obbligatorio Valore predefinito Commento
ENV_MEDIATION Utilizzata per la connessione tramite pairing.
Nome DNS o indirizzo IP di connessione all'interfaccia web di una piattaforma CyberElements Bastion.
ENV_TOKEN Utilizzata per la connessione tramite pairing.
Indica il pairing token da utilizzare per la connessione al Mediation Controller.
ENV_NO_CHECK_CERT NO false Utilizzata per le connessioni tramite pairing.
Disabilita o no la verifica del certificato web del Mediation Controller; utile con CyberElements Bastion quando l'accesso avviene tramite indirizzo IP oppure quando il certificato web non è riconosciuto dalle autorità di certificazione pubbliche predefinite.
Valori accettati: true o false.

Variabili per la distribuzione manuale

Nome Obbligatorio Valore predefinito Commento
ENV_GW_CERT_NAME Utilizzata per la connessione con configurazione manuale.
Nome del file di certificato per la connessione all'SSL Router.
ENV_GW_CERT_PASSWORD Utilizzata per la connessione con configurazione manuale.
Password del file di certificato per la connessione all'SSL Router.
ENV_CARE_CERT_NAME NO Valore di ENV_GW_CERT_NAME Utilizzata per la connessione con configurazione manuale.
Nome del file di certificato del servizio di registrazione.
ENV_CARE_CERT_PASSWORD NO Valore di ENV_GW_CERT_PASSWORD Utilizzata per la connessione con configurazione manuale.
Password del file di certificato del servizio di registrazione.
ENV_SSL_ROUTER_IP Utilizzata per la connessione con configurazione manuale.
Indirizzo IP o nome DNS dell'SSL Router al quale si connetterà l'Edge Gateway.
ENV_SSL_ROUTER_PORT NO 443 Utilizzata per la connessione con configurazione manuale.
Porta dell'SSL Router alla quale si connetterà l'Edge Gateway.

Variabili diverse

Nome Obbligatorio Valore predefinito Commento
ENV_DISABLE_RSYSLOG NO false Disattivazione del servizio rsyslog.
Valori accettati: true o false.
ENV_KERBEROS_CONFIG_ENABLE NO false Abilita la configurazione Kerberos per consentire alle applicazioni RDP di autenticarsi in modalità senza agente tramite Kerberos.
Valori accettati: true o false.
Se false, le altre variabili Kerberos vengono ignorate.
ENV_KERBEROS_DEFAULT_REALM
(se la configurazione Kerberos è abilitata)
Nome del realm Kerberos.
ENV_KERBEROS_DEFAULT_DOMAIN
(se la configurazione Kerberos è abilitata)
Nome del dominio Kerberos.
ENV_KERBEROS_CONTROLLER_ADDRESS
(se la configurazione Kerberos è abilitata)
Indirizzo di connessione al controller Kerberos.

Volumi

Volume Commento
/etc/ipdiva/ Volume di configurazione dell'Edge Gateway.
Si consiglia di montarlo su un volume denominato o sul file system della macchina host.
/opt/certificates/ Volume che contiene il o i certificati dell'Edge Gateway in una configurazione senza pairing.
/var/lib/ipdiva/carerecord/archives/ Volume che contiene gli archivi grafici.
Si consiglia di montarlo su un volume denominato o sul file system della macchina host.
/var/ipdiva/care/sshrecord/ Volume che contiene gli archivi SSH.
Si consiglia di montarlo su un volume denominato o sul file system della macchina host.
/var/log/ Volume che contiene i log dell'Edge Gateway.

Porte

Porta Commento
2222 (o qualsiasi altra porta disponibile scelta dall'amministratore) Porta di ascolto del servizio di accesso diretto SSH/SFTP.
3389 Porta di ascolto del servizio di accesso diretto RDP.
8443 Porta di ascolto del servizio di registrazione, da esporre quando si utilizza l'agente di registrazione Windows.

Distribuzione dell'Edge Gateway Docker

Distribuzione con pairing

Prerequisiti

Prima di distribuire l'Edge Gateway Docker, è necessario ottenere un pairing token.

La distribuzione descritta di seguito utilizzerà tutti i volumi disponibili (tranne /opt/certificates/, che non è utile in questo contesto) ed esporrà tutte le porte.
I volumi verranno montati sul file system della macchina host nella posizione EDGE_GATEWAY_REP. All'interno di questa posizione si trovano le sottodirectory seguenti:

  • config
  • graphical_archives
  • ssh_archives
  • log

È possibile personalizzare le variabili dei comandi seguenti:

Valore personalizzato Variabile Commento
DOCKER_NAME Nome del container Docker.
EDGE_GATEWAY_REP Posizione sul file system in cui montare i volumi.
ENV_MEDIATION_VALUE Valore della variabile d'ambiente ENV_MEDIATION.
ENV_TOKEN_VALUE Valore della variabile d'ambiente ENV_TOKEN.
ENV_NO_CHECK_CERT_VALUE Valore della variabile d'ambiente ENV_NO_CHECK_CERT.
ENV_KERBEROS_CONFIG_ENABLE_VALUE Valore della variabile d'ambiente ENV_KERBEROS_CONFIG_ENABLE.
ENV_KERBEROS_DEFAULT_REALM_VALUE Valore della variabile d'ambiente ENV_KERBEROS_DEFAULT_REALM.
ENV_KERBEROS_DEFAULT_DOMAIN_VALUE Valore della variabile d'ambiente ENV_KERBEROS_DEFAULT_DOMAIN.
ENV_KERBEROS_CONTROLLER_ADDRESS_VALUE Valore della variabile d'ambiente ENV_KERBEROS_CONTROLLER_ADDRESS.

Creare l'albero di directory necessario per il montaggio dei volumi sul file system:

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

Infine, avviare un nuovo container:

 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

I log del container possono essere consultati con il comando seguente:

1
docker logs -f DOCKER_NAME

Distribuzione manuale

Prerequisiti

Prima di distribuire l'Edge Gateway Docker, è necessario disporre dei certificati richiesti per l'Edge Gateway e per il servizio di registrazione.

La distribuzione descritta di seguito utilizzerà tutti i volumi disponibili ed esporrà tutte le porte.
I volumi verranno montati sul file system della macchina host nella posizione MANUAL_REP. All'interno di questa posizione si trovano le sottodirectory seguenti:

  • config
  • graphical_archives
  • ssh_archives
  • log
  • certificates

È possibile personalizzare le variabili dei comandi seguenti:

Valore personalizzato Variabile Commento
MANUAL_NAME Nome del container Docker.
MANUAL_REP Posizione sul file system in cui montare i volumi.
ENV_GW_CERT_NAME_VALUE Valore della variabile d'ambiente ENV_GW_CERT_NAME.
ENV_GW_CERT_PASSWORD_VALUE Valore della variabile d'ambiente ENV_GW_CERT_PASSWORD.
ENV_CARE_CERT_NAME_VALUE Valore della variabile d'ambiente ENV_CARE_CERT_NAME.
ENV_CARE_CERT_PASSWORD_VALUE Valore della variabile d'ambiente ENV_CARE_CERT_PASSWORD.
ENV_SSL_ROUTER_IP_VALUE Valore della variabile d'ambiente ENV_SSL_ROUTER_IP.
ENV_SSL_ROUTER_PORT_VALUE Valore della variabile d'ambiente ENV_SSL_ROUTER_PORT.
ENV_KERBEROS_CONFIG_ENABLE_MANUAL_VALUE Valore della variabile d'ambiente ENV_KERBEROS_CONFIG_ENABLE.
ENV_KERBEROS_DEFAULT_REALM_MANUAL_VALUE Valore della variabile d'ambiente ENV_KERBEROS_DEFAULT_REALM.
ENV_KERBEROS_DEFAULT_DOMAIN_MANUAL_VALUE Valore della variabile d'ambiente ENV_KERBEROS_DEFAULT_DOMAIN.
ENV_KERBEROS_CONTROLLER_ADDRESS_MANUAL_VALUE Valore della variabile d'ambiente ENV_KERBEROS_CONTROLLER_ADDRESS.

Creare l'albero di directory necessario per il montaggio dei volumi sul file system:

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

Collocare quindi i certificati dell'Edge Gateway e del servizio di registrazione in MANUAL_REP/certificates.

Infine, avviare un nuovo container:

 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="ENV_GW_CERT_PASSWORD_VALUE" \
-e ENV_CARE_CERT_NAME="ENV_CARE_CERT_NAME_VALUE" \
-e ENV_CARE_CERT_PASSWORD="ENV_CARE_CERT_PASSWORD_VALUE" \
-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

I log del container possono essere consultati con il comando seguente:

1
docker logs -f MANUAL_NAME