Current File : //scripts/switchip.sh_old |
#--- Some functions used many times below
# Random password generator function
passwordgen() {
l=$1
[ "$l" == "" ] && l=16
tr -dc A-Za-z0-9 < /dev/urandom | head -c ${l} | xargs
}
PANEL_PATH="/etc/sentora"
PANEL_CONF="$PANEL_PATH/configs"
Old_Root="ZGGZhdysF4gMNMxU"
Old_Postfix="7gmuRndi7vQjKGHg"
Old_ProFTPd="T9WVuOTUtWqJpIQ9"
Old_Roundcube="U9ma4SDp6wv4uBsn"
ROUNDCUBE_DESKEY="l18gM7HGTEDNbt7XXKNOjvki"
blowfishsecret="Q8QJllAvp18wZhVG"
Old_PublicIp="103.83.81.48"
old_PRIVATE_IP="192.168.1.147"
while true; do
read -e -p "(1) Private IP, (2) Public IP, (3):Quit installer? " yn
case $yn in
1)
echo "Enter the Public IP address:"
read PUBLIC_IP
echo "Enter the Private IP address:"
read PRIVATE_IP
break
;;
2)
echo "Enter the public IP address:"
read PUBLIC_IP
PRIVATE_IP=$PUBLIC_IP
break
;;
3) exit;;
* ) continue;;
esac
done
#echo "Public IP:$PUBLIC_IP"
#echo "Private Ip: $PRIVATE_IP"
echo "Enter the Hostname:"
read PANEL_FQDN
#--- Prepare hostname
old_hostname=$(cat /etc/hostname)
# In file hostname
echo "$PANEL_FQDN" > /etc/hostname
# In file hosts
sed -i "/127.0.1.1[\t ]*$old_hostname/d" /etc/hosts
sed -i "s|$old_hostname|$PANEL_FQDN|" /etc/hosts
sed -i "s|$old_hostname|$PANEL_FQDN|" /etc/hosts
sed -i "s|$old_PRIVATE_IP|$PRIVATE_IP|" /etc/hosts
# For current session
hostname "$PANEL_FQDN"
#--- Set some Sentora database entries using. setso and setzadmin (require PHP)
echo -e "\n-- Configuring Sentora"
zadminpassword=$(passwordgen);
setzadmin --set "$zadminpassword";
$PANEL_PATH/panel/bin/setso --set sentora_domain "$PANEL_FQDN"
$PANEL_PATH/panel/bin/setso --set server_ip "$PUBLIC_IP"
# Create and configure mysql password for roundcube
roundcubepassword=$(passwordgen);
sed -i "s|$Old_Roundcube|$roundcubepassword|" $PANEL_CONF/roundcube/roundcube_config.inc.php
mysql -e "UPDATE mysql.user SET Password=PASSWORD('$roundcubepassword') WHERE User='roundcube' AND Host='localhost'";
# Create and configure des key
roundcube_des_key=$(passwordgen 24);
sed -i "s|$ROUNDCUBE_DESKEY|$roundcube_des_key|" $PANEL_CONF/roundcube/roundcube_config.inc.php
#--- phpMyAdmin
phpmyadminsecret=$(passwordgen);
sed -i "s|\$cfg\['blowfish_secret'\] \= '$blowfishsecret';|\$cfg\['blowfish_secret'\] \= '$phpmyadminsecret';|" /etc/sentora/panel/etc/apps/phpmyadmin/config.inc.php
sed -i "s|\$cfg\['blowfish_secret'\] \= '$blowfishsecret';|\$cfg\['blowfish_secret'\] \= '$phpmyadminsecret';|" /etc/sentora/panel/etc/apps/phpmyadmin_v4_6_6/config.inc.php
# ln -s $PANEL_CONF/phpmyadmin/config.inc.php $PANEL_PATH/panel/etc/apps/phpmyadmin/config.inc.php
# Create and configure mysql password for proftpd
proftpdpassword=$(passwordgen);
sed -i "s|$Old_ProFTPd|$proftpdpassword|" $PANEL_CONF/proftpd/proftpd-mysql.conf
mysql -e "UPDATE mysql.user SET Password=PASSWORD('$proftpdpassword') WHERE User='proftpd' AND Host='localhost'";
#--- Postfix
postfixpassword=$(passwordgen);
mysql -e "UPDATE mysql.user SET Password=PASSWORD('$postfixpassword') WHERE User='postfix' AND Host='localhost';";
sed -i "s|$Old_Postfix|$postfixpassword|" $PANEL_CONF/postfix/*.cf
sed -i "s|$Old_Postfix|$postfixpassword|" $PANEL_CONF/postfix/vacation.conf
# Setup acl IP to forbid zone transfer
sed -i "s|$Old_PublicIp|$PUBLIC_IP|" $PANEL_CONF/bind/named.conf
mysql -e "FLUSH PRIVILEGES"
mysqlpassword=$(passwordgen);
mysql -e "UPDATE mysql.user SET Password=PASSWORD('$mysqlpassword') WHERE User='root' AND Host='localhost'"
mysql -e "FLUSH PRIVILEGES"
sed -i "s|$Old_Root|$mysqlpassword|" /root/.my.cnf
sed -i "s|$Old_Root|$mysqlpassword|" /etc/sentora/panel/cnf/db.php
sed -i "s|$old_hostname|$PANEL_FQDN|" $PANEL_CONF/postfix/main.cf
sed -i "s|$Old_PublicIp|$PUBLIC_IP|" $PANEL_CONF/postfix/main.cf
$PANEL_PATH/panel/bin/setso --set apache_changed "true"
php /etc/sentora/panel/bin/daemon.php
#sed -i "s|!USR_LIB!|$USR_LIB_PATH|" $PANEL_CONF/postfix/master.cf
#sed -i "s|!USR_LIB!|$USR_LIB_PATH|" $PANEL_CONF/postfix/main.cf
mv /root/passwords.txt /root/passwords_hold.txt
touch /root/passwords_hold.txt
{
echo "Server IP address : $PUBLIC_IP"
echo "Panel URL : http://$PANEL_FQDN"
echo "zadmin Password : $zadminpassword"
echo ""
echo "MySQL Root Password : $mysqlpassword"
echo "MySQL Postfix Password : $postfixpassword"
echo "MySQL ProFTPd Password : $proftpdpassword"
echo "MySQL Roundcube Password : $roundcubepassword"
} >> /root/passwords.txt
#--- Advise the admin that Sentora is now installed and accessible.
{
echo "########################################################"
echo " Congratulations Sentora has now been installed on your"
echo " server. Please review the log file left in /root/ for "
echo " any errors encountered during installation."
echo ""
echo " Login to Sentora at http://$PANEL_FQDN"
echo " Sentora Username : zadmin"
echo " Sentora Password : $zadminpassword"
echo ""
echo " MySQL Root Password : $mysqlpassword"
echo " MySQL Postfix Password : $postfixpassword"
echo " MySQL ProFTPd Password : $proftpdpassword"
echo " MySQL Roundcube Password : $roundcubepassword"
echo " (theses passwords are saved in /root/passwords.txt)"
echo "########################################################"
echo ""
} &>/dev/tty