#!/bin/bash
cache_ram() {
clear
msg -bar
msg -ama " REFRESCANDO CACHE Y RAM"
msg -bar
(
VE="\033[1;33m" && MA="\033[1;31m" && DE="\033[1;32m"
while [[ ! -e /tmp/abc ]]; do
A+="#"
echo -e "${VE}[${MA}${A}${VE}]" >&2
sleep 0.3s
tput cuu1 && tput dl1
done
echo -e "${VE}[${MA}${A}${VE}] - ${DE}[100%]" >&2
rm /tmp/abc
) &
echo 3 > /proc/sys/vm/drop_caches &>/dev/null
sleep 1s
sysctl -w vm.drop_caches=3 &>/dev/null
apt-get autoclean -y &>/dev/null
sleep 1s
apt-get clean -y &>/dev/null
rm /tmp/* &>/dev/null
touch /tmp/abc
sleep 0.5s
msg -bar
msg -verd " Cache/Ram limpiada con Exito!"
msg -bar
if [[ ! -z $(crontab -l|grep -w "vm.drop_caches=3") ]]; then
msg -azu " Tarea programada cada $(msg -verd "[ $(crontab -l|grep -w "vm.drop_caches=3"|awk '{print $2}'|sed $'s/[^[:alnum:]\t]//g')HS ]")"
msg -bar
while :
do
echo -ne "$(msg -azu " Quitar tarea programada [S/N]: ")" && read t_ram
tput cuu1 && tput dl1
case $t_ram in
s|S) crontab -l > /root/cron && sed -i '/vm.drop_caches=3/ d' /root/cron && crontab /root/cron && rm /root/cron
msg -azu " Tarea automatica removida!" && msg -bar && sleep 2
return 1;;
n|N)return 1;;
*)msg -azu " Selecciona S para si, N para no" && sleep 2 && tput cuu1 && tput dl1;;
esac
done
fi
echo -ne "$(msg -azu "Desea programar una tarea automatica [s/n]:") "
read c_ram
if [[ $c_ram = @(s|S|y|Y) ]]; then
tput cuu1 && tput dl1
echo -ne "$(msg -azu " PERIODO DE EJECUCION DE LA TAREA [1-12HS]:") "
read ram_c
if [[ $ram_c =~ $numero ]]; then
crontab -l > /root/cron
echo "0 */$ram_c * * * sudo sysctl -w vm.drop_caches=3 > /dev/null 2>&1" >> /root/cron
crontab /root/cron
rm /root/cron
tput cuu1 && tput dl1
msg -azu " Tarea automatica programada cada: $(msg -verd "${ram_c}HS")" && msg -bar && sleep 2
else
tput cuu1 && tput dl1
msg -verm2 " ingresar solo numeros entre 1 y 12"
sleep 2
msg -bar
fi
fi
return 1
}
new_banner(){
clear
local="/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 "" >> /etc/ssh/sshd_config
echo "Banner /etc/bannerssh" >> /etc/ssh/sshd_config
local="/etc/bannerssh"
fi
title -ama "Instalador del BANNER-SSH/DROPBEAR"
in_opcion_down "Escriba el BANNER de preferencia en HTML"
msg -bar
if [[ "${opcion}" ]]; then
rm -rf $local > /dev/null 2>&1
echo "$opcion" > $local
[[ ! -e ${ADM_tmp}/message.txt ]] && echo "@Rufu99" > ${ADM_tmp}/message.txt
credi="$(less ${ADM_tmp}/message.txt)"
echo '
ADMRufu
'$credi'
' >> $local
service sshd restart 2>/dev/null
service dropbear restart 2>/dev/null
print_center -verd "Banner Agregado!!!"
enter
return 1
fi
print_center -ama "Edicion de Banner Canselada!"
enter
return 1
}
banner_edit(){
clear
chk=$(cat /etc/ssh/sshd_config | grep Banner)
local=$(echo "$chk" |grep -v "#Banner" | grep Banner | awk '{print $2}')
nano $local
service sshd restart 2>/dev/null
service dropbear restart 2>/dev/null
msg -bar
print_center -ama "Edicion de Banner Terminada!"
enter
return 1
}
banner_reset(){
clear
chk=$(cat /etc/ssh/sshd_config | grep Banner)
local=$(echo "$chk" |grep -v "#Banner" | grep Banner | awk '{print $2}')
rm -rf $local
touch $local
service sshd restart 2>/dev/null
service dropbear restart 2>/dev/null
msg -bar
print_center -ama "EL BANNER SSH FUE LIMPIADO"
enter
return 1
}
baner_fun(){
chk=$(cat /etc/ssh/sshd_config | grep Banner)
local=$(echo "$chk" |grep -v "#Banner" | grep Banner | awk '{print $2}')
n=1
title -ama "MENU DE EDICION DE BANNER SSH"
echo -e " $(msg -verd "[1]") $(msg -verm2 ">") $(msg -azu "NUEVO BANNER SSH")"
if [[ -e "${local}" ]]; then
echo -e " $(msg -verd "[2]") $(msg -verm2 ">") $(msg -azu "EDITAR BANNER CON NANO")"
echo -e " $(msg -verd "[3]") $(msg -verm2 ">") $(msg -azu "RESET BANNER SSH")"
n=3
fi
back
opcion=$(selection_fun $n)
case $opcion in
1)new_banner;;
2)banner_edit;;
3)banner_reset;;
0)return 1;;
esac
}
fun_autorun () {
clear
msg -bar
if [[ $(cat /etc/bash.bashrc | grep -w ${ADMRufu}/menu) ]]; then
cat /etc/bash.bashrc | grep -v ${ADMRufu}/menu > /tmp/bash
mv -f /tmp/bash /etc/bash.bashrc
msg -ama " $(fun_trans "AUTO-INICIO REMOVIDO")"
msg -bar
else
cp /etc/bash.bashrc /tmp/bash
echo "${ADMRufu}/menu" >> /tmp/bash
mv -f /tmp/bash /etc/bash.bashrc
msg -verd " $(fun_trans "AUTO-INICIO AGREGADO")"
msg -bar
fi
return 1
}
# comfiguracion menu principal
#==================================================
C_MENU2(){
unset m_conf
m_conf="$(cat ${ADM_tmp}/style|grep -w "$1"|awk '{print $2}')"
case $m_conf in
0)sed -i "s;$1 0;$1 1;g" ${ADM_tmp}/style;;
1)sed -i "s;$1 1;$1 0;g" ${ADM_tmp}/style;;
esac
}
c_stat(){
unset m_stat
m_stat="$(cat ${ADM_tmp}/style|grep -w "$1"|awk '{print $2}')"
case $m_stat in
0)msg -verm2 "[OFF]";;
1)msg -verd "[ON]";;
esac
}
c_resel(){
clear
msg -bar
msg -ama " CAMBIAR RESELLER"
msg -bar
echo -ne "$(msg -azu " CAMBIAR RESELLER [S/N]:") "
read txt_r
if [[ $txt_r = @(s|S|y|Y) ]]; then
tput cuu1 && tput dl1
echo -ne "$(msg -azu " ESCRIBE TU RESELLER:") "
read r_txt
echo -e "$r_txt" > ${ADM_tmp}/message.txt
fi
C_MENU2 resel
}
conf_menu(){
while :
do
clear
msg -bar
msg -ama " CONFIGURACION DEL MENU PRINCIPAL"
msg -bar
echo -ne "$(msg -verd " [1]") $(msg -verm2 ">") " && msg -azu "INF SISTEMA (SYS/MEM/CPU) $(c_stat infsys)"
echo -ne "$(msg -verd " [2]") $(msg -verm2 ">") " && msg -azu "PUERTOS ACTIVOS $(c_stat port)"
echo -ne "$(msg -verd " [3]") $(msg -verm2 ">") " && msg -azu "RESELLER $(c_stat resel)"
echo -ne "$(msg -verd " [4]") $(msg -verm2 ">") " && msg -azu "CONTADOR (Only/Exp/Total) $(c_stat contador)"
msg -bar
echo -ne "$(msg -verd " [0]") $(msg -verm2 ">") " && msg -bra " \033[1;41m VOLVER \033[0m"
msg -bar
echo -ne "$(msg -azu " opcion: ")"
read C_MENU
case $C_MENU in
1)C_MENU2 infsys;;
2)C_MENU2 port;;
3)c_resel;; #C_MENU2 resel;;
4)C_MENU2 contador;;
0)break;;
esac
done
return 0
}
#================================================
root_acces () {
sed -i '/PermitRootLogin/d' /etc/ssh/sshd_config
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
sed -i '/PasswordAuthentication/d' /etc/ssh/sshd_config
echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
service sshd restart
}
root_pass () {
clear
msg -bar
[[ -z $1 ]] && msg -ama " CAMBIAR CONTRASEÑA ROOT" || msg -ama " ACTIVAR ACCESO ROOT"
msg -bar
msg -azu " Esto cambiara la contraseña de acceso root"
msg -bar3
msg -azu " Esta contraseña podra ser utilizada para\n acceder al vps como usuario root."
msg -bar
echo -ne " $(msg -azu "Cambiar contraseña root? [S/N]:") "; read x
tput cuu1 && tput dl1
[[ $x = @(n|N) ]] && msg -bar && return
if [[ ! -z $1 ]]; then
msg -azu " Activando acceso root..."
root_acces
sleep 3
tput cuu1 && tput dl1
msg -azu " Acceso root Activado..."
msg -bar
fi
echo -ne "\033[1;37m Nueva contraseña: \033[0;31m"
read pass
tput cuu1 && tput dl1
(echo $pass; echo $pass)|passwd root 2>/dev/null
sleep 1s
msg -azu " Contraseña root actulizada!"
msg -azu " Contraseña actual:\033[0;31m $pass"
msg -bar
enter
return 1
}
pid_inst(){
v_node="$(which nodejs)" && [[ $(ls -l ${node_v}|grep -w 'node') ]] && v_node="nodejs" || v_node="node"
proto="dropbear python stunnel4 v2ray $v_node badvpn squid openvpn dns-serve"
portas=$(lsof -V -i -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND")
for list in $proto; do
case $list in
dropbear|python|stunnel4|v2ray|badvpn|squid|openvpn|"$v_node") portas2=$(echo "$portas"|grep -w "LISTEN"|grep -w "$list") && [[ $(echo "${portas2}"|grep "$list") ]] && inst[$list]="\033[1;32m[ON] " || inst[$list]="\033[1;31m[OFF]";;
dns-serve) portas2=$(echo "$portas"|grep -w "$list") && [[ $(echo "${portas2}"|grep "$list") ]] && inst[$list]="\033[1;32m[ON] " || inst[$list]="\033[1;31m[OFF]";;
esac
done
}
menu_inst () {
clear
declare -A inst
pid_inst
if [[ $(cat /etc/bash.bashrc | grep -w ${ADMRufu}/menu) ]]; then
AutoRun="\033[1;32m[ON]"
else
AutoRun="\033[1;31m[OFF]"
fi
v=$(cat $ADMRufu/vercion)
msg -bar
echo -e "\033[1;93m INFORMACION DEL SISTEMA Y PUERTOS ACTIVOS"
msg -bar
info_sys
msg -bar
mine_port
echo -e "\e[0m\e[31m================ \e[1;33mMENU DE PROTOCOLOS\e[0m\e[31m =================\e[0m"
echo -ne "$(msg -verd " [1]")$(msg -verm2 ">") $(msg -azu "DROPBEAR ${inst[dropbear]}")" && echo -e "$(msg -verd " [7]")$(msg -verm2 ">") $(msg -azu "SQUID ${inst[squid]}")"
echo -ne "$(msg -verd " [2]")$(msg -verm2 ">") $(msg -azu "SOCKS PYTHON ${inst[python]}")" && echo -e "$(msg -verd " [8]")$(msg -verm2 ">") $(msg -azu "OPENVPN ${inst[openvpn]}")"
echo -ne "$(msg -verd " [3]")$(msg -verm2 ">") $(msg -azu "SSL ${inst[stunnel4]}")" && echo -e "$(msg -verd " [9]")$(msg -verm2 ">") $(msg -azu "SlowDNS ${inst[dns-serve]}")" #&& echo -e "$(msg -verd " [9]")$(msg -verm2 ">") $(msg -azu "SHADOW-LIBEV $(pid_inst ss-server)")"
echo -e "$(msg -verd " [4]")$(msg -verm2 ">") $(msg -azu "V2RAY ${inst[v2ray]}")" #&& echo -e "$(msg -verd " [10]")$(msg -verm2 ">") $(msg -azu "SHADOW-NORMAL $(pid_inst ssserver)")"
echo -e "$(msg -verd " [5]")$(msg -verm2 ">") $(msg -azu "OVER WEBSOCKET${inst[$v_node]}")" #&& echo -e "$(msg -verd " [11]")$(msg -verm2 ">") $(msg -azu "SHADOW-R $(pid_inst)")"
echo -e "$(msg -verd " [6]")$(msg -verm2 ">") $(msg -azu "BADVPN-UDP ${inst[badvpn]}")" #&& echo -e "$(msg -verd " [X]")$(msg -verm2 ">") $(msg -azu "SlowDNS $(pid_inst openvpn)")"
echo -e "\e[31m============== \e[1;33mCONFIGURACIONES RAPIDAS\e[0m\e[31m ==============\e[0m"
echo -ne "$(msg -verd " [12]")$(msg -verm2 ">") $(msg -azu "BANNER SSH")" && echo -e "$(msg -verd " [17]")$(msg -verm2 ">") $(msg -azu "TCP (BBR/PLUS)")"
echo -ne "$(msg -verd " [13]")$(msg -verm2 ">") $(msg -azu "REFREES CACHE/RAM") $(crontab -l|grep -w "vm.drop_caches=3" > /dev/null && echo -e "\033[1;32m◉ " || echo -e "\033[1;31m○ ")" && echo -e "$(msg -verd "[18]")$(msg -verm2 ">") $(msg -azu "CAMBIAR PASS ROOT")"
echo -ne "$(msg -verd " [14]")$(msg -verm2 ">") $(msg -azu "MEMORIA SWAP") $([[ $(cat /proc/swaps | wc -l) -le 1 ]] && echo -e "\033[1;31m○ " || echo -e "\033[1;32m◉ ")" && echo -e "$(msg -verd " [19]")$(msg -verm2 ">") $(msg -azu "ACTIVAR ACCESO ROOT")"
echo -ne "$(msg -verd " [15]")$(msg -verm2 ">") $(msg -azu "ADMIN PORTS ACTIVOS")" && echo -e "$(msg -verd " [20]")$(msg -verm2 ">") $(msg -azu "CONF MENU PRINCIPAL")"
echo -e "$(msg -verd " [16]")$(msg -verm2 ">") $(msg -azu "GEN DOMI/CERT-SSL") $([[ -z $(ls "${ADM_crt}") ]] && echo -e "\033[1;31m○ " || echo -e "\033[1;32m◉ ")"
msg -bar
echo -e "$(msg -verd " [21]") $(msg -verm2 ">") $(msg -azu "HERRAMIENTAS y EXTRAS")"
msg -bar
echo -ne "$(msg -verd " [0]") $(msg -verm2 ">") " && msg -bra " \033[1;41m VOLVER \033[0m $(msg -verd " [22]") $(msg -verm2 ">") $(msg -azu AUTO-INICIAR) ${AutoRun}"
msg -bar
selection=$(selection_fun 22)
case $selection in
0)return 0;;
1)${ADM_inst}/dropbear.sh;;
2)${ADM_inst}/sockspy.sh;;
3)${ADM_inst}/ssl.sh;;
4)${ADM_inst}/v2ray.sh;;
5)${ADM_inst}/ws-cdn.sh;;
6)${ADM_inst}/budp.sh;;
7)${ADM_inst}/squid.sh;;
8)${ADM_inst}/openvpn.sh;;
9)${ADM_inst}/slowdns.sh;;
#9)${ADM_inst}/Shadowsocks-libev.sh;;
#10)${ADM_inst}/shadowsocks.sh;;
#11)${ADM_inst}/Shadowsocks-R.sh;;
12)baner_fun;;
13)cache_ram;;
14)${ADM_inst}/swapfile.sh;;
15)${ADM_inst}/ports.sh;;
16)${ADM_inst}/cert.sh;;
17)${ADM_inst}/tcp.sh;;
18)root_pass;;
19)root_pass 1;;
20)conf_menu;;
21)${ADMRufu}/tool_extras.sh;;
22)fun_autorun;;
esac
}
while [[ ${back} != @(0) ]]; do
menu_inst
back="$?"
[[ ${back} != @(0|[1]) ]] && msg -azu " Enter para continuar..." && read foo
done