Correction apportée dans la liste de recherche des noms de serveurs :
(utilisable en tapant f<chaine de caractères dans le nom du serveur>)
Cette correction inclut :
- Un inversement de la liste des configurations de serveurs en entrée
du bloc for utilisé pour lister les serveurs et chercher la chaine
de caractères dans les noms de serveurs.
- Ajout d'une commande "echo" dans la ligne de comparaison entre les
valeurs du filtre entré et du nom du serveur.
En effet, sans la commande "echo" dans la partie droite de la
comparaison, Bash ajoute systématiquement les backslash, ce qui casse
le méchanisme de comparaison et donne de ce fait toujours un résultat
faux.
Concernant l'inversement de la liste, utiliser simplement
"${server_map[@]}" affiche une map inversée par rapport à ce qui avait
été entré dans le bloc de création de cette map.
Pour corriger ce problème, une ligne d'inversement à été nécessaire :
> printf '%s\n' "${server_map[@]}" | tac | cut -d " " -f 6
Amélioration de la configuration de la sécurité du daemon SSHD du bastion à l'aide de l'outil ssh-audit.
(Disponible ici : https://github.com/jtesta/ssh-audit)
Ajout de la possibilité de filtrer les hôtes par leur nom dans le menu
de sélection des serveurs de connexion.
Ajout de clear dans les menus de serveur et admin afin de rendre
l'interface plus lisible pour les utilisateurs.
Modification du processus de création des utilisateurs et
administrateurs du bastion.
Désormais, le fichier "bastion_users.txt" ne pourra plus contenir de
mots de passes en clair mais seulement des hash au format SHA-256.
Cela améliore grandement la sécurité lors de la génération du bastion
ainsi que dans le cas ou ce dernier serait compromis, car les mots de
passes des utilisateurs et administrateurs seraient tout à fait
illisibles dans les configurations.
Ajout également de codes d'erreurs ainsi que de leur signification dans
la documentation du bastion.
Cela rendra les erreur plus lisibles, avec une solution et des
suggestions de résolution au sein de la documentation.
Passage en version 3.3.8 Alpha car ce changement est cassant.
A CHANGER :
Modifiez tout vos mots de passes entrés dans les configurations
utilisateur afin que ces derniers soient des version hash.
Dans le cas contraire le bastion entrera en erreur.
Merci à KuroSaru (https://github.com/KuroSaru) pour son aide quant à la
faille concernant le shellout des éditeurs de texte, ainsi que ses
recommandations quant à l'utilisation de SUDO au sein du projet.
BUGFIX de sécurité :
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.
Passage en version 2.3.7 Alpha.
Ajout du menu des administrateurs et préparation pour les futures
features d'administration du bastion. Les administrateurs n'ont plus
accès à un terminal bash désormais afin de controler leurs droits et ne
permettre que les actions prévues dans la configuration.
FEATURES :
Ajout de la fonctionnalité de lecture des sessions utilisateurs depuis
le menu du bastion des administrateurs.
Ajout de la première partie de la fonctionnalité de modification des
droits d'accès sur les serveurs distants.
Le groupe "bastionadmins" est désormais utilisé au sein du bastion afin
de déterminer les utilisateurs ayant les droits d'administration.
Les droits d'administrations sont désormais gérés au sein d'un fichier
qui sera par la suite modifiable aussi bien lors du déploiement du
conteneur (et lors de la génération de la configuration des
utilisateurs) que par les administrateurs habilités au travers du menu
d'administration (COMING VERY SOON).
BUGFIX :
Les utilisateurs ne faisant partie d'aucun groupe (bastionadmin ou
bastionuser) n'ont désormais plus d'accès au serveur.
AFTERNOTES :
Les configurations actuelles n'ont pas besoin de modifications à
proprement parler, cependant les utilisateurs ayant des droits
d'administration doivent désormais utiliser le fichier "admin_rights"
afin de pouvoir exercer leurs privilèges au sein du bastion.
La prochaine release sera publiée après le prochain commit, qui
permettra de finir les derniers ajustements et fixer les rpoblèmes
constatés.
Reformattage 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.
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, et ne
vérifiait pas la présence du fichier contenant la clé privée
lors de l'utilisation de la méthode key.
Correction du bug ayant pour cause l'utilisation de grep en tant que selecteur
des serveurs autorisés.
En remplaçant grep par awk, il est désormais possible d'utiliser des utilisateurs
ditants ayant le même identifiant que les utilisateurs du bastion sans
créer de collision au niveau des droits d'accès.
Ajout de la documentation relative à sshpass.
Modification de la version dans le Dockerfile pour correspondre à la version en cours.
Patch du problème de clés d'hôtes nouvelles bloquant les connexion au travers de sshpass.
(Solution temporaire ne présentant pas de risques dans le cas d'utilisation présent.
Une meilleure solution sera mise en place lors d'un patch à venir)
Gel des versions des paquets installés pour plus de stabilité entre les
différentes versions du bastion.
Ajout également d'un renvoi vers /dev/null de l'output du SSH-Agent lors
de la connexion aux machines distantes.
Modification du fonctionnement de la connexion des utilisateurs.
Désormais 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 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.
Ce problème n'apparaissait pas lors des redéploiements du conteneur,
uniquement lors des redémarrages.
Correction également d'un bug faisant crasher SSHD lors d'un redémarrage
du conteneur et empêchant l'execution du service.
Petit ajustement dans le menu de sélection des serveurs permettant
d'utiliser le nombre inscrit afin de quitter le bastion.
L'option pour quitter le bastion est de ce fait utilisable au travers de
2 inputs différents.
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.
Désormais le message de sélection invalide est le seul affiché.
Ajout d'une sous section concernant les bugs en cours de correction dans
le projet.
Amelioration du script de manu serveurs du bastion en ajoutant une
boucle permettant un retour dans le menu lors d'une déconnexion d'une
machine distante.
Cela permet un retour au bastion pour plus facilement se reconnecter
à d'autres équipements à la fin de sa session.
Ajout de la sosu partie concernant les valeurs par défaut qui seront appliquées si elles ne sont pas écrasées. Modification des exemples afin que ces derniers correspondent aux visuels de la dernière version de Monosphere.
Ajout d'un lien symbolique pour l'accès au script par les comptes internes du bastion. Correction d'un bug concernant les clés ssh qui utilisait la systématiquement la dernière clé SSH déclarée. Optimization du script de menu serveurs en retirant les utilisations répétées de whoami et en ajoutant une vérification de la séléction choisie qui prends désormais en compte l'abscence d'input utilisateur sans envoyer une erreur de script.