mirror of
				https://github.com/telekom-security/tpotce.git
				synced 2025-10-30 20:12:53 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			134 lines
		
	
	
	
		
			3.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			134 lines
		
	
	
	
		
			3.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| # Run as root only.
 | |
| myWHOAMI=$(whoami)
 | |
| if [ "$myWHOAMI" != "root" ]
 | |
|   then
 | |
|     echo "Need to run as root ..."
 | |
|     exit
 | |
| fi
 | |
| 
 | |
| myTPOTYMLFILE="/opt/tpot/etc/tpot.yml"
 | |
| 
 | |
| function fuGENERIC () {
 | |
| echo
 | |
| echo "You chose generic, please provide all the details of the broker"
 | |
| echo
 | |
| myENABLE="true"
 | |
| read -p "Host URL: " myHOST
 | |
| read -p "Port: " myPORT
 | |
| read -p "Channel: " myCHANNEL
 | |
| echo "For generic providers set this to 'false'"
 | |
| echo "If you received a CA certficate mount it into the ewsposter container by modifying $myTPOTYMLFILE"
 | |
| read -p "TLS - 'false' or path to CA in container: " myCERT
 | |
| read -p "Ident: " myIDENT
 | |
| read -p "Secret: " mySECRET
 | |
| read -p "Format ews (xml) or json: " myFORMAT
 | |
| }
 | |
| 
 | |
| function fuOPTOUT () {
 | |
| echo
 | |
| while [ 1 != 2 ]
 | |
|   do
 | |
|     read -s -n 1 -p "You chose to opt out (y/n)? " mySELECT
 | |
|       echo $mySELECT
 | |
|       case "$mySELECT" in
 | |
|         [y,Y])
 | |
|           echo "Opt out."
 | |
|           break
 | |
|           ;;
 | |
|         [n,N])
 | |
|           echo "Aborted."
 | |
|           exit
 | |
|           ;;
 | |
|       esac
 | |
| done
 | |
| myENABLE="false"
 | |
| myHOST="host"
 | |
| myPORT="port"
 | |
| myCHANNEL="channels"
 | |
| myCERT="false"
 | |
| myIDENT="user"
 | |
| mySECRET="secret"
 | |
| myFORMAT="json"
 | |
| }
 | |
| 
 | |
| function fuWRITETOFILE () {
 | |
| if [ -f '/data/ews/conf/hpfeeds.cfg' ]; then
 | |
|   echo "Creating backup of current config in /data/ews/conf/hpfeeds.cfg.old"
 | |
|   mv /data/ews/conf/hpfeeds.cfg /data/ews/conf/hpfeeds.cfg.old
 | |
| fi
 | |
| echo "Storing new config in /data/ews/conf/hpfeeds.cfg"
 | |
| cat >> /data/ews/conf/hpfeeds.cfg <<EOF
 | |
| myENABLE=$myENABLE
 | |
| myHOST=$myHOST
 | |
| myPORT=$myPORT
 | |
| myCHANNEL=$myCHANNEL
 | |
| myCERT=$myCERT
 | |
| myIDENT=$myIDENT
 | |
| mySECRET=$mySECRET
 | |
| myFORMAT=$myFORMAT
 | |
| EOF
 | |
| }
 | |
| 
 | |
| function fuAPPLY () {
 | |
| echo "Now stopping T-Pot ..."
 | |
| systemctl stop tpot
 | |
| echo "Applying your settings to tpot.yml ... "
 | |
| sed --follow-symlinks -i "s/EWS_HPFEEDS_ENABLE.*/EWS_HPFEEDS_ENABLE=${myENABLE}/g" "$myTPOTYMLFILE"
 | |
| sed --follow-symlinks -i "s/EWS_HPFEEDS_HOST.*/EWS_HPFEEDS_HOST=${myHOST}/g" "$myTPOTYMLFILE"
 | |
| sed --follow-symlinks -i "s/EWS_HPFEEDS_PORT.*/EWS_HPFEEDS_PORT=${myPORT}/g" "$myTPOTYMLFILE"
 | |
| sed --follow-symlinks -i "s/EWS_HPFEEDS_CHANNELS.*/EWS_HPFEEDS_CHANNELS=${myCHANNEL}/g" "$myTPOTYMLFILE"
 | |
| sed --follow-symlinks -i "s#EWS_HPFEEDS_TLSCERT.*#EWS_HPFEEDS_TLSCERT=${myCERT}#g" "$myTPOTYMLFILE"
 | |
| sed --follow-symlinks -i "s/EWS_HPFEEDS_IDENT.*/EWS_HPFEEDS_IDENT=${myIDENT}/g" "$myTPOTYMLFILE"
 | |
| sed --follow-symlinks -i "s/EWS_HPFEEDS_SECRET.*/EWS_HPFEEDS_SECRET=${mySECRET}/g" "$myTPOTYMLFILE"
 | |
| sed --follow-symlinks -i "s/EWS_HPFEEDS_FORMAT.*/EWS_HPFEEDS_FORMAT=${myFORMAT}/g" "$myTPOTYMLFILE"
 | |
| echo "Now starting T-Pot ..."
 | |
| systemctl start tpot
 | |
| echo "You can always change or review your settings in /data/ews/conf/hpfeeds.cfg and apply changes by"
 | |
| echo "running \"./hpfeeds_optin.sh --conf=/data/ews/conf/hpfeeds.cfg\""
 | |
| echo "Done."
 | |
| }
 | |
| 
 | |
| # Check for cmdline argument and parse config file
 | |
| filename=$(echo $@ | cut -d= -f2)
 | |
| if [ $# == 1 ] && echo $@ | grep '\-\-conf=' > /dev/null && [ ! -z $filename ] && [ -f $filename ]
 | |
|   then
 | |
|     source $filename
 | |
| else
 | |
| 
 | |
| # Proceed with interactive setup when no config file is found
 | |
| echo "HPFEEDS Delivery Opt-In for T-Pot"
 | |
| echo "---------------------------------"
 | |
| echo "By running this script you agree to share your data with a 3rd party and agree to their corresponding sharing terms."
 | |
| echo
 | |
| echo
 | |
| echo "Please choose your broker"
 | |
| echo "---------------------------"
 | |
| echo "[1] - Generic (enter details manually)"
 | |
| echo "[0] - Opt out of HPFEEDS"
 | |
| echo "[q] - Do not agree end exit"
 | |
| echo
 | |
| while [ 1 != 2 ]
 | |
|   do
 | |
|     read -s -n 1 -p "Your choice: " mySELECT
 | |
|       echo $mySELECT
 | |
|       case "$mySELECT" in
 | |
|         [1])
 | |
| 	  fuGENERIC
 | |
|           break
 | |
|           ;;
 | |
|         [0])
 | |
| 	  fuOPTOUT
 | |
|           break
 | |
|           ;;
 | |
|         [q,Q])
 | |
| 	  echo "Aborted."
 | |
|           exit
 | |
|           ;;
 | |
|       esac
 | |
| done
 | |
| 
 | |
| fi
 | |
| fuWRITETOFILE
 | |
| fuAPPLY
 | 
