Compare commits

...

2 Commits

Author SHA1 Message Date
17b3fb5c08 [UPDATE] - 2022 2022-09-07 17:45:01 +02:00
1ef8caccbd [UPDATE] - 2022 2022-09-07 17:36:35 +02:00
17 changed files with 268 additions and 26 deletions

View File

@ -1,10 +1,7 @@
# Built with arch: amd64 flavor: lxde image: ubuntu:20.04
#
################################################################################
# base system
################################################################################
FROM debian FROM debian
ENV isen=isen-ssh-v1.1
RUN apt update RUN apt update
RUN apt install openssh-server vim net-tools sudo openssl -y RUN apt install openssh-server vim net-tools sudo openssl -y
RUN apt install expect openssl perl python2 psutils net-tools -y RUN apt install expect openssl perl python2 psutils net-tools -y
@ -12,20 +9,32 @@ RUN apt install expect openssl perl python2 psutils net-tools -y
RUN groupadd isen -g 1000 RUN groupadd isen -g 1000
RUN useradd -rm -d /home/isen -s /bin/bash -g 1000 -G sudo -u 1000 -p "$(/usr/bin/openssl passwd -1 isen)" isen RUN useradd -rm -d /home/isen -s /bin/bash -g 1000 -G sudo -u 1000 -p "$(/usr/bin/openssl passwd -1 isen)" isen
RUN echo "root:ohohohNow1H4veAmach1neGun" | chpasswd RUN echo "root:rootisen" | chpasswd
RUN echo "isen:isen" | chpasswd RUN echo "isen:isen" | chpasswd
#RUN echo '%sudo ALL=(ALL:ALL) ALL' >> /etc/sudoers #RUN echo '%sudo ALL=(ALL:ALL) ALL' >> /etc/sudoers
RUN sed -i "/%sudo/s/ALL$/NOPASSWD: ALL/" /etc/sudoers RUN sed -i "/%sudo/s/ALL$/NOPASSWD: ALL/" /etc/sudoers
RUN apt install lynx curl wget -y
RUN apt install less -y RUN apt install less -y
RUN apt install manpages-dev man-db shc gcc build-essential iputils-ping tree netcat cryptcat screen python netcat cryptcat elinks -y
COPY ./data/dice.ascii /opt/dice.ascii
RUN chmod 444 /opt/dice.ascii
RUN touch /etc/first
RUN touch /etc/isen2
RUN apt install manpages-dev man-db shc gcc build-essential iputils-ping nmap -y RUN apt install manpages-dev man-db shc gcc build-essential iputils-ping nmap -y
COPY ./data/bin/firstconnect /usr/bin/firstconnect COPY ./data/bin/firstconnect /usr/bin/firstconnect
RUN chmod 755 /usr/bin/firstconnect RUN chmod 755 /usr/bin/firstconnect
RUN chown root:root /usr/bin/firstconnect RUN chown root:root /usr/bin/firstconnect
RUN touch /etc/first
RUN mkdir /opt/deb
COPY ./data/bin/monithor-server_1.13-rebuild_all.deb /opt/deb
COPY ./data/bin/monithor-client_1.13-rebuild_all.deb /opt/deb
RUN service ssh start RUN service ssh start
EXPOSE 22 EXPOSE 22
CMD ["/usr/sbin/sshd","-D"] CMD ["/usr/sbin/sshd","-D"]

19
connect.sh Executable file
View File

@ -0,0 +1,19 @@
#!/bin/bash
#for var in $(cat docker-compose.yml | grep [A-Z].*-[A-Z]: | sed "s#:##g" | sed "s# .##g")
for var in $(cat docker-compose.yml | grep [A-Z].*: | grep -v part | cut -d":" -f1)
do
echo $var
done
read -p "Which docker instances do you want to restart ? " ans
Rdocker=$(docker ps | grep "$ans" | awk '{print $NF}')
if [[ ! -z $(cat docker-compose.yml | grep [A-Z].*: | grep -v part | cut -d":" -f1 | grep $ans) ]]
then
docker exec -ti $Rdocker bash
else
echo "$ans don't exist"
fi

