usercodes 58 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836
  1. #!/bin/bash
  2. clear
  3. clear
  4. msg -bar
  5. NOM=`less /etc/VPS-MX/controlador/nombre.log` > /dev/null 2>&1
  6. NOM1=`echo $NOM` > /dev/null 2>&1
  7. IDB=`less /etc/VPS-MX/controlador/IDT.log` > /dev/null 2>&1
  8. IDB1=`echo $IDB` > /dev/null 2>&1
  9. declare -A TIMEUS
  10. SCPdir="/etc/VPS-MX"
  11. SCPdir2="${SCPdir}/herramientas"
  12. SCPusr="${SCPdir}/controlador"
  13. MyPID="${SCPusr}/pid-vps-mx"
  14. MyTIME="${SCPusr}/time-vps-mx"
  15. USRdatabase="${SCPdir}/VPS-MXuser"
  16. USRdatabaseh="${SCPdir}/User-HWID"
  17. tokens="${SCPdir}/User-TOKEN"
  18. VERY="$(ps aux|grep "${SCPusr}/usercodes verificar"| grep -v grep)"
  19. VERY2="$(ps aux|grep "${SCPusr}/usercodes desbloqueo"| grep -v grep)"
  20. [[ -e ${MyPID} ]] && source ${MyPID} || touch ${MyPID}
  21. [[ -e ${MyTIME} ]] && source ${MyTIME} || touch ${MyTIME}
  22. [[ ! -e ${USRdatabase} ]] && touch ${USRdatabase}
  23. sort ${USRdatabase} | uniq > ${USRdatabase}tmp
  24. mv -f ${USRdatabase}tmp ${USRdatabase}
  25. newclient () {
  26. usermod -p $(openssl passwd -1 $2) $1
  27. while [[ ${newfile} != @(s|S|y|Y|n|N) ]]; do
  28. msg -bar
  29. read -p "Crear Archivo OpenVPN? [S/N]: " -e -i S newfile
  30. tput cuu1 && tput dl1
  31. done
  32. if [[ ${newfile} = @(s|S) ]]; then
  33. rm -rf /etc/openvpn/easy-rsa/pki/reqs/$1.req
  34. rm -rf /etc/openvpn/easy-rsa/pki/issued/$1.crt
  35. rm -rf /etc/openvpn/easy-rsa/pki/private/$1.key
  36. cd /etc/openvpn/easy-rsa/
  37. ./easyrsa build-client-full $1 nopass > /dev/null 2>&1
  38. cd
  39. cp /etc/openvpn/client-common.txt ~/$1.ovpn
  40. echo "<ca>" >> ~/$1.ovpn
  41. cat /etc/openvpn/easy-rsa/pki/ca.crt >> ~/$1.ovpn
  42. echo "</ca>" >> ~/$1.ovpn
  43. echo "<cert>" >> ~/$1.ovpn
  44. cat /etc/openvpn/easy-rsa/pki/issued/$1.crt >> ~/$1.ovpn
  45. echo "</cert>" >> ~/$1.ovpn
  46. echo "<key>" >> ~/$1.ovpn
  47. cat /etc/openvpn/easy-rsa/pki/private/$1.key >> ~/$1.ovpn
  48. echo "</key>" >> ~/$1.ovpn
  49. echo "<tls-auth>" >> ~/$1.ovpn
  50. cat /etc/openvpn/ta.key >> ~/$1.ovpn
  51. echo "</tls-auth>" >> ~/$1.ovpn
  52. while [[ ${ovpnauth} != @(s|S|y|Y|n|N) ]]; do
  53. read -p "$(fun_trans "Colocar autenticacion de usuario en el archivo")? [S/N]: " -e -i S ovpnauth
  54. tput cuu1 && tput dl1
  55. done
  56. [[ ${ovpnauth} = @(s|S) ]] && sed -i "s;auth-user-pass;<auth-user-pass>\n$1\n$2\n</auth-user-pass>;g" ~/$1.ovpn
  57. cd $HOME
  58. zip ./$1.zip ./$1.ovpn > /dev/null 2>&1
  59. rm ./$1.ovpn > /dev/null 2>&1
  60. echo -e "\033[1;31m$(fun_trans "Archivo creado"): ($HOME/$1.zip)"
  61. fi
  62. }
  63. unlockall2 () {
  64. for user in $(cat /etc/passwd |awk -F : '$3 > 900 {print $1}' |grep -v "rick" |grep -vi "nobody")
  65. do
  66. userpid=$(ps -u $user |awk {'print $1'})
  67. usermod -U $user &>/dev/null
  68. done
  69. }
  70. eliminar_all () {
  71. clear
  72. clear
  73. msg -bar
  74. msg -tit
  75. echo -e "\033[1;31m BORRAR TODOS LOS USUARIOS REGISTRADOS"
  76. msg -bar
  77. read -p " ►► Enter para Continuar o CTRL + C Cancelar ◄◄"
  78. echo ""
  79. service dropbear stop &>/dev/null
  80. service sshd stop &>/dev/null
  81. service ssh stop &>/dev/null
  82. service stunnel4 stop &>/dev/null
  83. service squid stop &>/dev/null
  84. for user in $(cat /etc/passwd |awk -F : '$3 > 900 {print $1}' |grep -v "rick" |grep -vi "nobody")
  85. do
  86. userpid=$(ps -u $user |awk {'print $1'})
  87. kill "$userpid" 2>/dev/null
  88. userdel $user
  89. echo -e "\033[1;32mUSUARIO:\033[1;33m $user \033[1;31mEliminado"
  90. done
  91. rm -rf ${SCPdir}/VPS-MXuser
  92. service sshd restart &>/dev/null
  93. service ssh restart &>/dev/null
  94. service dropbear start &>/dev/null
  95. service stunnel4 start &>/dev/null
  96. service squid restart &>/dev/null
  97. rm -rf ${SCPdir}/VPS-MX-userlock &>/dev/null
  98. rm -rf /etc/VPS-MX/controlador/Limiter.log &>/dev/null
  99. unlockall2
  100. msg -bar
  101. msg -ne " Enter Para Continuar" && read enter
  102. ${SCPusr}/usercodes
  103. }
  104. reset_contador () {
  105. clear
  106. clear
  107. msg -bar
  108. msg -tit
  109. echo -e "\033[1;33m REINICIAR CONTADOR DE BLOQUEOS"
  110. msg -bar
  111. echo -e "\033[1;97m !! Usar unicamente cuando en el apartado del contador\nmarque alguna cantidad erronea. ¡¡"
  112. echo ""
  113. echo -e "\033[1;91m ## Cancelar Precione CTRL+C"
  114. msg -bar
  115. read -p " ►► Presione enter para continuar ◄◄"
  116. rm -rf /etc/VPS-MX/VPS-MX-userlock
  117. rm -rf /etc/VPS-MX/controlador/Limiter.log
  118. unlockall2
  119. msg -bar
  120. echo -e "\033[1;92m ¡¡CONTADORES REINICIADOS!!"
  121. msg -bar
  122. msg -ne " Enter Para Continuar" && read enter
  123. ${SCPusr}/usercodes
  124. }
  125. SPR &
  126. droppids () {
  127. local pids
  128. local portasVAR=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN")
  129. local NOREPEAT
  130. local reQ
  131. local Port
  132. while read port; do
  133. reQ=$(echo ${port}|awk '{print $1}')
  134. Port=$(echo {$port} | awk '{print $9}' | awk -F ":" '{print $2}')
  135. [[ $(echo -e $NOREPEAT|grep -w "$Port") ]] && continue
  136. NOREPEAT+="$Port\n"
  137. case ${reQ} in
  138. dropbear)
  139. [[ -z $DPB ]] && local DPB="\033[1;31m DROPBEAR: \033[1;32m"
  140. DPB+="$Port ";;
  141. esac
  142. done <<< "${portasVAR}"
  143. [[ ! -z $DPB ]] && echo -e $DPB
  144. local port_dropbear="$DPB"
  145. cat /var/log/auth.log|tail -1000 > /var/log/authday.log
  146. local log=/var/log/authday.log
  147. local loginsukses='Password auth succeeded'
  148. [[ -z $port_dropbear ]] && return 1
  149. for port in `echo $port_dropbear`; do
  150. for pidx in $(ps ax |grep dropbear |grep "$port" |awk -F" " '{print $1}'); do
  151. pids="${pids}$pidx\n"
  152. done
  153. done
  154. for pid in `echo -e "$pids"`; do
  155. pidlogs=`grep $pid $log |grep "$loginsukses" |awk -F" " '{print $3}'`
  156. i=0
  157. for pidend in $pidlogs; do
  158. let i++
  159. done
  160. if [[ $pidend ]]; then
  161. login=$(grep $pid $log |grep "$pidend" |grep "$loginsukses")
  162. PID=$pid
  163. user=`echo $login |awk -F" " '{print $10}' | sed -r "s/'//g"`
  164. waktu=$(echo $login |awk -F" " '{print $2"-"$1,$3}')
  165. [[ -z $user ]] && continue
  166. echo "$user|$PID|$waktu"
  167. fi
  168. done
  169. }
  170. block_userfun () {
  171. local USRloked="/etc/VPS-MX/VPS-MX-userlock"
  172. local LIMITERLOG="${USRdatabase}/Limiter.log"
  173. local LIMITERLOG2="${USRdatabase}/Limiter2.log"
  174. if [[ $2 = "-loked" ]]; then
  175. [[ $(cat ${USRloked}|grep -w "$1") ]] && return 1
  176. echo " $1 (BLOCK-MULTILOGIN) $(date +%r--%d/%m/%y)"
  177. limseg="$(less /etc/VPS-MX/controlador/tiemdes.log)"
  178. KEY="2012880601:AAEJ3Kk18PGDzW57LpTMnVMn_pQYQKW3V9w"
  179. URL="https://api.telegram.org/bot$KEY/sendMessage"
  180. MSG="⚠️ AVISO DE VPS: $NOM1 ⚠️
  181. 🔹 CUENTA: $1
  182. ❗️📵 BLOCK FIJO/TEMPORAL 📵❗️
  183. 🔓( AUTOUNLOCK EN $limseg SEGUNDOS) 🔓"
  184. curl -s --max-time 10 -d "chat_id=$IDB1&disable_web_page_preview=1&text=$MSG" $URL &>/dev/null
  185. pkill -u $1 &>/dev/null
  186. fi
  187. if [[ $(cat ${USRloked}|grep -w "$1") ]]; then
  188. usermod -U "$1" &>/dev/null
  189. [[ -e ${USRloked} ]] && {
  190. newbase=$(cat ${USRloked}|grep -w -v "$1")
  191. [[ -e ${USRloked} ]] && rm ${USRloked}
  192. for value in `echo ${newbase}`; do
  193. echo $value >> ${USRloked}
  194. done
  195. }
  196. [[ -e ${LIMITERLOG} ]] && [[ $(cat ${LIMITERLOG}|grep -w "$1") ]] && {
  197. newbase=$(cat ${LIMITERLOG}|grep -w -v "$1")
  198. [[ -e ${LIMITERLOG} ]] && rm ${LIMITERLOG}
  199. for value in `echo ${newbase}`; do
  200. echo $value >> ${LIMITERLOG}
  201. echo $value >> ${LIMITERLOG}
  202. done
  203. }
  204. return 1
  205. else
  206. usermod -L "$1" &>/dev/null
  207. pkill -u $1 &>/dev/null
  208. droplim=`droppids|grep -w "$1"|cut -d'|' -f2`
  209. kill -9 $droplim &>/dev/null
  210. echo $1 >> ${USRloked}
  211. return 0
  212. fi
  213. }
  214. block_user () {
  215. clear
  216. clear
  217. msg -bar
  218. local USRloked="/etc/VPS-MX/VPS-MX-userlock"
  219. [[ ! -e ${USRloked} ]] && touch ${USRloked}
  220. usuarios_ativos=($(mostrar_usuarios))
  221. if [[ -z ${usuarios_ativos[@]} ]]; then
  222. msg -tit
  223. msg -verm "$(fun_trans " BLOCK/UNBLOCK | Ningun Usuario Registrado")"
  224. msg -bar
  225. return 1
  226. else
  227. msg -tit
  228. msg -ama "$(fun_trans " BLOCK/UNBLOCK | UsuariosActivos del Servidor")"
  229. msg -bar
  230. Numb=0
  231. for us in $(echo ${usuarios_ativos[@]}); do
  232. if [[ $(cat ${USRloked}|grep -w "${us}") ]]; then
  233. msg -ne "[$Numb] ->" && echo -e "\033[1;33m ${us} \033[1;31m[Loked]"
  234. else
  235. msg -ne "[$Numb] ->" && echo -e "\033[1;33m ${us} \033[1;32m[Unlocked]"
  236. fi
  237. let Numb++
  238. done
  239. msg -bar
  240. fi
  241. msg -ama "$(fun_trans "Escriba o Seleccione Un Usuario")"
  242. msg -bar
  243. unset selection
  244. while [[ ${selection} = "" ]]; do
  245. echo -ne "\033[1;37mSeleccione: " && read selection
  246. tput cuu1 && tput dl1
  247. done
  248. if [[ ! $(echo "${selection}" | egrep '[^0-9]') ]]; then
  249. usuario_del="${usuarios_ativos[$selection]}"
  250. else
  251. usuario_del="$selection"
  252. fi
  253. [[ -z $usuario_del ]] && {
  254. msg -verm "$(fun_trans "Error, Usuario Invalido")"
  255. msg -bar
  256. return 1
  257. }
  258. [[ ! $(echo ${usuarios_ativos[@]}|grep -w "$usuario_del") ]] && {
  259. msg -verm "$(fun_trans "Error, Usuario Invalido")"
  260. msg -bar
  261. return 1
  262. }
  263. msg -ne "$(fun_trans "Usuario Seleccionado"): " && echo -ne "$usuario_del "
  264. block_userfun "$usuario_del" && msg -verm "[$(fun_trans "Bloqueado")]" || msg -verd "[$(fun_trans "Desbloqueado")]"
  265. msg -bar
  266. msg -ne " Enter Para Continuar" && read enter
  267. ${SCPusr}/usercodes
  268. }
  269. msg -bar3
  270. add_user () {
  271. Fecha=`date +%d-%m-%y-%R`
  272. [[ $(cat /etc/passwd |grep $1: |grep -vi [a-z]$1 |grep -v [0-9]$1 > /dev/null) ]] && return 1
  273. valid=$(date '+%C%y-%m-%d' -d " +$3 days") && datexp=$(date "+%F" -d " + $3 days")
  274. if useradd -M -s /bin/false -e ${valid} -K PASS_MAX_DAYS=$3 -p $(openssl passwd -1 $2) -c sshm,$2 $1 ; then
  275. echo "$1|$2|${datexp}|$4" >> ${USRdatabase}
  276. msg -verd "$(fun_trans "Usuario Creado con Exito")"
  277. else
  278. msg -verm2 "$(fun_trans "Error, Usuario no creado")"
  279. msg -bar
  280. fi
  281. }
  282. add_hwid () {
  283. Fecha=`date +%d-%m-%y-%R`
  284. [[ $(cat /etc/passwd |grep $1: |grep -vi [a-z]$1 |grep -v [0-9]$1 > /dev/null) ]] && return 1
  285. valid=$(date '+%C%y-%m-%d' -d " +$3 days") && datexp=$(date "+%F" -d " + $3 days")
  286. if useradd -M -s /bin/false -e ${valid} -K PASS_MAX_DAYS=$3 -p $(openssl passwd -1 $2) -c hwid,$1 $2 ; then
  287. echo "$1|$2|${datexp}" >> ${USRdatabaseh}
  288. msg -verd "$(fun_trans "Usuario Creado con Exito")"
  289. else
  290. msg -verm2 "$(fun_trans "Error, Usuario no creado")"
  291. msg -bar
  292. fi
  293. }
  294. add_token () {
  295. Fecha=`date +%d-%m-%y-%R`
  296. [[ $(cat /etc/passwd |grep $1: |grep -vi [a-z]$1 |grep -v [0-9]$1 > /dev/null) ]] && return 1
  297. valid=$(date '+%C%y-%m-%d' -d " +$3 days") && datexp=$(date "+%F" -d " + $3 days")
  298. if useradd -M -s /bin/false -e ${valid} -K PASS_MAX_DAYS=$3 -p $(openssl passwd -1 $2) -c token,$1 $2 ; then
  299. echo "$1|$2|${datexp}" >> ${tokens}
  300. msg -verd "$(fun_trans "Usuario Creado con Exito")"
  301. else
  302. msg -verm2 "$(fun_trans "Error, Usuario no creado")"
  303. msg -bar
  304. fi
  305. }
  306. mostrar_usuario(){
  307. for u in `cat /etc/passwd|grep 'home'|grep 'false'|grep -v 'syslog'|grep -w 'hwid'|awk -F ':' '{print $1}'`; do
  308. echo "$u"
  309. done
  310. }
  311. mostrar_token(){
  312. for u in `cat /etc/passwd|grep 'home'|grep 'false'|grep -v 'syslog'|grep -w 'token'|awk -F ':' '{print $1}'`; do
  313. echo "$u"
  314. done
  315. }
  316. mostrar_all(){
  317. for u in `cat /etc/passwd|grep 'home'|grep 'false'|grep -v 'syslog'|grep -v 'sshm'|grep -w 'hwid'|grep -v 'token'|awk -F ':' '{print $1}'`; do
  318. echo "$u"
  319. done
  320. }
  321. mostrar_user(){
  322. for u in `cat /etc/passwd|grep 'home'|grep 'false'|grep -v 'syslog'|grep -w 'sshm'|awk -F ':' '{print $1}'`; do
  323. echo "$u"
  324. done
  325. }
  326. new_hwid () {
  327. clear
  328. clear
  329. msg -bar
  330. usuarios_ativo=($(cat ${USRdatabaseh}|cut -d'|' -f1))
  331. usuarios_ativos=('' $(mostrar_usuario))
  332. if [[ -z ${usuarios_ativos[@]} ]]; then
  333. msg -tit
  334. msg -ama " AGREGAR USUARIO HWID| Ningun Usuario Registrado"
  335. msg -bar
  336. else
  337. msg -tit
  338. msg -ama " AGREGAR USUARIO HWID| Usuarios Activos en Servidor"
  339. msg -bar
  340. for us in $(echo ${usuarios_ativos[@]}); do
  341. msg -ne " >> Usuario: " && echo "${us}"
  342. done
  343. msg -bar
  344. fi
  345. while true; do
  346. msg -ne "$(fun_trans "Nombre Del Usuario")"
  347. read -p ": " usuario
  348. usuario="$(echo $usuario|sed -e 's/[^a-z0-9 -]//ig')"
  349. if [[ -z $usuario ]]; then
  350. err_fun 1 && continue
  351. elif [[ "${#usuario}" -lt "3" ]]; then
  352. err_fun 2 && continue
  353. elif [[ "${#usuario}" -gt "12" ]]; then
  354. err_fun 3 && continue
  355. elif [[ "$(echo ${usuarios_ativos[@]}|grep -w "$usuario")" ]]; then
  356. err_fun 14 && continue
  357. fi
  358. break
  359. done
  360. while true; do
  361. msg -ne "$(fun_trans "Ingrese El HWID")"
  362. read -p ": " hwid
  363. if [[ -z $hwid ]]; then
  364. err_fun 4 && continue
  365. elif [[ "${#hwid}" -lt "29" ]]; then
  366. err_fun 5 && continue
  367. elif [[ "${#hwid}" -gt "36" ]]; then
  368. err_fun 6 && continue
  369. fi
  370. break
  371. done
  372. while true; do
  373. msg -ne "$(fun_trans "Tiempo de Duracion")"
  374. read -p ": " diasuser
  375. if [[ -z "$diasuser" ]]; then
  376. err_fun 7 && continue
  377. elif [[ "$diasuser" != +([0-9]) ]]; then
  378. err_fun 8 && continue
  379. elif [[ "$diasuser" -gt "360" ]]; then
  380. err_fun 9 && continue
  381. fi
  382. break
  383. done
  384. clear
  385. echo ""
  386. msg -bar
  387. add_hwid "${usuario}" "${hwid}" "${diasuser}"
  388. msg -ne "$(fun_trans " >> IP"): " && echo -e "$(meu_ip)"
  389. msg -ne "$(fun_trans " >> Usuario"): " && echo -e "$usuario"
  390. msg -ne "$(fun_trans " >> HWID"): " && echo -e "$hwid"
  391. msg -ne "$(fun_trans " >> Dias de Duracion"): " && echo -e "$diasuser"
  392. msg -ne "$(fun_trans " >> Fecha de Expiracion"): " && echo -e "$(date "+%F" -d " + $diasuser days")"
  393. msg -bar
  394. msg -ne " Enter Para Continuar" && read enter
  395. ${SCPusr}/usercodes
  396. }
  397. new_token () {
  398. clear
  399. clear
  400. msg -bar
  401. usuarios_ativo=($(cat ${tokens}|cut -d'|' -f1))
  402. usuarios_ativos=('' $(mostrar_token))
  403. if [[ -z ${usuarios_ativos[@]} ]]; then
  404. msg -tit
  405. msg -ama " AGREGAR USUARIO TOKEN| Ningun Usuario Registrado"
  406. msg -bar
  407. else
  408. msg -tit
  409. msg -ama " AGREGAR USUARIO TOKEN| Usuarios Activos en Servidor"
  410. msg -bar
  411. for us in $(echo ${usuarios_ativos[@]}); do
  412. msg -ne " >> Usuario: " && echo "${us}"
  413. done
  414. msg -bar
  415. fi
  416. while true; do
  417. msg -ne "$(fun_trans "Nombre Del Usuario")"
  418. read -p ": " usuario
  419. usuario="$(echo $usuario|sed -e 's/[^a-z0-9 -]//ig')"
  420. if [[ -z $usuario ]]; then
  421. err_fun 1 && continue
  422. elif [[ "${#usuario}" -lt "3" ]]; then
  423. err_fun 2 && continue
  424. elif [[ "${#usuario}" -gt "12" ]]; then
  425. err_fun 3 && continue
  426. elif [[ "$(echo ${usuarios_ativos[@]}|grep -w "$usuario")" ]]; then
  427. err_fun 14 && continue
  428. fi
  429. break
  430. done
  431. while true; do
  432. msg -ne "$(fun_trans "Ingrese su TOKEN")"
  433. read -p ": " toke
  434. if [[ -z $toke ]]; then
  435. err_fun 4 && continue
  436. elif [[ "${#toke}" -lt "6" ]]; then
  437. err_fun 5 && continue
  438. elif [[ "${#toke}" -gt "36" ]]; then
  439. err_fun 6 && continue
  440. fi
  441. break
  442. done
  443. while true; do
  444. msg -ne "$(fun_trans "Tiempo de Duracion")"
  445. read -p ": " diasuser
  446. if [[ -z "$diasuser" ]]; then
  447. err_fun 7 && continue
  448. elif [[ "$diasuser" != +([0-9]) ]]; then
  449. err_fun 8 && continue
  450. elif [[ "$diasuser" -gt "360" ]]; then
  451. err_fun 9 && continue
  452. fi
  453. break
  454. done
  455. clear
  456. echo ""
  457. msg -bar
  458. add_token "${usuario}" "${toke}" "${diasuser}"
  459. msg -ne "$(fun_trans " >> IP"): " && echo -e "$(meu_ip)"
  460. msg -ne "$(fun_trans " >> Usuario"): " && echo -e "$usuario"
  461. msg -ne "$(fun_trans " >> TOKEN"): " && echo -e "$toke"
  462. msg -ne "$(fun_trans " >> Dias de Duracion"): " && echo -e "$diasuser"
  463. msg -ne "$(fun_trans " >> Fecha de Expiracion"): " && echo -e "$(date "+%F" -d " + $diasuser days")"
  464. msg -bar
  465. msg -ne " Enter Para Continuar" && read enter
  466. ${SCPusr}/usercodes
  467. }
  468. renew_user_fun () {
  469. datexp=$(date "+%F" -d " + $2 days") && valid=$(date '+%C%y-%m-%d' -d " + $2 days")
  470. chage -E $valid $1 2> /dev/null || return 1
  471. [[ -e ${USRdatabase} ]] && {
  472. newbase=$(cat ${USRdatabase}|grep -w -v "$1")
  473. useredit=$(cat ${USRdatabase}|grep -w "$1")
  474. pass=$(echo $useredit|cut -d'|' -f2)
  475. limit=$(echo $useredit|cut -d'|' -f4)
  476. echo "$1|$pass|${datexp}|$limit" > ${USRdatabase}
  477. for value in `echo ${newbase}`; do
  478. echo $value >> ${USRdatabase}
  479. done
  480. }
  481. }
  482. edit_user_fun () {
  483. (echo "$2" ; echo "$2" ) |passwd $1 > /dev/null 2>&1 || return 1
  484. datexp=$(date "+%F" -d " + $3 days") && valid=$(date '+%C%y-%m-%d' -d " + $3 days")
  485. chage -E $valid $1 2> /dev/null || return 1
  486. [[ -e ${USRdatabase} ]] && {
  487. newbase=$(cat ${USRdatabase}|grep -w -v "$1")
  488. echo "$1|$2|${datexp}|$4" > ${USRdatabase}
  489. for value in `echo ${newbase}`; do
  490. echo $value >> ${USRdatabase}
  491. done
  492. } || echo "$1|$2|${datexp}|$4" > ${USRdatabase}
  493. }
  494. rm_user () {
  495. userdel --force "$1" &>/dev/null || return 1
  496. sed -i "/$1/d" ${USRdatabase}
  497. }
  498. rm_hwid () {
  499. userdel --force "$1" &>/dev/null || return 1
  500. sed -i "/$1/d" ${USRdatabaseh}
  501. }
  502. rm_token () {
  503. userdel --force "$1" &>/dev/null || return 1
  504. sed -i "/$1/d" ${tokens}
  505. }
  506. mostrar_usuarios () {
  507. for u in `awk -F : '$3 > 900 { print $1 }' /etc/passwd | grep -v "nobody" |grep -vi polkitd |grep -vi system-`; do
  508. echo "$u"
  509. done
  510. }
  511. dropbear_pids () {
  512. local pids
  513. local portasVAR=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN")
  514. local NOREPEAT
  515. local reQ
  516. local Port
  517. while read port; do
  518. reQ=$(echo ${port}|awk '{print $1}')
  519. Port=$(echo {$port} | awk '{print $9}' | awk -F ":" '{print $2}')
  520. [[ $(echo -e $NOREPEAT|grep -w "$Port") ]] && continue
  521. NOREPEAT+="$Port\n"
  522. case ${reQ} in
  523. dropbear)
  524. [[ -z $DPB ]] && local DPB=""
  525. DPB+="$Port ";;
  526. esac
  527. done <<< "${portasVAR}"
  528. [[ ! -z $DPB ]] && echo -e $DPB
  529. local port_dropbear="$DPB"
  530. cat /var/log/auth.log|tail -1000 > /var/log/authday.log
  531. local log=/var/log/authday.log
  532. local loginsukses='Password auth succeeded'
  533. [[ -z $port_dropbear ]] && return 1
  534. for port in `echo $port_dropbear`; do
  535. for pidx in $(ps ax |grep dropbear |grep "$port" |awk -F" " '{print $1}'); do
  536. pids="${pids}$pidx\n"
  537. done
  538. done
  539. for pid in `echo -e "$pids"`; do
  540. pidlogs=`grep $pid $log |grep "$loginsukses" |awk -F" " '{print $3}'`
  541. i=0
  542. for pidend in $pidlogs; do
  543. let i++
  544. done
  545. if [[ $pidend ]]; then
  546. login=$(grep $pid $log |grep "$pidend" |grep "$loginsukses")
  547. PID=$pid
  548. user=`echo $login |awk -F" " '{print $10}' | sed -r "s/'//g"`
  549. waktu=$(echo $login |awk -F" " '{print $2"-"$1,$3}')
  550. [[ -z $user ]] && continue
  551. echo "$user|$PID|$waktu"
  552. fi
  553. done
  554. }
  555. openvpn_pids () {
  556. byte () {
  557. while read B dummy; do
  558. [[ "$B" -lt 1024 ]] && echo "${B} bytes" && break
  559. KB=$(((B+512)/1024))
  560. [[ "$KB" -lt 1024 ]] && echo "${KB} Kb" && break
  561. MB=$(((KB+512)/1024))
  562. [[ "$MB" -lt 1024 ]] && echo "${MB} Mb" && break
  563. GB=$(((MB+512)/1024))
  564. [[ "$GB" -lt 1024 ]] && echo "${GB} Gb" && break
  565. echo $(((GB+512)/1024)) terabytes
  566. done
  567. }
  568. for user in $(mostrar_usuarios); do
  569. user="$(echo $user|sed -e 's/[^a-z0-9 -]//ig')"
  570. [[ ! $(sed -n "/^${user},/p" /etc/openvpn/openvpn-status.log) ]] && continue
  571. i=0
  572. unset RECIVED; unset SEND; unset HOUR
  573. while read line; do
  574. IDLOCAL=$(echo ${line}|cut -d',' -f2)
  575. RECIVED+="$(echo ${line}|cut -d',' -f3)+"
  576. SEND+="$(echo ${line}|cut -d',' -f4)+"
  577. DATESEC=$(date +%s --date="$(echo ${line}|cut -d',' -f5|cut -d' ' -f1,2,3,4)")
  578. TIMEON="$(($(date +%s)-${DATESEC}))"
  579. MIN=$(($TIMEON/60)) && SEC=$(($TIMEON-$MIN*60)) && HOR=$(($MIN/60)) && MIN=$(($MIN-$HOR*60))
  580. HOUR+="${HOR}h:${MIN}m:${SEC}s\n"
  581. let i++
  582. done <<< "$(sed -n "/^${user},/p" /etc/openvpn/openvpn-status.log)"
  583. RECIVED=$(echo $(echo ${RECIVED}0|bc)|byte)
  584. SEND=$(echo $(echo ${SEND}0|bc)|byte)
  585. HOUR=$(echo -e $HOUR|sort -n|tail -1)
  586. echo -e "$user|$i|$RECIVED|$SEND|$HOUR"
  587. done
  588. }
  589. err_fun () {
  590. case $1 in
  591. 1)msg -verm "$(fun_trans "Usuario Nulo")"; sleep 2s; tput cuu1; tput dl1; tput cuu1; tput dl1;;
  592. 2)msg -verm "$(fun_trans "Usuario con nombre muy corto")"; sleep 2s; tput cuu1; tput dl1; tput cuu1; tput dl1;;
  593. 3)msg -verm "$(fun_trans "Usuario con nombre muy grande")"; sleep 2s; tput cuu1; tput dl1; tput cuu1; tput dl1;;
  594. 4)msg -verm "$(fun_trans "Contraseña Nula")"; sleep 2s; tput cuu1; tput dl1; tput cuu1; tput dl1;;
  595. 5)msg -verm "$(fun_trans "Contraseña muy corta")"; sleep 2s; tput cuu1; tput dl1; tput cuu1; tput dl1;;
  596. 6)msg -verm "$(fun_trans "Contraseña muy grande")"; sleep 2s; tput cuu1; tput dl1; tput cuu1; tput dl1;;
  597. 7)msg -verm "$(fun_trans "Duracion Nula")"; sleep 2s; tput cuu1; tput dl1; tput cuu1; tput dl1;;
  598. 8)msg -verm "$(fun_trans "Duracion invalida utilize numeros")"; sleep 2s; tput cuu1; tput dl1; tput cuu1; tput dl1;;
  599. 9)msg -verm "$(fun_trans "Duracion maxima y de un año")"; sleep 2s; tput cuu1; tput dl1; tput cuu1; tput dl1;;
  600. 11)msg -verm "$(fun_trans "Limite Nulo")"; sleep 2s; tput cuu1; tput dl1; tput cuu1; tput dl1;;
  601. 12)msg -verm "$(fun_trans "Limite invalido utilize numeros")"; sleep 2s; tput cuu1; tput dl1; tput cuu1; tput dl1;;
  602. 13)msg -verm "$(fun_trans "Limite maximo de 999")"; sleep 2s; tput cuu1; tput dl1; tput cuu1; tput dl1;;
  603. 14)msg -verm "$(fun_trans "Usuario Ya Existe")"; sleep 2s; tput cuu1; tput dl1; tput cuu1; tput dl1;;
  604. 15)msg -verm "$(fun_trans "la contraseña que ingreso ya existe,deve de ingresarlo diferente o igual que el nombre del usuario")"; sleep 2s; tput cuu1; tput dl1; tput cuu1; tput dl1;;
  605. esac
  606. }
  607. new_user () {
  608. clear
  609. clear
  610. msg -bar
  611. usuarios_ativos=('' $(mostrar_user))
  612. usuarios_pass=$(cat ${USRdatabase}|cut -d'|' -f2)
  613. if [[ -z ${usuarios_ativos[@]} ]]; then
  614. msg -tit
  615. msg -ama " AGREGAR USUARIO | Ningun Usuario Registrado"
  616. msg -bar
  617. else
  618. msg -tit
  619. msg -ama " AGREGAR USUARIO | Usuarios Activos en Servidor"
  620. msg -bar
  621. for us in $(echo ${usuarios_ativos[@]}); do
  622. msg -ne " >> Usuario: " && echo "${us}"
  623. done
  624. msg -bar
  625. fi
  626. while true; do
  627. msg -ne "$(fun_trans "Nombre Del Nuevo Usuario")"
  628. read -p ": " nomeuser
  629. nomeuser="$(echo $nomeuser|sed -e 's/[^a-z0-9 -]//ig')"
  630. if [[ -z $nomeuser ]]; then
  631. err_fun 1 && continue
  632. elif [[ "${#nomeuser}" -lt "4" ]]; then
  633. err_fun 2 && continue
  634. elif [[ "${#nomeuser}" -gt "24" ]]; then
  635. err_fun 3 && continue
  636. elif [[ "$(echo ${usuarios_ativos[@]}|grep -w "$nomeuser")" ]]; then
  637. err_fun 14 && continue
  638. fi
  639. break
  640. done
  641. while true; do
  642. msg -ne "$(fun_trans "Contraseña Del Nuevo Usuario")"
  643. read -p ": " senhauser
  644. if [[ -z $senhauser ]]; then
  645. err_fun 4 && continue
  646. elif [[ "${#senhauser}" -lt "6" ]]; then
  647. err_fun 5 && continue
  648. elif [[ "${#senhauser}" -gt "20" ]]; then
  649. err_fun 6 && continue
  650. elif [[ "$(echo ${usuarios_pass[@]}|grep -w "$senhauser")" ]]; then
  651. err_fun 15 && continue
  652. fi
  653. break
  654. done
  655. while true; do
  656. msg -ne "$(fun_trans "Tiempo de Duracion del Nuevo Usuario")"
  657. read -p ": " diasuser
  658. if [[ -z "$diasuser" ]]; then
  659. err_fun 7 && continue
  660. elif [[ "$diasuser" != +([0-9]) ]]; then
  661. err_fun 8 && continue
  662. elif [[ "$diasuser" -gt "360" ]]; then
  663. err_fun 9 && continue
  664. fi
  665. break
  666. done
  667. while true; do
  668. msg -ne "$(fun_trans "Limite de Conexiones del Nuevo Usuario")"
  669. read -p ": " limiteuser
  670. if [[ -z "$limiteuser" ]]; then
  671. err_fun 11 && continue
  672. elif [[ "$limiteuser" != +([0-9]) ]]; then
  673. err_fun 12 && continue
  674. elif [[ "$limiteuser" -gt "999" ]]; then
  675. err_fun 13 && continue
  676. fi
  677. break
  678. done
  679. echo ""
  680. clear
  681. add_user "${nomeuser}" "${senhauser}" "${diasuser}" "${limiteuser}" #&& msg -ama "$(fun_trans " Usuario Creado con Exito")" || msg -verm "$(fun_trans " Error, Usuario no creado")"
  682. msg -bar
  683. msg -ne "$(fun_trans " >> IP del Servidor"): " && echo -e "$(meu_ip)"
  684. msg -ne "$(fun_trans " >> Usuario"): " && echo -e "$nomeuser"
  685. msg -ne "$(fun_trans " >> Contraseña"): " && echo -e "$senhauser"
  686. msg -ne "$(fun_trans " >> Dias de Duracion"): " && echo -e "$diasuser"
  687. msg -ne "$(fun_trans " >> Fecha de Expiracion"): " && echo -e "$(date "+%F" -d " + $diasuser days")"
  688. msg -ne "$(fun_trans " >> Limite de Conexion"): " && echo -e "$limiteuser"
  689. [[ $(dpkg --get-selections|grep -w "openvpn"|head -1) ]] && [[ -e /etc/openvpn/openvpn-status.log ]] && newclient "$nomeuser" "$senhauser"
  690. msg -bar
  691. msg -ne " Enter Para Continuar" && read enter
  692. ${SCPusr}/usercodes
  693. }
  694. menu_crearuser(){
  695. clear
  696. msg -bar
  697. msg -tit
  698. msg -ama " \e[1;33m[1] \e[37mCREAR CUENTA NORMAL \e[0m \n \e[1;33m[2] \e[37mCREAR CUENTA HWID \e[0m\n \e[1;33m[3] \e[37mCREAR CUENTA TOKEN \e[0m\n \e[1;31m[0] \e[1;37m<- VOLVER"
  699. msg -bar
  700. read -p " $(echo -e "\e[1;37mSeleccione Una Opcion [1/3]:\e[1;33m") " cuen
  701. case $cuen in
  702. 1)new_user;;
  703. 2)new_hwid;;
  704. 3)new_token;;
  705. 0) ;;
  706. esac
  707. }
  708. remove_user () {
  709. clear
  710. clear
  711. msg -bar
  712. usuarios_ativos=('' $(mostrar_user))
  713. msg -ama "$(fun_trans "REMOVER USUARIOS")"
  714. msg -bar
  715. data_user
  716. msg -ama "$(fun_trans "Escriba o Seleccione un Usuario")"
  717. msg -bar
  718. unset selection
  719. while [[ -z ${selection} ]]; do
  720. msg -azu "$(fun_trans "Seleccione Una Opcion"): " && read selection
  721. tput cuu1 && tput dl1
  722. done
  723. [[ ${selection} = "0" ]] && return
  724. if [[ ! $(echo "${selection}" | egrep '[^0-9]') ]]; then
  725. usuario_del="${usuarios_ativos[$selection]}"
  726. else
  727. usuario_del="$selection"
  728. fi
  729. [[ -z $usuario_del ]] && {
  730. msg -verm "$(fun_trans "Error, Usuario Invalido")"
  731. msg -bar
  732. return 1
  733. }
  734. [[ ! $(echo ${usuarios_ativos[@]}|grep -w "$usuario_del") ]] && {
  735. msg -verm "$(fun_trans "Error, Usuario Invalido")"
  736. msg -bar
  737. return 1
  738. }
  739. msg -ama "$(fun_trans "Usuario Seleccionado"): $usuario_del"
  740. pkill -u $usuario_del
  741. droplim=`droppids|grep -w "$usuario_del"|awk '{print $2}'`
  742. kill -9 $droplim &>/dev/null
  743. rm_user "$usuario_del"
  744. rm -rf /etc/VPS-MX/VPS-MX-userlock
  745. rm -rf /etc/VPS-MX/controlador/Limiter.log
  746. unlockall2
  747. msg -bar
  748. msg -ne " Enter Para Continuar" && read enter
  749. ${SCPusr}/usercodes
  750. }
  751. remove_allus () {
  752. clear
  753. clear
  754. msg -bar
  755. usuarios_ativos=($(mostrar_usuarios))
  756. if [[ -z ${usuarios_ativos[@]} ]]; then
  757. msg -tit
  758. msg -verm "$(fun_trans " BORAR USUARIO | Ningun usuario registrado")"
  759. msg -bar
  760. return 1
  761. else
  762. msg -tit
  763. msg -ama "$(fun_trans " BORAR USUARIO | Usuarios Activos del Servidor")"
  764. msg -bar
  765. i=0
  766. for us in $(echo ${usuarios_ativos[@]}); do
  767. msg -ne "[$i] ->" && echo -e "\033[1;33m ${us}"
  768. let i++
  769. done
  770. msg -bar
  771. fi
  772. msg -ama "$(fun_trans "Escriba o Seleccione un Usuario")"
  773. msg -bar
  774. msg -ama "\033[1;31mSe recomienda desbloquear todas las cuentas \nbloqueadas antes de borrar algun usuario."
  775. msg -bar
  776. unset selection
  777. while [[ -z ${selection} ]]; do
  778. echo -ne "\033[1;37m$(fun_trans "Seleccione Una Opcion"): " && read selection
  779. tput cuu1 && tput dl1
  780. done
  781. if [[ ! $(echo "${selection}" | egrep '[^0-9]') ]]; then
  782. usuario_del="${usuarios_ativos[$selection]}"
  783. else
  784. usuario_del="$selection"
  785. fi
  786. [[ -z $usuario_del ]] && {
  787. msg -verm "$(fun_trans "Error, Usuario Invalido")"
  788. msg -bar
  789. return 1
  790. }
  791. [[ ! $(echo ${usuarios_ativos[@]}|grep -w "$usuario_del") ]] && {
  792. msg -verm "$(fun_trans "Error, Usuario Invalido")"
  793. msg -bar
  794. return 1
  795. }
  796. msg -ne "$(fun_trans "Usuario Seleccionado"): " && echo -ne "$usuario_del"
  797. pkill -u $usuario_del
  798. droplim=`dropbear_pids|grep -w "$usuario_del"|cut -d'|' -f2`
  799. kill -9 $droplim &>/dev/null
  800. rm_user "$usuario_del" && msg -verd " [$(fun_trans "Removido")]" || msg -verm " [$(fun_trans "No Removido")]"
  801. rm -rf /etc/VPS-MX/VPS-MX-userlock
  802. rm -rf /etc/VPS-MX/controlador/Limiter.log
  803. unlockall2
  804. msg -bar
  805. msg -ne " Enter Para Continuar" && read enter
  806. ${SCPusr}/usercodes
  807. }
  808. remove_hwid () {
  809. clear
  810. clear
  811. red=$(tput setaf 1)
  812. gren=$(tput setaf 2)
  813. yellow=$(tput setaf 3)
  814. msg -bar
  815. usuarios_ativos=('' $(mostrar_usuario))
  816. msg -ama "$(fun_trans "REMOVER USUARIOS")"
  817. msg -bar
  818. data_hwid
  819. msg -ama "$(fun_trans "Escriba o Seleccione un Usuario")"
  820. msg -bar
  821. unset selection
  822. while [[ -z ${selection} ]]; do
  823. msg -azu "$(fun_trans "Seleccione Una Opcion"): " && read selection
  824. tput cuu1 && tput dl1
  825. done
  826. [[ ${selection} = "0" ]] && return
  827. if [[ ! $(echo "${selection}" | egrep '[^0-9]') ]]; then
  828. usuario_del="${usuarios_ativos[$selection]}"
  829. else
  830. usuario_del="$selection"
  831. fi
  832. [[ -z $usuario_del ]] && {
  833. msg -verm "$(fun_trans "Error, Usuario Invalido")"
  834. msg -bar
  835. return 1
  836. }
  837. [[ ! $(echo ${usuarios_ativos[@]}|grep -w "$usuario_del") ]] && {
  838. msg -verm "$(fun_trans "Error, Usuario Invalido")"
  839. msg -bar
  840. return 1
  841. }
  842. msg -ama "$(fun_trans "Usuario Seleccionado"): $usuario_del"
  843. pkill -u $usuario_del
  844. droplim=`droppids|grep -w "$usuario_del"|awk '{print $2}'`
  845. kill -9 $droplim &>/dev/null
  846. rm_hwid "$usuario_del"
  847. msg -bar
  848. msg -ne " Enter Para Continuar" && read enter
  849. ${SCPusr}/usercodes
  850. }
  851. remove_token () {
  852. clear
  853. clear
  854. red=$(tput setaf 1)
  855. gren=$(tput setaf 2)
  856. yellow=$(tput setaf 3)
  857. msg -bar
  858. usuarios_ativos=('' $(mostrar_token))
  859. msg -ama "$(fun_trans "REMOVER USUARIOS")"
  860. msg -bar
  861. data_token
  862. msg -ama "$(fun_trans "Escriba o Seleccione un Usuario")"
  863. msg -bar
  864. unset selection
  865. while [[ -z ${selection} ]]; do
  866. msg -azu "$(fun_trans "Seleccione Una Opcion"): " && read selection
  867. tput cuu1 && tput dl1
  868. done
  869. [[ ${selection} = "0" ]] && return
  870. if [[ ! $(echo "${selection}" | egrep '[^0-9]') ]]; then
  871. usuario_del="${usuarios_ativos[$selection]}"
  872. else
  873. usuario_del="$selection"
  874. fi
  875. [[ -z $usuario_del ]] && {
  876. msg -verm "$(fun_trans "Error, Usuario Invalido")"
  877. msg -bar
  878. return 1
  879. }
  880. [[ ! $(echo ${usuarios_ativos[@]}|grep -w "$usuario_del") ]] && {
  881. msg -verm "$(fun_trans "Error, Usuario Invalido")"
  882. msg -bar
  883. return 1
  884. }
  885. msg -ama "$(fun_trans "Usuario Seleccionado"): $usuario_del"
  886. pkill -u $usuario_del
  887. droplim=`droppids|grep -w "$usuario_del"|awk '{print $2}'`
  888. kill -9 $droplim &>/dev/null
  889. rm_token "$usuario_del"
  890. msg -bar
  891. msg -ne " Enter Para Continuar" && read enter
  892. ${SCPusr}/usercodes
  893. }
  894. menudel(){
  895. clear
  896. msg -bar
  897. msg -tit
  898. msg -ama " \e[1;33m[1] \e[1;31mREMOVER CUENTAS SSH \n \e[1;33m[2] \e[1;31mREMOVER CUENTAS HWID\n \e[1;33m[3] \e[1;31mREMOVER CUENTAS TOKEN\n \e[1;33m[4] \e[1;37mREMOVER CUENTAS SSH,HWID,TOKEN\n \e[1;31m[0] \e[1;37m<- VOLVER"
  899. msg -bar
  900. read -p " $(echo -e "\e[1;37mSeleccione Una Opcion [1/3]:\e[1;33m") " cuen
  901. case $cuen in
  902. 1)remove_user;;
  903. 2)remove_hwid;;
  904. 3)remove_token;;
  905. 4)remove_allus;;
  906. 0) ;;
  907. esac
  908. }
  909. renew_user () {
  910. clear
  911. clear
  912. msg -bar
  913. usuarios_ativos=($(mostrar_usuarios))
  914. if [[ -z ${usuarios_ativos[@]} ]]; then
  915. msg -tit
  916. msg -verm "$(fun_trans " EDITAR USUARIO | Ningun usuario registrado")"
  917. msg -bar
  918. return 1
  919. else
  920. msg -tit
  921. msg -ama "$(fun_trans " EDITAR USUARIO | Usuarios Activos en el Servidor")"
  922. msg -bar
  923. i=0
  924. for us in $(echo ${usuarios_ativos[@]}); do
  925. msg -ne "[$i] ->" && echo -e "\033[1;33m ${us}"
  926. let i++
  927. done
  928. msg -bar
  929. fi
  930. msg -ama "$(fun_trans "Escriba o seleccione un Usuario")"
  931. msg -bar
  932. unset selection
  933. while [[ -z ${selection} ]]; do
  934. echo -ne "\033[1;37m$(fun_trans "Seleccione una Opcion"): " && read selection
  935. tput cuu1
  936. tput dl1
  937. done
  938. if [[ ! $(echo "${selection}" | egrep '[^0-9]') ]]; then
  939. useredit="${usuarios_ativos[$selection]}"
  940. else
  941. useredit="$selection"
  942. fi
  943. [[ -z $useredit ]] && {
  944. msg -verm "$(fun_trans "Error, Usuario Invalido")"
  945. msg -bar
  946. return 1
  947. }
  948. [[ ! $(echo ${usuarios_ativos[@]}|grep -w "$useredit") ]] && {
  949. msg -verm "$(fun_trans "Error, Usuario Invalido")"
  950. msg -bar
  951. return 1
  952. }
  953. while true; do
  954. msg -ne "Nuevo Tiempo de Duracion de:\033[1;33m $useredit"
  955. read -p ": " diasuser
  956. if [[ -z "$diasuser" ]]; then
  957. echo -e '\n\n\n'
  958. err_fun 7 && continue
  959. elif [[ "$diasuser" != +([0-9]) ]]; then
  960. echo -e '\n\n\n'
  961. err_fun 8 && continue
  962. elif [[ "$diasuser" -gt "360" ]]; then
  963. echo -e '\n\n\n'
  964. err_fun 9 && continue
  965. fi
  966. break
  967. done
  968. msg -bar
  969. renew_user_fun "${useredit}" "${diasuser}" && msg -ama "$(fun_trans "Usuario Modificado Con Exito")" || msg -verm "$(fun_trans "Error, Usuario no Modificado")"
  970. msg -bar
  971. msg -ne " Enter Para Continuar" && read enter
  972. ${SCPusr}/usercodes
  973. }
  974. edit_user () {
  975. clear
  976. clear
  977. msg -bar
  978. usuarios_ativos=($(mostrar_usuarios))
  979. if [[ -z ${usuarios_ativos[@]} ]]; then
  980. msg -tit
  981. msg -verm "$(fun_trans " EDITTAR USER | Ningun usuario registrado")"
  982. msg -bar
  983. return 1
  984. else
  985. msg -tit
  986. msg -ama "$(fun_trans " EDITTAR USER | Usuarios Activos del Servidor")"
  987. msg -bar
  988. i=0
  989. for us in $(echo ${usuarios_ativos[@]}); do
  990. msg -ne "[$i] ->" && echo -e "\033[1;33m ${us}"
  991. let i++
  992. done
  993. msg -bar
  994. fi
  995. msg -ama "$(fun_trans "Escriba o seleccione un Usuario")"
  996. msg -bar
  997. unset selection
  998. while [[ -z ${selection} ]]; do
  999. echo -ne "\033[1;37m$(fun_trans "Seleccione una Opcion"): " && read selection
  1000. tput cuu1; tput dl1
  1001. done
  1002. if [[ ! $(echo "${selection}" | egrep '[^0-9]') ]]; then
  1003. useredit="${usuarios_ativos[$selection]}"
  1004. else
  1005. useredit="$selection"
  1006. fi
  1007. [[ -z $useredit ]] && {
  1008. msg -verm "$(fun_trans "Error, Usuario Invalido")"
  1009. msg -bar
  1010. return 1
  1011. }
  1012. [[ ! $(echo ${usuarios_ativos[@]}|grep -w "$useredit") ]] && {
  1013. msg -verm "$(fun_trans "Error, Usuario Invalido")"
  1014. msg -bar
  1015. return 1
  1016. }
  1017. while true; do
  1018. msg -ne "$(fun_trans "Usuario Seleccionado"): " && echo -e "$useredit"
  1019. msg -ne "Nueva Contraseña de:\033[1;33m $useredit"
  1020. read -p ": " senhauser
  1021. if [[ -z "$senhauser" ]]; then
  1022. err_fun 4 && continue
  1023. elif [[ "${#senhauser}" -lt "6" ]]; then
  1024. err_fun 5 && continue
  1025. elif [[ "${#senhauser}" -gt "20" ]]; then
  1026. err_fun 6 && continue
  1027. fi
  1028. break
  1029. done
  1030. while true; do
  1031. msg -ne "Dias de Duracion de:\033[1;33m $useredit"
  1032. read -p ": " diasuser
  1033. if [[ -z "$diasuser" ]]; then
  1034. err_fun 7 && continue
  1035. elif [[ "$diasuser" != +([0-9]) ]]; then
  1036. err_fun 8 && continue
  1037. elif [[ "$diasuser" -gt "360" ]]; then
  1038. err_fun 9 && continue
  1039. fi
  1040. break
  1041. done
  1042. while true; do
  1043. msg -ne "Nuevo Limite de Conexion de:\033[1;33m $useredit"
  1044. read -p ": " limiteuser
  1045. if [[ -z "$limiteuser" ]]; then
  1046. err_fun 11 && continue
  1047. elif [[ "$limiteuser" != +([0-9]) ]]; then
  1048. err_fun 12 && continue
  1049. elif [[ "$limiteuser" -gt "999" ]]; then
  1050. err_fun 13 && continue
  1051. fi
  1052. break
  1053. done
  1054. tput cuu1 && tput dl1
  1055. tput cuu1 && tput dl1
  1056. tput cuu1 && tput dl1
  1057. tput cuu1 && tput dl1
  1058. msg -ne "$(fun_trans " >> Usuario"): " && echo -e "$useredit"
  1059. msg -ne "$(fun_trans " >> Contraseña"): " && echo -e "$senhauser"
  1060. msg -ne "$(fun_trans " >> Dias de Duracion"): " && echo -e "$diasuser"
  1061. msg -ne "$(fun_trans " >> Fecha de Expiracion"): " && echo -e "$(date "+%F" -d " + $diasuser days")"
  1062. msg -ne "$(fun_trans " >> Limite de Conexion"): " && echo -e "$limiteuser"
  1063. msg -bar
  1064. edit_user_fun "${useredit}" "${senhauser}" "${diasuser}" "${limiteuser}" && msg -ama "$(fun_trans "Usuario Modificado Con Exito")" && rm -rf ${SCPusr}/Limiter.log || msg -verm "$(fun_trans "Error, Usuario nao Modificado")"
  1065. msg -bar
  1066. msg -ne " Enter Para Continuar" && read enter
  1067. ${SCPusr}/usercodes
  1068. }
  1069. data_hwid(){
  1070. clear
  1071. msg -bar
  1072. msg -tit
  1073. msg -ama "$(fun_trans " INFORMACION DE USUARIOS HWID REGISTRADOS ")"
  1074. msg -bar
  1075. cat_users=$(cat "/etc/passwd"|grep 'home'|grep 'hwid'|grep -v 'syslog')
  1076. dat_us=$(printf '%-20s%-12s%-8s%s' 'Cliente' 'Fecha' 'Dias' 'Statu')
  1077. msg -azu " N° $dat_us"
  1078. msg -bar
  1079. i=1
  1080. for u in `echo "${cat_users}"|awk -F ':' '{print $1}'`; do
  1081. fix_hwid_token=$(echo "${cat_users}"|grep -w "$u"|awk -F ':' '{print $5}'|cut -d ',' -f1) && [[ "${fix_hwid_token}" != @(hwid) ]] && continue
  1082. fecha=$(chage -l "$u"|sed -n '4p'|awk -F ': ' '{print $2}')
  1083. mes_dia=$(echo $fecha|awk -F ',' '{print $1}'|sed 's/ //g')
  1084. ano=$(echo $fecha|awk -F ', ' '{printf $2}'|cut -c 3-)
  1085. us=$(printf '%-12s' "$u")
  1086. pass=$(cat "/etc/passwd"|grep -w "$u"|awk -F ':' '{print $5}'|cut -d ',' -f2)
  1087. [[ "${#pass}" -gt '12' ]] && pass="Desconocida"
  1088. pass="$(printf '%-19s' "$pass")"
  1089. unset stat
  1090. if [[ $(passwd --status $u|cut -d ' ' -f2) = "P" ]]; then
  1091. stat="$(msg -verd "◉ ")"
  1092. else
  1093. stat="$(msg -verm2 "📵 ")"
  1094. fi
  1095. echo -ne " $(msg -verd "$i)")$(msg -verm2 "-") $(msg -azu "${pass}")"
  1096. if [[ $(echo $fecha|awk '{print $2}') = "" ]]; then
  1097. exp="$(printf '%8s%-2s' '[X]')"
  1098. exp+="$(printf '%-6s' '[X]')"
  1099. echo " $(msg -verm2 "$fecha")$(msg -verd "$exp")$(echo -e "$stat")"
  1100. else
  1101. if [[ $(date +%s) -gt $(date '+%s' -d "${fecha}") ]]; then
  1102. exp="$(printf '%-5s' "Exp")"
  1103. echo " $(msg -verm2 "$mes_dia/$ano") $(msg -verm2 "$exp")$(echo -e "$stat")"
  1104. else
  1105. EXPTIME="$(($(($(date '+%s' -d "${fecha}") - $(date +%s))) / 86400))"
  1106. if [[ "${#EXPTIME}" = "1" ]]; then
  1107. exp="$(printf '%6s%-7s' "$EXPTIME")"
  1108. elif [[ "${#EXPTIME}" = "2" ]]; then
  1109. exp="$(printf '%7s%-6s' "$EXPTIME")"
  1110. else
  1111. exp="$(printf '%7s%-5s' "$EXPTIME")"
  1112. fi
  1113. echo " $(msg -verm2 "$mes_dia/$ano")$(msg -verd "$exp")$(echo -e "$stat")"
  1114. fi
  1115. fi
  1116. echo -e " $(msg -ama "HWID:") $(msg -azu "${us}")"
  1117. msg -bar3
  1118. let i++
  1119. done
  1120. msg -bar
  1121. }
  1122. data_token(){
  1123. clear
  1124. msg -bar
  1125. msg -tit
  1126. msg -ama "$(fun_trans " INFORMACION DE USUARIOS TOKEN REGISTRADOS ")"
  1127. msg -bar
  1128. cat_users=$(cat "/etc/passwd"|grep 'home'|grep 'token'|grep -v 'syslog')
  1129. dat_us=$(printf '%-20s%-12s%-8s%s' 'Cliente' 'Fecha' 'Dias' 'Statu')
  1130. msg -azu " N° $dat_us"
  1131. msg -bar
  1132. i=1
  1133. for u in `echo "${cat_users}"|awk -F ':' '{print $1}'`; do
  1134. fix_hwid_token=$(echo "${cat_users}"|grep -w "$u"|awk -F ':' '{print $5}'|cut -d ',' -f1) && [[ "${fix_hwid_token}" != @(hwid) ]] && continue
  1135. fecha=$(chage -l "$u"|sed -n '4p'|awk -F ': ' '{print $2}')
  1136. mes_dia=$(echo $fecha|awk -F ',' '{print $1}'|sed 's/ //g')
  1137. ano=$(echo $fecha|awk -F ', ' '{printf $2}'|cut -c 3-)
  1138. us=$(printf '%-12s' "$u")
  1139. pass=$(cat "/etc/passwd"|grep -w "$u"|awk -F ':' '{print $5}'|cut -d ',' -f2)
  1140. [[ "${#pass}" -gt '12' ]] && pass="Desconocida"
  1141. pass="$(printf '%-19s' "$pass")"
  1142. unset stat
  1143. if [[ $(passwd --status $u|cut -d ' ' -f2) = "P" ]]; then
  1144. stat="$(msg -verd "◉ ")"
  1145. else
  1146. stat="$(msg -verm2 "📵 ")"
  1147. fi
  1148. echo -ne " $(msg -verd "$i)")$(msg -verm2 "-") $(msg -azu "${pass}")"
  1149. if [[ $(echo $fecha|awk '{print $2}') = "" ]]; then
  1150. exp="$(printf '%8s%-2s' '[X]')"
  1151. exp+="$(printf '%-6s' '[X]')"
  1152. echo " $(msg -verm2 "$fecha")$(msg -verd "$exp")$(echo -e "$stat")"
  1153. else
  1154. if [[ $(date +%s) -gt $(date '+%s' -d "${fecha}") ]]; then
  1155. exp="$(printf '%-5s' "Exp")"
  1156. echo " $(msg -verm2 "$mes_dia/$ano") $(msg -verm2 "$exp")$(echo -e "$stat")"
  1157. else
  1158. EXPTIME="$(($(($(date '+%s' -d "${fecha}") - $(date +%s))) / 86400))"
  1159. if [[ "${#EXPTIME}" = "1" ]]; then
  1160. exp="$(printf '%6s%-7s' "$EXPTIME")"
  1161. elif [[ "${#EXPTIME}" = "2" ]]; then
  1162. exp="$(printf '%7s%-6s' "$EXPTIME")"
  1163. else
  1164. exp="$(printf '%7s%-5s' "$EXPTIME")"
  1165. fi
  1166. echo " $(msg -verm2 "$mes_dia/$ano")$(msg -verd "$exp")$(echo -e "$stat")"
  1167. fi
  1168. fi
  1169. echo -e " $(msg -ama "TOKEN:") $(msg -azu "${us}")"
  1170. msg -bar3
  1171. let i++
  1172. done
  1173. msg -bar
  1174. }
  1175. data_user(){
  1176. clear
  1177. msg -bar
  1178. msg -tit
  1179. msg -ama "$(fun_trans " INFORMACION DE USUARIOS SSH REGISTRADOS ")"
  1180. msg -bar2
  1181. cat_users=$(cat "/etc/passwd"|grep 'home'|grep 'false'|grep -v 'syslog')
  1182. dat_us=$(printf '%-13s%-14s%-10s%-4s%-6s%s' 'Usuario' 'Contraseña' 'Fecha' 'Dia' 'Limit' 'Statu')
  1183. msg -azu " $dat_us"
  1184. msg -bar
  1185. i=1
  1186. for u in `echo "${cat_users}"|awk -F ':' '{print $1}'`; do
  1187. fix_hwid_token=$(echo "${cat_users}"|grep -w "$u"|awk -F ':' '{print $5}'|cut -d ',' -f1) && [[ "${fix_hwid_token}" = @(hwid|token) ]] && continue
  1188. fecha=$(chage -l "$u"|sed -n '4p'|awk -F ': ' '{print $2}')
  1189. mes_dia=$(echo $fecha|awk -F ',' '{print $1}'|sed 's/ //g')
  1190. ano=$(echo $fecha|awk -F ', ' '{printf $2}'|cut -c 3-)
  1191. us=$(printf '%-12s' "$u")
  1192. pass=$(cat ${USRdatabase}|grep -w "$u"|cut -d'|' -f2)
  1193. [[ "${#pass}" -gt '12' ]] && pass="duplicada"
  1194. pass="$(printf '%-12s' "$pass")"
  1195. unset stat
  1196. if [[ $(passwd --status $u|cut -d ' ' -f2) = "P" ]]; then
  1197. stat="$(msg -verd "◉ ")"
  1198. else
  1199. stat="$(msg -verm2 "📵 ")"
  1200. fi
  1201. Limit=$(cat ${USRdatabase}|grep -w "$u"|cut -d'|' -f4)
  1202. [[ "${#Limit}" = "1" ]] && Limit=$(printf '%2s%-4s' "$Limit") || Limit=$(printf '%-6s' "$Limit")
  1203. echo -ne "$(msg -verd "$i")$(msg -verm2 "-")$(msg -azu "${us}") $(msg -azu "${pass}")"
  1204. if [[ $(echo $fecha|awk '{print $2}') = "" ]]; then
  1205. exp="$(printf '%8s%-2s' '[X]')"
  1206. exp+="$(printf '%-6s' '[X]')"
  1207. echo " $(msg -verm2 "$fecha")$(msg -verd "$exp")$(echo -e "$stat")"
  1208. else
  1209. if [[ $(date +%s) -gt $(date '+%s' -d "${fecha}") ]]; then
  1210. exp="$(printf '%-5s' "Exp")"
  1211. echo " $(msg -verm2 "$mes_dia/$ano") $(msg -verm2 "$exp")$(msg -ama "$Limit")$(echo -e "$stat")"
  1212. else
  1213. EXPTIME="$(($(($(date '+%s' -d "${fecha}") - $(date +%s))) / 86400))"
  1214. [[ "${#EXPTIME}" = "1" ]] && exp="$(printf '%2s%-3s' "$EXPTIME")" || exp="$(printf '%-5s' "$EXPTIME")"
  1215. echo " $(msg -verm2 "$mes_dia/$ano") $(msg -verd "$exp")$(msg -ama "$Limit")$(echo -e "$stat")"
  1216. fi
  1217. fi
  1218. let i++
  1219. done
  1220. msg -bar
  1221. }
  1222. menudata(){
  1223. clear
  1224. msg -bar
  1225. msg -tit
  1226. msg -ama " \e[1;33m[1] \e[37mDETALLES DE CUENTAS SSH \e[0m\n \e[1;33m[2] \e[37mDETALLES DE CUENTAS HWID \e[0m\n \e[1;33m[3] \e[37mDETALLES DE CUENTAS TOKEN \e[0m\n \e[1;31m[0] \e[1;37m<- VOLVER"
  1227. msg -bar
  1228. read -p " $(echo -e "\e[1;37mSeleccione Una Opcion [1/3]:\e[1;33m") " cuen
  1229. case $cuen in
  1230. 1)data_user;;
  1231. 2)data_hwid;;
  1232. 3)data_token;;
  1233. 0) ;;
  1234. esac
  1235. }
  1236. menumoni(){
  1237. clear
  1238. msg -bar
  1239. msg -tit
  1240. msg -ama " \e[1;33m[1] \e[37mMONITOR DE CUENTAS SSH\e[0m\n \e[1;33m[2] \e[37mMONITOR DE CUENTAS HWID\e[0m\n \e[1;33m[3] \e[37mMONITOR DE CUENTAS TOKEN\e[0m\n \e[1;31m[0] \e[1;37m<- VOLVER"
  1241. msg -bar
  1242. read -p " $(echo -e "\e[1;37mSeleccione Una Opcion [1/3]:\e[1;33m") " cuen
  1243. case $cuen in
  1244. 1)monit_ssh;;
  1245. 2)monit_hwid;;
  1246. 3)monit_token;;
  1247. 0) ;;
  1248. esac
  1249. }
  1250. monit_hwid () {
  1251. clear
  1252. clear
  1253. msg -bar
  1254. msg -tit
  1255. red=$(tput setaf 1)
  1256. gren=$(tput setaf 2)
  1257. yellow=$(tput setaf 3)
  1258. echo -e "$(fun_trans "\e[93m MONITOR DE CONEXIONES SSH/DROPBEAR/SSL/OPENVPN")"
  1259. msg -bar
  1260. txtvar=$(printf '%-13s' " USUARIO")
  1261. txtvar+=$(printf '%-20s' "CONEXIONES")
  1262. txtvar+=$(printf '%-10s' "TIME/ON")
  1263. echo -e " \e[1;33m${txtvar}\e[0m"
  1264. msg -bar
  1265. cat_users=$(cat "/etc/passwd"|grep 'home'|grep 'hwid'|grep -v 'syslog')
  1266. for i in `echo "$cat_users"|awk -F ':' '{print $1}'`; do
  1267. hwid="$i"
  1268. nom="$(echo "$cat_users"|grep -w "$i"|awk -F ':' '{print $5}'|cut -d ',' -f2)"
  1269. user=$(printf '%-10s' " ${nom}")
  1270. sep=$(printf '%-5s')
  1271. _=$(
  1272. PID="0+"
  1273. [[ $(dpkg --get-selections|grep -w "openssh"|head -1) ]] && PID+="$(ps aux|grep -v grep|grep sshd|grep -w "$hwid"|grep -v root|wc -l)+"
  1274. [[ $(dpkg --get-selections|grep -w "dropbear"|head -1) ]] && PID+="$(dropbear_pids|grep -w "${hwid}"|wc -l)+"
  1275. [[ $(dpkg --get-selections|grep -w "openvpn"|head -1) ]] && [[ -e /etc/openvpn/openvpn-status.log ]] && [[ $(openvpn_pids|grep -w "$hwid"|cut -d'|' -f2) ]] && PID+="$(openvpn_pids|grep -w "$hwid"|cut -d'|' -f2)+"
  1276. PID+="0"
  1277. TIMEON="${TIMEUS[$hwid]}"
  1278. [[ -z $TIMEON ]] && TIMEON=0
  1279. MIN=$(($TIMEON/60))
  1280. SEC=$(($TIMEON-$MIN*60))
  1281. HOR=$(($MIN/60))
  1282. MIN=$(($MIN-$HOR*60))
  1283. HOUR="${HOR}h:${MIN}m:${SEC}s"
  1284. [[ $(echo $PID|bc) -gt 0 ]] && hwid="$hwid [\033[1;32mON\033[0m${yellow}] " || hwid="$hwid [\033[1;31mOFF\033[0m${yellow}]"
  1285. TOTALPID="$(echo $PID|bc)/hwid" #$MAXUSER"
  1286. while [[ ${#hwid} -lt 45 ]]; do
  1287. hwid=$hwid" "
  1288. done
  1289. while [[ ${#TOTALPID} -lt 13 ]]; do
  1290. TOTALPID=$TOTALPID" "
  1291. done
  1292. while [[ ${#HOUR} -lt 8 ]]; do
  1293. HOUR=$HOUR" "
  1294. done
  1295. echo -e "${yellow}USER:${gren}$user $sep $TOTALPID $HOUR\n ${red}HWID:${yellow} $hwid\n$(msg -bar)" >&2
  1296. ) &
  1297. pid=$!
  1298. sleep 0.2s
  1299. done
  1300. while [[ -d /proc/$pid ]]; do
  1301. sleep 2s
  1302. done
  1303. msg -bar
  1304. msg -ne " Enter Para Continuar" && read enter
  1305. ${SCPusr}/usercodes
  1306. }
  1307. monit_token () {
  1308. clear
  1309. clear
  1310. msg -bar
  1311. msg -tit
  1312. red=$(tput setaf 1)
  1313. gren=$(tput setaf 2)
  1314. yellow=$(tput setaf 3)
  1315. echo -e "$(fun_trans "\e[93m MONITOR DE CONEXIONES SSH/DROPBEAR/SSL/OPENVPN")"
  1316. msg -bar
  1317. txtvar=$(printf '%-13s' " USUARIO")
  1318. txtvar+=$(printf '%-20s' "CONEXIONES")
  1319. txtvar+=$(printf '%-10s' "TIME/ON")
  1320. echo -e " \e[1;33m${txtvar}\e[0m"
  1321. msg -bar
  1322. cat_users=$(cat "/etc/passwd"|grep 'home'|grep 'token'|grep -v 'syslog')
  1323. for i in `echo "$cat_users"|awk -F ':' '{print $1}'`; do
  1324. token="$i"
  1325. nom="$(echo "$cat_users"|grep -w "$i"|awk -F ':' '{print $5}'|cut -d ',' -f2)"
  1326. user=$(printf '%-10s' " ${nom}")
  1327. sep=$(printf '%-5s')
  1328. _=$(
  1329. PID="0+"
  1330. [[ $(dpkg --get-selections|grep -w "openssh"|head -1) ]] && PID+="$(ps aux|grep -v grep|grep sshd|grep -w "$token"|grep -v root|wc -l)+"
  1331. [[ $(dpkg --get-selections|grep -w "dropbear"|head -1) ]] && PID+="$(dropbear_pids|grep -w "${token}"|wc -l)+"
  1332. [[ $(dpkg --get-selections|grep -w "openvpn"|head -1) ]] && [[ -e /etc/openvpn/openvpn-status.log ]] && [[ $(openvpn_pids|grep -w "$token"|cut -d'|' -f2) ]] && PID+="$(openvpn_pids|grep -w "$token"|cut -d'|' -f2)+"
  1333. PID+="0"
  1334. TIMEON="${TIMEUS[$token]}"
  1335. [[ -z $TIMEON ]] && TIMEON=0
  1336. MIN=$(($TIMEON/60))
  1337. SEC=$(($TIMEON-$MIN*60))
  1338. HOR=$(($MIN/60))
  1339. MIN=$(($MIN-$HOR*60))
  1340. HOUR="${HOR}h:${MIN}m:${SEC}s"
  1341. [[ $(echo $PID|bc) -gt 0 ]] && token="$token [\033[1;32mON\033[0m${yellow}] " || token="$token [\033[1;31mOFF\033[0m${yellow}]"
  1342. TOTALPID="$(echo $PID|bc)/token" #$MAXUSER"
  1343. while [[ ${#token} -lt 45 ]]; do
  1344. token=$token" "
  1345. done
  1346. while [[ ${#TOTALPID} -lt 13 ]]; do
  1347. TOTALPID=$TOTALPID" "
  1348. done
  1349. while [[ ${#HOUR} -lt 8 ]]; do
  1350. HOUR=$HOUR" "
  1351. done
  1352. echo -e "${yellow}USER:${gren}$user $sep $TOTALPID $HOUR\n ${red}TOKEN:${yellow} $token\n$(msg -bar)" >&2
  1353. ) &
  1354. pid=$!
  1355. sleep 0.2s
  1356. done
  1357. while [[ -d /proc/$pid ]]; do
  1358. sleep 2s
  1359. done
  1360. msg -bar
  1361. msg -ne " Enter Para Continuar" && read enter
  1362. ${SCPusr}/usercodes
  1363. }
  1364. monit_ssh () {
  1365. clear
  1366. clear
  1367. msg -bar
  1368. msg -tit
  1369. red=$(tput setaf 1)
  1370. gren=$(tput setaf 2)
  1371. yellow=$(tput setaf 3)
  1372. echo -e "$(fun_trans "\e[93m MONITOR DE CONEXIONES SSH/DROPBEAR/SSL/OPENVPN")"
  1373. msg -bar
  1374. txtvar=$(printf '%-20s' " USUARIO")
  1375. txtvar+=$(printf '%-14s' "CONEXIONES")
  1376. txtvar+=$(printf '%-8s' "TIME/ON")
  1377. echo -e " \e[1;33m${txtvar}\e[0m"
  1378. msg -bar
  1379. cat_users=$(cat "/etc/passwd"|grep 'home'|grep 'sshm'|grep -v 'syslog')
  1380. for i in `echo "$cat_users"|awk -F ':' '{print $1}'`; do
  1381. user="$i"
  1382. _=$(
  1383. PID="0+"
  1384. [[ $(dpkg --get-selections|grep -w "openssh"|head -1) ]] && PID+="$(ps aux|grep -v grep|grep sshd|grep -w "$user"|grep -v root|wc -l)+"
  1385. [[ $(dpkg --get-selections|grep -w "dropbear"|head -1) ]] && PID+="$(dropbear_pids|grep -w "$user"|wc -l)+"
  1386. [[ $(dpkg --get-selections|grep -w "openvpn"|head -1) ]] && [[ -e /etc/openvpn/openvpn-status.log ]] && [[ $(openvpn_pids|grep -w "$user"|cut -d'|' -f2) ]] && PID+="$(openvpn_pids|grep -w "$user"|cut -d'|' -f2)+"
  1387. PID+="0"
  1388. TIMEON="${TIMEUS[$user]}"
  1389. [[ -z $TIMEON ]] && TIMEON=0
  1390. MIN=$(($TIMEON/60))
  1391. SEC=$(($TIMEON-$MIN*60))
  1392. HOR=$(($MIN/60))
  1393. MIN=$(($MIN-$HOR*60))
  1394. HOUR="${HOR}h:${MIN}m:${SEC}s"
  1395. [[ -z $(cat ${USRdatabase}|grep -w "${user}") ]] && MAXUSER="" || MAXUSER="$(cat ${USRdatabase}|grep -w "${user}"|cut -d'|' -f4)"
  1396. [[ $(echo $PID|bc) -gt 0 ]] && user="$user [\033[1;32mON\033[0m${yellow}] " || user="$user [\033[1;31mOFF\033[0m${yellow}]"
  1397. TOTALPID="$(echo $PID|bc)/$MAXUSER"
  1398. while [[ ${#user} -lt 45 ]]; do
  1399. user=$user" "
  1400. done
  1401. while [[ ${#TOTALPID} -lt 13 ]]; do
  1402. TOTALPID=$TOTALPID" "
  1403. done
  1404. while [[ ${#HOUR} -lt 9 ]]; do
  1405. HOUR=$HOUR" "
  1406. done
  1407. echo -e "${yellow}$user $TOTALPID $HOUR\n$(msg -bar)" >&2
  1408. ) &
  1409. pid=$!
  1410. sleep 0.2s
  1411. done
  1412. while [[ -d /proc/$pid ]]; do
  1413. sleep 2s
  1414. done
  1415. msg -bar
  1416. msg -ne " Enter Para Continuar" && read enter
  1417. ${SCPusr}/usercodes
  1418. }
  1419. rm_vencidos () {
  1420. clear
  1421. clear
  1422. msg -bar
  1423. msg -tit
  1424. echo -e "$(fun_trans "\e[93m BORRANDO USUARIOS VENCIDOS ")"
  1425. msg -bar
  1426. red=$(tput setaf 1)
  1427. gren=$(tput setaf 2)
  1428. yellow=$(tput setaf 3)
  1429. txtvar=$(printf '%-25s' " USUARIO")
  1430. txtvar+=$(printf '%-25s' " VALIDIDEZ")
  1431. echo -e "\033[1;92m${txtvar}"
  1432. msg -bar
  1433. expired="${red}$(fun_trans "Usuario Expirado")"
  1434. valid="${gren}$(fun_trans " Usuario Vigente")"
  1435. never="${yellow}$(fun_trans "Usuario Ilimitado")"
  1436. removido="${red}$(fun_trans "Eliminado")"
  1437. DataVPS=$(date +%s)
  1438. while read user; do
  1439. DataUser=$(chage -l "${user}" |grep -i co|awk -F ":" '{print $2}')
  1440. usr=$user
  1441. while [[ ${#usr} -lt 20 ]]; do
  1442. usr=$usr" "
  1443. done
  1444. [[ "$DataUser" = " never" ]] && {
  1445. echo -e "${yellow}$usr $never"
  1446. continue
  1447. }
  1448. DataSEC=$(date +%s --date="$DataUser")
  1449. if [[ "$DataSEC" -lt "$DataVPS" ]]; then
  1450. echo -ne "${yellow}$usr $expired"
  1451. rm_user "$user" && echo -e "($removido)"
  1452. else
  1453. echo -e "${yellow}$usr $valid"
  1454. fi
  1455. done <<< "$(mostrar_usuarios)"
  1456. rm -rf /etc/VPS-MX/VPS-MX-userlock
  1457. rm -rf /etc/VPS-MX/controlador/Limiter.log
  1458. unlockall2
  1459. msg -bar
  1460. msg -ne " Enter Para Continuar" && read enter
  1461. ${SCPusr}/usercodes
  1462. }
  1463. verif_fun () {
  1464. local conexao
  1465. local limite
  1466. local TIMEUS
  1467. declare -A conexao
  1468. declare -A limite
  1469. declare -A TIMEUS
  1470. local LIMITERLOG="${SCPusr}/Limiter.log"
  1471. local LIMITERLOG2="${SCPusr}/Limiter2.log"
  1472. [[ $(dpkg --get-selections|grep -w "openssh"|head -1) ]] && local SSH=ON || local SSH=OFF
  1473. [[ $(dpkg --get-selections|grep -w "dropbear"|head -1) ]] && local DROP=ON || local DROP=OFF
  1474. [[ $(dpkg --get-selections|grep -w "openvpn"|head -1) ]] && [[ -e /etc/openvpn/openvpn-status.log ]] && local OPEN=ON || local OPEN=OFF
  1475. while true; do
  1476. unset EXPIRED
  1477. unset ONLINES
  1478. unset BLOQUEADO
  1479. local TimeNOW=$(date +%s)
  1480. while read user; do
  1481. echo -ne "\033[1;33mUSUARIO: \033[1;32m$user "
  1482. if [[ ! $(echo $(mostrar_usuarios)|grep -w "$user") ]]; then
  1483. echo -e "\033[1;31mNO EXISTE"
  1484. continue
  1485. fi
  1486. local DataUser=$(chage -l "${user}" |grep -i co|awk -F ":" '{print $2}')
  1487. if [[ ! -z "$(echo $DataUser|grep never)" ]]; then
  1488. echo -e "\033[1;31mILIMITADO"
  1489. continue
  1490. fi
  1491. local DataSEC=$(date +%s --date="$DataUser")
  1492. if [[ "$DataSEC" -lt "$TimeNOW" ]]; then
  1493. EXPIRED="1+"
  1494. block_userfun $user -loked && echo " $user (EXPIRADO) $(date +%r--%d/%m/%y)" >> $LIMITERLOG && echo " $user (EXPIRADO) $(date +%r--%d/%m/%y)" >> $LIMITERLOG2 && KEY="2012880601:AAEJ3Kk18PGDzW57LpTMnVMn_pQYQKW3V9w"
  1495. URL="https://api.telegram.org/bot$KEY/sendMessage"
  1496. MSG="⚠️ AVISO DE VPS: $NOM1 ⚠️
  1497. 🔹 CUENTA: $user
  1498. ❗️ �� EXPIRADA �� ❗️"
  1499. curl -s --max-time 10 -d "chat_id=$IDB1&disable_web_page_preview=1&text=$MSG" $URL && pkill -u $user
  1500. echo -e "\033[1;31m EXPIRADO"
  1501. continue
  1502. fi
  1503. local PID="0+"
  1504. [[ $SSH = ON ]] && PID+="$(ps aux|grep -v grep|grep sshd|grep -w "$user"|grep -v root|wc -l 2>/dev/null)+"
  1505. [[ $DROP = ON ]] && PID+="$(dropbear_pids|grep -w "$user"|wc -l 2>/dev/null)+"
  1506. [[ $OPEN = ON ]] && [[ $(openvpn_pids|grep -w "$user"|cut -d'|' -f2) ]] && PID+="$(openvpn_pids|grep -w "$user"|cut -d'|' -f2)+"
  1507. local ONLINES+="$(echo ${PID}0|bc)+"
  1508. local conexao[$user]="$(echo ${PID}0|bc)"
  1509. if [[ ${conexao[$user]} -gt '0' ]]; then #CONTADOR DE TEMPO ONLINE
  1510. [[ -z "${TIMEUS[$user]}" ]] && local TIMEUS[$user]=0
  1511. [[ "${TIMEUS[$user]}" != +([0-9]) ]] && local TIMEUS[$user]=0
  1512. local TIMEUS[$user]="$((300+${TIMEUS[$user]}))"
  1513. local VARS="$(cat ${MyTIME}|grep -w -v "$user")"
  1514. echo "TIMEUS[$user]='${TIMEUS[$user]}'" > ${MyTIME}
  1515. for variavel in $(echo ${VARS}); do echo "${variavel}" >> ${MyTIME}; done
  1516. fi
  1517. local limite[$user]="$(cat ${USRdatabase}|grep -w "${user}"|cut -d'|' -f4)"
  1518. [[ -z "${limite[$user]}" ]] && continue
  1519. [[ "${limite[$user]}" != +([0-9]) ]] && continue
  1520. if [[ "${conexao[$user]}" -gt "${limite[$user]}" ]]; then
  1521. local lock=$(block_userfun $user -loked)
  1522. pkill -u $user
  1523. droplim=`dropbear_pids|grep -w "$user"|cut -d'|' -f2`
  1524. kill -9 $droplim &>/dev/null
  1525. openlim=`openvpn_pids|grep -w "$user"|cut -d'|' -f2`
  1526. kill -9 $openlim &>/dev/null
  1527. echo "$lock" >> $LIMITERLOG && echo "$lock" >> $LIMITERLOG2
  1528. echo -e "\033[1;31m ULTRAPASO LIMITE"
  1529. continue
  1530. fi
  1531. echo -e "\033[1;33m OK! \033[1;31m${conexao[$user]} CONEXIONESS"
  1532. BLOQUEADO="$(wc -l /etc/VPS-MX/VPS-MX-userlock | awk '{print $1}')"
  1533. BLOQUEADO2="$(echo ${BLOQUEADO}|bc)0"
  1534. BLOQUEADO3="/10"
  1535. EXPIRADO="$(grep -c EXPIRADO /etc/VPS-MX/controlador/Limiter.log)"
  1536. EXPIRADO2="$(echo ${EXPIRADO}|bc)0"
  1537. EXPIRADO3="/10"
  1538. done <<< "$(mostrar_usuarios)"
  1539. echo "${ONLINES}0"|bc > ${SCPdir}/USRonlines
  1540. echo "${EXPIRADO2}${EXPIRADO3}"|bc > ${SCPdir}/USRexpired
  1541. echo "${BLOQUEADO2}${BLOQUEADO3}"|bc > ${SCPdir}/USRbloqueados
  1542. limseg="$(less /etc/VPS-MX/controlador/tiemlim.log)"
  1543. sleep $limseg # TEMPO DE ESPERA DO LOOP
  1544. clear
  1545. done
  1546. }
  1547. SPR &
  1548. backup_fun () {
  1549. clear
  1550. clear
  1551. msg -bar
  1552. msg -tit
  1553. msg -ama "$(fun_trans " HERRAMIENTA DE BACKUP DE USUARIOS")"
  1554. msg -bar
  1555. menu_func "CREAR BACKUP" "RESTAURAR BACKUP"
  1556. msg -bar
  1557. unset selection
  1558. while [[ ${selection} != @([1-2]) ]]; do
  1559. echo -ne "\033[1;37m$(fun_trans "Seleccione una Opcion"): " && read selection
  1560. tput cuu1 && tput dl1
  1561. done
  1562. case ${selection} in
  1563. 1)
  1564. cp ${USRdatabase} $HOME/VPS-MX-Backup
  1565. msg -azu "$(fun_trans "Procedimiento Hecho con Exito, Guardado en:")"
  1566. echo ""
  1567. echo -e "\033[1;31mBACKUP > [\033[1;32m$HOME/VPS-MX-Backup\033[1;31m]"
  1568. echo ""
  1569. ;;
  1570. 2)
  1571. while [[ ! -e ${dirbackup} ]]; do
  1572. echo -ne "\033[1;37m ¡¡Recomiendo DESACTIVAR Limitador si es que lo tine ACTIVO!!\n"
  1573. echo -ne "\033[1;37m Escriba la ubicacion de la copia de seguridad\n"
  1574. msg -bar
  1575. echo -ne "\033[1;37m ENTER: para ruta predeterminada /root/VPS-MX-Backup: " && read dirbackup
  1576. echo ""
  1577. echo "---------- RESTAURANDO CUENTAS ESPERE "
  1578. echo ""
  1579. msg -bar
  1580. [[ -z "${dirbackup}" ]] && dirbackup="/root/VPS-MX-Backup"
  1581. tput cuu1 && tput dl1
  1582. done
  1583. VPSsec=$(date +%s)
  1584. while read line; do
  1585. nome=$(echo ${line}|cut -d'|' -f1)
  1586. [[ $(echo $(mostrar_usuarios)|grep -w "$nome") ]] && { msg -verm "$nome [ERROR]"
  1587. continue
  1588. }
  1589. senha=$(echo ${line}|cut -d'|' -f2)
  1590. DateExp=$(echo ${line}|cut -d'|' -f3)
  1591. DataSec=$(date +%s --date="$DateExp")
  1592. [[ "$VPSsec" -lt "$DataSec" ]] && dias="$(($(($DataSec - $VPSsec)) / 86400))" || dias="NP"
  1593. limite=$(echo ${line}|cut -d'|' -f4)
  1594. add_user "$nome" "$senha" "$dias" "$limite" &>/dev/null && msg -verd "$nome [CUENTA VALIDA]" || msg -verm "$nome [CUENTA INVALIDA FECHA EXPIRADA]"
  1595. done < ${dirbackup}
  1596. ;;
  1597. esac
  1598. echo ""
  1599. msg -bar
  1600. msg -ne " Enter Para Continuar" && read enter
  1601. ${SCPusr}/usercodes
  1602. }
  1603. verif_funx () {
  1604. clear
  1605. clear
  1606. msg -bar
  1607. msg -tit
  1608. echo -e "\033[1;32m LIMITADOR DE CUENTAS"
  1609. msg -bar
  1610. echo -e "Esta Opcion Limita las Conexiones de SSH/SSL/DROPBEAR"
  1611. PIDVRF="$(ps aux|grep "${SCPusr}/usercodes verificar"|grep -v grep|awk '{print $2}')"
  1612. if [[ -z $PIDVRF ]]; then
  1613. msg -bar
  1614. echo -ne "\033[1;96m ¿Cada cuantos segundos ejecutar el limitador?\n\033[1;97m +Segundos = -Uso de CPU | -Segundos = +Uso de CPU\033[0;92m \n Predeterminado:\033[1;37m 120s\n Cuantos Segundos (Numeros Unicamente): " && read tiemlim
  1615. [[ -z "$tiemlim" ]] && tiemlim="120"
  1616. echo "${tiemlim}" > /etc/VPS-MX/controlador/tiemlim.log
  1617. cd ${SCPusr}
  1618. screen -dmS very ${SCPusr}/usercodes verificar
  1619. else
  1620. for pid in $(echo $PIDVRF); do
  1621. kill -9 $pid &>/dev/null
  1622. done
  1623. [[ -e ${SCPdir}/USRonlines ]] && rm ${SCPdir}/USRonlines
  1624. [[ -e ${SCPdir}/USRexpired ]] && rm ${SCPdir}/USRexpired
  1625. [[ -e ${SCPdir}/USRbloqueados ]] && rm ${SCPdir}/USRbloqueados
  1626. fi
  1627. msg -bar
  1628. [[ -z ${VERY} ]] && verificar="\033[1;32m ACTIVADO " || verificar="\033[1;31m DESACTIVADO "
  1629. echo -e " $verificar -- CON EXITO"
  1630. msg -bar
  1631. msg -ne " Enter Para Continuar" && read enter
  1632. ${SCPusr}/usercodes
  1633. }
  1634. verif2_funx () {
  1635. clear
  1636. clear
  1637. msg -bar
  1638. msg -tit
  1639. echo -e "\033[1;32m DESBLOQUEO AUT. Y LIMPIADOR DE EXPIARDOS"
  1640. msg -bar
  1641. echo -e "Esta opcion desbloquea cada 60 segundos a usuarios\nbloqueados por el limitador y limpia los usuarios expirados"
  1642. PIDVRF2="$(ps aux|grep "${SCPusr}/usercodes desbloqueo"|grep -v grep|awk '{print $2}')"
  1643. if [[ -z $PIDVRF2 ]]; then
  1644. msg -bar
  1645. echo -ne "\033[1;96m ¿Cada cuantos segundos ejecutar el desbloqueador?\n\033[1;97m +Segundos = -Uso de CPU | -Segundos = +Uso de CPU\033[0;92m \n Predeterminado:\033[1;37m 300s\n Cuantos Segundos (Numeros Unicamente): " && read tiemdes
  1646. [[ -z "$tiemdes" ]] && tiemdes="300"
  1647. echo "${tiemdes}" > /etc/VPS-MX/controlador/tiemdes.log
  1648. cd ${SCPusr}
  1649. screen -dmS very2 ${SCPusr}/usercodes desbloqueo
  1650. else
  1651. for pid in $(echo $PIDVRF2); do
  1652. kill -9 $pid &>/dev/null
  1653. done
  1654. fi
  1655. msg -bar
  1656. [[ -z ${VERY2} ]] && desbloqueo="\033[1;32m ACTIVADO " || desbloqueo="\033[1;31m DESACTIVADO "
  1657. echo -e " $desbloqueo -- CON EXITO"
  1658. msg -bar
  1659. msg -ne " Enter Para Continuar" && read enter
  1660. ${SCPusr}/usercodes
  1661. }
  1662. baner_fun () {
  1663. banner_on () {
  1664. clear
  1665. clear
  1666. local="/etc/VPS-MX/bannerssh"
  1667. rm -rf $local > /dev/null 2>&1
  1668. local2="/etc/dropbear/banner"
  1669. chk=$(cat /etc/ssh/sshd_config | grep Banner)
  1670. if [ "$(echo "$chk" | grep -v "#Banner" | grep Banner)" != "" ]; then
  1671. local=$(echo "$chk" |grep -v "#Banner" | grep Banner | awk '{print $2}')
  1672. else
  1673. echo "" >> /etc/ssh/sshd_config
  1674. echo "Banner /etc/VPS-MX/bannerssh" >> /etc/ssh/sshd_config
  1675. local="/etc/VPS-MX/bannerssh"
  1676. fi
  1677. msg -bar
  1678. msg -tit
  1679. msg -ama " AGREGAR BANNER SSH/SSL/DROPBEAR"
  1680. msg -bar
  1681. msg -ne "$(fun_trans "Inserte el BANNER de preferencia en HTML sin saltos"): \n\n" && read ban_ner
  1682. echo ""
  1683. msg -bar
  1684. credi="$(less /etc/VPS-MX/message.txt)"
  1685. echo "$ban_ner" >> $local
  1686. echo '<p style="text-align: center;"><span style="color: #0000ff;"><strong>'$credi'</strong></span><br /><em><span style="color: #ff0000;"><strong>SCRIPT - VPS&bull;MX</strong></span></em></p>' >> $local
  1687. if [[ -e "$local2" ]]; then
  1688. rm $local2 > /dev/null 2>&1
  1689. cp $local $local2 > /dev/null 2>&1
  1690. fi
  1691. msg -verd "$(fun_trans " BANNER AGREGADO CON !! EXITO ¡¡" )" && msg -bar
  1692. service dropbear stop 2>/dev/null
  1693. service ssh restart 2>/dev/null
  1694. service dropbear restart 2>/dev/null
  1695. }
  1696. banner_off () {
  1697. clear
  1698. clear
  1699. msg -bar
  1700. msg -tit
  1701. msg -ama " ELIMINANDO BANNER SSH/SSL/DROPBEAR"
  1702. msg -bar
  1703. sed -i '/'Banner'/d' /etc/ssh/sshd_config
  1704. sed -i -e 's/^[ \t]*//; s/[ \t]*$//; /^$/d' /etc/ssh/sshd_config
  1705. echo "" >> /etc/ssh/sshd_config
  1706. rm -rf /etc/dropbear/banner > /dev/null 2>&1
  1707. echo "" > /etc/dropbear/banner > /dev/null 2>&1
  1708. service dropbear stop 2>/dev/null
  1709. service ssh restart 2>/dev/null
  1710. service dropbear restart 2>/dev/null
  1711. echo -e "\033[1;92m BANNER ELIMINADO !! EXITO ¡¡ "
  1712. msg -bar
  1713. }
  1714. clear
  1715. clear
  1716. msg -bar
  1717. msg -tit
  1718. msg -ama " AGREGAR BANNER SSH/SSL/DROPBEAR"
  1719. msg -bar
  1720. echo -e "${cor[1]} Escoja la opcion deseada."
  1721. msg -bar
  1722. echo -e "\033[1;92m 1).- \033[1;37m AGREGAR BANNER SSH/SSL/DROPBEAR "
  1723. echo -e "\033[1;92m 2).- \033[1;37m ELIMINAR Y DESACTIVAR BANNER "
  1724. msg -bar
  1725. echo -ne "\033[1;37mDigite solo el numero segun su respuesta: \033[1;32m"
  1726. read opcao
  1727. case $opcao in
  1728. 1)
  1729. msg -bar
  1730. banner_on
  1731. ;;
  1732. 2)
  1733. msg -bar
  1734. banner_off
  1735. ;;
  1736. esac
  1737. msg -ne " Enter Para Continuar" && read enter
  1738. ${SCPusr}/usercodes
  1739. }
  1740. desbloqueo_auto () {
  1741. while true; do
  1742. Desbloqueo.sh 2>/dev/null
  1743. tiemdes="$(less /etc/VPS-MX/controlador/tiemdes.log)"
  1744. sleep $tiemdes
  1745. done
  1746. }
  1747. rec_total () {
  1748. clear
  1749. clear
  1750. msg -bar
  1751. msg -tit
  1752. echo -e "\033[1;32m REGISTRO TOTAL DE CUENTAS VIEJAS Y NUEVAS"
  1753. msg -bar
  1754. msg -ama " CUENSTAS SSH"
  1755. if [[ -e /etc/VPS-MX/VPS-MXuser ]]; then
  1756. echo "$(cat /etc/VPS-MX/VPS-MXuser)"
  1757. else
  1758. msg -ama " NO HAY REGISTRO"
  1759. fi
  1760. msg -bar
  1761. msg -ama " CUENTAS HWID"
  1762. if [[ -e /etc/VPS-MX/User-HWID ]]; then
  1763. echo "$(cat /etc/VPS-MX/User-HWID)"
  1764. else
  1765. msg -ama " NO HAY REGISTRO"
  1766. fi
  1767. msg -bar
  1768. msg -ama " CUENTAS TOKEN"
  1769. if [[ -e /etc/VPS-MX/User-TOKEN ]]; then
  1770. echo "$(cat /etc/VPS-MX/User-TOKEN)"
  1771. else
  1772. msg -ama " NO HAY REGISTRO"
  1773. fi
  1774. msg -bar
  1775. msg -ne " Enter Para Continuar" && read enter
  1776. ${SCPusr}/usercodes
  1777. }
  1778. if [[ "$1" = "verificar" ]]; then
  1779. verif_fun
  1780. exit
  1781. fi
  1782. [[ -z ${VERY} ]] && verificar="\033[1;31m[DESACTIVADO]" || verificar="\033[1;32m[ACTIVO]"
  1783. if [[ "$1" = "desbloqueo" ]]; then
  1784. desbloqueo_auto
  1785. exit
  1786. fi
  1787. [[ -z ${VERY2} ]] && desbloqueo="\033[1;31m[DESACTIVADO]" || desbloqueo="\033[1;32m[ACTIVO]"
  1788. msg -tit
  1789. msg -ama " MENU ADMINISTRACION DE USUARIOS SSL/SSH/DROPBEAR"
  1790. msg -bar
  1791. msg -bar3
  1792. menu_func "CREAR NUEVO USUARIO [\e[31m\e[43mSSH/HWID/TOKEN \e[0m\e[37m]" "CREAR USUARIO TEMPORAL" "REMOVER USUARIO [\e[31m\e[43mSSH/HWID/TOKEN \e[0m\e[37m]" "BLOQUEAR |DESBLOQUEAR USUARIO" "REINICIAR CONTADOR DE BLOQUEADOS |EXPIRADOS" "EDITAR USUARIO" "RENOVAR USUARIO" "MOSTRAR CUENTAS [\e[31m\e[43mSSH/HWID/TOKEN \e[0m\e[37m]" "USUARIOS CONECTADOS [\e[31m\e[43mSSH/HWID/TOKEN \e[0m\e[37m] " "ELIMINAR USUARIOS VENCIDOS" "BACKUP USUARIOS" "AGREGAR/ELIMINAR BANNER " "\033[1;31m⚠️ELIMINAR TODOS LOS USUARIOS⚠️ \n" " -fi ${verificar} \033[1;97m🔒 LIMITADOR-DE-CUENTAS 🔒 \n" " -fi ${desbloqueo} \033[1;97m🔓 DESBLOQUEO-AUTOMATICO 🔓 \n" "\033[1;92mLOG DE CUENTAS REGISTRADAS" "LIMPIAR LOG DE LIMITADOR"
  1793. [[ -e "${SCPusr}/Limiter2.log" ]] && echo -ne "$(msg -verd " [18]") $(msg -verm2 "➛ ") " && msg -azu "$(fun_trans "\033[1;93mVER LOG DE LIMITADOR")"
  1794. echo -ne ""$(msg -bar)" \n$(msg -verd " [0]") $(msg -verm2 "➛ ")" && msg -bra " \e[97m\033[1;41m VOLVER \033[1;37m"
  1795. msg -bar
  1796. selection=$(selection_fun 19)
  1797. case ${selection} in
  1798. 1)menu_crearuser;;
  1799. 2)${SCPdir2}/Crear-Demo.sh "${idioma}";;
  1800. 3)menudel;;
  1801. 4)block_user;;
  1802. 5)reset_contador;;
  1803. 6)edit_user;;
  1804. 7)renew_user;;
  1805. 8)menudata;;
  1806. 9)menumoni;;
  1807. 10)rm_vencidos;;
  1808. 11)backup_fun;;
  1809. 12)baner_fun;;
  1810. 13)eliminar_all;;
  1811. 14)verif_funx;;
  1812. 15)verif2_funx;;
  1813. 16)rec_total;;
  1814. 17)
  1815. rm -rf ${SCPusr}/Limiter2.log
  1816. echo -e "\033[1;32m LOG ELIMINADO CON EXITO"
  1817. msg -bar
  1818. msg -ne " Enter Para Continuar" && read enter
  1819. ${SCPusr}/usercodes
  1820. ;;
  1821. 18)
  1822. clear
  1823. clear
  1824. msg -bar
  1825. sed -i -e 's/^[ \t]*//; s/[ \t]*$//; /^$/d' /etc/VPS-MX/controlador/Limiter2.log
  1826. [[ -e "${SCPusr}/Limiter2.log" ]] && {
  1827. msg -tit
  1828. msg -ama " REGISTRO DEL LIMITADOR "
  1829. cat ${SCPusr}/Limiter2.log
  1830. msg -bar
  1831. }
  1832. msg -ne " Enter Para Continuar" && read enter
  1833. ${SCPusr}/usercodes
  1834. ;;
  1835. esac