| 
									
										
										
										
											2021-12-21 11:36:38 +00:00
										 |  |  | #!/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 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-20 18:26:43 +00:00
										 |  |  | function fuDEPLOY_SENSOR () { | 
					
						
							| 
									
										
										
										
											2022-01-03 18:24:17 +00:00
										 |  |  | echo | 
					
						
							|  |  |  | echo "###############################" | 
					
						
							|  |  |  | echo "# Deploying to T-Pot Hive ... #" | 
					
						
							|  |  |  | echo "###############################" | 
					
						
							|  |  |  | echo | 
					
						
							| 
									
										
										
										
											2021-12-21 11:36:38 +00:00
										 |  |  | 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; | 
					
						
							| 
									
										
										
										
											2022-01-20 18:26:43 +00:00
										 |  |  | echo "$MY_SENSOR_PUBLICKEY" >> /home/"$MY_HIVE_USERNAME"/.ssh/authorized_keys; | 
					
						
							| 
									
										
										
										
											2021-12-21 11:36:38 +00:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2022-01-03 18:24:17 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | echo | 
					
						
							|  |  |  | echo "###########################" | 
					
						
							|  |  |  | echo "# Done. Please reboot ... #" | 
					
						
							|  |  |  | echo "###########################" | 
					
						
							|  |  |  | echo | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit 0 | 
					
						
							| 
									
										
										
										
											2021-12-21 11:36:38 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Check Hive availability  | 
					
						
							|  |  |  | function fuCHECK_HIVE () { | 
					
						
							| 
									
										
										
										
											2022-01-03 18:24:17 +00:00
										 |  |  | echo | 
					
						
							|  |  |  | echo "############################################" | 
					
						
							|  |  |  | echo "# Checking for T-Pot Hive availability ... #" | 
					
						
							|  |  |  | echo "############################################" | 
					
						
							|  |  |  | echo | 
					
						
							| 
									
										
										
										
											2022-01-04 18:35:44 +00:00
										 |  |  | 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" | 
					
						
							| 
									
										
										
										
											2021-12-21 11:36:38 +00:00
										 |  |  | if [ $? -eq 0 ]; | 
					
						
							|  |  |  |   then | 
					
						
							| 
									
										
										
										
											2022-01-03 18:24:17 +00:00
										 |  |  |     echo | 
					
						
							|  |  |  |     echo "#########################" | 
					
						
							|  |  |  |     echo "# T-Pot Hive available! #" | 
					
						
							|  |  |  |     echo "#########################" | 
					
						
							|  |  |  |     echo | 
					
						
							| 
									
										
										
										
											2021-12-21 11:36:38 +00:00
										 |  |  |     myHIVE_OK=$(curl -s http://127.0.0.1:64305) | 
					
						
							|  |  |  |     if [ "$myHIVE_OK" == "ok" ]; | 
					
						
							|  |  |  |       then | 
					
						
							| 
									
										
										
										
											2022-01-03 18:24:17 +00:00
										 |  |  | 	echo | 
					
						
							|  |  |  |         echo "##############################" | 
					
						
							|  |  |  |         echo "# T-Pot Hive tunnel test OK! #" | 
					
						
							|  |  |  |         echo "##############################" | 
					
						
							|  |  |  |         echo | 
					
						
							| 
									
										
										
										
											2021-12-21 11:36:38 +00:00
										 |  |  |         kill -9 $(pidof ssh) | 
					
						
							|  |  |  |       else | 
					
						
							| 
									
										
										
										
											2022-01-03 18:24:17 +00:00
										 |  |  |         echo | 
					
						
							|  |  |  | 	echo "######################################################" | 
					
						
							|  |  |  |         echo "# T-Pot Hive tunnel test FAILED!                     #" | 
					
						
							|  |  |  | 	echo "# Tunneled port tcp/64305 unreachable on T-Pot Hive. #" | 
					
						
							|  |  |  | 	echo "# Aborting.                                          #" | 
					
						
							|  |  |  |         echo "######################################################" | 
					
						
							|  |  |  |         echo | 
					
						
							| 
									
										
										
										
											2021-12-21 11:36:38 +00:00
										 |  |  |         kill -9 $(pidof ssh) | 
					
						
							| 
									
										
										
										
											2022-01-20 18:26:43 +00:00
										 |  |  | 	rm $MY_SENSOR_PUBLICKEYFILE | 
					
						
							|  |  |  | 	rm $MY_SENSOR_PRIVATEKEYFILE | 
					
						
							| 
									
										
										
										
											2022-01-03 18:24:17 +00:00
										 |  |  | 	rm $MY_LS_ENVCONFIGFILE | 
					
						
							|  |  |  | 	exit 1 | 
					
						
							| 
									
										
										
										
											2021-12-21 11:36:38 +00:00
										 |  |  |     fi; | 
					
						
							|  |  |  |   else | 
					
						
							| 
									
										
										
										
											2022-01-03 18:24:17 +00:00
										 |  |  |     echo | 
					
						
							|  |  |  |     echo "#################################################################" | 
					
						
							|  |  |  |     echo "# Something went wrong, most likely T-Pot Hive was unreachable! #" | 
					
						
							|  |  |  |     echo "# Aborting.                                                     #" | 
					
						
							|  |  |  |     echo "#################################################################" | 
					
						
							|  |  |  |     echo | 
					
						
							| 
									
										
										
										
											2022-01-20 18:26:43 +00:00
										 |  |  |     rm $MY_SENSOR_PUBLICKEYFILE | 
					
						
							|  |  |  |     rm $MY_SENSOR_PRIVATEKEYFILE | 
					
						
							| 
									
										
										
										
											2022-01-03 18:24:17 +00:00
										 |  |  |     rm $MY_LS_ENVCONFIGFILE | 
					
						
							|  |  |  |     exit 1 | 
					
						
							| 
									
										
										
										
											2021-12-21 11:36:38 +00:00
										 |  |  | 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)" | 
					
						
							| 
									
										
										
										
											2022-01-20 18:26:43 +00:00
										 |  |  | MY_TPOT_TYPE="SENSOR" | 
					
						
							| 
									
										
										
										
											2022-01-03 18:24:17 +00:00
										 |  |  | MY_LS_ENVCONFIGFILE="/data/elk/logstash/ls_environment" | 
					
						
							| 
									
										
										
										
											2021-12-21 11:36:38 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-20 18:26:43 +00:00
										 |  |  | 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" ]; | 
					
						
							| 
									
										
										
										
											2021-12-21 11:36:38 +00:00
										 |  |  |   then | 
					
						
							| 
									
										
										
										
											2022-01-03 18:24:17 +00:00
										 |  |  |     echo | 
					
						
							|  |  |  |     echo "##############################" | 
					
						
							|  |  |  |     echo "# Generating ssh keyfile ... #" | 
					
						
							|  |  |  |     echo "##############################" | 
					
						
							|  |  |  |     echo | 
					
						
							| 
									
										
										
										
											2021-12-21 11:36:38 +00:00
										 |  |  |     mkdir -p /data/elk/logstash | 
					
						
							| 
									
										
										
										
											2022-01-20 18:26:43 +00:00
										 |  |  |     ssh-keygen -f "$MY_SENSOR_PRIVATEKEYFILE" -N "" -C "$MY_HIVE_USERNAME" | 
					
						
							|  |  |  |     MY_SENSOR_PUBLICKEY="$(cat "$MY_SENSOR_PUBLICKEYFILE")" | 
					
						
							| 
									
										
										
										
											2021-12-21 11:36:38 +00:00
										 |  |  |   else | 
					
						
							| 
									
										
										
										
											2022-01-03 18:24:17 +00:00
										 |  |  |     echo | 
					
						
							|  |  |  |     echo "#############################################" | 
					
						
							|  |  |  |     echo "# There is already a ssh keyfile. Aborting. #" | 
					
						
							|  |  |  |     echo "#############################################" | 
					
						
							|  |  |  |     echo | 
					
						
							|  |  |  |     exit 1 | 
					
						
							| 
									
										
										
										
											2021-12-21 11:36:38 +00:00
										 |  |  | fi | 
					
						
							| 
									
										
										
										
											2022-01-03 18:24:17 +00:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2022-01-04 16:16:27 +00:00
										 |  |  | MY_TPOT_TYPE=$MY_TPOT_TYPE | 
					
						
							| 
									
										
										
										
											2022-01-20 18:26:43 +00:00
										 |  |  | MY_SENSOR_PRIVATEKEYFILE=$MY_SENSOR_PRIVATEKEYFILE | 
					
						
							| 
									
										
										
										
											2022-01-04 16:16:27 +00:00
										 |  |  | MY_HIVE_USERNAME=$MY_HIVE_USERNAME | 
					
						
							|  |  |  | MY_HIVE_IP=$MY_HIVE_IP | 
					
						
							| 
									
										
										
										
											2022-01-03 18:24:17 +00:00
										 |  |  | EOF | 
					
						
							| 
									
										
										
										
											2021-12-21 11:36:38 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Deploy Pot to Hive | 
					
						
							|  |  |  | fuGOT_ROOT | 
					
						
							|  |  |  | echo | 
					
						
							| 
									
										
										
										
											2022-01-03 18:24:17 +00:00
										 |  |  | echo "#################################" | 
					
						
							|  |  |  | echo "# Ship T-Pot Logs to T-Pot Hive #" | 
					
						
							|  |  |  | echo "#################################" | 
					
						
							|  |  |  | echo | 
					
						
							| 
									
										
										
										
											2022-01-04 16:16:27 +00:00
										 |  |  | 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." | 
					
						
							| 
									
										
										
										
											2021-12-21 11:36:38 +00:00
										 |  |  | echo | 
					
						
							|  |  |  | echo | 
					
						
							| 
									
										
										
										
											2022-01-03 18:24:17 +00:00
										 |  |  | echo "###################################" | 
					
						
							|  |  |  | echo "# Deploy T-Pot Logs to T-Pot Hive #" | 
					
						
							|  |  |  | echo "###################################" | 
					
						
							|  |  |  | echo  | 
					
						
							| 
									
										
										
										
											2021-12-21 11:36:38 +00:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2022-01-20 18:26:43 +00:00
										 |  |  | 	  fuDEPLOY_SENSOR | 
					
						
							| 
									
										
										
										
											2021-12-21 11:36:38 +00:00
										 |  |  |           break | 
					
						
							|  |  |  |           ;; | 
					
						
							|  |  |  |         [q,Q]) | 
					
						
							|  |  |  |           echo "Aborted." | 
					
						
							| 
									
										
										
										
											2022-01-03 18:24:17 +00:00
										 |  |  |           exit 0 | 
					
						
							| 
									
										
										
										
											2021-12-21 11:36:38 +00:00
										 |  |  |           ;; | 
					
						
							|  |  |  |       esac | 
					
						
							|  |  |  | done |