-
monosphere-bastion-3.5.0 Stable
released this
2026-07-05 14:21:30 +02:00 | 1 commits to main since this releaseChangelog
[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 étaperetrieve_file <server> <src_path>— récupérer un fichier distant sur stdout
- Contrôle des droits de transfert : nouveau fichier
transfer_rights.txtpermettant 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
logsaccessible à tous les administrateurs. - Nouveau droit administrateur :
transfercontrol_adminspour gérer les droits de transfert.
Corrections de bugs
admin_menu.sh— Récursion infinie danssessions_viewer: la fonction s'appelait récursivement sans jamais revenir au menu parent, rendant le visionnage des sessions inutilisable. Réécrite avec des boucleswhile/break/returnpropres.admin_menu.sh— Filtre utilisateur cassé : typosuser_map→users_mapetuser_counter→users_counterrendant la fonction de filtrage inopérante.admin_menu.sh— Menu vide0): 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()etssh_to_target_cat(). - Défense en profondeur : droits de transfert vérifiés pour
push_fileETretrieve_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 destage_fileadmin_menu.sh+ délégation SSH_ORIGINAL_COMMAND, + transfer_rights_control; correction récursion/typosentrypoint.shCréation des repertoires et fichiers de logs avec permissions DockerfileVersion bump 3.4.11 → 3.5.0, création du log à la construction README.mdNouvelle doc transfert, droits, volumes, sommaire admin_rights.txtAjout du droit transfercontrol_adminstransfer_rights.txtNouveau fichier (créé) sshd_configRenforcement 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/transferetstage_fileont été supprimés (obsolètes depuispush_file). - Version taguée :
monosphere-bastion-3.5.0
Downloads
- Transfert de fichiers non-interactif : deux commandes SSH pour transférer des fichiers à travers le bastion sans stockage intermédiaire :
-
monosphere-bastion-3.3.9 Stable
released this
2025-02-15 23:45:36 +01:00 | 8 commits to main since this releaseSortie officielle en version stable 3.3.9 du bastion Monosphere.
Après plusieurs révisions, je suis désormais assez satisfaite de l'état du bastion dans la version actuelle pour enfin la sortir en tant que release.
Ci dessous la liste des améliorations, ajouts et corrections de bugs et de failles depuis la dernière release, dans l'ordre des commits.
Correction de bugs :
- Correction d'un bug concernant les clés ssh qui utilisait la systématiquement la dernière clé SSH déclarée.
- Correction du bug sur le script de server_menu détecté lors des phases de tests en direct après la précédente modification concernant le message de sélection invalide.
- Ajout de vérification de la présence des configurations dans les fichiers de sshd et de sudoers afin de ne pas répéter l'inscription des paramètres à chaque redémarrage du conteneur ainsi que de permettre leurs modification.
- Correction d'un bug faisant crasher SSHD lors d'un redémarrage du conteneur et empêchant l'execution du service.
- Gel des versions des paquets installés pour plus de stabilité entre les différentes versions du bastion.
- Patch du problème de clés d'hôtes nouvelles bloquant les connexion au travers de sshpass.
- Correction du bug ayant pour cause l'utilisation de grep en tant que sélecteur des serveurs autorisés, ce qui créait des collisions entre les usernames des utilisateurs du bastion et ceux distants.
- Correction de la condition dans le script de connexion SSH. La condition avant modification ne permettait pas de connexion sans la configuration d'une méthode d'authentification.
- Correction du chemin de vérification de la clé privée.
- Reformatage des scripts entrypoint.sh et server_menu.sh avec l'outil shfmt.
- Sécurisation des variables et mise en conformité avec les standards du scripting bash avec l'outil shellcheck.
- Les utilisateurs ne faisant partie d'aucun groupe (bastionadmin ou bastionuser) n'ont désormais plus d'accès au serveur.
- Correction problème de sélection list dans sessions.
- Correction problème de retour menu utilisateur.
- Ajout d'un "éditeur" de texte en Bash permettant une modification des fichiers de configurations du bastion de façon sécurisée et maitrisée.
- Retrait du paquet SUDO ainsi que de son utilisation au sein du bastion, ce dernier n'étant plus nécessaire suite à l'ajout du menu des administrateurs.
- Correction faille check nom de fichiers (merci à Kit!)
Améliorations :
- Passage sous Alpine 3.20, optimisation de l'image, ajout multi build stages, retrait de configuration obsolètes et corrections de bug.
- Ajout d'un lien symbolique pour l'accès au script par les comptes internes du bastion.
- Optimization du script de menu serveurs en retirant les utilisations répétées de whoami.
- Ajout d'une vérification de la sélection choisie qui prends désormais en compte l'absence d'input utilisateur sans envoyer une erreur de script.
- [DOCUMENTATION] Ajout de la sous partie concernant les valeurs par défaut qui seront appliquées si elles ne sont pas écrasées.
- [DOCUMENTATION] Modification des exemples afin que ces derniers correspondent aux visuels de la dernière version de Monosphere.
- [DOCUMENTATION] Précision de nouveaux objectifs et correction des objectifs existants.
- [DOCUMENTATION] Ajout d'une sous section concernant les bugs en cours de correction dans le projet.
- Amelioration du script de menu serveurs du bastion en ajoutant une boucle permettant un retour dans le menu lors d'une déconnexion d'une machine distante.
- Petit ajustement dans le menu de sélection des serveurs permettant d'utiliser le nombre inscrit afin de quitter le bastion.
- [DOCUMENTATION] Ajout de précisions sur la signification des numéros de version du bastion ainsi que leurs implications.
- [DOCUMENTATION] Correction d'une information obsolète dans la documentation du bastion.
- Amélioration de la gestion des clés SSH passe pas l'agent SSH et non plus par des mouvements de fichiers pour plus de sécurité et moins d'écritures sur le disque.
- Ajout d'un renvoi vers /dev/null de l'output du SSH-Agent lors de la connexion aux machines distantes
- Ajout du support des mots de passes dans la configuration
- [DOCUMENTATION] Ajout de la documentation relative à sshpass.
- [DOCUMENTATION] Correction de typo dans la documentation
- [DOCUMENTATION] Refonte des exemples de la documentation et mise à jour des fonctionnalités
- Ajout du menu des administrateurs. Les administrateurs n'ont plus accès à un terminal bash désormais afin de contrôler leurs droits et ne permettre que les actions prévues dans la configuration.
- Ajout de la fonctionnalité de lecture des sessions utilisateurs depuis le menu du bastion des administrateurs.
- Ajout de la fonctionnalité de modification des droits d'accès sur les serveurs distants.
- Ajout du menu modification privilèges
- [DOCUMENTATION] Modification de la documentation des administrateurs
- Le fichier "bastion_users.txt" ne pourra plus contenir de mots de passes en clair mais seulement des hash au format SHA-256.
- [DOCUMENTATION] Ajout de codes d'erreurs ainsi que de leur signification dans la documentation du bastion.
A noter que cette version marque le début réel du bastion Monosphere en tant que solution viable.
Les version précédentes étaient utilisables mais ne comportaient pas beaucoup de fonctionnalités essentielles.
A partir de cette version, le bastion peut désormais répondre aux différents besoins des utilisateurs et ce de façon plus simplifiée.Je remercie encore les personnes m'ayant approté et m'apportant de l'aide dans ce projet !
- Ouafax
- KIT!
- neutaaaaan
- Amadeus
- KuroSaru
Sans leurs conseils, ce projet n'en serait pas à ce stade aujourd'hui.
Downloads
-
monosphere-bastion-0.5.3 Stable
released this
2024-06-17 05:00:52 +02:00 | 50 commits to main since this releaseAfin d'optimiser d'avantage l'image de Monosphere, un passage de l'image de base Debian 12 (utilisée en version 0.5.2) vers une image Alpine 3.20 a été effectué.
La précédente publication a été unifiée à celle ci, car aucun changement de fonctionnalités majeures n'a eu lieu entre la version 0.5.2 et 0.5.3, cependant un changement global aussi important que celui de l'image de base nécessitais une remise à jour de la release.Cette release est stable et ne démontrait aucun bug dans son fonctionnement lors des tests effectués en amont de la publication.
Cette version optimise grandement l'image en ajoutant un build multi stage (merci à @Ouafax pour l'idée).
Elle inclut également un patch permettant de corriger un problème de nommage des fichiers de sessions, a cause duquel ces derniers portaient le nom de l'utilisateur du bastion et non de l'utilisateur distant.Une modification du script entrypoint a également été effectuée afin de retirer définitivement les reliquats des services obsolètes, encore présents en version 0.5.1.
Le fonctionnement du bastion en lui même ne change pas par rapport à la version précédente.
Downloads
-
monosphere-bastion-0.5.1 Pre-Release
released this
2024-06-16 03:08:58 +02:00 | 51 commits to main since this releaseUne nouvelle version corrigeant pas mal de manques de la précédente et qui se rapproche bien plus de la notion de bastion traditionnel mais tout en gardant sa simplicité de compréhension grâce à sa construction quasi entièrement en scripts bash.
Ajout de TTYrec (version de OVH) : https://github.com/ovh/ovh-ttyrec
Il est désormais possible d'utiliser ttyrec pour les utilisateurs internes du bastion.
Pour ce faire il suffit de suivre les étapes décrites dans la documentation afin de visionner les sessions des utilisateurs.
Les utilisateurs internes du bastion gagnent de ce fait un usage contrairement à leur utilisation très limitée dans les versions précédentes.Ajout également d'une fermeture de session en cas d'inactivité de plus de 5 minutes au travers de ttyrec, avec un avertissement 60 secondes avant la déconnexion.
Amélioration plus importante de la documentation avec l'ajout d'un sommaire comprenant des liaisons aux différentes sous parties (merci à @Kit pour l'idée).
Et enfin, allégement de l'image par la suppression de configuration devenues obsolètes.
Downloads
-
release-0.5.0 Pre-Release
released this
2024-06-15 14:41:02 +02:00 | 53 commits to main since this releaseCette version intègre le support pour des utilisateurs multiples des serveurs distants ainsi qu'à l'authentification par clés SSH.
Une modification significative de la documentation du README a également été effectuée pour plus de lisibilité.
Downloads