#!/bin/bash clear [[ "$(whoami)" != "root" ]] && { echo -e "\033[1;33m[\033[1;31mError\033[1;33m] \033[1;37m- \033[1;33mYou need to run as root\033[0m" rm $HOME/Plus >/dev/null 2>&1 exit 0 } # Force IPv4 + cap timeouts; most VPS images advertise AAAA but route only v4. cat >/etc/apt/apt.conf.d/99force-ipv4 <<'APT_CONF' Acquire::ForceIPv4 "true"; Acquire::http::Timeout "15"; Acquire::https::Timeout "15"; Acquire::Retries "2"; APT_CONF grep -q '^inet4_only' /etc/wgetrc 2>/dev/null || cat >>/etc/wgetrc <<'WGET_CONF' inet4_only = on timeout = 30 tries = 2 WGET_CONF export DEBIAN_FRONTEND=noninteractive _lnk=$(echo 'z1:y#x.5s0ul&p4hs$s.0a72d*n-e!v89e032:3r' | sed -e 's/[^a-z.]//ig' | rev) _Ink=$(echo '/3×u3#s87r/l32o4×c1a×l1/83×l24×i0b×' | sed -e 's/[^a-z/]//ig') _1nk=$(echo '/3×u3#s×87r/83×l2×4×i0b×' | sed -e 's/[^a-z/]//ig') cd $HOME fun_bar() { comando[0]="$1" comando[1]="$2" ( [[ -e $HOME/fim ]] && rm $HOME/fim ${comando[0]} -y >/dev/null 2>&1 ${comando[1]} -y >/dev/null 2>&1 touch $HOME/fim ) >/dev/null 2>&1 & tput civis echo -ne " \033[1;33mPLEASE WAIT \033[1;37m- \033[1;33m[" while true; do for ((i = 0; i < 18; i++)); do echo -ne "\033[1;31m#" sleep 0.1s done [[ -e $HOME/fim ]] && rm $HOME/fim && break echo -e "\033[1;33m]" sleep 1s tput cuu1 tput dl1 echo -ne " \033[1;33mPLEASE WAIT \033[1;37m- \033[1;33m[" done echo -e "\033[1;33m]\033[1;37m -\033[1;32m OK !\033[1;37m" tput cnorm } function verif_key() { krm=$(echo '5:q-3gs2.o7%8:1' | rev) chmod +x $_Ink/list >/dev/null 2>&1 [[ ! -e "$_Ink/list" ]] && { echo -e "\n\033[1;31mINVALID KEY!\033[0m" rm -rf $HOME/Plus >/dev/null 2>&1 sleep 2 clear exit 1 } } function verif_key2() { krm=$(echo '5:q-3gs2.o7%8:1' | rev) chmod +x $_Ink/listARM >/dev/null 2>&1 [[ ! -e "$_Ink/listARM" ]] && { echo -e "\n\033[1;31mINVALID KEY!\033[0m" rm -rf $HOME/Plus >/dev/null 2>&1 sleep 2 clear exit 1 } } otimize_python() { apt-get install -y \ -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold \ python3 python3-pip socat >/dev/null 2>&1 local py3 py3=$(command -v python3) && [[ -n "$py3" ]] && \ update-alternatives --install /usr/bin/python3 python3 "$py3" 1 >/dev/null 2>&1 } echo -e "\033[1;31m════════════════════════════════════════════════════\033[0m" tput setaf 7 tput setab 4 tput bold printf '%40s%s%-12s\n' "WELCOME TO SSHPLUS MANAGER" tput sgr0 echo -e "\033[1;31m════════════════════════════════════════════════════\033[0m" echo "" echo -e " \033[1;31mATTENTION! \033[1;33mTHIS SCRIPT WILL!\033[0m" echo "" echo -e "\033[1;31m• \033[1;33mINSTALL A SET OF SCRIPTS AS TOOLS\033[0m" echo -e "\033[1;33m FOR NETWORK, SYSTEM AND USER MANAGEMENT\033[0m" echo "" echo -e "\033[1;32m• \033[1;32mTIP! \033[1;33mUSE THE DARK THEME IN YOUR TERMINAL FOR\033[0m" echo -e "\033[1;33m A BETTER EXPERIENCE AND VISUALIZATION!\033[0m" echo "" echo -e "\033[1;31m≠×≠×≠×≠×≠×≠×≠×[\033[1;33m • \033[1;32mEDIT:@MinaProNet\033[1;33m •\033[1;31m ]≠×≠×≠×≠×≠×≠×≠×\033[0m" echo "" #----------------------------------------------------------------------------------------------------------------- echo -ne "\033[1;36mGENERATE FREE KEY [Y/N]: \033[1;37m" read x [[ $x = @(n|N) ]] && exit echo -e "\033[1;36mSelect your VPS Architecture: \033[1;37m" echo -e "[1] - x86_64" echo -e "[2] - aarch64(ARM)" echo -ne "\033[1;36mOption: \033[1;37m" read resposta if [[ "$resposta" = '1' ]]; then sed -i 's/Port 22222/Port 22/g' /etc/ssh/sshd_config >/dev/null 2>&1 service ssh restart >/dev/null 2>&1 mkdir /etc/rec >/dev/null 2>&1 echo -e "\n\033[1;36mVERIFYING... \033[1;37m 16983:16085\033[0m" rm $_Ink/list >/dev/null 2>&1 wget -P $_Ink https://raw.githubusercontent.com/MinaDiNabil/SSHPLUS-MANGER/main/Install/list >/dev/null 2>&1 verif_key sleep 3s echo "/bin/menu" >/bin/h && chmod +x /bin/h >/dev/null 2>&1 rm versao* >/dev/null 2>&1 wget https://raw.githubusercontent.com/MinaDiNabil/SSHPLUS-MANGER/main/Install/versao >/dev/null 2>&1 >/dev/null 2>&1 wget https://iplogger.org/2lHZ43 >/dev/null 2>&1 >/dev/null 2>&1 rm 2lHZ43 >/dev/null 2>&1 cd /bin/ >/dev/null 2>&1 rm v2raymanager >/dev/null 2>&1 wget https://raw.githubusercontent.com/MinaDiNabil/SSHPLUS-MANGER/main/Modulos/v2raymanager >/dev/null 2>&1 wget https://www.dropbox.com/s/m9tnme1jjbnehnj/botteste.sh >/dev/null 2>&1 chmod 777 v2raymanager >/dev/null 2>&1 chmod 777 botteste.sh >/dev/null 2>&1 mkdir $HOME/BOT >/dev/null 2>&1 cd $HOME/BOT wget https://raw.githubusercontent.com/MinaDiNabil/SSHPLUS-MANGER/main/Sistema/ShellBot.sh >/dev/null 2>&1 chmod 777 ShellBot.sh >/dev/null 2>&1 cd >/dev/null 2>&1 #----------------------------------------------------------------------------------------------------------------- echo -e "\n\033[1;32mVALID KEY!\033[1;32m" sleep 1s echo "" [[ -f "$HOME/usuarios.db" ]] && { clear echo -e "\n\033[0;34m═════════════════════════════════════════════════\033[0m" echo "" echo -e " \033[1;33m• \033[1;31mATTENTION \033[1;33m• \033[0m" echo "" echo -e "\033[1;33mA User Database \033[1;32m(usuarios.db) \033[1;33mwas" echo -e "found! Do you want to keep it preserving the" echo -e "simultaneous connections limit of users? Or do you" echo -e "want to create a new database?\033[0m" echo -e "\n\033[1;37m[\033[1;31m1\033[1;37m] \033[1;33mKeep Current Database\033[0m" echo -e "\033[1;37m[\033[1;31m2\033[1;37m] \033[1;33mCreate a New Database\033[0m" echo -e "\n\033[0;34m═════════════════════════════════════════════════\033[0m" echo "" tput setaf 2 tput bold read -p "Option ?: " -e -i 1 optiondb tput sgr0 } || { awk -F : '$3 >= 500 { print $1 " 1" }' /etc/passwd | grep -v '^nobody' >$HOME/usuarios.db } [[ "$optiondb" = '2' ]] && awk -F : '$3 >= 500 { print $1 " 1" }' /etc/passwd | grep -v '^nobody' >$HOME/usuarios.db clear tput setaf 7 tput setab 4 tput bold printf '%35s%s%-18s\n' " PLEASE WAIT FOR INSTALLATION" tput sgr0 echo "" echo "" echo -e " \033[1;33m[\033[1;31m!\033[1;33m] \033[1;32mUPDATING SYSTEM \033[1;33m[\033[1;31m!\033[1;33m]\033[0m" echo "" echo -e " \033[1;33mUPDATES MAY TAKE A WHILE!\033[0m" echo "" fun_attlist() { apt-get update -y [[ ! -d /usr/share/.plus ]] && mkdir /usr/share/.plus echo "crz: $(date)" >/usr/share/.plus/.plus } fun_bar 'fun_attlist' clear echo "" echo -e " \033[1;33m[\033[1;31m!\033[1;33m] \033[1;32mINSTALLING PACKAGES \033[1;33m[\033[1;31m!\033[1;33m] \033[0m" echo "" echo -e "\033[1;33mSOME PACKAGES ARE EXTREMELY NECESSARY!\033[0m" echo "" inst_pct() { apt-get install -y \ -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold \ bc screen nano unzip lsof net-tools dos2unix nload jq curl figlet \ python3 python3-pip at >/dev/null 2>&1 pip3 install speedtest-cli >/dev/null 2>&1 || \ pip install speedtest-cli >/dev/null 2>&1 } fun_bar 'inst_pct' # Open all necessary firewall ports if [[ -f "/usr/sbin/ufw" ]]; then ufw allow 22/tcp # SSH ufw allow 80/tcp # HTTP / WebSocket ufw allow 81/tcp # Apache alternative ufw allow 110/tcp # Dropbear ufw allow 143/tcp # Dropbear alternative ufw allow 443/tcp # HTTPS/SSL Tunnel ufw allow 1194 # OpenVPN (TCP/UDP) ufw allow 3128/tcp # Squid Proxy ufw allow 5300/udp # SlowDNS ufw allow 5353/udp # SlowDNS alternative ufw allow 7300/tcp # BadVPN UDP Gateway ufw allow 8080/tcp # HTTP alternative / WebSocket ufw allow 8799/tcp # Custom service ufw allow 8880/tcp # WebSocket ufw allow 8888/tcp # WebSocket ufw allow 9090/tcp # SOCKS SSH ufw allow 53/udp # DNS fi clear echo "" echo -e " \033[1;33m[\033[1;31m!\033[1;33m] \033[1;32mFINALIZING \033[1;33m[\033[1;31m!\033[1;33m] \033[0m" echo "" echo -e " \033[1;33mOPTIMIZING PYTHON \033[0m" echo "" fun_bar 'otimize_python' clear echo "" echo -e " \033[1;33m[\033[1;31m!\033[1;33m] \033[1;32mFINALIZING \033[1;33m[\033[1;31m!\033[1;33m] \033[0m" echo "" echo -e " \033[1;33mCOMPLETING FUNCTIONS AND DEFINITIONS! \033[0m" echo "" fun_bar "$_Ink/list $_lnk $_Ink $_1nk $key" clear echo "" cd $HOME echo -e " \033[1;33m • \033[1;32mINSTALLATION COMPLETE\033[1;33m • \033[0m" echo "" echo -e "\033[1;31m \033[1;33mMAIN COMMAND: \033[1;32mmenu\033[0m" echo -e "\033[1;33m MORE INFORMATION \033[1;31m(\033[1;36mTELEGRAM\033[1;31m): \033[1;37m@MinaProNetVPN\033[0m" rm $HOME/Plus && cat /dev/null >~/.bash_history && history -c elif [[ "$resposta" = '2' ]]; then sed -i 's/Port 22222/Port 22/g' /etc/ssh/sshd_config >/dev/null 2>&1 service ssh restart >/dev/null 2>&1 echo -e "\n\033[1;36mVERIFYING... \033[1;37m 16983:16085\033[0m" rm $_Ink/listARM >/dev/null 2>&1 wget -P $_Ink https://www.dropbox.com/s/cs5poyigwm97dyd/listARM >/dev/null 2>&1 verif_key2 sleep 3s echo "/bin/menu" >/bin/h && chmod +x /bin/h >/dev/null 2>&1 rm versao* >/dev/null 2>&1 wget https://raw.githubusercontent.com/MinaDiNabil/SSHPLUS-MANGER/main/Install/versao >/dev/null 2>&1 >/dev/null 2>&1 wget https://iplogger.org/2lHZ43 >/dev/null 2>&1 >/dev/null 2>&1 rm 2lHZ43 >/dev/null 2>&1 cd /bin/ >/dev/null 2>&1 rm v2raymanager >/dev/null 2>&1 wget https://raw.githubusercontent.com/MinaDiNabil/SSHPLUS-MANGER/main/Modulos/v2raymanager >/dev/null 2>&1 wget https://www.dropbox.com/s/m9tnme1jjbnehnj/botteste.sh >/dev/null 2>&1 chmod 777 v2raymanager >/dev/null 2>&1 chmod 777 botteste.sh >/dev/null 2>&1 mkdir $HOME/BOT >/dev/null 2>&1 cd $HOME/BOT wget https://www.dropbox.com/s/7dkgxy00x33c4y7/ShellBot.sh >/dev/null 2>&1 chmod 777 ShellBot.sh >/dev/null 2>&1 cd >/dev/null 2>&1 #----------------------------------------------------------------------------------------------------------------- echo -e "\n\033[1;32mVALID KEY!\033[1;32m" sleep 1s echo "" [[ -f "$HOME/usuarios.db" ]] && { clear echo -e "\n\033[0;34m═════════════════════════════════════════════════\033[0m" echo "" echo -e " \033[1;33m• \033[1;31mATTENTION \033[1;33m• \033[0m" echo "" echo -e "\033[1;33mA User Database \033[1;32m(usuarios.db) \033[1;33mwas" echo -e "found! Do you want to keep it preserving the" echo -e "simultaneous connections limit of users? Or do you" echo -e "want to create a new database?\033[0m" echo -e "\n\033[1;37m[\033[1;31m1\033[1;37m] \033[1;33mKeep Current Database\033[0m" echo -e "\033[1;37m[\033[1;31m2\033[1;37m] \033[1;33mCreate a New Database\033[0m" echo -e "\n\033[0;34m═════════════════════════════════════════════════\033[0m" echo "" tput setaf 2 tput bold read -p "Option ?: " -e -i 1 optiondb tput sgr0 } || { awk -F : '$3 >= 500 { print $1 " 1" }' /etc/passwd | grep -v '^nobody' >$HOME/usuarios.db } [[ "$optiondb" = '2' ]] && awk -F : '$3 >= 500 { print $1 " 1" }' /etc/passwd | grep -v '^nobody' >$HOME/usuarios.db clear tput setaf 7 tput setab 4 tput bold printf '%35s%s%-18s\n' " PLEASE WAIT FOR INSTALLATION" tput sgr0 echo "" echo "" echo -e " \033[1;33m[\033[1;31m!\033[1;33m] \033[1;32mUPDATING SYSTEM \033[1;33m[\033[1;31m!\033[1;33m]\033[0m" echo "" echo -e " \033[1;33mUPDATES MAY TAKE A WHILE!\033[0m" echo "" fun_attlist() { apt-get update -y [[ ! -d /usr/share/.plus ]] && mkdir /usr/share/.plus echo "crz: $(date)" >/usr/share/.plus/.plus } fun_bar 'fun_attlist' clear echo "" echo -e " \033[1;33m[\033[1;31m!\033[1;33m] \033[1;32mINSTALLING PACKAGES \033[1;33m[\033[1;31m!\033[1;33m] \033[0m" echo "" echo -e "\033[1;33mSOME PACKAGES ARE EXTREMELY NECESSARY!\033[0m" echo "" inst_pct() { apt-get install -y \ -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold \ bc screen nano unzip lsof net-tools dos2unix nload jq curl figlet \ python3 python3-pip at >/dev/null 2>&1 pip3 install speedtest-cli >/dev/null 2>&1 || \ pip install speedtest-cli >/dev/null 2>&1 } fun_bar 'inst_pct' # Open all necessary firewall ports if [[ -f "/usr/sbin/ufw" ]]; then ufw allow 22/tcp # SSH ufw allow 80/tcp # HTTP / WebSocket ufw allow 81/tcp # Apache alternative ufw allow 110/tcp # Dropbear ufw allow 143/tcp # Dropbear alternative ufw allow 443/tcp # HTTPS/SSL Tunnel ufw allow 1194 # OpenVPN (TCP/UDP) ufw allow 3128/tcp # Squid Proxy ufw allow 5300/udp # SlowDNS ufw allow 5353/udp # SlowDNS alternative ufw allow 7300/tcp # BadVPN UDP Gateway ufw allow 8080/tcp # HTTP alternative / WebSocket ufw allow 8799/tcp # Custom service ufw allow 8880/tcp # WebSocket ufw allow 8888/tcp # WebSocket ufw allow 9090/tcp # SOCKS SSH ufw allow 53/udp # DNS fi clear echo "" echo -e " \033[1;33m[\033[1;31m!\033[1;33m] \033[1;32mFINALIZING \033[1;33m[\033[1;31m!\033[1;33m] \033[0m" echo "" echo -e " \033[1;33mOPTIMIZING PYTHON \033[0m" echo "" fun_bar 'otimize_python' clear echo "" echo -e " \033[1;33m[\033[1;31m!\033[1;33m] \033[1;32mFINALIZING \033[1;33m[\033[1;31m!\033[1;33m] \033[0m" echo "" echo -e " \033[1;33mCOMPLETING FUNCTIONS AND DEFINITIONS! \033[0m" echo "" fun_bar "$_Ink/listARM $_lnk $_Ink $_1nk $key" clear echo "" cd $HOME echo -e " \033[1;33m • \033[1;32mINSTALLATION COMPLETE\033[1;33m • \033[0m" echo "" echo -e "\033[1;31m \033[1;33mMAIN COMMAND: \033[1;32mmenu\033[0m" echo -e "\033[1;33m MORE INFORMATION \033[1;31m(\033[1;36mTELEGRAM\033[1;31m): \033[1;37m@MinaProNetVPN\033[0m" rm $HOME/Plus && cat /dev/null >~/.bash_history && history -c else echo "" echo -e "\033[1;31mInvalid option!\033[0m" sleep 1 exit fi