|
| 1 | +#!/bin/bash |
| 2 | +#coded by: zoro-zero |
| 3 | +sed -i 's/#Port 22/Port 22/' /etc/ssh/sshd_config |
| 4 | +po=$(cat /etc/ssh/sshd_config | grep "^Port") |
| 5 | +port=$(echo "$po" | sed "s/Port //g") |
| 6 | +adminuser=$(mysql -N -e "use ShaHaN; select adminuser from setting where id='1';") |
| 7 | +adminpass=$(mysql -N -e "use ShaHaN; select adminpassword from setting where id='1';") |
| 8 | +clear |
| 9 | +if [ "$adminuser" != "" ]; then |
| 10 | +adminusername=$adminuser |
| 11 | +adminpassword=$adminpass |
| 12 | +else |
| 13 | +adminusername=admin |
| 14 | +echo -e "\nPlease input Panel admin user." |
| 15 | +printf "Default user name is \e[33m${adminusername}\e[0m, let it blank to use this user name: " |
| 16 | +read usernametmp |
| 17 | +if [[ -n "${usernametmp}" ]]; then |
| 18 | + adminusername=${usernametmp} |
| 19 | +fi |
| 20 | +adminpassword=123456 |
| 21 | +echo -e "\nPlease input Panel admin password." |
| 22 | +printf "Default password is \e[33m${adminpassword}\e[0m, let it blank to use this password : " |
| 23 | +read passwordtmp |
| 24 | +if [[ -n "${passwordtmp}" ]]; then |
| 25 | + adminpassword=${passwordtmp} |
| 26 | +fi |
| 27 | +fi |
| 28 | +ipv4=$(curl rabin.cf) |
| 29 | +sudo sed -i '/www-data/d' /etc/sudoers |
| 30 | +sudo sed -i '/apache/d' /etc/sudoers |
| 31 | +if command -v apt-get >/dev/null; then |
| 32 | +apt update -y |
| 33 | +sudo apt -y install software-properties-common |
| 34 | +sudo add-apt-repository ppa:ondrej/php -y |
| 35 | +apt remove php8* -y |
| 36 | +apt install apache2 php7.4 zip unzip net-tools curl mariadb-server php7.4-mysql php7.4-xml php7.4-curl -y |
| 37 | +link=$(sudo curl -Ls "https://github.com/zero-zoro/free-ssh-vpn-panel/releases/download/ssh-vpn-panel/sshvpn-panel.zip") |
| 38 | +sudo wget -O /var/www/html/update.zip $link |
| 39 | +sudo unzip -o /var/www/html/update.zip -d /var/www/html/ & |
| 40 | +wait |
| 41 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/sbin/adduser' | sudo EDITOR='tee -a' visudo & |
| 42 | +wait |
| 43 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/sbin/userdel' | sudo EDITOR='tee -a' visudo & |
| 44 | +wait |
| 45 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/bin/sed' | sudo EDITOR='tee -a' visudo & |
| 46 | +wait |
| 47 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/bin/passwd' | sudo EDITOR='tee -a' visudo & |
| 48 | +wait |
| 49 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/bin/curl' | sudo EDITOR='tee -a' visudo & |
| 50 | +wait |
| 51 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/bin/wget' | sudo EDITOR='tee -a' visudo & |
| 52 | +wait |
| 53 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/bin/unzip' | sudo EDITOR='tee -a' visudo & |
| 54 | +wait |
| 55 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/bin/kill' | sudo EDITOR='tee -a' visudo & |
| 56 | +wait |
| 57 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/bin/killall' | sudo EDITOR='tee -a' visudo & |
| 58 | +wait |
| 59 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/bin/lsof' | sudo EDITOR='tee -a' visudo & |
| 60 | +wait |
| 61 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/sbin/lsof' | sudo EDITOR='tee -a' visudo & |
| 62 | +wait |
| 63 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/bin/htpasswd' | sudo EDITOR='tee -a' visudo & |
| 64 | +wait |
| 65 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/bin/sed' | sudo EDITOR='tee -a' visudo & |
| 66 | +wait |
| 67 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/bin/rm' | sudo EDITOR='tee -a' visudo & |
| 68 | +wait |
| 69 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/bin/crontab' | sudo EDITOR='tee -a' visudo & |
| 70 | +wait |
| 71 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/bin/mysqldump' | sudo EDITOR='tee -a' visudo & |
| 72 | +wait |
| 73 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/sbin/reboot' | sudo EDITOR='tee -a' visudo & |
| 74 | +wait |
| 75 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/sbin/mysql' | sudo EDITOR='tee -a' visudo & |
| 76 | +wait |
| 77 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/bin/mysql' | sudo EDITOR='tee -a' visudo & |
| 78 | +wait |
| 79 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/bin/netstat' | sudo EDITOR='tee -a' visudo & |
| 80 | +wait |
| 81 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/bin/pgrep' | sudo EDITOR='tee -a' visudo & |
| 82 | +wait |
| 83 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/sbin/nethogs' | sudo EDITOR='tee -a' visudo & |
| 84 | +wait |
| 85 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/bin/nethogs' | sudo EDITOR='tee -a' visudo & |
| 86 | +wait |
| 87 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/local/sbin/nethogs' | sudo EDITOR='tee -a' visudo & |
| 88 | +wait |
| 89 | +echo 'www-data ALL=(ALL:ALL) NOPASSWD:/usr/sbin/iptables' | sudo EDITOR='tee -a' visudo & |
| 90 | +wait |
| 91 | +rm -fr /var/www/html/p/.htaccess |
| 92 | + |
| 93 | +echo '<Directory /var/www/html/p/> |
| 94 | + Options Indexes FollowSymLinks |
| 95 | + AllowOverride All |
| 96 | + Require all granted |
| 97 | +</Directory>' >> /etc/apache2/apache2.conf |
| 98 | +sudo service apache2 restart |
| 99 | +sudo htpasswd -b -c /etc/apache2/.htpasswd ${adminusername} ${adminpassword} |
| 100 | +chown www-data:www-data /var/www/html/p/* & |
| 101 | +wait |
| 102 | +systemctl restart mariadb & |
| 103 | +wait |
| 104 | +systemctl enable mariadb & |
| 105 | +wait |
| 106 | +sudo phpenmod curl |
| 107 | +PHP_INI=$(php -i | grep /.+/php.ini -oE) |
| 108 | +sed -i 's/extension=intl/;extension=intl/' ${PHP_INI} |
| 109 | +elif command -v yum >/dev/null; then |
| 110 | +yum update -y |
| 111 | +sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm |
| 112 | +sudo yum-config-manager --enable remi-php74 -y |
| 113 | +sudo yum install php php-cli -y |
| 114 | + |
| 115 | +yum install epel-release httpd zip unzip net-tools curl mariadb-server php-mysql php-mysqli php-xml mod_ssl php-curl -y |
| 116 | +systemctl restart httpd |
| 117 | +systemctl restart mariadb & |
| 118 | +wait |
| 119 | +systemctl enable mariadb & |
| 120 | +wait |
| 121 | +link=$(sudo curl -Ls "https://github.com/zero-zoro/free-ssh-vpn-panel/releases/download/ssh-vpn-panel/sshvpn-panel.zip") |
| 122 | +sudo wget -O /var/www/html/update.zip $link |
| 123 | +sudo unzip -o /var/www/html/update.zip -d /var/www/html/ & |
| 124 | +wait |
| 125 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/sbin/adduser' | sudo EDITOR='tee -a' visudo & |
| 126 | +wait |
| 127 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/sbin/userdel' | sudo EDITOR='tee -a' visudo & |
| 128 | +wait |
| 129 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/bin/sed' | sudo EDITOR='tee -a' visudo & |
| 130 | +wait |
| 131 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/bin/passwd' | sudo EDITOR='tee -a' visudo & |
| 132 | +wait |
| 133 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/bin/curl' | sudo EDITOR='tee -a' visudo & |
| 134 | +wait |
| 135 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/bin/wget' | sudo EDITOR='tee -a' visudo & |
| 136 | +wait |
| 137 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/bin/unzip' | sudo EDITOR='tee -a' visudo & |
| 138 | +wait |
| 139 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/bin/kill' | sudo EDITOR='tee -a' visudo & |
| 140 | +wait |
| 141 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/bin/killall' | sudo EDITOR='tee -a' visudo & |
| 142 | +wait |
| 143 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/bin/lsof' | sudo EDITOR='tee -a' visudo & |
| 144 | +wait |
| 145 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/sbin/lsof' | sudo EDITOR='tee -a' visudo & |
| 146 | +wait |
| 147 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/bin/htpasswd' | sudo EDITOR='tee -a' visudo & |
| 148 | +wait |
| 149 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/bin/sed' | sudo EDITOR='tee -a' visudo & |
| 150 | +wait |
| 151 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/bin/rm' | sudo EDITOR='tee -a' visudo & |
| 152 | +wait |
| 153 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/bin/crontab' | sudo EDITOR='tee -a' visudo & |
| 154 | +wait |
| 155 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/bin/mysqldump' | sudo EDITOR='tee -a' visudo & |
| 156 | +wait |
| 157 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/sbin/reboot' | sudo EDITOR='tee -a' visudo & |
| 158 | +wait |
| 159 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/sbin/mysql' | sudo EDITOR='tee -a' visudo & |
| 160 | +wait |
| 161 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/bin/mysql' | sudo EDITOR='tee -a' visudo & |
| 162 | +wait |
| 163 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/bin/netstat' | sudo EDITOR='tee -a' visudo & |
| 164 | +wait |
| 165 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/bin/pgrep' | sudo EDITOR='tee -a' visudo & |
| 166 | +wait |
| 167 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/sbin/nethogs' | sudo EDITOR='tee -a' visudo & |
| 168 | +wait |
| 169 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/local/sbin/nethogs' | sudo EDITOR='tee -a' visudo & |
| 170 | +wait |
| 171 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/bin/nethogs' | sudo EDITOR='tee -a' visudo & |
| 172 | +wait |
| 173 | +echo 'apache ALL=(ALL:ALL) NOPASSWD:/usr/sbin/iptables' | sudo EDITOR='tee -a' visudo & |
| 174 | +wait |
| 175 | +po=$(cat /etc/ssh/sshd_config | grep "^Port") |
| 176 | +port=$(echo "$po" | sed "s/Port //g") |
| 177 | +rm -fr /var/www/html/p/.htaccess |
| 178 | +echo '<Directory /var/www/html/p/> |
| 179 | + Options Indexes FollowSymLinks |
| 180 | + AllowOverride All |
| 181 | + Require all granted |
| 182 | +</Directory>' >> /etc/httpd/conf/httpd.conf |
| 183 | +systemctl restart httpd |
| 184 | +systemctl enable httpd |
| 185 | +sudo htpasswd -b -c /etc/httpd/.htpasswd ${adminusername} ${adminpassword} |
| 186 | +chown apache:apache /var/www/html/p/* & |
| 187 | +wait |
| 188 | +sudo sed -i "s/apache2/httpd/g" /var/www/html/p/setting.php & |
| 189 | +wait |
| 190 | +chmod 644 /etc/ssh/sshd_config & |
| 191 | +wait |
| 192 | +sudo phpenmod curl |
| 193 | +PHP_INI=$(php -i | grep /.+/php.ini -oE) |
| 194 | +sed -i 's/extension=intl/;extension=intl/' ${PHP_INI} |
| 195 | +fi |
| 196 | +bash <(curl -Ls https://raw.githubusercontent.com/zero-zoro/shahan-ssh-panel/main/ionCube%20Loader/install.sh --ipv4) |
| 197 | +bash <(curl -Ls https://raw.githubusercontent.com/zero-zoro/shahan-ssh-panel/main/Nethogs-Json/install.sh --ipv4) |
| 198 | +fggh=`cat /etc/hosts | grep -w konusanlar.tk` |
| 199 | +if [ "${fggh}" == "" ]; then |
| 200 | +sudo echo "127.0.0.1 konusanlar.tk" >> /etc/hosts |
| 201 | +fi |
| 202 | +mysql -e "create database ShaHaN;" & |
| 203 | +wait |
| 204 | +mysql -e "CREATE USER '${adminusername}'@'localhost' IDENTIFIED BY '${adminpassword}';" & |
| 205 | +wait |
| 206 | +mysql -e "GRANT ALL ON *.* TO '${adminusername}'@'localhost';" & |
| 207 | +wait |
| 208 | +sudo sed -i "s/22/$port/g" /var/www/html/p/config.php & |
| 209 | +wait |
| 210 | +sudo sed -i "s/adminuser/$adminusername/g" /var/www/html/p/config.php & |
| 211 | +wait |
| 212 | +sudo sed -i "s/adminpass/$adminpassword/g" /var/www/html/p/config.php & |
| 213 | +wait |
| 214 | +sudo sed -i "s/SERVERUSER/$adminusername/g" /var/www/html/p/killusers.sh & |
| 215 | +wait |
| 216 | +sudo sed -i "s/SERVERPASSWORD/$adminpassword/g" /var/www/html/p/killusers.sh & |
| 217 | +wait |
| 218 | +sudo sed -i "s/SERVERIP/$ipv4/g" /var/www/html/p/killusers.sh & |
| 219 | +wait |
| 220 | +curl -u "$adminusername:$adminpassword" "http://${ipv4}/p/restoretarikh.php" |
| 221 | +cp /var/www/html/p/tarikh /var/www/html/p/backup/tarikh |
| 222 | +rm -fr /var/www/html/p/tarikh |
| 223 | +crontab -l | grep -v '/p/expire.php' | crontab - |
| 224 | +crontab -l | grep -v '/p/synctraffic.php' | crontab - |
| 225 | +(crontab -l ; echo "* * * * * curl -u $adminusername:$adminpassword http://${ipv4}/p/expire.php >/dev/null 2>&1 |
| 226 | +* * * * * curl -u $adminusername:$adminpassword http://${ipv4}/p/synctraffic.php >/dev/null 2>&1" ) | crontab - & |
| 227 | +wait |
| 228 | +clear |
| 229 | +printf "\nPanel Link : http://${ipv4}/p/index.php" |
| 230 | +printf "\nUserName : \e[31m${adminusername}\e[0m " |
| 231 | +printf "\nPassword : \e[31m${adminpassword}\e[0m " |
| 232 | +printf "\nPort : \e[31m${port}\e[0m \n" |
0 commit comments