1
data/Machina Executable file
View File

@ -0,0 +1 @@
client

15
data/admin/.bash_history Normal file
View File

@ -0,0 +1,15 @@
cd
ls
pwd
ll
ls
rm a
touch a
ll
ls -al
id
ll
ls
rm a
ls
vi /etc/hosts

39
data/admin/.viminfo Normal file
View File

@ -0,0 +1,39 @@
# This viminfo file was generated by Vim 8.2.
# You may edit it if you're careful!
# Viminfo version
|1,4
# Value of 'encoding' when this file was written
*encoding=latin1
# hlsearch on (H) or off (h):
~h
# Command Line History (newest to oldest):
:q
|2,0,1661249269,,"q"
# Search String History (newest to oldest):
# Expression History (newest to oldest):
# Input Line History (newest to oldest):
# Debug Line History (newest to oldest):
# Registers:
# File marks:
'0 1 0 /etc/hosts
|4,48,1,0,1661249269,"/etc/hosts"
# Jumplist (newest first):
-' 1 0 /etc/hosts
|4,39,1,0,1661249269,"/etc/hosts"
# History of marks within files (newest to oldest):
> /etc/hosts
* 1661249268 0
" 1 0

View File

@ -4,6 +4,7 @@ if [[ -f /etc/first ]]
then then
[[ -f /home/isen/.gen/hostname ]] && cat /home/isen/.gen/hostname | sudo tee -a /etc/hosts &> /dev/null [[ -f /home/isen/.gen/hostname ]] && cat /home/isen/.gen/hostname | sudo tee -a /etc/hosts &> /dev/null
[[ -f /home/isen/.gen/backup.sh ]] && /usr/bin/shc -f /home/isen/.gen/backup.sh -o /home/isen/backup_isen && sudo rm -f /home/isen/backup.sh.x.c [[ -f /home/isen/.gen/backup.sh ]] && /usr/bin/shc -f /home/isen/.gen/backup.sh -o /home/isen/backup_isen && sudo rm -f /home/isen/backup.sh.x.c
sudo mv /home/isen/backup_isen /usr/bin/
[[ -f /home/isen/.gen/motd ]] && sudo cp /home/isen/.gen/motd /etc/motd [[ -f /home/isen/.gen/motd ]] && sudo cp /home/isen/.gen/motd /etc/motd
[[ -d /home/isen/.ssh ]] && mv /home/isen/.ssh /home/isen/.ssh.orig [[ -d /home/isen/.ssh ]] && mv /home/isen/.ssh /home/isen/.ssh.orig
[[ -d /home/isen/.gen/.ssh ]] && cp -rp /home/isen/.gen/.ssh /home/isen/.ssh [[ -d /home/isen/.gen/.ssh ]] && cp -rp /home/isen/.gen/.ssh /home/isen/.ssh
@ -35,6 +36,7 @@ if [[ -f /etc/first ]]
echo -n "." echo -n "."
done done
sudo rm /etc/first sudo rm /etc/first
sudo rm -Rf /home/isen/.gen /home/isen/.ssh.orig
killall -9 bash killall -9 bash
fi fi

9
data/dice.ascii Normal file
View File

@ -0,0 +1,9 @@
.-------.
/ * /|
/_______/ |
| |*|
| * | /
| |/
'-------'

7
data/liste Normal file → Executable file
View File

@ -1,2 +1,5 @@
DEMO Neo ASTIER Guillaume
DEMO Trinity LEFBVRE Loic
CASTANESS Yann
EVIL Empire

10
data/liste.sample Normal file
View File

