Installazione dell'HTML5 Gateway Docker¶
Importazione dell'immagine Docker¶
Prima di poter creare un container HTML5 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-html5-4.6.1-33-v2.tgz. Dalla shell, eseguire il comando seguente, adattando il percorso del file TGZ se non si trova nella directory corrente:
1 | |
Verificare quindi che l'importazione sia riuscita con il comando seguente:
1 | |
L'output previsto è il seguente. Se non è così, l'importazione è fallita:
1 2 3 4 5 6 | |
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 | |
Configurazione del container¶
Variabili d'ambiente¶
Variabili per la distribuzione tramite pairing¶
| Nome | Obbligatorio | Valore predefinito | Commento |
|---|---|---|---|
ENV_MEDIATION |
SÌ | Utilizzata per la connessione tramite pairing. Indica il nome DNS o l'indirizzo IP per connettersi all'interfaccia web di una piattaforma CyberElements Bastion. |
|
ENV_TOKEN |
SÌ | 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 |
SÌ | Utilizzata per la connessione con configurazione manuale. Nome del file di certificato per la connessione all'SSL Router. |
|
ENV_GW_CERT_PASSWORD |
SÌ | Utilizzata per la connessione con configurazione manuale. Password del file di certificato per la connessione all'SSL Router. |
|
ENV_SSL_ROUTER_IP |
SÌ | Utilizzata per la connessione con configurazione manuale. Indirizzo IP o nome DNS dell'SSL Router al quale si connetterà l'HTML5 Gateway. |
|
ENV_SSL_ROUTER_PORT |
NO | 443 |
Utilizzata per la connessione con configurazione manuale. Porta dell'SSL Router alla quale si connetterà l'HTML5 Gateway. |
Variabili diverse¶
| Nome | Obbligatorio | Valore predefinito | Commento |
|---|---|---|---|
ENV_DISABLE_RSYSLOG |
NO | false |
Disattivazione del servizio rsyslog.Valori accettati: true o false. |
Volumi¶
| Volume | Commento |
|---|---|
/etc/ipdiva/ |
Volume di configurazione dell'HTML5 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'HTML5 Gateway in caso di configurazione senza pairing. |
/var/log/ |
Volume che contiene i log dell'HTML5 Gateway. |
Porte¶
| Porta | Commento |
|---|---|
8080 |
Porta di ascolto del servizio HTML5. |
Distribuzione dell'HTML5 Gateway Docker¶
Distribuzione con pairing¶
Prerequisiti
Prima di distribuire l'HTML5 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 saranno montati sul file system della macchina host nella posizione HTML5_GATEWAY_REP. All'interno di questa posizione si trovano le sottodirectory seguenti:
- config
- log
È possibile personalizzare le variabili dei comandi seguenti:
| Valore personalizzato | Variabile | Commento |
|---|---|---|
DOCKER_NAME |
Nome del container Docker. | |
HTML5_GATEWAY_REP |
Posizione nel 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. |
Creare l'albero di directory necessario per il montaggio dei volumi sul file system:
1 2 | |
Infine, avviare un nuovo container:
1 2 3 4 5 6 7 8 | |
I log del container possono essere consultati con il comando seguente:
1 | |
Distribuzione manuale¶
Prerequisiti
Prima di distribuire l'HTML5 Gateway Docker, è necessario disporre del certificato richiesto per l'HTML5 Gateway.
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
- 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_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. |
Creare l'albero di directory necessario per il montaggio dei volumi sul file system:
1 2 3 | |
Collocare quindi i certificati dell'HTML5 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 | |
I log del container possono essere consultati con il comando seguente:
1 | |
Configurazione del Mediation Controller¶
Perché il nuovo HTML5 Gateway Docker sia operativo, resta da configurare il server Mediation Controller tramite un accesso SSH o console e con i permessi root.
Quest'ultima configurazione è necessaria per permettere al Mediation Controller di comunicare con il servizio HTML5.
Questa configurazione varia tuttavia in funzione della posizione dell'HTML5 Gateway Docker:
Lo schema generale è il seguente:
flowchart LR
subgraph DMZ
direction TB
HTML5(HTML5 Gateway Docker)
MED(Mediation Controller)
end
subgraph LAN
GW(Edge Gateway)
end
MED -.-> |Connessione al servizio HTML5 ; TCP 8080| HTML5
HTML5 --> |TLS Tunnel| MED
MED ~~~ GW
GW --> |TLS Tunnel| MED
GW ~~~ MED
linkStyle 0 stroke:#d22,color;
In questo contesto sarà necessario aggiungere al file /etc/ipdiva/httpd/commonParameters.extra.conf le informazioni indicate di seguito, oppure creare tale file.
È possibile personalizzare le impostazioni:
| Valore personalizzato | Variabile | Commento |
|---|---|---|
HTML5_URL_DMZ |
URL configurata al momento della dichiarazione dell'HTML5 Gateway nella console di amministrazione. | |
HTML5_IP_DMZ |
Nome DNS o indirizzo IP del server Docker sul quale l'HTML5 Gateway Docker è attivo. | |
HTML5_PORT_DMZ |
Porta pubblicata dal server Docker per l'HTML5 Gateway Docker. |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Lo schema generale è il seguente:
flowchart LR
subgraph DMZ
direction TB
MED(Mediation Controller)
end
subgraph LAN
HTML5(HTML5 Gateway Docker)
GW(Edge Gateway)
end
MED -.- | Connessione al servizio HTML5 ; tramite tunnel TLS| GW -.-> |Connessione al servizio HTML5 ; TCP 8080| HTML5
HTML5 --> |TLS Tunnel| MED
GW --> |TLS Tunnel| MED
linkStyle 0,1 stroke:#d22,color;
In questo contesto sarà necessario aggiungere al file /etc/ipdiva/httpd/commonParameters.extra.conf le informazioni indicate di seguito, oppure creare tale file.
È possibile personalizzare le impostazioni:
| Valore personalizzato | Variabile | Commento |
|---|---|---|
HTML5_URL_LAN |
URL configurata al momento della dichiarazione dell'HTML5 Gateway nella console di amministrazione. | |
GW_NAME_LAN |
Nome dell'Edge Gateway utilizzato per connettersi al servizio HTML5. Il carattere barra verticale a fine riga deve essere conservato. | |
ORGANIZATION_NAME_LAN |
Nome dell'organizzazione alla quale si connette l'Edge Gateway. | |
HTML5_IP_LAN |
Nome DNS o indirizzo IP del server Docker sul quale l'HTML5 Gateway Docker è attivo. | |
HTML5_PORT_LAN |
Porta pubblicata dal server Docker per l'HTML5 Gateway Docker. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
Suggerimento
Questa configurazione può essere utilizzata anche nella situazione seguente, in cui un Edge Gateway Docker e un HTML5 Gateway Docker sono in esecuzione nella stessa rete 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 -.- | Connessione al servizio HTML5 ; tramite tunnel TLS| GW -.-> |Connessione al servizio HTML5 ; TCP 8080 tramite la rete Docker| HTML5
HTML5 --> |TLS Tunnel| MED
GW --> |TLS Tunnel| MED
linkStyle 0,1 stroke:#d22,color;
Esempio
In questo esempio distribuiremo un Edge Gateway e un HTML5 Gateway sullo stesso server Docker.
L'infrastruttura utilizzata per l'esempio è la seguente:
- Server Mediation Controller
- Indirizzo IP web:
10.0.10.10 - Nome dell'organizzazione:
my-organization-name - Token per l'Edge Gateway:
YJ5N-JN05-N5LS-N26H-7JHA-HZ9R-BGJF-MAVH - Token per l'HTML5 Gateway:
ATCW-OMVR-0RY4-LW1M-D9G9-H5VF-WPX5-YCXF - URL di accesso al servizio HTML5:
HTML5_DOCKER
- Indirizzo IP web:
- Server Docker
- Nome della rete Docker:
cyberelements-cleanroom-network - Edge Gateway
- Name:
my-edge-gateway-docker - Percorso radice nel file system:
/opt/my-edge-gateway-docker
- Name:
- HTML5 Gateway
- Name:
my-html5-gateway-docker - Percorso radice nel file system:
/opt/my-html5-gateway-docker
- Name:
- Nome della rete Docker:
Innanzitutto, sul server Docker, è necessario creare l'albero di directory per il montaggio dei volumi Docker:
1 2 3 4 5 6 | |
Creare quindi una rete Docker di tipo bridge affinché i due container possano comunicare tra loro:
1 | |
Avviare poi il container dell'Edge Gateway. Si noti che l'esempio stabilisce una connessione tramite pairing, con accesso al Mediation Controller tramite il suo indirizzo IP e senza verifica del certificato. Inoltre, viene aggiunto il parametro --network per indicare l'utilizzo della rete Docker creata in precedenza:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Avviare poi il container dell'HTML5 Gateway. Si noti che l'esempio stabilisce una connessione tramite pairing, con accesso al Mediation Controller tramite il suo indirizzo IP e senza verifica del certificato. Inoltre, viene aggiunto il parametro --network per indicare l'utilizzo della rete Docker creata in precedenza e, poiché l'accesso al servizio HTML5 avverrà attraverso la rete Docker, non è necessario pubblicare la porta 8080:
1 2 3 4 5 6 7 8 | |
Infine, è necessario configurare il file /etc/ipdiva/httpd/commonParameters.extra.conf del o dei server Mediation Controller. Deve essere aggiunta la sezione seguente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
Prima di applicare la nuova configurazione, occorre verificare che non provochi alcun errore bloccante per il server web Apache2.
A tale scopo, eseguire il comando seguente:
1 | |
Se la risposta è Syntax OK, le modifiche possono essere applicate con il comando sottostante. In caso contrario, verificare la configurazione del proprio file /etc/ipdiva/httpd/commonParameters.extra.conf.
1 | |