mirror of
https://github.com/telekom-security/tpotce.git
synced 2025-04-28 19:28:50 +00:00

Remove old Sensor Edition and replace with Pot Edition Rename Pot Edition to new Sensor Edition POT is now called SENSOR
182 lines
5.4 KiB
Bash
Executable file
182 lines
5.4 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Do we have root?
|
|
function fuGOT_ROOT {
|
|
echo
|
|
echo -n "### Checking for root: "
|
|
if [ "$(whoami)" != "root" ];
|
|
then
|
|
echo "[ NOT OK ]"
|
|
echo "### Please run as root."
|
|
echo "### Example: sudo $0"
|
|
exit
|
|
else
|
|
echo "[ OK ]"
|
|
fi
|
|
}
|
|
|
|
function fuDEPLOY_SENSOR () {
|
|
echo
|
|
echo "###############################"
|
|
echo "# Deploying to T-Pot Hive ... #"
|
|
echo "###############################"
|
|
echo
|
|
sshpass -e ssh -4 -t -T -l "$MY_TPOT_USERNAME" -p 64295 "$MY_HIVE_IP" << EOF
|
|
echo "$SSHPASS" | sudo -S bash -c 'useradd -m -s /sbin/nologin -G tpotlogs "$MY_HIVE_USERNAME";
|
|
mkdir -p /home/"$MY_HIVE_USERNAME"/.ssh;
|
|
echo "$MY_SENSOR_PUBLICKEY" >> /home/"$MY_HIVE_USERNAME"/.ssh/authorized_keys;
|
|
chmod 600 /home/"$MY_HIVE_USERNAME"/.ssh/authorized_keys;
|
|
chmod 755 /home/"$MY_HIVE_USERNAME"/.ssh;
|
|
chown "$MY_HIVE_USERNAME":"$MY_HIVE_USERNAME" -R /home/"$MY_HIVE_USERNAME"/.ssh'
|
|
EOF
|
|
|
|
echo
|
|
echo "###########################"
|
|
echo "# Done. Please reboot ... #"
|
|
echo "###########################"
|
|
echo
|
|
|
|
exit 0
|
|
}
|
|
|
|
# Check Hive availability
|
|
function fuCHECK_HIVE () {
|
|
echo
|
|
echo "############################################"
|
|
echo "# Checking for T-Pot Hive availability ... #"
|
|
echo "############################################"
|
|
echo
|
|
sshpass -e ssh -4 -t -l "$MY_TPOT_USERNAME" -p 64295 -f -N -L64305:127.0.0.1:64305 "$MY_HIVE_IP" -o "StrictHostKeyChecking=no"
|
|
if [ $? -eq 0 ];
|
|
then
|
|
echo
|
|
echo "#########################"
|
|
echo "# T-Pot Hive available! #"
|
|
echo "#########################"
|
|
echo
|
|
myHIVE_OK=$(curl -s http://127.0.0.1:64305)
|
|
if [ "$myHIVE_OK" == "ok" ];
|
|
then
|
|
echo
|
|
echo "##############################"
|
|
echo "# T-Pot Hive tunnel test OK! #"
|
|
echo "##############################"
|
|
echo
|
|
kill -9 $(pidof ssh)
|
|
else
|
|
echo
|
|
echo "######################################################"
|
|
echo "# T-Pot Hive tunnel test FAILED! #"
|
|
echo "# Tunneled port tcp/64305 unreachable on T-Pot Hive. #"
|
|
echo "# Aborting. #"
|
|
echo "######################################################"
|
|
echo
|
|
kill -9 $(pidof ssh)
|
|
rm $MY_SENSOR_PUBLICKEYFILE
|
|
rm $MY_SENSOR_PRIVATEKEYFILE
|
|
rm $MY_LS_ENVCONFIGFILE
|
|
exit 1
|
|
fi;
|
|
else
|
|
echo
|
|
echo "#################################################################"
|
|
echo "# Something went wrong, most likely T-Pot Hive was unreachable! #"
|
|
echo "# Aborting. #"
|
|
echo "#################################################################"
|
|
echo
|
|
rm $MY_SENSOR_PUBLICKEYFILE
|
|
rm $MY_SENSOR_PRIVATEKEYFILE
|
|
rm $MY_LS_ENVCONFIGFILE
|
|
exit 1
|
|
fi;
|
|
}
|
|
|
|
function fuGET_DEPLOY_DATA () {
|
|
echo
|
|
echo "### Please provide data from your T-Pot Hive installation."
|
|
echo "### This usually is the one running the 'T-Pot Hive' type."
|
|
echo "### You will be needing the OS user (typically 'tsec'), the users' password and the IP / FQDN."
|
|
echo "### Do not worry, the password will not be persisted!"
|
|
echo
|
|
|
|
read -p "Username: " MY_TPOT_USERNAME
|
|
read -s -p "Password: " SSHPASS
|
|
echo
|
|
export SSHPASS
|
|
read -p "IP / FQDN: " MY_HIVE_IP
|
|
MY_HIVE_USERNAME="$(hostname)"
|
|
MY_TPOT_TYPE="SENSOR"
|
|
MY_LS_ENVCONFIGFILE="/data/elk/logstash/ls_environment"
|
|
|
|
MY_SENSOR_PUBLICKEYFILE="/data/elk/logstash/$MY_HIVE_USERNAME.pub"
|
|
MY_SENSOR_PRIVATEKEYFILE="/data/elk/logstash/$MY_HIVE_USERNAME"
|
|
if ! [ -s "$MY_SENSOR_PRIVATEKEYFILE" ] && ! [ -s "$MY_SENSOR_PUBLICKEYFILE" ];
|
|
then
|
|
echo
|
|
echo "##############################"
|
|
echo "# Generating ssh keyfile ... #"
|
|
echo "##############################"
|
|
echo
|
|
mkdir -p /data/elk/logstash
|
|
ssh-keygen -f "$MY_SENSOR_PRIVATEKEYFILE" -N "" -C "$MY_HIVE_USERNAME"
|
|
MY_SENSOR_PUBLICKEY="$(cat "$MY_SENSOR_PUBLICKEYFILE")"
|
|
else
|
|
echo
|
|
echo "#############################################"
|
|
echo "# There is already a ssh keyfile. Aborting. #"
|
|
echo "#############################################"
|
|
echo
|
|
exit 1
|
|
fi
|
|
echo
|
|
echo "###########################################################"
|
|
echo "# Writing config to /data/elk/logstash/ls_environment. #"
|
|
echo "# If you make changes to this file, you need to reboot or #"
|
|
echo "# run /opt/tpot/bin/updateip.sh. #"
|
|
echo "###########################################################"
|
|
echo
|
|
tee $MY_LS_ENVCONFIGFILE << EOF
|
|
MY_TPOT_TYPE=$MY_TPOT_TYPE
|
|
MY_SENSOR_PRIVATEKEYFILE=$MY_SENSOR_PRIVATEKEYFILE
|
|
MY_HIVE_USERNAME=$MY_HIVE_USERNAME
|
|
MY_HIVE_IP=$MY_HIVE_IP
|
|
EOF
|
|
}
|
|
|
|
# Deploy Pot to Hive
|
|
fuGOT_ROOT
|
|
echo
|
|
echo "#################################"
|
|
echo "# Ship T-Pot Logs to T-Pot Hive #"
|
|
echo "#################################"
|
|
echo
|
|
echo "If you already have a T-Pot Hive installation running and"
|
|
echo "this T-Pot installation is running the type \"Pot\" the"
|
|
echo "script will automagically setup this T-Pot to ship and"
|
|
echo "prepare the Hive to receive logs from this T-Pot."
|
|
echo
|
|
echo
|
|
echo "###################################"
|
|
echo "# Deploy T-Pot Logs to T-Pot Hive #"
|
|
echo "###################################"
|
|
echo
|
|
echo "[c] - Continue deplyoment"
|
|
echo "[q] - Abort and exit"
|
|
echo
|
|
while [ 1 != 2 ]
|
|
do
|
|
read -s -n 1 -p "Your choice: " mySELECT
|
|
echo $mySELECT
|
|
case "$mySELECT" in
|
|
[c,C])
|
|
fuGET_DEPLOY_DATA
|
|
fuCHECK_HIVE
|
|
fuDEPLOY_SENSOR
|
|
break
|
|
;;
|
|
[q,Q])
|
|
echo "Aborted."
|
|
exit 0
|
|
;;
|
|
esac
|
|
done
|