@ -0,0 +1,10 @@
ASTIER Guillaume
LEFEBVRE Loic
CATANESE Yann
USER One
MAN Two
GUY Three
DEMO Guillaume
DEMO Yann
DEMO Loic

View File

@ -1,11 +1,11 @@
#!/bin/bash #!/bin/bash
Backup=$(date +%s)_$(hostname)_isen.tar.bz2 Backup=$(date +%Y%m%d%H%M)_$(hostname)_isen.tar.bz2
echo "BACKUP : /home/isen/${Backup}" echo "BACKUP : /home/isen/${Backup}"
echo -n "ARCHIVE : " echo -n "ARCHIVE : "
sudo tar -jcvf /tmp/${Backup} /home/isen /root/ /etc/&> /dev/null sudo tar -jcvf /tmp/${Backup} --exclude=/home/isen/*_isen.tar.bz2 /home/isen/Notes &> /dev/null
[[ $? -eq 0 ]] && echo OK || echo FAILED [[ $? -eq 0 ]] && echo OK || echo FAILED
echo -n "COPY : " echo -n "COPY : "

9
dice.ascii Normal file
View File

@ -0,0 +1,9 @@
.-------.
/ * /|
/_______/ |
| |*|
| * | /
| |/
'-------'

View File

@ -1,3 +1,18 @@
admin:
image: isensshbase
hostname: astier-g-m1
mem_limit: 256m
mem_reservation: 128M
cpus: 0.5
storage_opt:
size: '2G'
volumes:
- './data/admin:/home/isen'
networks:
vpcbr:
ipv4_address: 10.10.10.244
networks: networks:
vpcbr: vpcbr:

View File

@ -1,6 +1,8 @@
#!/bin/bash #!/bin/bash
cd $(dirname $0)
usage () { usage () {
Res=$1 Res=$1
@ -18,9 +20,17 @@ usage () {
[[ "$(whoami)" != "root" ]] && usage 1 [[ "$(whoami)" != "root" ]] && usage 1
Liste=./data/liste Liste=./data/liste
ListeMachinaUser=./data/Machina
ID=2000 ID=2000
tID=2 tID=2
TMP=$(dirname $0)/tmp/
TMP=/tmp
[[ ! -d $TMP ]] && mkdir $TMP
[[ $(whoami) != "root" ]] && usage
cp docker-compose.yml.template.head ${TMP}/docker-compose.yml
rm -f ${TMP}/hostname
BinNeed="figlet mke2fs truncate docker docker-compose " BinNeed="figlet mke2fs truncate docker docker-compose "
CheckBinCpt=0 CheckBinCpt=0
@ -32,24 +42,55 @@ for CheckBin in ${BinNeed}
[[ ${CheckBinCpt} -ne 0 ]] && usage 2 [[ ${CheckBinCpt} -ne 0 ]] && usage 2
[[ "$1" == "del" ]] && read -p "ARE YOU SURE BIATCH ?????? (yes/no) : " ans
cp docker-compose.yml.template.head /tmp/docker-compose.yml for User in $(cat ${Liste} | grep ^[A-Z][A-Z].*\ [A-Z][a-z] | sed "s#[a-z]#|#g" | cut -d"|" -f1 | sed "s#-# #g"| sed "s# \+#-#g"| iconv -f utf8 -t ascii//TRANSLIT )
[ -f /tmp/hostname ] && rm /tmp/hostname
for User in $(cat ${Liste} | grep ^[A-Z][A-Z].*\ [A-Z][a-z] | sed "s#[a-z]#|#g" | cut -d"|" -f1 | sed "s#-# #g"| sed "s# \+#-#g")
do do
tID=$(($tID+1))
#if [[ ! -z $(mount | grep ${User}) ]] && [[ "$1" == "del" ]] echo -e "USER : $User"
if [[ "$1" == "del" ]] for Machina in $(cat ${ListeMachinaUser})
do
tID=$(($tID+1))
if [[ "$1" == "mount" ]]
then
mount ./data/students/part/${User}_${Machina} ./data/students/part/${User}_${Machina}_part
#if [[ ! -z $(mount | grep ${User}_${Machina}) ]] && [[ "$1" == "del" ]]
elif [[ "$1" == "del" ]]
then then
echo -e "\tDEL : $Machina [10.10.10.${tID}]"
for var in $(docker-compose ps | grep -v NAME | awk '{print $1}' | grep ${User}_${Machina}); do docker stop $var;docker rm $var; done &> /dev/null
umount ./data/students/part/${User}_${Machina}_part
rm -Rf ./data/students/part/${User}_${Machina}_part
rm ./data/students/part/${User}_${Machina}
[[ ! -z $(mount | grep ${User}_part) ]] && umount ./data/students/part/${User}_part [[ ! -z $(mount | grep ${User}_part) ]] && umount ./data/students/part/${User}_part
[[ -d ./data/students/part/${User}_part ]] && rm -Rf ./data/students/part/${User}_part [[ -d ./data/students/part/${User}_part ]] && rm -Rf ./data/students/part/${User}_part
[[ -f ./data/students/part/${User} ]] && rm ./data/students/part/${User} [[ -f ./data/students/part/${User} ]] && rm ./data/students/part/${User}
else else
if [[ ! -f ./data/students/part/${User} ]] if [[ ! -f ./data/students/part/${User}_${Machina} ]]
then then
echo -e "\t GEN : $Machina [10.10.10.${tID}]"
touch ./data/students/part/${User}_${Machina}
mkdir ./data/students/part/${User}_${Machina}_part
truncate -s 200M ./data/students/part/${User}_${Machina} &> /dev/null
mke2fs -t ext4 -F ./data/students/part/${User}_${Machina} &> /dev/null
mount ./data/students/part/${User}_${Machina} ./data/students/part/${User}_${Machina}_part
cp -Rf ./data/skel/. ./data/students/part/${User}_${Machina}_part/
mkdir ./data/students/part/${User}_${Machina}_part/.gen/
mv ./data/students/part/${User}_${Machina}_part/backup.sh ./data/students/part/${User}_${Machina}_part/.gen/
echo "host : ${User^^}" | figlet -f small > ${TMP}/motd
#echo "---------" | figlet >> /${TMP}/motd
echo "Isen 2022 - MTN"| figlet -f small >> ${TMP}/motd
cp -rfp ./data/ssh/ ./data/students/part/${User}_${Machina}_part/.gen/.ssh
cp -rfp ./data/ssh/ ./data/students/part/${User}_${Machina}_part/.ssh
cp ${TMP}/motd ./data/students/part/${User}_${Machina}_part/.gen/
mkdir -p ./data/students/part/${User}_${Machina}_part/Notes/{C01,C02,C03,C04}/
[[ -z $(echo $User | grep -iE "astier|lefebvre|catanese") ]] && rm -f ./data/students/part/${User}_${Machina}_part/.gen/.ssh/id* ./data/students/part/${User}_${Machina}_part/.ssh/id*
chown -Rf 1000:1000 ./data/students/part/${User}_${Machina}_part/
echo "10.10.10.${tID} ${User,,}"-${Machina} >> ${TMP}/hostname
echo "Generate $User" echo "Generate $User"
mkdir -p ./data/students/part/ mkdir -p ./data/students/part/
touch ./data/students/part/${User} touch ./data/students/part/${User}
@ -76,20 +117,39 @@ for User in $(cat ${Liste} | grep ^[A-Z][A-Z].*\ [A-Z][a-z] | sed "s#[a-z]#|#g"
chown -Rf 1000:1000 ./data/students/part/${User}_part/ chown -Rf 1000:1000 ./data/students/part/${User}_part/
echo "10.10.10.${tID} ${User,,}" | tee -a /tmp/hostname &> /dev/null echo "10.10.10.${tID} ${User,,}" | tee -a /tmp/hostname &> /dev/null
echo " echo "
${User}: ${User}_${Machina}:
image: isensshbase image: isensshbase
hostname: ${User,,} hostname: ${User,,}-${Machina}
mem_limit: 256m
mem_reservation: 128M
cpus: 0.5
storage_opt:
size: '2G'
volumes: volumes:
- "./data/students/part/${User}_part:/home/isen" - './data/students/part/${User}_${Machina}_part:/home/isen'
networks: networks:
vpcbr: vpcbr:
ipv4_address: 10.10.10.${tID} ipv4_address: 10.10.10.${tID}
" | tee -a /tmp/docker-compose.yml &> /dev/null
" >> ${TMP}/docker-compose.yml
else
mount ./data/students/part/${User}_${Machina} ./data/students/part/${User}_${Machina}_part
fi fi
fi fi
done
done done
cat docker-compose.yml.template.footer >> ${TMP}/docker-compose.yml
cp ${TMP}/docker-compose.yml .
for Dir in $( ls -1 ./data/students/part/ | grep _part)
do
cp ${TMP}/hostname ./data/students/part/${Dir}/.gen
done
chmod 777 ./docker-compose.yml
cat docker-compose.yml.template.footer | tee -a /tmp/docker-compose.yml &> /dev/null cat docker-compose.yml.template.footer | tee -a /tmp/docker-compose.yml &> /dev/null
cp /tmp/docker-compose.yml . cp /tmp/docker-compose.yml .
for Dir in $( ls -1 ./data/students/part/ | grep _part) for Dir in $( ls -1 ./data/students/part/ | grep _part)

6
loop_from_hell Executable file
View File

@ -0,0 +1,6 @@
#!/bin/bash
while true
do
echo $((RANDOM+RANDOM))
done

10
mount.sh Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
cd /disk/DOCKER/isen-docker-farm/data/students/part
for var in $(ls -1 | grep -v part)
do
mount $var ${var}_part
done

29
push_file Executable file
View File

@ -0,0 +1,29 @@
#!/bin/bash
usage () {
[[ -z $? ]] && out=0 || out=$?
echo "push file in arguement in all docker isen instances"
echo "$0 file where"
exit $out
}
[[ -z $1 ]] && usage 1
[[ -z $2 ]] && usage 1
[[ ! -f $1 ]] && usage 2
for DI in $(docker ps | grep isenssh | awk '{print $NF}')
do
echo -n "$DI : "
docker cp ${1} ${DI}:${2} &> /dev/null
[[ $? -eq 0 ]] && echo OK || echo FAILED
done

View File

@ -1,14 +1,20 @@
#!/bin/bash #!/bin/bash
for var in $(cat docker-compose.yml | grep [A-Z].*-[A-Z]: | sed "s#:##g" | sed "s# .##g") #for var in $(cat docker-compose.yml | grep [A-Z].*-[A-Z]: | sed "s#:##g" | sed "s# .##g")
for var in $(cat docker-compose.yml | grep [A-Z].*: | grep -v part | cut -d":" -f1)
do do
echo $var echo $var
done done
read -p "Which docker instances do you want to restart ? " ans read -p "Which docker instances do you want to restart ? " ans
if [[ ! -z $(cat docker-compose.yml | grep [A-Z].*-[A-Z]: | sed "s#:##g" | sed "s# .##g" | grep $ans) ]] Rdocker=$(docker ps | grep "$ans" | awk '{print $NF}')
if [[ ! -z $(cat docker-compose.yml | grep [A-Z].*: | grep -v part | cut -d":" -f1 | grep $ans) ]]
then then
docker stop $Rdocker
docker rm $Rdocker
docker-compose up -d --no-deps $ans docker-compose up -d --no-deps $ans
else else
echo "$ans don't exist" echo "$ans don't exist"