monosphere-bastion/Dockerfile
Siphonight 4ebff9e687 Ajout de fonctionnalités majeures et bugfix
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.
2025-01-20 21:13:28 +01:00

92 lines
2.4 KiB
Docker

FROM alpine:3.20.0 AS monosphere-builder
#~The open Monosphere Project~
#Autor : Siphonight :)
#Setting default settings, please change them at run
ARG MONOSPHERE_VERSION="2.0.5 Alpha"
#Defining build settings
WORKDIR /
USER root
#Updating and installing required dependencies
RUN apk add make=4.4.1-r2 git=2.45.3-r0 gcc=13.2.1_git20240309-r0 alpine-sdk=1.0-r1 && \
addgroup root abuild && \
mkdir -p /var/cache/distfiles && \
chmod a+w /var/cache/distfiles
#Installing OVH-ttyrec
RUN cd /root/ && \
git clone https://github.com/ovh/ovh-ttyrec.git && \
cd /root/ovh-ttyrec && \
./configure && \
make && \
make install
#Starting bastion configurations
#Configuring monosphere ssh banner
ADD monosphere_banner.txt /root/scripts/
RUN echo "Monosphere version is $MONOSPHERE_VERSION" >> /root/scripts/monosphere_banner.txt
#==============final container==============#
FROM alpine:3.20.0
#Setting default settings, please change them at run
ENV HOSTNAME="monosphere-bastion"
ENV PORT=22
ENV PASSWORD_AUTH=1
ENV KEY_AUTH=1
#Defining build settings
WORKDIR /
USER root
#Preparations
#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 && \
apk --no-cache add shadow=4.15.1-r0
#Ensuring that the SSH server will be able to run without issues on container launch
RUN rc-update add sshd && \
mkdir -p /run/openrc && \
touch /run/openrc/softlevel
#Copying from build and adding default configuration files
COPY --from=monosphere-builder /root/scripts/monosphere_banner.txt /root/scripts/monosphere_banner.txt
ADD entrypoint.sh /root/scripts/
ADD server_menu.sh /opt/public/scripts/
ADD admin_menu.sh /opt/public/scripts/
ADD authorized_servers.txt /opt/public/servers/
ADD admin_rights.txt /opt/public/rights/
ADD bastion_users.txt /root/scripts/users/
ADD sshd_config /etc/ssh/
#Copying TTYREC utility from build
COPY --from=monosphere-builder /usr/local/bin/ttyplay /usr/local/bin/ttyplay
COPY --from=monosphere-builder /usr/local/bin/ttyrec /usr/local/bin/ttyrec
COPY --from=monosphere-builder /usr/local/bin/ttytime /usr/local/bin/ttytime
#Activating scripts ;
RUN chmod 644 /etc/ssh/sshd_config && \
chown -R root:root /root/scripts && \
chmod 700 /root/scripts/*.sh
#Default port exposition
EXPOSE $PORT
#Issuing start entrypoint
CMD ["/bin/sh", "/root/scripts/entrypoint.sh"]