• Siphonight released this 2026-07-05 14:21:30 +02:00 | 1 commits to main since this release

    Changelog

    [3.5.0] — 2026-07-05

    Nouvelles fonctionnalités

    • Transfert de fichiers non-interactif : deux commandes SSH pour transférer des fichiers à travers le bastion sans stockage intermédiaire :
      • push_file <server> <dest_path> — envoyer stdin vers un serveur distant en une étape
      • retrieve_file <server> <src_path> — récupérer un fichier distant sur stdout
    • Contrôle des droits de transfert : nouveau fichier transfer_rights.txt permettant aux administrateurs de restreindre les transferts par serveur et par utilisateur. Support du wildcard *.
    • Journalisation des transferts : tous les transferts sont horodatés et logués dans /var/log/monosphere/transfers.log (user, serveur, fichier, taille, statut).
    • Consultation des logs depuis le menu admin : nouvelle option logs accessible à tous les administrateurs.
    • Nouveau droit administrateur : transfercontrol_admins pour gérer les droits de transfert.

    Corrections de bugs

    • admin_menu.sh — Récursion infinie dans sessions_viewer : la fonction s'appelait récursivement sans jamais revenir au menu parent, rendant le visionnage des sessions inutilisable. Réécrite avec des boucles while/break/return propres.
    • admin_menu.sh — Filtre utilisateur cassé : typos user_map → users_map et user_counter → users_counter rendant la fonction de filtrage inopérante.
    • admin_menu.sh — Menu vide 0) : les lignes sans description (champ 2 vide) ne sont plus affichées comme des options.
    • SCP : guillemets littéraux dans le chemin distant : les \"${path}\" étaient passés comme caractères littéraux à SCP, le serveur distant cherchait des fichiers nommés avec des guillemets.
    • Permission du log de transfert : /var/log/monosphere/ créé avec les bons droits dans le Dockerfile et l'entrypoint.
    • Destination de download : validation du nom : basename() appliqué sur le nom de destination pour éviter les fuites de chemin.
    • Délégation SSH_ORIGINAL_COMMAND : les commandes non-interactives (push_file, retrieve_file) fonctionnent désormais aussi pour les administrateurs (bastionadmin), pas seulement les utilisateurs (bastionuser).

    Améliorations

    • Refactoring de l'authentification cible : mutualisation de la logique d'auth (key/password/noauth) dans scp_to_target() et ssh_to_target_cat().
    • Défense en profondeur : droits de transfert vérifiés pour push_file ET retrieve_file.
    • Dockerfile : création du répertoire de logs à la construction avec les permissions correctes.
    • Robustesse : initialisation défensive du fichier de log dans server_menu.sh.

    Documentation

    • README : sections complètes pour le transfert de fichiers, la gestion des droits de transfert, les volumes /var/log/monosphere.
    • README : table des matières mise à jour.
    • README : exemples concrets d'utilisation (push de conf, backup tar, pull de logs).
    • CHANGELOG.md : fichier créé.

    Fichiers modifiés

    Fichier Changements
    server_menu.sh + push_file/retrieve_file/check_transfer_rights/scp_to_target/ssh_to_target_cat ; retrait du menu interactif et de stage_file
    admin_menu.sh + délégation SSH_ORIGINAL_COMMAND, + transfer_rights_control ; correction récursion/typos
    entrypoint.sh Création des repertoires et fichiers de logs avec permissions
    Dockerfile Version bump 3.4.11 → 3.5.0, création du log à la construction
    README.md Nouvelle doc transfert, droits, volumes, sommaire
    admin_rights.txt Ajout du droit transfercontrol_admins
    transfer_rights.txt Nouveau fichier (créé)
    sshd_config Renforcement des paramètres de sécurité

    Notes de version

    • Changements non cassants : les fichiers de configuration existants (authorized_servers.txt, bastion_users.txt, admin_rights.txt) restent compatibles sans modification.
    • Le dossier /opt/public/transfer et stage_file ont été supprimés (obsolètes depuis push_file).
    • Version taguée : monosphere-bastion-3.5.0
    Downloads