Compare commits
2 Commits
680c21db76
...
0f0e1f845f
| Author | SHA1 | Date | |
|---|---|---|---|
| 0f0e1f845f | |||
| 077a402beb |
@ -4,7 +4,7 @@ FROM alpine:3.20.0 AS monosphere-builder
|
|||||||
|
|
||||||
|
|
||||||
#Setting default settings, please change them at run
|
#Setting default settings, please change them at run
|
||||||
ARG MONOSPHERE_VERSION="2.2.6 Alpha"
|
ARG MONOSPHERE_VERSION="2.3.7 Alpha"
|
||||||
|
|
||||||
|
|
||||||
#Defining build settings
|
#Defining build settings
|
||||||
@ -51,7 +51,7 @@ USER root
|
|||||||
|
|
||||||
#Preparations
|
#Preparations
|
||||||
#Updating and installing required dependencies
|
#Updating and installing required dependencies
|
||||||
RUN apk add openssh-server=9.7_p1-r4 openssh-client=9.7_p1-r4 sudo=1.9.15_p5-r0 openrc=0.54-r1 bash=5.2.26-r0 sshpass=1.10-r0 gawk=5.3.0-r1 nano=8.0-r0 && \
|
RUN apk add openssh-server=9.7_p1-r4 openssh-client=9.7_p1-r4 openrc=0.54-r1 bash=5.2.26-r0 sshpass=1.10-r0 gawk=5.3.0-r1 && \
|
||||||
apk --no-cache add shadow=4.15.1-r0
|
apk --no-cache add shadow=4.15.1-r0
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -134,7 +134,6 @@ Il est également possible d'utiliser docker-compose afin de déployer ce conten
|
|||||||
Ci-dessous un exemple de déploiement possible :
|
Ci-dessous un exemple de déploiement possible :
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
version: "3.3"
|
|
||||||
services:
|
services:
|
||||||
monosphere-bastion:
|
monosphere-bastion:
|
||||||
image: siphonight/monosphere-bastion:latest
|
image: siphonight/monosphere-bastion:latest
|
||||||
@ -563,3 +562,4 @@ Ce projet est publié sous la licence "Faites ce que vous souhaitez".
|
|||||||
- KIT!
|
- KIT!
|
||||||
- neutaaaaan
|
- neutaaaaan
|
||||||
- Amadeus
|
- Amadeus
|
||||||
|
- KuroSaru
|
||||||
|
|||||||
@ -1,5 +1,40 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
function secure_file_editor() {
|
||||||
|
File_Path="${*}"
|
||||||
|
echo -e "\n=====SECURE=FILE=EDITOR====="
|
||||||
|
if [[ -e ${File_Path} ]]; then
|
||||||
|
echo "Le fichier selectionne existe et a pour contenu :"
|
||||||
|
cat "${File_Path}"
|
||||||
|
read -r -p 'Souhaitez vous modifier le contenu du fichier ? (y/n) : ' choice
|
||||||
|
else
|
||||||
|
echo "Creation d un nouveau fichier \"${File_Path}\"."
|
||||||
|
touch "${File_Path}"
|
||||||
|
choice="y"
|
||||||
|
fi
|
||||||
|
case ${choice} in
|
||||||
|
|
||||||
|
"y" | "Y")
|
||||||
|
printf '%s\n' " Consignes d'utilisation de cet editeur : - Lorsque l'edition du fichier est achevee, entrez ctrl-d sur une ligne vide pour sortir. - ATTENTION : Copiez les lignes que vous souhaitez garder intactes, le contenu du fichier complet sera ecrase par ce qui suit. - Tout fichier vide sera supprime. :"
|
||||||
|
New_Content+=$(xargs -0)
|
||||||
|
echo "${New_Content}" >"${File_Path}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
"n" | "N")
|
||||||
|
echo "Edition du fichier abandonnee."
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Selection invalide."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
unset New_Content
|
||||||
|
unset File_Path
|
||||||
|
echo "Modifications appliquées."
|
||||||
|
echo -e "=====SECURE=FILE=EDITOR=====\n"
|
||||||
|
}
|
||||||
|
|
||||||
function sessions_viewer() {
|
function sessions_viewer() {
|
||||||
echo -e "Ci dessous les utilisateurs disponibles sur le bastion.\nVeillez sélectionner celui dont vous souhaitez visionner les accès :"
|
echo -e "Ci dessous les utilisateurs disponibles sur le bastion.\nVeillez sélectionner celui dont vous souhaitez visionner les accès :"
|
||||||
Available_Users=$(find /home/. -maxdepth 1 -type d | grep -v "\.$" | cut -d "/" -f 4)
|
Available_Users=$(find /home/. -maxdepth 1 -type d | grep -v "\.$" | cut -d "/" -f 4)
|
||||||
@ -74,8 +109,7 @@ function servers_access_control() {
|
|||||||
echo 'Le nom du fichier ne doit pas contenir les caractères "/" ou "*", être vide ou ce nommer "authorized_servers.txt". Veuillez modifier ce dernier.'
|
echo 'Le nom du fichier ne doit pas contenir les caractères "/" ou "*", être vide ou ce nommer "authorized_servers.txt". Veuillez modifier ce dernier.'
|
||||||
else
|
else
|
||||||
echo "Assurez vous que le fichier créé ou modifié comporte bien uniquement la clé privée ou le mot de passe nécessaire à la connexion."
|
echo "Assurez vous que le fichier créé ou modifié comporte bien uniquement la clé privée ou le mot de passe nécessaire à la connexion."
|
||||||
sleep 5s
|
secure_file_editor "/opt/public/servers/${File_Name}"
|
||||||
sudo nano /opt/public/servers/"${File_Name}"
|
|
||||||
if [[ $(cat "/opt/public/servers/${File_Name}") == "" ]]; then
|
if [[ $(cat "/opt/public/servers/${File_Name}") == "" ]]; then
|
||||||
echo "Le fichier modifié \"${File_Name}\" est vide. Ce dernier sera supprimé."
|
echo "Le fichier modifié \"${File_Name}\" est vide. Ce dernier sera supprimé."
|
||||||
rm -rf /opt/public/servers/"${File_Name}"
|
rm -rf /opt/public/servers/"${File_Name}"
|
||||||
@ -85,8 +119,7 @@ function servers_access_control() {
|
|||||||
|
|
||||||
"2")
|
"2")
|
||||||
echo -e "Veuillez bien vérifier la syntaxe de votre configuration avant de valider cette dernière.\nPour plus d'informations, consultez la documentation de Monosphere."
|
echo -e "Veuillez bien vérifier la syntaxe de votre configuration avant de valider cette dernière.\nPour plus d'informations, consultez la documentation de Monosphere."
|
||||||
sleep 5s
|
secure_file_editor "/opt/public/servers/authorized_servers.txt"
|
||||||
sudo nano /opt/public/servers/authorized_servers.txt
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"3" | "quit")
|
"3" | "quit")
|
||||||
@ -105,8 +138,7 @@ function servers_access_control() {
|
|||||||
|
|
||||||
function admin_rights_control() {
|
function admin_rights_control() {
|
||||||
echo -e "Veuillez bien vérifier la syntaxe de votre configuration avant de valider cette dernière.\nPour plus d'informations, consultez la documentation de Monosphere."
|
echo -e "Veuillez bien vérifier la syntaxe de votre configuration avant de valider cette dernière.\nPour plus d'informations, consultez la documentation de Monosphere."
|
||||||
sleep 5s
|
secure_file_editor "/opt/public/rights/admin_rights.txt"
|
||||||
sudo nano /opt/public/rights/admin_rights.txt
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function main_menu() {
|
function main_menu() {
|
||||||
|
|||||||
@ -27,11 +27,6 @@ chmod 700 /opt/custom/scripts/*.sh
|
|||||||
bash /opt/custom/scripts/*.sh
|
bash /opt/custom/scripts/*.sh
|
||||||
echo "Execution des scripts personalisés terminée."
|
echo "Execution des scripts personalisés terminée."
|
||||||
|
|
||||||
echo "Monosphere configure le répertoire public."
|
|
||||||
chown -R root:root /opt/public
|
|
||||||
chmod -R 755 /opt/public
|
|
||||||
echo "Répertoire public configuré."
|
|
||||||
|
|
||||||
#User accounts creation step
|
#User accounts creation step
|
||||||
|
|
||||||
echo "Création des groupes d'utilisateurs."
|
echo "Création des groupes d'utilisateurs."
|
||||||
@ -62,12 +57,6 @@ for userinfo in ${userfile}; do
|
|||||||
usermod -aG bastionuser "${user}"
|
usermod -aG bastionuser "${user}"
|
||||||
elif [[ ${is_bastion} -eq "0" ]]; then
|
elif [[ ${is_bastion} -eq "0" ]]; then
|
||||||
usermod -aG bastionadmin "${user}"
|
usermod -aG bastionadmin "${user}"
|
||||||
if ! grep -qo "^${user} ALL=(ALL) NOPASSWD:" /etc/sudoers; then
|
|
||||||
echo "${user} ALL=(ALL) NOPASSWD: /usr/local/bin/ttyplay*" | sudo EDITOR='tee -a' visudo
|
|
||||||
echo "${user} ALL=(ALL) NOPASSWD: /bin/ls*" | sudo EDITOR='tee -a' visudo
|
|
||||||
echo "${user} ALL=(ALL) NOPASSWD: /usr/bin/nano /opt/public/servers/*" | sudo EDITOR='tee -a' visudo
|
|
||||||
echo "${user} ALL=(ALL) NOPASSWD: /usr/bin/nano /opt/public/rights/admin_rights.txt" | sudo EDITOR='tee -a' visudo
|
|
||||||
fi
|
|
||||||
mkdir /home/"${user}"
|
mkdir /home/"${user}"
|
||||||
ln -s /opt/public/scripts/server_menu.sh /home/"${user}"/server_menu.sh
|
ln -s /opt/public/scripts/server_menu.sh /home/"${user}"/server_menu.sh
|
||||||
fi
|
fi
|
||||||
@ -88,6 +77,11 @@ for userinfo in ${userfile}; do
|
|||||||
done
|
done
|
||||||
echo "Création des utilisateurs terminée."
|
echo "Création des utilisateurs terminée."
|
||||||
|
|
||||||
|
echo "Monosphere configure le répertoire public."
|
||||||
|
chown -R root:bastionadmin /opt/public
|
||||||
|
chmod -R 775 /opt/public
|
||||||
|
echo "Répertoire public configuré."
|
||||||
|
|
||||||
echo "Démarrage du service SSHD de Monosphere."
|
echo "Démarrage du service SSHD de Monosphere."
|
||||||
rc-status
|
rc-status
|
||||||
rc-service sshd restart
|
rc-service sshd restart
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user