Instalarea HTML5 Gateway Docker¶
Importarea imaginii Docker¶
Înainte de a putea crea un container HTML5 Gateway Docker, trebuie să importați imaginea Docker. În acest scop, deschideți un shell din care aveți la dispoziție comenzile Docker, precum și fișierul cleanroom-html5-4.6.1-33-v2.tgz. Din shell, executați următoarea comandă, ajustând calea fișierului TGZ dacă acesta nu se află în directorul curent:
1 | |
Apoi verificați că importul s-a realizat cu succes prin comanda următoare:
1 | |
Rezultatul așteptat este următorul. Dacă nu este cazul, atunci importul a eșuat:
1 2 3 4 5 6 | |
Rezultat complet
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 | |
Configurarea containerului¶
Variabile de mediu¶
Variabile pentru implementarea prin pairing¶
| Nume | Obligatoriu | Valoare implicită | Comentariu |
|---|---|---|---|
ENV_MEDIATION |
DA | Utilizat pentru conexiunea prin pairing. Indică numele DNS sau adresa IP pentru conectarea la interfața web a unei platforme CyberElements Bastion. |
|
ENV_TOKEN |
DA | Se utilizează pentru conexiunea prin pairing. Indică tokenul de pairing care trebuie utilizat pentru conectarea la Mediation Controller. |
|
ENV_NO_CHECK_CERT |
NU | false |
Utilizat pentru conexiunile prin pairing. Dezactivează sau nu verificarea certificatului web al Mediation Controller; util cu CyberElements Bastion atunci când accesul se face prin adresă IP sau când certificatul web nu este un certificat recunoscut de autoritățile de certificare publice implicite. Valori acceptate: true sau false. |
Variabile pentru implementarea manuală¶
| Nume | Obligatoriu | Valoare implicită | Comentariu |
|---|---|---|---|
ENV_GW_CERT_NAME |
DA | Se utilizează pentru conexiunea cu configurare manuală. Numele fișierului de certificat pentru conectarea la routerul SSL. |
|
ENV_GW_CERT_PASSWORD |
DA | Se utilizează pentru conexiunea cu configurare manuală. Parola fișierului de certificat pentru conectarea la routerul SSL. |
|
ENV_SSL_ROUTER_IP |
DA | Utilizat pentru conexiunea cu configurare manuală. Adresa IP sau numele DNS al SSL Router la care se va conecta HTML5 Gateway. |
|
ENV_SSL_ROUTER_PORT |
NU | 443 |
Utilizat pentru conexiunea cu configurare manuală. Portul SSL Router la care se va conecta HTML5 Gateway. |
Variabile diverse¶
| Nume | Obligatoriu | Valoare implicită | Comentariu |
|---|---|---|---|
ENV_DISABLE_RSYSLOG |
NU | false |
Dezactivarea serviciului rsyslog.Valori acceptate: true sau false. |
Volume¶
| Volum | Comentariu |
|---|---|
/etc/ipdiva/ |
Volumul de configurare al HTML5 Gateway. Recomandăm montarea sa pe un volum denumit sau pe sistemul de fișiere al mașinii gazdă. |
/opt/certificates/ |
Volumul care conține certificatul sau certificatele HTML5 Gateway în cazul unei configurări fără pairing. |
/var/log/ |
Volumul care conține logurile HTML5 Gateway. |
Porturi¶
| Port | Comentariu |
|---|---|
8080 |
Portul de ascultare al serviciului HTML5. |
Implementarea HTML5 Gateway Docker¶
Implementare cu pairing¶
Cerințe preliminare
Înainte de a implementa HTML5 Gateway Docker, trebuie să obțineți un token de pairing.
Implementarea descrisă mai jos va utiliza toate volumele disponibile (cu excepția /opt/certificates/, care nu este util în acest context) și va expune toate porturile.
Volumele vor fi montate pe sistemul de fișiere al mașinii gazdă în locația HTML5_GATEWAY_REP. În interiorul acestei locații se află următoarele subdirectoare:
- config
- log
Puteți personaliza variabilele din comenzile următoare:
| Valoare personalizată | Variabilă | Comentariu |
|---|---|---|
DOCKER_NAME |
Numele containerului Docker. | |
HTML5_GATEWAY_REP |
Locația din sistemul de fișiere în care se montează volumele. | |
ENV_MEDIATION_VALUE |
Valoarea variabilei de mediu ENV_MEDIATION. |
|
ENV_TOKEN_VALUE |
Valoarea variabilei de mediu ENV_TOKEN. |
|
ENV_NO_CHECK_CERT_VALUE |
Valoarea variabilei de mediu ENV_NO_CHECK_CERT. |
Creați arborele de directoare necesar pentru montarea volumelor pe sistemul de fișiere:
1 2 | |
Și, în sfârșit, porniți un nou container:
1 2 3 4 5 6 7 8 | |
Logurile containerului pot fi consultate cu comanda următoare:
1 | |
Implementare manuală¶
Cerințe preliminare
Înainte de a implementa HTML5 Gateway Docker, trebuie să dispuneți de certificatul necesar pentru HTML5 Gateway.
Implementarea descrisă mai jos va utiliza toate volumele disponibile și va expune toate porturile.
Volumele vor fi montate pe sistemul de fișiere al mașinii gazdă, în locația MANUAL_REP. În interiorul acestei locații se află următoarele subdirectoare:
- config
- log
- certificates
Puteți personaliza variabilele din comenzile următoare:
| Valoare personalizată | Variabilă | Comentariu |
|---|---|---|
MANUAL_NAME |
Numele containerului Docker. | |
MANUAL_REP |
Locația din sistemul de fișiere în care se montează volumele. | |
ENV_GW_CERT_NAME_VALUE |
Valoarea variabilei de mediu ENV_GW_CERT_NAME. |
|
ENV_GW_CERT_PASSWORD_VALUE |
Valoarea variabilei de mediu ENV_GW_CERT_PASSWORD. |
|
ENV_SSL_ROUTER_IP_VALUE |
Valoarea variabilei de mediu ENV_SSL_ROUTER_IP. |
|
ENV_SSL_ROUTER_PORT_VALUE |
Valoarea variabilei de mediu ENV_SSL_ROUTER_PORT. |
Creați arborele de directoare necesar pentru montarea volumelor pe sistemul de fișiere:
1 2 3 | |
Apoi plasați certificatele HTML5 Gateway și ale serviciului de înregistrare în MANUAL_REP/certificates.
În sfârșit, porniți un nou container:
1 2 3 4 5 6 7 8 9 10 | |
Logurile containerului pot fi consultate cu comanda următoare:
1 | |
Configurarea Mediation Controller¶
Pentru ca noul HTML5 Gateway Docker să fie operațional, mai rămâne să configurați serverul Mediation Controller printr-un acces SSH sau consolă și cu permisiuni root.
Această ultimă setare este necesară pentru a permite Mediation Controller să comunice cu serviciul HTML5.
Totuși, această configurare variază în funcție de locația HTML5 Gateway Docker:
Schema generală este următoarea:
flowchart LR
subgraph DMZ
direction TB
HTML5(HTML5 Gateway Docker)
MED(Mediation Controller)
end
subgraph LAN
GW(Edge Gateway)
end
MED -.-> |Conexiune la serviciul HTML5 ; TCP 8080| HTML5
HTML5 --> |TLS Tunnel| MED
MED ~~~ GW
GW --> |TLS Tunnel| MED
GW ~~~ MED
linkStyle 0 stroke:#d22,color;
În acest context, va fi necesar să adăugați în fișierul /etc/ipdiva/httpd/commonParameters.extra.conf informațiile indicate mai jos sau să îl creați.
Este posibilă personalizarea setărilor:
| Valoare personalizată | Variabilă | Comentariu |
|---|---|---|
HTML5_URL_DMZ |
URL configurat la declararea HTML5 Gateway în consola de administrare. | |
HTML5_IP_DMZ |
Numele DNS sau adresa IP a serverului Docker pe care este activ HTML5 Gateway Docker. | |
HTML5_PORT_DMZ |
Portul publicat de serverul Docker pentru HTML5 Gateway Docker. |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Schema generală este următoarea:
flowchart LR
subgraph DMZ
direction TB
MED(Mediation Controller)
end
subgraph LAN
HTML5(HTML5 Gateway Docker)
GW(Edge Gateway)
end
MED -.- | Conexiune la serviciul HTML5 ; prin tunelul TLS| GW -.-> |Conexiune la serviciul HTML5 ; TCP 8080| HTML5
HTML5 --> |TLS Tunnel| MED
GW --> |TLS Tunnel| MED
linkStyle 0,1 stroke:#d22,color;
În acest context, va fi necesar să adăugați în fișierul /etc/ipdiva/httpd/commonParameters.extra.conf informațiile indicate mai jos sau să îl creați.
Este posibilă personalizarea setărilor:
| Valoare personalizată | Variabilă | Comentariu |
|---|---|---|
HTML5_URL_LAN |
URL configurat la declararea HTML5 Gateway în consola de administrare. | |
GW_NAME_LAN |
Numele Edge Gateway utilizat pentru conectarea la serviciul HTML5. Caracterul bară verticală de la sfârșitul liniei trebuie păstrat. | |
ORGANIZATION_NAME_LAN |
Numele organizației la care se conectează Edge Gateway. | |
HTML5_IP_LAN |
Numele DNS sau adresa IP a serverului Docker pe care este activ HTML5 Gateway Docker. | |
HTML5_PORT_LAN |
Portul publicat de serverul Docker pentru HTML5 Gateway Docker. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
Sfat
Această configurare poate fi utilizată și în situația următoare, în care un Edge Gateway Docker și un HTML5 Gateway Docker rulează în aceeași rețea 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 -.- | Conexiune la serviciul HTML5 ; prin tunelul TLS| GW -.-> |Conexiune la serviciul HTML5 ; TCP 8080 prin rețeaua Docker| HTML5
HTML5 --> |TLS Tunnel| MED
GW --> |TLS Tunnel| MED
linkStyle 0,1 stroke:#d22,color;
Exemplu
În acest exemplu, vom implementa un Edge Gateway și un HTML5 Gateway pe același server Docker.
Infrastructura utilizată pentru exemplu este următoarea:
- Serverul Mediation Controller
- Adresa IP web:
10.0.10.10 - Numele organizației:
my-organization-name - Token pentru Edge Gateway:
YJ5N-JN05-N5LS-N26H-7JHA-HZ9R-BGJF-MAVH - Token pentru HTML5 Gateway:
ATCW-OMVR-0RY4-LW1M-D9G9-H5VF-WPX5-YCXF - URL de acces la serviciul HTML5:
HTML5_DOCKER
- Adresa IP web:
- Server Docker
- Numele rețelei Docker:
cyberelements-cleanroom-network - Edge Gateway
- Nume:
my-edge-gateway-docker - Locația rădăcină în sistemul de fișiere:
/opt/my-edge-gateway-docker
- Nume:
- HTML5 Gateway
- Nume:
my-html5-gateway-docker - Locația rădăcină în sistemul de fișiere:
/opt/my-html5-gateway-docker
- Nume:
- Numele rețelei Docker:
În primul rând, pe serverul Docker, trebuie să creați structura de directoare pentru montarea volumelor Docker:
1 2 3 4 5 6 | |
Apoi creați o rețea Docker de tip bridge, pentru ca cele două containere să poată comunica între ele:
1 | |
Porniți în continuare containerul Edge Gateway. Rețineți că exemplul stabilește o conexiune prin pairing, cu acces la Mediation Controller prin adresa sa IP și fără verificarea certificatului. În plus, parametrul --network este adăugat pentru a indica utilizarea rețelei Docker create anterior:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Porniți în continuare containerul HTML5 Gateway. Rețineți că exemplul stabilește o conexiune prin pairing, cu acces la Mediation Controller prin adresa sa IP și fără verificarea certificatului. În plus, parametrul --network este adăugat pentru a indica utilizarea rețelei Docker create anterior și, deoarece accesul la serviciul HTML5 se va face prin rețeaua Docker, publicarea portului 8080 nu este necesară:
1 2 3 4 5 6 7 8 | |
În sfârșit, trebuie configurat fișierul /etc/ipdiva/httpd/commonParameters.extra.conf de pe serverul sau serverele Mediation Controller. Trebuie adăugată secțiunea următoare:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
Înainte de a aplica noua configurare, trebuie să verificați dacă aceasta nu provoacă erori blocante pentru serverul web Apache2.
Pentru aceasta, executați următoarea comandă:
1 | |
Dacă răspunsul este Syntax OK, atunci modificările pot fi aplicate cu comanda de mai jos. În caz contrar, verificați configurarea fișierului dumneavoastră /etc/ipdiva/httpd/commonParameters.extra.conf.
1 | |