2015-12-08 14:47:39 +00:00
#!/bin/bash
########################################################
# T-Pot post install script #
2016-05-12 17:26:06 +00:00
# Ubuntu server 16.04.0, x64 #
2015-12-08 14:47:39 +00:00
# #
2017-03-22 18:27:43 +00:00
# v17.06 by mo, DTAG, 2017-03-22 #
2015-12-08 14:47:39 +00:00
########################################################
2017-03-22 18:27:43 +00:00
# Set TERM, DIALOGRC
2017-03-22 18:42:24 +00:00
export TERM = linux
2017-03-22 18:27:43 +00:00
export DIALOGRC = /etc/dialogrc
# Let's load dialog color theme
cp /root/tpot/etc/dialogrc /etc/
2015-12-08 14:47:39 +00:00
# Some global vars
myPROXYFILEPATH = "/root/tpot/etc/proxy"
myNTPCONFPATH = "/root/tpot/etc/ntp"
myPFXPATH = "/root/tpot/keys/8021x.pfx"
myPFXPWPATH = "/root/tpot/keys/8021x.pw"
myPFXHOSTIDPATH = "/root/tpot/keys/8021x.id"
2017-03-22 18:27:43 +00:00
myBACKTITLE = "T-Pot Installer"
mySITES = "https://index.docker.io https://ubuntu.com https://github.com http://nsanamegenerator.com"
2015-12-08 14:47:39 +00:00
# Let's create a function for colorful output
fuECHO ( ) {
local myRED = 1
local myWHT = 7
2017-04-16 22:53:47 +00:00
tput setaf $myRED -T linux
2016-10-25 23:21:42 +00:00
echo " $1 " " $2 "
2017-04-16 22:53:47 +00:00
tput setaf $myWHT -T linux
2015-12-08 14:47:39 +00:00
}
2016-08-22 15:24:48 +00:00
fuRANDOMWORD ( ) {
local myWORDFILE = /usr/share/dict/names
local myLINES = $( cat $myWORDFILE | wc -l)
local myRANDOM = $(( RANDOM % $myLINES ))
local myNUM = $(( myRANDOM * myRANDOM % $myLINES + 1 ))
echo -n $( sed -n " $myNUM p " $myWORDFILE | tr -d \' | tr A-Z a-z)
}
2015-12-08 14:47:39 +00:00
# Let's make sure there is a warning if running for a second time
2017-04-16 22:53:47 +00:00
#if [ -f install.log ];
# then fuECHO "### Running more than once may complicate things. Erase install.log if you are really sure."
# exit 1;
#fi
2015-12-08 14:47:39 +00:00
2017-03-22 18:27:43 +00:00
# Let's setup the proxy for env
if [ -f $myPROXYFILEPATH ] ;
then fuECHO "### Setting up the proxy."
myPROXY = $( cat $myPROXYFILEPATH )
tee -a /etc/environment <<EOF
export http_proxy = $myPROXY
export https_proxy = $myPROXY
export HTTP_PROXY = $myPROXY
export HTTPS_PROXY = $myPROXY
export no_proxy = localhost,127.0.0.1,.sock
EOF
source /etc/environment
# Let's setup the proxy for apt
tee /etc/apt/apt.conf <<EOF
Acquire::http::Proxy " $myPROXY " ;
Acquire::https::Proxy " $myPROXY " ;
EOF
fi
# Let's test internet connection
fuECHO "### Testing internet connection."
for i in $mySITES ;
do
curl --connect-timeout 5 -IsS $i > /dev/null;
if [ $? -ne 0 ] ;
then
2017-04-16 21:44:19 +00:00
dialog --backtitle " $myBACKTITLE " --title "[ Continue? ]" --yesno "\nInternet connection test failed. This might indicate some problems with your connection. You can continue, but the installation might fail." 10 50
2017-03-22 18:27:43 +00:00
if [ $? = 1 ] ;
then
2017-04-16 21:44:19 +00:00
dialog --backtitle " $myBACKTITLE " --title "[ Abort ]" --msgbox "\nInstallation aborted. Exiting the installer." 7 50
2017-03-22 18:27:43 +00:00
exit
else
break;
fi ;
fi ;
done ;
2016-10-27 11:11:51 +00:00
# Let's remove NGINX default website
fuECHO "### Removing NGINX default website."
2017-04-16 21:44:19 +00:00
rm -rf /etc/nginx/sites-enabled/default
rm -rf /etc/nginx/sites-available/default
rm -rf /usr/share/nginx/html/index.html
2016-08-07 17:08:13 +00:00
2016-10-23 11:38:44 +00:00
# Let's wait a few seconds to avoid interference with service messages
fuECHO "### Waiting a few seconds to avoid interference with service messages."
sleep 5
2017-03-22 18:27:43 +00:00
# Let's ask user for install flavor
2016-10-25 16:35:39 +00:00
# Install types are TPOT, HP, INDUSTRIAL, ALL
2017-04-16 21:44:19 +00:00
myFLAVOR = $( dialog --no-cancel --backtitle " $myBACKTITLE " --title "[ Choose your edition ]" --no-tags --menu \
2017-03-22 18:27:43 +00:00
"\nRequired: 4GB RAM, 64GB disk\nRecommended: 8GB RAM, 128GB SSD" 14 60 4 \
"TPOT" "Standard Honeypots, Suricata & ELK" \
"HP" "Honeypots only, w/o Suricata & ELK" \
"INDUSTRIAL" "Conpot, eMobility, Suricata & ELK" \
"EVERYTHING" "Everything" 3>& 1 1>& 2 2>& 3 3>& -)
2016-10-25 16:35:39 +00:00
2016-08-22 15:24:48 +00:00
# Let's ask user for a web user and password
2017-03-22 18:27:43 +00:00
myOK = "1"
2016-08-22 15:24:48 +00:00
myUSER = "tsec"
while [ 1 != 2 ]
do
2017-04-16 21:44:19 +00:00
myUSER = $( dialog --backtitle " $myBACKTITLE " --title "[ Enter your web user name ]" --inputbox "\nUsername (tsec not allowed)" 9 50 3>& 1 1>& 2 2>& 3 3>& -)
myUSER = $( echo $myUSER | tr -cd "[:alnum:]_.-" )
dialog --backtitle " $myBACKTITLE " --title "[ Your username is ]" --yesno " \n $myUSER " 7 50
2017-03-22 18:27:43 +00:00
myOK = $?
if [ " $myOK " = "0" ] && [ " $myUSER " != "tsec" ] && [ " $myUSER " != "" ] ;
2016-08-22 15:24:48 +00:00
then
break
fi
done
myPASS1 = "pass1"
myPASS2 = "pass2"
2017-04-16 21:44:19 +00:00
while [ " $myPASS1 " != " $myPASS2 " ]
2016-08-22 15:24:48 +00:00
do
2016-10-23 12:54:57 +00:00
while [ " $myPASS1 " = = "pass1" ] || [ " $myPASS1 " = = "" ]
do
2017-04-16 21:44:19 +00:00
myPASS1 = $( dialog --insecure --backtitle " $myBACKTITLE " --title "[ Enter your web user password ]" --passwordbox "\nPassword" 9 50 3>& 1 1>& 2 2>& 3 3>& -)
2016-10-23 12:54:57 +00:00
done
2017-04-16 21:44:19 +00:00
myPASS2 = $( dialog --insecure --backtitle " $myBACKTITLE " --title "[ Repeat web user password ]" --passwordbox "\nPassword" 9 50 3>& 1 1>& 2 2>& 3 3>& -)
2016-10-23 12:54:57 +00:00
if [ " $myPASS1 " != " $myPASS2 " ] ;
then
2017-04-16 21:44:19 +00:00
dialog --backtitle " $myBACKTITLE " --title "[ Passwords do not match. ]" --msgbox "\nPlease re-enter your password." 7 50
2016-10-23 12:54:57 +00:00
myPASS1 = "pass1"
myPASS2 = "pass2"
fi
2016-08-22 15:24:48 +00:00
done
2017-04-16 21:44:19 +00:00
htpasswd -b -c /etc/nginx/nginxpasswd " $myUSER " " $myPASS1 "
2016-10-27 15:23:43 +00:00
fuECHO
2016-08-22 15:24:48 +00:00
2017-04-16 21:44:19 +00:00
# Let's log for the beauty of it
2017-04-16 22:53:47 +00:00
#set -e
#exec 2> >(tee "install.err")
#exec > >(tee "install.log")
2017-04-16 21:44:19 +00:00
2017-03-22 18:27:43 +00:00
# Let's generate a SSL self-signed certificate without interaction (browsers will see it invalid anyway)
2016-08-22 15:24:48 +00:00
fuECHO "### Generating a self-signed-certificate for NGINX."
mkdir -p /etc/nginx/ssl
2017-03-22 18:27:43 +00:00
openssl req -nodes -x509 -sha512 -newkey rsa:8192 -keyout "/etc/nginx/ssl/nginx.key" -out "/etc/nginx/ssl/nginx.crt" -days 3650 -subj '/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd'
2015-12-08 14:47:39 +00:00
# Let's setup the ntp server
if [ -f $myNTPCONFPATH ] ;
then
fuECHO "### Setting up the ntp server."
cp $myNTPCONFPATH /etc/ntp.conf
fi
# Let's setup 802.1x networking
if [ -f $myPFXPATH ] ;
then
fuECHO "### Setting up 802.1x networking."
cp $myPFXPATH /etc/wpa_supplicant/
if [ -f $myPFXPWPATH ] ;
then
fuECHO "### Setting up 802.1x password."
myPFXPW = $( cat $myPFXPWPATH )
fi
myPFXHOSTID = $( cat $myPFXHOSTIDPATH )
tee -a /etc/network/interfaces <<EOF
wpa-driver wired
wpa-conf /etc/wpa_supplicant/wired8021x.conf
### Example wireless config for 802.1x
### This configuration was tested with the IntelNUC series
### If problems occur you can try and change wpa-driver to "iwlwifi"
### Do not forget to enter a ssid in /etc/wpa_supplicant/wireless8021x.conf
2016-12-06 12:18:00 +00:00
### The Intel NUC uses wlpXsY notation instead of wlanX
2015-12-08 14:47:39 +00:00
#
2016-12-06 12:18:00 +00:00
#auto wlp2s0
#iface wlp2s0 inet dhcp
2015-12-08 14:47:39 +00:00
# wpa-driver wext
# wpa-conf /etc/wpa_supplicant/wireless8021x.conf
EOF
tee /etc/wpa_supplicant/wired8021x.conf <<EOF
ctrl_interface = /var/run/wpa_supplicant
ctrl_interface_group = root
eapol_version = 1
ap_scan = 1
network = {
key_mgmt = IEEE8021X
eap = TLS
identity = " host/ $myPFXHOSTID "
private_key = "/etc/wpa_supplicant/8021x.pfx"
private_key_passwd = " $myPFXPW "
}
EOF
tee /etc/wpa_supplicant/wireless8021x.conf <<EOF
ctrl_interface = /var/run/wpa_supplicant
ctrl_interface_group = root
eapol_version = 1
ap_scan = 1
network = {
ssid = "<your_ssid_here_without_brackets>"
key_mgmt = WPA-EAP
pairwise = CCMP
group = CCMP
eap = TLS
identity = " host/ $myPFXHOSTID "
private_key = "/etc/wpa_supplicant/8021x.pfx"
private_key_passwd = " $myPFXPW "
}
EOF
fi
# Let's provide a wireless example config ...
fuECHO "### Providing a wireless example config."
tee -a /etc/network/interfaces <<EOF
### Example wireless config without 802.1x
### This configuration was tested with the IntelNUC series
### If problems occur you can try and change wpa-driver to "iwlwifi"
#
#auto wlan0
#iface wlan0 inet dhcp
# wpa-driver wext
# wpa-ssid <your_ssid_here_without_brackets>
# wpa-ap-scan 1
# wpa-proto RSN
# wpa-pairwise CCMP
# wpa-group CCMP
# wpa-key-mgmt WPA-PSK
# wpa-psk "<your_password_here_without_brackets>"
EOF
# Let's modify the sources list
sed -i '/cdrom/d' /etc/apt/sources.list
2016-01-29 16:56:26 +00:00
# Let's make sure SSH roaming is turned off (CVE-2016-0777, CVE-2016-0778)
fuECHO "### Let's make sure SSH roaming is turned off."
tee -a /etc/ssh/ssh_config <<EOF
UseRoaming no
EOF
2016-08-01 13:25:58 +00:00
# Let's pull some updates
fuECHO "### Pulling Updates."
apt-get update -y
apt-get upgrade -y
# Let's clean up apt
apt-get autoclean -y
apt-get autoremove -y
2017-03-22 18:27:43 +00:00
# Installing alerta-cli, wetty, ctop, elasticdump
2016-08-01 13:25:58 +00:00
fuECHO "### Installing alerta-cli."
2016-08-06 22:06:31 +00:00
pip install --upgrade pip
2016-08-01 13:25:58 +00:00
pip install alerta
fuECHO "### Installing wetty."
2016-08-06 22:06:31 +00:00
ln -s /usr/bin/nodejs /usr/bin/node
2016-11-29 17:03:49 +00:00
npm install https://github.com/t3chn0m4g3/wetty -g
2017-03-22 18:27:43 +00:00
fuECHO "### Installing elasticdump."
npm install https://github.com/t3chn0m4g3/elasticsearch-dump -g
2017-03-12 20:57:56 +00:00
fuECHO "### Installing ctop."
wget https://github.com/bcicen/ctop/releases/download/v0.4.1/ctop-0.4.1-linux-amd64 -O ctop
mv ctop /usr/bin/
chmod +x /usr/bin/ctop
2016-08-01 13:25:58 +00:00
2015-12-08 14:47:39 +00:00
# Let's add proxy settings to docker defaults
if [ -f $myPROXYFILEPATH ] ;
then fuECHO "### Setting up the proxy for docker."
myPROXY = $( cat $myPROXYFILEPATH )
tee -a /etc/default/docker <<EOF
2016-12-06 09:44:04 +00:00
http_proxy = $myPROXY
https_proxy = $myPROXY
HTTP_PROXY = $myPROXY
HTTPS_PROXY = $myPROXY
no_proxy = localhost,127.0.0.1,.sock
2015-12-08 14:47:39 +00:00
EOF
fi
# Let's add a new user
fuECHO "### Adding new user."
addgroup --gid 2000 tpot
adduser --system --no-create-home --uid 2000 --disabled-password --disabled-login --gid 2000 tpot
# Let's set the hostname
fuECHO "### Setting a new hostname."
2016-12-06 08:55:41 +00:00
myHOST = $( curl -s -f www.nsanamegenerator.com | html2text | tr A-Z a-z | awk '{print $1}' )
2016-08-22 15:24:48 +00:00
if [ " $myHOST " = "" ] ; then
fuECHO "### Failed to fetch name from remote, using local cache."
myHOST = $( fuRANDOMWORD)
fi
2015-12-08 14:47:39 +00:00
hostnamectl set-hostname $myHOST
sed -i 's#127.0.1.1.*#127.0.1.1\t' " $myHOST " '#g' /etc/hosts
# Let's patch sshd_config
fuECHO "### Patching sshd_config to listen on port 64295 and deny password authentication."
sed -i 's#Port 22#Port 64295#' /etc/ssh/sshd_config
sed -i 's#\#PasswordAuthentication yes#PasswordAuthentication no#' /etc/ssh/sshd_config
2016-08-01 13:25:58 +00:00
# Let's allow ssh password authentication from RFC1918 networks
2016-08-08 00:21:02 +00:00
fuECHO "### Allow SSH password authentication from RFC1918 networks"
2016-08-01 13:25:58 +00:00
tee -a /etc/ssh/sshd_config <<EOF
Match address 127.0.0.1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
PasswordAuthentication yes
EOF
2015-12-08 14:47:39 +00:00
# Let's patch docker defaults, so we can run images as service
2017-03-04 20:24:50 +00:00
#fuECHO "### Patching docker defaults."
#tee -a /etc/default/docker <<EOF
#DOCKER_OPTS="-r=false"
#EOF
2015-12-08 14:47:39 +00:00
2016-06-02 16:50:43 +00:00
# Let's restart docker for proxy changes to take effect
systemctl restart docker
2016-10-23 13:34:11 +00:00
sleep 5
2016-06-02 16:50:43 +00:00
2015-12-08 14:47:39 +00:00
# Let's make sure only myFLAVOR images will be downloaded and started
2016-03-07 12:13:52 +00:00
case $myFLAVOR in
HP)
echo "### Preparing HONEYPOT flavor installation."
2016-02-12 23:21:44 +00:00
cp /root/tpot/data/imgcfg/hp_images.conf /root/tpot/data/images.conf
2016-03-07 12:13:52 +00:00
; ;
INDUSTRIAL)
echo "### Preparing INDUSTRIAL flavor installation."
2016-02-12 23:21:44 +00:00
cp /root/tpot/data/imgcfg/industrial_images.conf /root/tpot/data/images.conf
2016-03-07 12:13:52 +00:00
; ;
TPOT)
echo "### Preparing TPOT flavor installation."
2016-02-12 23:21:44 +00:00
cp /root/tpot/data/imgcfg/tpot_images.conf /root/tpot/data/images.conf
2016-03-07 12:13:52 +00:00
; ;
ALL)
echo "### Preparing EVERYTHING flavor installation."
2016-02-12 23:21:44 +00:00
cp /root/tpot/data/imgcfg/all_images.conf /root/tpot/data/images.conf
2016-03-07 12:13:52 +00:00
; ;
esac
2016-02-12 21:47:19 +00:00
2015-12-08 14:47:39 +00:00
# Let's load docker images
fuECHO "### Loading docker images. Please be patient, this may take a while."
2016-08-01 13:25:58 +00:00
for name in $( cat /root/tpot/data/images.conf)
do
2017-03-13 10:07:46 +00:00
docker pull dtagdevsec/$name :1706
2016-08-01 13:25:58 +00:00
done
2015-12-08 14:47:39 +00:00
# Let's add the daily update check with a weekly clean interval
fuECHO "### Modifying update checks."
tee /etc/apt/apt.conf.d/10periodic <<EOF
APT::Periodic::Update-Package-Lists "1" ;
APT::Periodic::Download-Upgradeable-Packages "0" ;
APT::Periodic::AutocleanInterval "7" ;
EOF
# Let's make sure to reboot the system after a kernel panic
fuECHO "### Reboot after kernel panic."
tee -a /etc/sysctl.conf <<EOF
# Reboot after kernel panic, check via /proc/sys/kernel/panic[_on_oops]
2017-02-26 11:29:38 +00:00
# Set required map count for ELK
2015-12-08 14:47:39 +00:00
kernel.panic = 1
kernel.panic_on_oops = 1
2017-02-26 11:29:38 +00:00
vm.max_map_count = 262144
2015-12-08 14:47:39 +00:00
EOF
# Let's add some cronjobs
fuECHO "### Adding cronjobs."
tee -a /etc/crontab <<EOF
# Show running containers every 60s via /dev/tty2
2016-10-23 11:38:44 +00:00
#*/2 * * * * root status.sh > /dev/tty2
2015-12-08 14:47:39 +00:00
# Check if containers and services are up
2016-10-23 11:38:44 +00:00
*/5 * * * * root check.sh
2015-12-08 14:47:39 +00:00
2016-06-18 22:20:02 +00:00
# Example for alerta-cli IP update
2016-10-23 11:38:44 +00:00
#*/5 * * * * root alerta --endpoint-url http://<ip>:<port>/api delete --filters resource=<host> && alerta --endpoint-url http://<ip>:<port>/api send -e IP -r <host> -E Production -s ok -S T-Pot -t \$(cat /data/elk/logstash/mylocal.ip) --status open
2016-06-18 22:20:02 +00:00
2015-12-08 14:47:39 +00:00
# Check if updated images are available and download them
2017-03-13 10:07:46 +00:00
27 1 * * * root for i in \$ ( cat /data/images.conf) ; do docker pull dtagdevsec/\$ i:1706; done
2015-12-08 14:47:39 +00:00
# Restart docker service and containers
2016-10-23 10:34:08 +00:00
27 3 * * * root dcres.sh
2015-12-08 14:47:39 +00:00
2016-03-02 15:21:17 +00:00
# Delete elastic indices older than 90 days (kibana index is omitted by default)
2016-10-23 10:34:08 +00:00
27 4 * * * root docker exec elk bash -c '/usr/local/bin/curator --host 127.0.0.1 delete indices --older-than 90 --time-unit days --timestring \%Y.\%m.\%d'
2015-12-08 14:47:39 +00:00
# Update IP and erase check.lock if it exists
2017-04-07 15:20:56 +00:00
27 5 * * * root /etc/rc.local
2016-10-23 10:34:08 +00:00
# Daily reboot
27 23 * * * root reboot
2015-12-08 14:47:39 +00:00
# Check for updated packages every sunday, upgrade and reboot
2016-10-23 10:34:08 +00:00
27 16 * * 0 root apt-get autoclean -y && apt-get autoremove -y && apt-get update -y && apt-get upgrade -y && sleep 10 && reboot
2015-12-08 14:47:39 +00:00
EOF
# Let's create some files and folders
fuECHO "### Creating some files and folders."
2016-02-19 16:52:45 +00:00
mkdir -p /data/conpot/log \
2015-12-14 13:53:20 +00:00
/data/cowrie/log/tty/ /data/cowrie/downloads/ /data/cowrie/keys/ /data/cowrie/misc/ \
2016-06-01 15:46:06 +00:00
/data/dionaea/log /data/dionaea/bistreams /data/dionaea/binaries /data/dionaea/rtp /data/dionaea/roots/ftp /data/dionaea/roots/tftp /data/dionaea/roots/www /data/dionaea/roots/upnp \
2016-02-19 16:52:45 +00:00
/data/elasticpot/log \
2016-06-18 22:20:02 +00:00
/data/elk/data /data/elk/log /data/elk/logstash/conf \
/data/glastopf /data/honeytrap/log/ /data/honeytrap/attacks/ /data/honeytrap/downloads/ \
2016-02-19 16:52:45 +00:00
/data/emobility/log \
2017-03-12 23:31:34 +00:00
/data/ews/conf \
2016-08-08 00:21:02 +00:00
/data/suricata/log /home/tsec/.ssh/
2016-02-08 11:21:03 +00:00
# Let's take care of some files and permissions before copying
chmod 500 /root/tpot/bin/*
chmod 600 /root/tpot/data/*
chmod 644 /root/tpot/etc/issue
chmod 755 /root/tpot/etc/rc.local
2016-05-30 20:38:28 +00:00
chmod 644 /root/tpot/data/systemd/*
2015-12-08 14:47:39 +00:00
# Let's copy some files
2016-03-09 21:10:44 +00:00
tar xvfz /root/tpot/data/elkbase.tgz -C /
cp /root/tpot/data/elkbase.tgz /data/
2015-12-08 14:47:39 +00:00
cp -R /root/tpot/bin/* /usr/bin/
cp -R /root/tpot/data/* /data/
2016-08-01 13:25:58 +00:00
cp /root/tpot/data/systemd/* /etc/systemd/system/
2016-08-08 00:21:02 +00:00
cp /root/tpot/etc/issue /etc/
cp -R /root/tpot/etc/nginx/ssl /etc/nginx/
2016-08-06 22:06:31 +00:00
cp /root/tpot/etc/nginx/tpotweb.conf /etc/nginx/sites-available/
2016-10-11 12:30:30 +00:00
cp /root/tpot/etc/nginx/nginx.conf /etc/nginx/nginx.conf
2015-12-08 14:47:39 +00:00
cp /root/tpot/keys/authorized_keys /home/tsec/.ssh/authorized_keys
2016-08-07 17:08:13 +00:00
cp /root/tpot/usr/share/nginx/html/* /usr/share/nginx/html/
2016-02-08 11:21:03 +00:00
for i in $( cat /data/images.conf) ;
2016-02-11 13:57:10 +00:00
do
2016-05-28 22:03:46 +00:00
systemctl enable $i ;
2016-02-08 11:21:03 +00:00
done
2016-08-07 17:08:13 +00:00
systemctl enable wetty
2015-12-08 14:47:39 +00:00
2016-08-08 00:21:02 +00:00
# Let's enable T-Pot website
2016-08-07 17:08:13 +00:00
fuECHO "### Enabling T-Pot website."
2016-08-06 22:06:31 +00:00
ln -s /etc/nginx/sites-available/tpotweb.conf /etc/nginx/sites-enabled/tpotweb.conf
2016-08-01 13:25:58 +00:00
2015-12-08 14:47:39 +00:00
# Let's take care of some files and permissions
chmod 760 -R /data
chown tpot:tpot -R /data
chmod 600 /home/tsec/.ssh/authorized_keys
2016-08-08 00:21:02 +00:00
chown tsec:tsec /home/tsec/.ssh /home/tsec/.ssh/authorized_keys
2015-12-08 14:47:39 +00:00
# Let's replace "quiet splash" options, set a console font for more screen canvas and update grub
sed -i 's#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"#GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0"#' /etc/default/grub
2016-06-17 14:05:11 +00:00
sed -i 's#GRUB_CMDLINE_LINUX=""#GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"#' /etc/default/grub
2016-10-28 13:08:55 +00:00
#sed -i 's#\#GRUB_GFXMODE=640x480#GRUB_GFXMODE=800x600x32#' /etc/default/grub
#tee -a /etc/default/grub <<EOF
#GRUB_GFXPAYLOAD=800x600x32
#GRUB_GFXPAYLOAD_LINUX=800x600x32
#EOF
2015-12-08 14:47:39 +00:00
update-grub
cp /usr/share/consolefonts/Uni2-Terminus12x6.psf.gz /etc/console-setup/
gunzip /etc/console-setup/Uni2-Terminus12x6.psf.gz
sed -i 's#FONTFACE=".*#FONTFACE="Terminus"#' /etc/default/console-setup
sed -i 's#FONTSIZE=".*#FONTSIZE="12x6"#' /etc/default/console-setup
update-initramfs -u
2016-02-03 14:10:19 +00:00
# Let's enable a color prompt
2016-08-12 20:21:02 +00:00
myROOTPROMPT = 'PS1="\[\033[38;5;8m\][\[$(tput sgr0)\]\[\033[38;5;1m\]\u\[$(tput sgr0)\]\[\033[38;5;6m\]@\[$(tput sgr0)\]\[\033[38;5;4m\]\h\[$(tput sgr0)\]\[\033[38;5;6m\]:\[$(tput sgr0)\]\[\033[38;5;5m\]\w\[$(tput sgr0)\]\[\033[38;5;8m\]]\[$(tput sgr0)\]\[\033[38;5;1m\]\\$\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]"'
myUSERPROMPT = 'PS1="\[\033[38;5;8m\][\[$(tput sgr0)\]\[\033[38;5;2m\]\u\[$(tput sgr0)\]\[\033[38;5;6m\]@\[$(tput sgr0)\]\[\033[38;5;4m\]\h\[$(tput sgr0)\]\[\033[38;5;6m\]:\[$(tput sgr0)\]\[\033[38;5;5m\]\w\[$(tput sgr0)\]\[\033[38;5;8m\]]\[$(tput sgr0)\]\[\033[38;5;2m\]\\$\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]"'
tee -a /root/.bashrc << EOF
$myROOTPROMPT
EOF
tee -a /home/tsec/.bashrc << EOF
$myUSERPROMPT
EOF
2016-02-03 14:10:19 +00:00
2016-02-08 12:37:02 +00:00
# Let's create ews.ip before reboot and prevent race condition for first start
2016-08-08 00:21:02 +00:00
source /etc/environment
2016-02-08 12:37:02 +00:00
myLOCALIP = $( hostname -I | awk '{ print $1 }' )
2017-03-17 23:47:04 +00:00
myEXTIP = $( /usr/bin/myip.sh)
2017-03-17 23:49:29 +00:00
sed -i " s#IP:.*#IP: $myLOCALIP ( $myEXTIP ) [0m# " /etc/issue
sed -i " s#SSH:.*#SSH: ssh -l tsec -p 64295 $myLOCALIP [0m#" /etc/issue
sed -i " s#WEB:.*#WEB: https:// $myLOCALIP :64297 [0m# " /etc/issue
2016-02-08 12:37:02 +00:00
tee /data/ews/conf/ews.ip << EOF
[ MAIN]
ip = $myEXTIP
EOF
2016-08-08 00:21:02 +00:00
echo $myLOCALIP > /data/elk/logstash/mylocal.ip
2016-02-08 12:37:02 +00:00
chown tpot:tpot /data/ews/conf/ews.ip
2015-12-08 14:47:39 +00:00
# Final steps
fuECHO "### Thanks for your patience. Now rebooting."
2016-08-07 17:08:13 +00:00
mv /root/tpot/etc/rc.local /etc/rc.local && rm -rf /root/tpot/ && sleep 2 && reboot