Modification README et amélioration du server_menu
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.
This commit is contained in:
parent
ef750e7c69
commit
8cd1e8d5d3
@ -47,9 +47,8 @@ Voici une liste des différentes fonctionnalités déjà en place sur le bastion
|
||||
## Objectifs des mises à jour
|
||||
Ci-dessous une liste non exhaustive des objectifs des prochaines mises à jour du projet:
|
||||
- [ ] Ajouter le support pour un serveur LDAP. (Objectif sur le long terme)
|
||||
|
||||
- [ ] Ajouter un système de mise à jour automatique dans le conteneur, évitant ainsi les redéploiements.
|
||||
- [ ] Ajouter la possibilité de revenir dans le menu des serveurs après une déconnexion d'une machine distante.
|
||||
- [x] Ajouter la possibilité de revenir dans le menu des serveurs après une déconnexion d'une machine distante.
|
||||
- [ ] Améliorer le système de journalisation du déploiement du bastion, avec les erreurs de déploiement affichées lors de la connexion des utilisateurs internes.
|
||||
- [ ] Ajouter un menu d'administration et de gestion lors de la connexion des utilisateurs internes du bastion.
|
||||
- [ ] Créer des rôles administrateur/inspecteur avec des droits différents au sein du bastion.
|
||||
@ -58,6 +57,10 @@ Ci-dessous une liste non exhaustive des objectifs des prochaines mises à jour d
|
||||
- [x] Ajouter le support pour différents utilisateurs distants.
|
||||
- [x] Intégration de ttyrec pour la sauvegarde des sessions effectuées sur le bastion.
|
||||
|
||||
Correction en cours pour les bugs ci dessous :
|
||||
- Ajout de vérification de la présence des configurations afin de ne pas répéter les paramètres dans les fichiers à chaque redémarrage du conteneur.
|
||||
- Correction d'un bug autorisant systématiquement des utilisateurs du bastion à se connecter sur les serveurs distants si le compte d'accès à ce dernier porte le même nom que l'utilisateur du bastion.
|
||||
|
||||
## Installation
|
||||
Pour installer Monosphere Bastion, clonez ce dépôt et construisez l'image Docker en utilisant le fichier Dockerfile fourni.
|
||||
|
||||
|
||||
@ -10,36 +10,45 @@ if [ -z "$USER_SERVERS" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Veuillez sélectionner un serveur auquel vous connecter :"
|
||||
function main_menu () {
|
||||
echo "Veuillez sélectionner un serveur auquel vous connecter :"
|
||||
|
||||
counter=1
|
||||
declare -A server_map
|
||||
while read -r line; do
|
||||
ip=$(echo "$line" | cut -d ' ' -f 1)
|
||||
port=$(echo "$line" | cut -d ' ' -f 2)
|
||||
custom_name=$(echo "$line" | cut -d ' ' -f 3)
|
||||
server_user=$(echo "$line" | cut -d ' ' -f 4)
|
||||
server_authkey=$(echo "$line" | cut -d ' ' -f 6)
|
||||
server_map[$counter]="$ip $port $server_user $server_authkey"
|
||||
echo "$counter) $custom_name - $server_user $ip:$port"
|
||||
counter=$((counter + 1))
|
||||
done <<< "$USER_SERVERS"
|
||||
counter=1
|
||||
declare -A server_map
|
||||
while read -r line; do
|
||||
ip=$(echo "$line" | cut -d ' ' -f 1)
|
||||
port=$(echo "$line" | cut -d ' ' -f 2)
|
||||
custom_name=$(echo "$line" | cut -d ' ' -f 3)
|
||||
server_user=$(echo "$line" | cut -d ' ' -f 4)
|
||||
server_authkey=$(echo "$line" | cut -d ' ' -f 6)
|
||||
server_map[$counter]="$ip $port $server_user $server_authkey"
|
||||
echo "$counter) $custom_name - $server_user $ip:$port"
|
||||
counter=$((counter + 1))
|
||||
done <<< "$USER_SERVERS"
|
||||
|
||||
read -r -p "Votre choix (1-${#server_map[@]}): " choice
|
||||
echo "$counter) Tapez 'quit' pour vous déconnecter."
|
||||
|
||||
if [ -z "$choice" ] || [ -z "${server_map[$choice]}" ]; then
|
||||
echo "Sélection invalide."
|
||||
exit 1
|
||||
fi
|
||||
read -r -p "Votre choix (1-$counter): " choice
|
||||
|
||||
selected_server="${server_map[$choice]}"
|
||||
echo "Connexion à $selected_server..."
|
||||
if [ -z "$(echo "$selected_server" | cut -d ' ' -f 4)" ]; then
|
||||
ttyrec -z --"$(echo "$selected_server" | cut -d ' ' -f 1)"-"$(echo "$selected_server" | cut -d ' ' -f 3)"-- -k 300 --warn-before-kill 60 -- ssh -p "$(echo "$selected_server" | cut -d ' ' -f 2)" "$(echo "$selected_server" | cut -d ' ' -f 3)"@"$(echo "$selected_server" | cut -d ' ' -f 1)"
|
||||
else
|
||||
cp /"$AUTHORIZED_SERVERS_PATH"/"$(echo "$selected_server" | cut -d ' ' -f 4)" /home/"$CONNECTED_USER"/"$(echo "$selected_server" | cut -d ' ' -f 4)"
|
||||
chown "$CONNECTED_USER":"$CONNECTED_USER" /home/"$CONNECTED_USER"/"$(echo "$selected_server" | cut -d ' ' -f 4)"
|
||||
chmod 600 /home/"$CONNECTED_USER"/"$(echo "$selected_server" | cut -d ' ' -f 4)"
|
||||
ttyrec -z --"$(echo "$selected_server" | cut -d ' ' -f 1)"-"$(echo "$selected_server" | cut -d ' ' -f 3)"-- -k 300 --warn-before-kill 60 -- ssh -p "$(echo "$selected_server" | cut -d ' ' -f 2)" -i /home/"$CONNECTED_USER"/"$(echo "$selected_server" | cut -d ' ' -f 4)" "$(echo "$selected_server" | cut -d ' ' -f 3)"@"$(echo "$selected_server" | cut -d ' ' -f 1)"
|
||||
rm -rf /home/"${CONNECTED_USER:?}"/"$(echo "$selected_server" | cut -d ' ' -f 4)"
|
||||
fi
|
||||
if [ "$choice" == "quit" ]; then
|
||||
exit 0
|
||||
elif [ -z "$choice" ] || [ -z "${server_map[$choice]}" ]; then
|
||||
echo "Sélection invalide."
|
||||
fi
|
||||
|
||||
selected_server="${server_map[$choice]}"
|
||||
echo "Connexion à $selected_server..."
|
||||
if [ -z "$(echo "$selected_server" | cut -d ' ' -f 4)" ]; then
|
||||
ttyrec -z --"$(echo "$selected_server" | cut -d ' ' -f 1)"-"$(echo "$selected_server" | cut -d ' ' -f 3)"-- -k 300 --warn-before-kill 60 -- ssh -p "$(echo "$selected_server" | cut -d ' ' -f 2)" "$(echo "$selected_server" | cut -d ' ' -f 3)"@"$(echo "$selected_server" | cut -d ' ' -f 1)"
|
||||
else
|
||||
cp /"$AUTHORIZED_SERVERS_PATH"/"$(echo "$selected_server" | cut -d ' ' -f 4)" /home/"$CONNECTED_USER"/"$(echo "$selected_server" | cut -d ' ' -f 4)"
|
||||
chown "$CONNECTED_USER":"$CONNECTED_USER" /home/"$CONNECTED_USER"/"$(echo "$selected_server" | cut -d ' ' -f 4)"
|
||||
chmod 600 /home/"$CONNECTED_USER"/"$(echo "$selected_server" | cut -d ' ' -f 4)"
|
||||
ttyrec -z --"$(echo "$selected_server" | cut -d ' ' -f 1)"-"$(echo "$selected_server" | cut -d ' ' -f 3)"-- -k 300 --warn-before-kill 60 -- ssh -p "$(echo "$selected_server" | cut -d ' ' -f 2)" -i /home/"$CONNECTED_USER"/"$(echo "$selected_server" | cut -d ' ' -f 4)" "$(echo "$selected_server" | cut -d ' ' -f 3)"@"$(echo "$selected_server" | cut -d ' ' -f 1)"
|
||||
rm -rf /home/"${CONNECTED_USER:?}"/"$(echo "$selected_server" | cut -d ' ' -f 4)"
|
||||
fi
|
||||
}
|
||||
|
||||
while true; do
|
||||
main_menu
|
||||
done
|
||||
Loading…
x
Reference in New Issue
Block a user