Bastion+ en mode WebRTC¶
Description d’une installation type Bastion+ en mode WebRTC, permettant une rupture protocolaire et un accès à un environnement de travail
Prérequis¶
Licence & Ansible : clé de licence API Reemo et accès au rôle
reemo-infra.Résolutions DNS :
Portail :
url.domain.tldAdmin :
admin.domain.local
Certificats SSL : fichiers
.pem(Cert + Key) pour Traefik.Accès Images : compte valide sur le registre Docker Reemo.
Architecture¶
Présentation de l’infrastructure d’une installation Bastion+ en mode WebRTC¶
Sizing (10 sessions simultanées)¶
Machine |
CPU |
RAM |
Disque |
|---|---|---|---|
infra_manager1 |
4 vCPU |
8 Go |
100G SSD |
provision1_manager1 |
10 vCPU |
10 Go |
100G SSD |
Matrice des flux¶
DESCRIPTION |
TRANSPORT |
SOURCE IP |
SOURCE PORT |
DESTINATION IP |
DESTINATION PORT |
SERVICES |
|---|---|---|---|---|---|---|
INFRA -> PROVISION |
TCP |
192.168.10.66 |
1024:65535 |
192.168.10.47 |
8443 |
HTTPS |
PROVISION -> INFRA |
TCP |
192.168.10.47 |
1024:65535 |
192.168.10.66 |
8443,8446 |
HTTPS |
PROVISION -> INFRA |
UDP/TCP |
192.168.10.47 |
1024:65535 |
192.168.10.66 |
58200 |
STUN/TURN |
INTERNET -> INFRA |
TCP |
WAN |
1024:65535 |
192.168.10.66 |
443 |
HTTPS |
INTERNET -> INFRA |
UDP/TCP |
WAN |
1024:65535 |
192.168.10.66 |
58200 |
STUN/TURN |
INFRA -> REGISTRY |
TCP |
192.168.10.66 |
1024:65535 |
registry.reemo.io, registry-auth.reemo.io |
443 |
HTTPS |
PROVISION -> REGISTRY |
TCP |
192.168.10.47 |
1024:65535 |
registry.reemo.io, registry-auth.reemo.io |
443 |
HTTPS |
Fichier inventaire Ansible¶
all:
vars:
API_LICENSE: "< LICENSING_KEY >"
REGISTRY_URL: "registry.reemo.io"
REGISTRY_ENV: "reemoinfra"
REGISTRY_USERNAME: "< username >"
REGISTRY_PASSWORD: "< password >"
infra_manager:
vars:
TRAEFIK_SSL_CERTS:
- cert_file: "/local/path/ssl/cert.pem"
key_file: "/local/path/ssl/key.pem"
PORTAL_URL: "url.domain.tld"
PROVISION_SIGNAL_IP:
- ip: "192.168.10.66"
INIT_PROVISION:
provision1:
type: "SWARM"
ip:
- "192.168.10.47"
PORTALADMIN_URL: "admin.domain.local"
PORTALADMIN_URL_RESTRICT_IP: "10.3.1.2,10.3.2.0/24"
PORTALADMIN_TYPE: "instadmin"
PORTAL_TYPE: "orguser"
# credential
CREDENTIAL_ENABLED: true
CREDENTIALPORTAL_ENABLED: true
# vault
VAULT_ENABLED: true
VAULT_INIT_FILE: "/path/file/init.crypt"
TURN_ENABLED: true
TURN_OVERRIDE: true
hosts:
infra_manager1:
ansible_host: "192.168.10.66"
provision:
children:
provision1_manager:
hosts:
provision1_manager1:
ansible_host: "192.168.10.47"
Fichier Playbook Ansible¶
reemo-infra.yml
- name: Installation Reemo Infra Server
hosts: infra_manager
gather_facts: "True"
roles:
- role: reemo-infra
become: yes
- name: Installation Provision
hosts: provision
gather_facts: "True"
roles:
- role: reemo-infra
become: yes
Installation¶
# Déploiement initial — à n'exécuter qu'une seule fois
ansible-playbook -i inventory.yml playbooks/reemo-infra.yml --extra-vars "INIT_DB=true" --extra-vars "INSTALL_DOCKER=true"
Sécurisation du Vault (ansible-vault)¶
À la fin du premier déploiement, vous devez immédiatement :
Sauvegarder le fichier
init.jsondans un emplacement sécurisé (gestionnaire de mots de passe, coffre-fort, backup chiffré hors-ligne).Chiffrer le fichier local avec
ansible-vault.
Chiffrement initial¶
Immédiatement après le premier déploiement, chiffrez le fichier :
ansible-vault encrypt playbooks/secrets/reemo/vault/init.json
Ansible demande une passphrase forte (à sauvegarder aussi dans votre gestionnaire de mots de passe).
Note
La passphrase est différente du contenu de init.json. Sauvegardez les deux : le contenu de init.json et la passphrase ansible-vault.
Pour relancer la commande ansible-playbook, il faudra ensuite renseigner le mot de passe de ce fichier :
ansible-playbook -i inventory.yml playbooks/reemo-infra.yml --ask-vault-pass
Important
Si vous utilisez des certificats SSL autosignés (environnement de test uniquement),
fermez Chrome complètement, puis lancez-le avec l’option --ignore-certificate-errors :
"C:\Program Files\Google\Chrome\Application\chrome.exe" --ignore-certificate-errors
Ajustez le chemin selon votre installation.