mirror of
				https://github.com/telekom-security/tpotce.git
				synced 2025-11-03 22: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
 |