Bastion+ avec URL

Description d’une installation type Bastion+ en mode WebSocket, 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.tld

    • Admin : admin.domain.local

    • Relais : relayws.domain.tld

  • Certificats SSL : fichiers .pem (Cert + Key) pour Traefik et Traefik du Relayws.

  • Accès Images : compte valide sur le registre Docker Reemo.

Architecture

../../_static/images/infra/bastion_ws_url.png

Présentation de l’infrastructure d’une installation Bastion+ avec URL Dédiée

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

relayws_manager1

4 vCPU

4 Go

50G 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

INFRA -> RELAY

TCP

192.168.10.66

1024:65535

192.168.10.59

443,8443

HTTPS

PROVISION -> INFRA

TCP

192.168.10.47

1024:65535

192.168.10.66

8443,8446

HTTPS

PROVISION -> RELAY

TCP

192.168.10.47

1024:65535

192.168.10.59

443

HTTPS

INTERNET -> INFRA

TCP

WAN

1024:65535

192.168.10.66

443

HTTPS

INTERNET -> RELAY

TCP

WAN

1024:65535

192.168.10.59

443

HTTPS

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

RELAY -> REGISTRY

TCP

192.168.10.59

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"
        relayws: "relayws1"
    INIT_RELAYWS:
      relayws1:
        type: "WS_SWARM"
        url: "relayws.domain.tld"
        ip:
          - "192.168.10.59"
    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"
  hosts:
    infra_manager1:
      ansible_host: "192.168.10.66"
provision:
  children:
    provision1_manager:
      hosts:
        provision1_manager1:
          ansible_host: "192.168.10.47"
relayws_manager:
  vars:
    TRAEFIK_SSL_CERTS:
      - cert_file: "/local/path/ssl/cert.pem"
        key_file: "/local/path/ssl/key.pem"
  hosts:
    relayws_manager1:
      ansible_host: "192.168.10.59"

Fichier Playbook Ansible

reemo-infra.yml

- name: Installation Reemo Infra Server
  hosts: infra_manager
  gather_facts: "True"
  roles:
    - role: reemo-infra
      become: yes

- name: Install relayws
  hosts: relayws_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 :

  1. Sauvegarder le fichier init.json dans un emplacement sécurisé (gestionnaire de mots de passe, coffre-fort, backup chiffré hors-ligne).

  2. 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.

Guides d’utilisation

widgets
Configuration Conteneurs
Paramétrage des accès
container.html