#!/bin/sh # # xev_net_install.sh # # Set the variables source ./xev_net_install_config.sh # # Do not edit below this line # # Update and Upgrade the system DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND apt-get -y update apt-get -y full-upgrade apt-get -y autoremove # # View the network config ip a # # View the disk config fdisk -l # # View the Mem and Swap free -h # # View the swap partitions and files swapon --show # # View the hostname hostname # # View the full hostname hostname -f # # View the OS version cat /etc/debian_version # # Install ISPConfig # We get a le cert with only the common name wget -O - https://get.ispconfig.org | sh -s -- --use-ftp-ports=40110-40210 --unattended-upgrades --i-know-what-i-am-doing # # Later on, you can update ISPConfig and –force the update even if you already have the newest release # ispconfig_update.sh --force # # Set the variables XN_MYSQL_USER="$(php -r 'include("/usr/local/ispconfig/server/lib/mysql_clientdb.conf"); print $clientdb_user;')" XN_MYSQL_PASS="$(php -r 'include("/usr/local/ispconfig/server/lib/mysql_clientdb.conf"); print $clientdb_password;')" XN_LOGO_BASE64="data:image/png;base64,$(base64 -w 0 logo.png)" # # Crypt the remote user password using the ISPConfig PHP method XN_REMOTE_PASS_CRYPTED=$(php -r '$cleartext_password="'$XN_REMOTE_PASS'"; $salt="$6$"; $base64_alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; for ($n=0;$n<8;$n++) { $salt.=$base64_alphabet[mt_rand(0, 63)]; } $salt.="$"; echo crypt($cleartext_password, $salt);') # # Get the SQL file wget -O dbispconfig.sql "https://docs.xev.net.eu.org/doku.php?do=export_code&id=auto-install&codeblock=13" # # Execute the SQL file echo "Executing SQL file" echo -e "SET @XN_HOSTNAME_FULL='$XN_HOSTNAME_FULL';\n$(cat dbispconfig.sql)" > dbispconfig.sql echo -e "SET @XN_SYS_COMPANY_NAME='$XN_SYS_COMPANY_NAME';\n$(cat dbispconfig.sql)" > dbispconfig.sql echo -e "SET @XN_SYS_COMPANY_URL='$XN_SYS_COMPANY_URL';\n$(cat dbispconfig.sql)" > dbispconfig.sql echo -e "SET @XN_SYS_COMPANY_TAGLINE='$XN_SYS_COMPANY_TAGLINE';\n$(cat dbispconfig.sql)" > dbispconfig.sql echo -e "SET @XN_REMOTE_USER='$XN_REMOTE_USER';\n$(cat dbispconfig.sql)" > dbispconfig.sql echo -e "SET @XN_REMOTE_PASS_CRYPTED='$XN_REMOTE_PASS_CRYPTED';\n$(cat dbispconfig.sql)" > dbispconfig.sql echo -e "SET @XN_LOGO_BASE64='$XN_LOGO_BASE64';\n$(cat dbispconfig.sql)" > dbispconfig.sql echo -e "SET @XN_SYS_SMTP_PASS='$XN_SYS_SMTP_PASS';\n$(cat dbispconfig.sql)" > dbispconfig.sql echo -e "SET @XN_SYS_SMTP_USER='$XN_SYS_SMTP_USER';\n$(cat dbispconfig.sql)" > dbispconfig.sql echo -e "SET @XN_SYS_SMTP_HOST='$XN_SYS_SMTP_HOST';\n$(cat dbispconfig.sql)" > dbispconfig.sql echo -e "SET @XN_SYS_SMTP_NAME='$XN_SYS_SMTP_NAME';\n$(cat dbispconfig.sql)" > dbispconfig.sql echo -e "SET @XN_SYS_SMTP_MAIL='$XN_SYS_SMTP_MAIL';\n$(cat dbispconfig.sql)" > dbispconfig.sql echo -e "SET @XN_SYS_ATOM_URL_CLIENT='$XN_SYS_ATOM_URL_CLIENT';\n$(cat dbispconfig.sql)" > dbispconfig.sql echo -e "SET @XN_SYS_ATOM_URL_RESELLER='$XN_SYS_ATOM_URL_RESELLER';\n$(cat dbispconfig.sql)" > dbispconfig.sql echo -e "SET @XN_SYS_LOGIN_TEXT='$XN_SYS_LOGIN_TEXT';\n$(cat dbispconfig.sql)" > dbispconfig.sql echo -e "SET @XN_SYS_LOGIN_LINK='$XN_SYS_LOGIN_LINK';\n$(cat dbispconfig.sql)" > dbispconfig.sql mysql -u $XN_MYSQL_USER -p"$XN_MYSQL_PASS" dbispconfig < dbispconfig.sql # # Clear the variables XN_MYSQL_USER="" XN_MYSQL_PASS="" XN_LOGO_BASE64="" # # Remove the SQL file rm -rfv dbispconfig.sql # # Get the SOAP file wget -O soap.php "https://docs.xev.net.eu.org/doku.php?do=export_code&id=auto-install&codeblock=14" # # Execute the SOAP file php soap.php "$XN_REMOTE_USER" "$XN_REMOTE_PASS" "$XN_REMOTE_LOCATION" "$XN_REMOTE_URI" "$XN_HOSTNAME" "$XN_HOSTNAME_FULL" "$XN_IPV4" "$XN_IPV6" "$XN_IPV6_SHARED" "$XN_IPV4_TOR" "$XN_CLIENT_USER" "$XN_CLIENT_PASS" "$XN_CLIENT_EMAIL" "$XN_CLIENT_MASTER" "$XN_CLIENT_ADDITIONAL" "$XN_CLIENT_CONTACT_NAME" "$XN_CLIENT_COMPANY_NAME" "$XN_CLIENT_COMPANY_URL" "$XN_FTP_DEFAULT1_USER" "$XN_FTP_DEFAULT1_PASS" "$XN_FTP_DEFAULT2_USER" "$XN_FTP_DEFAULT2_PASS" "$XN_FTP_DEFAULT3_USER" "$XN_FTP_DEFAULT3_PASS" "$XN_FTP_HOST_USER" "$XN_FTP_HOST_PASS" "$XN_FTP_LG_USER" "$XN_FTP_LG_PASS" "$XN_SHELL_LG_USER" "$XN_SHELL_LG_PASS" # # Remove the SOAP file rm -rfv soap.php # # Send email using IPv4 is preferable # We do not have reverse DNS for IPv6 on some servers postconf -e "smtp_address_preference=ipv4" postconf -p "smtp_address_preference" postconf -p "inet_protocols" # # Install Tor and run it as a system daemon # Create 5 new hidden onion sites apt-get -y install tor wget -O torrc "https://docs.xev.net.eu.org/doku.php?do=export_code&id=auto-install&codeblock=15" cp -v torrc /etc/tor/torrc rm -rfv torrc echo -e "\n" >> /etc/tor/torrc echo -e "HiddenServiceDir /var/lib/tor/site1_hs/" >> /etc/tor/torrc echo -e "HiddenServicePort 80 127.0.0.1:80" >> /etc/tor/torrc echo -e "HiddenServiceDir /var/lib/tor/site2_hs/" >> /etc/tor/torrc echo -e "HiddenServicePort 80 127.0.0.1:80" >> /etc/tor/torrc echo -e "HiddenServiceDir /var/lib/tor/site3_hs/" >> /etc/tor/torrc echo -e "HiddenServicePort 80 127.0.0.1:80" >> /etc/tor/torrc echo -e "HiddenServiceDir /var/lib/tor/site4_hs/" >> /etc/tor/torrc echo -e "HiddenServicePort 80 127.0.0.1:80" >> /etc/tor/torrc echo -e "HiddenServiceDir /var/lib/tor/site5_hs/" >> /etc/tor/torrc echo -e "HiddenServicePort 80 127.0.0.1:80" >> /etc/tor/torrc systemctl stop tor systemctl disable tor systemctl enable tor systemctl start tor systemctl status tor cat /var/lib/tor/site1_hs/hostname cat /var/lib/tor/site2_hs/hostname cat /var/lib/tor/site3_hs/hostname cat /var/lib/tor/site4_hs/hostname cat /var/lib/tor/site5_hs/hostname # # Install the ionCube loaders # Required for Blesta # There are no loaders for 8.0 wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -P /usr/local/ tar xfvz /usr/local/ioncube_loaders_lin_x86-64.tar.gz -C /usr/local/ rm -rfv /usr/local/ioncube_loaders_lin_x86-64.tar.gz echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.6.so\n$(cat /etc/php/5.6/cgi/php.ini)" > /etc/php/5.6/cgi/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.6.so\n$(cat /etc/php/5.6/cli/php.ini)" > /etc/php/5.6/cli/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.6.so\n$(cat /etc/php/5.6/fpm/php.ini)" > /etc/php/5.6/fpm/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.0.so\n$(cat /etc/php/7.0/cgi/php.ini)" > /etc/php/7.0/cgi/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.0.so\n$(cat /etc/php/7.0/cli/php.ini)" > /etc/php/7.0/cli/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.0.so\n$(cat /etc/php/7.0/fpm/php.ini)" > /etc/php/7.0/fpm/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.1.so\n$(cat /etc/php/7.1/cgi/php.ini)" > /etc/php/7.1/cgi/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.1.so\n$(cat /etc/php/7.1/cli/php.ini)" > /etc/php/7.1/cli/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.1.so\n$(cat /etc/php/7.1/fpm/php.ini)" > /etc/php/7.1/fpm/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.2.so\n$(cat /etc/php/7.2/cgi/php.ini)" > /etc/php/7.2/cgi/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.2.so\n$(cat /etc/php/7.2/cli/php.ini)" > /etc/php/7.2/cli/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.2.so\n$(cat /etc/php/7.2/fpm/php.ini)" > /etc/php/7.2/fpm/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.3.so\n$(cat /etc/php/7.3/cgi/php.ini)" > /etc/php/7.3/cgi/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.3.so\n$(cat /etc/php/7.3/cli/php.ini)" > /etc/php/7.3/cli/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.3.so\n$(cat /etc/php/7.3/fpm/php.ini)" > /etc/php/7.3/fpm/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.4.so\n$(cat /etc/php/7.4/cgi/php.ini)" > /etc/php/7.4/cgi/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.4.so\n$(cat /etc/php/7.4/cli/php.ini)" > /etc/php/7.4/cli/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.4.so\n$(cat /etc/php/7.4/fpm/php.ini)" > /etc/php/7.4/fpm/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_8.1.so\n$(cat /etc/php/8.1/cgi/php.ini)" > /etc/php/8.1/cgi/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_8.1.so\n$(cat /etc/php/8.1/cli/php.ini)" > /etc/php/8.1/cli/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_8.1.so\n$(cat /etc/php/8.1/fpm/php.ini)" > /etc/php/8.1/fpm/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_8.2.so\n$(cat /etc/php/8.2/cgi/php.ini)" > /etc/php/8.2/cgi/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_8.2.so\n$(cat /etc/php/8.2/cli/php.ini)" > /etc/php/8.2/cli/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_8.2.so\n$(cat /etc/php/8.2/fpm/php.ini)" > /etc/php/8.2/fpm/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_8.3.so\n$(cat /etc/php/8.3/cgi/php.ini)" > /etc/php/8.3/cgi/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_8.3.so\n$(cat /etc/php/8.3/cli/php.ini)" > /etc/php/8.3/cli/php.ini echo -e "zend_extension = /usr/local/ioncube/ioncube_loader_lin_8.3.so\n$(cat /etc/php/8.3/fpm/php.ini)" > /etc/php/8.3/fpm/php.ini # # Install php-mailparse and php-gmp # Required for Blesta apt-get -y install php5.6-mailparse apt-get -y install php7.0-mailparse apt-get -y install php7.1-mailparse apt-get -y install php7.2-mailparse apt-get -y install php7.3-mailparse apt-get -y install php7.4-mailparse apt-get -y install php8.0-mailparse apt-get -y install php8.1-mailparse apt-get -y install php8.2-mailparse apt-get -y install php8.3-mailparse apt-get -y install php5.6-gmp apt-get -y install php7.0-gmp apt-get -y install php7.1-gmp apt-get -y install php7.2-gmp apt-get -y install php7.3-gmp apt-get -y install php7.4-gmp apt-get -y install php8.0-gmp apt-get -y install php8.1-gmp apt-get -y install php8.2-gmp apt-get -y install php8.3-gmp # # View the php version of the default version of this OS php -version # # Install packages # Required for Looking Glass # Required for our Softaculous custom install # Required for client luadch apt-get -y install host mtr iputils-ping traceroute sqlite3 apt-get -y install cmake gcc apt-get -y install openssl libssl-dev apt-get -y install expect apt-get -y install python # # Install ansifilter # Must build from source for Debian 11 or lower wget http://andre-simon.de/zip/ansifilter-2.20.tar.bz2 tar xjf ansifilter-2.20.tar.bz2 cd ~/ansifilter-2.20 make help make make install make clean cd ~ rm -rfv ~/ansifilter-2.20.tar.bz2 rm -rf ~/ansifilter-2.20 # # Install Softaculous # Get rid of the wacky clear command # A reboot is required for changes to take effect wget -N https://files.softaculous.com/install.sh chmod 755 install.sh sed --in-place '/clear/d' install.sh wget -O softaculous_install.exp "https://docs.xev.net.eu.org/doku.php?do=export_code&id=auto-install&codeblock=16" chmod 700 softaculous_install.exp expect softaculous_install.exp "$XN_REMOTE_USER" "$XN_REMOTE_PASS" echo "extension=mysqlnd.so" >> /usr/local/softaculous/php.ini echo "extension=mysql.so" >> /usr/local/softaculous/php.ini echo "extension=mysqli.so" >> /usr/local/softaculous/php.ini echo "extension=curl.so" >> /usr/local/softaculous/php.ini echo "extension=soap.so" >> /usr/local/softaculous/php.ini echo "extension=posix.so" >> /usr/local/softaculous/php.ini echo "extension=json.so" >> /usr/local/softaculous/php.ini echo "extension=xml.so" >> /usr/local/softaculous/php.ini echo "extension=ftp.so" >> /usr/local/softaculous/php.ini echo "extension=mbstring.so" >> /usr/local/softaculous/php.ini echo "extension=simplexml.so" >> /usr/local/softaculous/php.ini echo "extension=zip.so" >> /usr/local/softaculous/php.ini mkdir /usr/local/softaculous/conf/ touch /usr/local/softaculous/conf/custom.ini echo "extension=mysqlnd.so" >> /usr/local/softaculous/conf/custom.ini echo "extension=mysql.so" >> /usr/local/softaculous/conf/custom.ini echo "extension=mysqli.so" >> /usr/local/softaculous/conf/custom.ini echo "extension=curl.so" >> /usr/local/softaculous/conf/custom.ini echo "extension=soap.so" >> /usr/local/softaculous/conf/custom.ini echo "extension=posix.so" >> /usr/local/softaculous/conf/custom.ini echo "extension=json.so" >> /usr/local/softaculous/conf/custom.ini echo "extension=xml.so" >> /usr/local/softaculous/conf/custom.ini echo "extension=ftp.so" >> /usr/local/softaculous/conf/custom.ini echo "extension=mbstring.so" >> /usr/local/softaculous/conf/custom.ini echo "extension=simplexml.so" >> /usr/local/softaculous/conf/custom.ini echo "extension=zip.so" >> /usr/local/softaculous/conf/custom.ini rm -rfv install.sh rm -rfv softaculous_install.exp # # Generate a YABS log # Test the root partition curl -sL yabs.sh | bash -s -- -4 | ansifilter | tee /yabs_root_partition.log rm -rfv /root/geekbench_claim.url # # Install Looking Glass # Do install as Looking Glass shell user # Get rid of the wacky clear command sudo -i -u $XN_CLIENT_USER$XN_SHELL_LG_USER bash << EOF echo "I am "$(whoami) pwd cd ~/web wget https://github.com/telephone/LookingGlass/archive/v1.3.0.tar.gz tar -zxvf v1.3.0.tar.gz --strip-components 1 rm -rf v1.3.0.tar.gz rm -rf CHANGELOG.txt rm -rf LICENCE.txt rm -rf README.md rm -rf standard_index.html cd ~/web/LookingGlass sed --in-place '/clear/d' ~/web/LookingGlass/configure.sh echo -e "y\n$LG_NAME\n$LG_LG\n$LG_LOCATION\n$LG_TESTIPV4\n$LG_TESTIPV6\n$LG_TESTFILES\n$LG_RATE_LIMIT\n$LG_LIMIT_RATE\n$LG_CHOOSETHEME\n$LG_THEME\n$LG_WEB_SERVER_USERNAME\n$LG_WEB_SERVER_USERGROUP\n" | bash configure.sh rm -rfv ~/web/LookingGlass/configure.sh cd ~/web wget -O index.php "https://docs.xev.net.eu.org/doku.php?do=export_code&id=auto-install&codeblock=17" cat /yabs_root_partition.log > ~/web/yabs_root_partition.log cat /yabs_root_partition.log > ~/web/yabs_root_partition_$(date +"%Y-%m-%d").log EOF rm -rfv /yabs_root_partition.log # # Finish install # Remove the ISPConfig setup log which may have passwords in it echo "Don't forget to write down your passwords" while read -r line do if [[ $line == *"password is"* ]]; then echo $line fi done < /tmp/ispconfig-ai/var/log/setup-* rm -rfv /tmp/ispconfig-ai/var/log/setup-* echo "Install finished"