Aller au contenu

Configuration plugin Remote

Présentation

Le plugin Remote permet a vos opérateurs de prendre la main a distance : il ouvre, surveille et referme des tunnels chiffrés pour prise de contrôle à distance et transfert de fichiers ciblés.
Conçu pour AMQP-over-TLS, il traverse sans douleur les pare-feux sortants et réutilise vos identifiants Ident/Token existants.

Fonction Description
Tunneling Création de tunnels TCP chiffrés de bout en bout pilotés par messages (création, fermeture).
Gestion de clés Publication automatique de la clé SSH-ED25519 publique vers la plateforme, rotation à chaud.
Heartbeat Message alive périodique pour supervision et bascule d’état.
Historique Journal CSV local des sessions (UID, IP, durée).
Garbage Collector Nettoyage automatique des sessions inactives ou orphelines.

Détails de configuration

/etc/alemca/config.yaml
remote:
  enabled: true                    # Désactive entièrement le plugin si false
  server_id: "fr04"                # Datacenter cible sur la plateforme (pour routage interne)
  health_check: 600                # Intervalle en secondes entre deux messages 'alive'
  max_session: 10                  # Nombre max de tunnels simultanés
  key_path: "/etc/alemca/key.pem"  # Clé privée ED25519
  history_path: "/etc/alemca/history.csv"  # Log local append-only

Explication des sections

  • enabled : Coupe ou active complètement le plugin Remote.
  • server_id : Abréviation du nœud de sortie plateforme ; utilisez-la pour regrouper logiquement vos sites (ex. fr04, us-west). Pour le moment uniquement fr04 est supporté.
  • health_check : Périodicité (en s) des messages alive.
  • max_session : Limite maximale de tunnels simultanés. Si la limite est atteinte, le plugin attendra la fermeture d’un tunnel avant d’en ouvrir un nouveau.
  • key_path : Emplacement de la clé privée utilisée pour signer et chiffrer les tunnels. Le plugin génère la clé publique et la pousse côté plateforme.
  • history_path : Fichier CSV local qui enregistre : horodatage de début, identifiant de session, IP distante, durée, code de fermeture.

Cycle de vie d’une session

  1. Demande : la console publie un message sur <topic>.session avec la clé de session.
  2. Établissement : l’agent crée un tunnel.Tunnel, signe sa clé publique, et répond via la queue dédiée.
  3. Transfert : tout flux (SSH, RDP, SOCKS, etc.) circule dans le tunnel chiffré (ED25519 + curve25519).
  4. Fermeture : la console ou l’agent publie un message sur <topic>.close.
  5. Garbage Collector : au-delà de 30 min d’inactivité ou de perte d’ACK, la session est détruite côté agent.