improve installer

This commit is contained in:
Marco Ochse 2017-04-16 23:44:19 +02:00
parent c9827f0f03
commit 5b267b396f
2 changed files with 20 additions and 19 deletions

View file

@ -45,11 +45,6 @@ if [ -f install.log ];
exit 1; exit 1;
fi fi
# Let's log for the beauty of it
set -e
exec 2> >(tee "install.err")
exec > >(tee "install.log")
# Let's setup the proxy for env # Let's setup the proxy for env
if [ -f $myPROXYFILEPATH ]; if [ -f $myPROXYFILEPATH ];
then fuECHO "### Setting up the proxy." then fuECHO "### Setting up the proxy."
@ -77,10 +72,10 @@ for i in $mySITES;
curl --connect-timeout 5 -IsS $i > /dev/null; curl --connect-timeout 5 -IsS $i > /dev/null;
if [ $? -ne 0 ]; if [ $? -ne 0 ];
then then
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 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
if [ $? = 1 ]; if [ $? = 1 ];
then then
dialog --backtitle $myBACKTITLE --title "[ Abort ]" --msgbox "\nInstallation aborted. Exiting the installer." 7 50 dialog --backtitle "$myBACKTITLE" --title "[ Abort ]" --msgbox "\nInstallation aborted. Exiting the installer." 7 50
exit exit
else else
break; break;
@ -90,9 +85,9 @@ for i in $mySITES;
# Let's remove NGINX default website # Let's remove NGINX default website
fuECHO "### Removing NGINX default website." fuECHO "### Removing NGINX default website."
rm /etc/nginx/sites-enabled/default rm -rf /etc/nginx/sites-enabled/default
rm /etc/nginx/sites-available/default rm -rf /etc/nginx/sites-available/default
rm /usr/share/nginx/html/index.html rm -rf /usr/share/nginx/html/index.html
# Let's wait a few seconds to avoid interference with service messages # Let's wait a few seconds to avoid interference with service messages
fuECHO "### Waiting a few seconds to avoid interference with service messages." fuECHO "### Waiting a few seconds to avoid interference with service messages."
@ -100,7 +95,7 @@ sleep 5
# Let's ask user for install flavor # Let's ask user for install flavor
# Install types are TPOT, HP, INDUSTRIAL, ALL # Install types are TPOT, HP, INDUSTRIAL, ALL
myFLAVOR=$(dialog --backtitle $myBACKTITLE --title "[ Choose your edition ]" --no-tags --menu \ myFLAVOR=$(dialog --no-cancel --backtitle "$myBACKTITLE" --title "[ Choose your edition ]" --no-tags --menu \
"\nRequired: 4GB RAM, 64GB disk\nRecommended: 8GB RAM, 128GB SSD" 14 60 4 \ "\nRequired: 4GB RAM, 64GB disk\nRecommended: 8GB RAM, 128GB SSD" 14 60 4 \
"TPOT" "Standard Honeypots, Suricata & ELK" \ "TPOT" "Standard Honeypots, Suricata & ELK" \
"HP" "Honeypots only, w/o Suricata & ELK" \ "HP" "Honeypots only, w/o Suricata & ELK" \
@ -112,8 +107,9 @@ myOK="1"
myUSER="tsec" myUSER="tsec"
while [ 1 != 2 ] while [ 1 != 2 ]
do do
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=$(dialog --backtitle "$myBACKTITLE" --title "[ Enter your web user name ]" --inputbox "\nUsername (tsec not allowed)" 9 50 3>&1 1>&2 2>&3 3>&-)
dialog --backtitle $myBACKTITLE --title "[ Your username is ]" --yesno "\n"$myUSER 7 50 myUSER=$(echo $myUSER | tr -cd "[:alnum:]_.-")
dialog --backtitle "$myBACKTITLE" --title "[ Your username is ]" --yesno "\n$myUSER" 7 50
myOK=$? myOK=$?
if [ "$myOK" = "0" ] && [ "$myUSER" != "tsec" ] && [ "$myUSER" != "" ]; if [ "$myOK" = "0" ] && [ "$myUSER" != "tsec" ] && [ "$myUSER" != "" ];
then then
@ -122,23 +118,28 @@ while [ 1 != 2 ]
done done
myPASS1="pass1" myPASS1="pass1"
myPASS2="pass2" myPASS2="pass2"
while [ "$myPASS1" != "$myPASS2" ] while [ "$myPASS1" != "$myPASS2" ]
do do
while [ "$myPASS1" == "pass1" ] || [ "$myPASS1" == "" ] while [ "$myPASS1" == "pass1" ] || [ "$myPASS1" == "" ]
do do
myPASS1=$(dialog --insecure --backtitle $myBACKTITLE --title "[ Enter your web user password ]" --passwordbox "\nPassword" 9 50 3>&1 1>&2 2>&3 3>&-) myPASS1=$(dialog --insecure --backtitle "$myBACKTITLE" --title "[ Enter your web user password ]" --passwordbox "\nPassword" 9 50 3>&1 1>&2 2>&3 3>&-)
done done
myPASS2=$(dialog --insecure --backtitle $myBACKTITLE --title "[ Repeat web user password ]" --passwordbox "\nPassword" 9 50 3>&1 1>&2 2>&3 3>&-) myPASS2=$(dialog --insecure --backtitle "$myBACKTITLE" --title "[ Repeat web user password ]" --passwordbox "\nPassword" 9 50 3>&1 1>&2 2>&3 3>&-)
if [ "$myPASS1" != "$myPASS2" ]; if [ "$myPASS1" != "$myPASS2" ];
then then
dialog --backtitle $myBACKTITLE --title "[ Passwords do not match. ]" --msgbox "\nPlease re-enter your password." 7 50 dialog --backtitle "$myBACKTITLE" --title "[ Passwords do not match. ]" --msgbox "\nPlease re-enter your password." 7 50
myPASS1="pass1" myPASS1="pass1"
myPASS2="pass2" myPASS2="pass2"
fi fi
done done
htpasswd -b -c /etc/nginx/nginxpasswd $myUSER $myPASS1 htpasswd -b -c /etc/nginx/nginxpasswd "$myUSER" "$myPASS1"
fuECHO fuECHO
# Let's log for the beauty of it
set -e
exec 2> >(tee "install.err")
exec > >(tee "install.log")
# Let's generate a SSL self-signed certificate without interaction (browsers will see it invalid anyway) # Let's generate a SSL self-signed certificate without interaction (browsers will see it invalid anyway)
fuECHO "### Generating a self-signed-certificate for NGINX." fuECHO "### Generating a self-signed-certificate for NGINX."
mkdir -p /etc/nginx/ssl mkdir -p /etc/nginx/ssl

View file

@ -1,6 +1,6 @@
default install default install
label install label install
menu label ^T-Pot 16.10 menu label ^T-Pot 17.06 (Alpha)
menu default menu default
kernel linux kernel linux
append vga=788 initrd=initrd.gz console-setup/ask_detect=true -- append vga=788 initrd=initrd.gz console-setup/ask_detect=true --