1
0

sslh-back3.sh 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. #!/bin/bash
  2. blanco='\033[38;5;231m'
  3. amarillo='\033[38;5;228m'
  4. azul='\033[38;5;14m'
  5. morado='\033[38;5;147m'
  6. rojo='\033[0;31m'
  7. verde='\033[38;5;148m'
  8. yellow='\033[0;33m'
  9. rosa='\033[38;5;213m'
  10. melon='\033[38;5;208m'
  11. guinda='\033[38;5;161m'
  12. cierre='\033[0m'
  13. bar1="\e[1;30m◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚◚\e[0m"
  14. bar2="\033[38;5;183m--------------------------------------------------------------------\033[0m"
  15. #DIRECTORIOS
  16. dir_bases="/etc/default"
  17. dir_puertos="/etc/default/ports-sslh"
  18. dir_conf="/etc/default/sslh"
  19. dir_ports="/etc/default/sslh-ports"
  20. dir_service="/etc/init.d/sslh"
  21. dir_info="/etc/default/sslh-info"
  22. #VARIABLES
  23. arch_serv="/root/servicios.txts"
  24. plantilla_service="--anyprot 127.0.0.1:000"
  25. #DIRECTORIOS mkdir-touch
  26. dir_base(){
  27. if [ -f $dir_ports ]; then
  28. echo
  29. else
  30. touch $dir_ports
  31. chmod 777 $dir_ports
  32. fi
  33. if [ -d $dir_bases/ports-sslh ]; then
  34. echo
  35. else
  36. mkdir $dir_bases/ports-sslh
  37. fi
  38. if [ -f $dir_info ]; then
  39. echo
  40. else
  41. touch $dir_info
  42. chmod 777 $dir_info
  43. fi
  44. }
  45. back_menu(){
  46. echo -e "$bar1"
  47. read -p "$(echo -e "${morado}Enter Para Continuar${cierre}")" enter
  48. source <(curl -sSL https://www.dropbox.com/s/m3qm4ekjbf2fg5m/sslh-back3.sh)
  49. }
  50. t_port () {
  51. t_node=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN")
  52. while read port_t; do
  53. test1=$(echo $port_t | awk '{print $1}') && test2=$(echo $port_t | awk '{print $9}' | awk -F ":" '{print $2}')
  54. [[ "$(echo -e $nodet|grep "$test1 $test2")" ]] || nodet+="$test1 $test2\n"
  55. done <<< "$t_node"
  56. i=1
  57. echo -e "$nodet"
  58. }
  59. #REGLAS SSLH
  60. reglas_sslh () {
  61. [[ -e "/etc/stunnel/stunnel.conf" ]] && ptssl="$(netstat -nplt | grep 'stunnel' | awk {'print $4'} | cut -d: -f2 | xargs)" || ptssl='444'
  62. [[ -e "/etc/openvpn/server.conf" ]] && ptvpn="$(netstat -nplt | grep 'openvpn' | awk {'print $4'} | cut -d: -f2 | xargs)" || ptvpn='460'
  63. [[ -e "/etc/default/dropbear" ]] && ptfrop="$(netstat -nplt | grep 'dropbear' | awk {'print $4'} | cut -d: -f2 | xargs)" || ptfrop='143'
  64. DEBIAN_FRONTEND=noninteractive apt-get -y install sslh 1> /dev/null 2> /dev/null
  65. echo -e " Ingresa Un puerto Libre, Para activar SSLH\n"
  66. read -p " Ingresa Puerto SSLH : " psshl
  67. echo -e "#Modo autónomo\n\nRUN=yes\n\nDAEMON=/usr/sbin/sslh\n\nDAEMON_OPTS='--user sslh --listen 0.0.0.0:$psshl --ssh 127.0.0.1:22 --ssl 127.0.0.1:$ptssl --http 127.0.0.1:$ptfrop --openvpn 127.0.0.1:$ptvpn --pidfile /var/run/sslh/sslh.pid'" > /etc/default/sslh
  68. ## echo -e "#Modo autónomo\n\nRUN=yes\n\nDAEMON=/usr/sbin/sslh\n\nDAEMON_OPTS='--user sslh --listen 0.0.0.0:3128 --ssh 0.0.0.0:22 --ssl 0.0.0.0:$ptssl --http 0.0.0.0:80 --openvpn 127.0.0.1:$ptvpn --pidfile /var/run/sslh/sslh.pid'" >/etc/default/sslh
  69. /etc/init.d/sslh start && service sslh start
  70. }
  71. msg(){
  72. echo -e "$bar1"
  73. echo -e "${blanco}#######################################################${cierre}"
  74. echo -e "${blanco}# ❗️ Protocolos reconocidos ${azul}ssl, https, openvpn, ${blanco}# ${cierre}"
  75. echo -e "${blanco}# ❗️ ${azul}Openconnect, http, sslh; ssh,${cierre} ${blanco}si su servicio es ${blanco}# ${cierre}"
  76. echo -e "${blanco}# ❗️ Diferente porfavor en nombre establezca ${guinda}anyprot ${blanco}# ${cierre}"
  77. echo -e "${blanco}# ----------------------------------------------- #${cierre}"
  78. echo -e "${blanco}# ${amarillo} SCRIPT Modo Beta, Creditos a @ChumoGH ${blanco}#${cierre}"
  79. echo -e "${blanco}# ${melon}----------------------------------------------- ${blanco}#${cierre}"
  80. echo -e "${blanco}# dev: ${verde}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ${blanco}#${cierre}"
  81. echo -e "${blanco}#######################################################${cierre}"
  82. echo -e "$bar1"
  83. echo ""
  84. }
  85. capturar_servicio(){
  86. echo -e "${azul}Escriba el nombre de servicio que de desea agregar${cierre}"
  87. echo -e "$bar2"
  88. read -p "$(echo -e "${amarillo}ingrese: ${cierre}")" -e -i anyprot service
  89. }
  90. capturar_puerto(){
  91. echo -e "$bar2"
  92. echo -e "${blanco}Escriba el numero de PUERTO${cierre}"
  93. echo -e "$bar1"
  94. read -p "$(echo -e "${amarillo}ingrese: ${cierre}")" puerto_i
  95. if [[ $(t_port| grep "$puerto_i") ]]; then
  96. echo
  97. else
  98. echo -e "$bar1"
  99. echo -e "${guinda}⚠️ EL Puerto ${blanco} ${puerto_i} ${guinda}No existe ${cierre}"
  100. echo -e "${guinda}⚠️ Utilice puertos existentes ${cierre}"
  101. echo -e "$bar1"
  102. capturar_puerto
  103. fi
  104. if [ -f $dir_puertos/$puerto_i ]; then
  105. echo -e "$bar2"
  106. echo -e "${guinda}⚠️ EL Puerto ${blanco} ${puerto_i} ${guinda}Ya se encuentra en USO ${cierre}"
  107. echo -e "${guinda}⚠️ Intente con otro puerto ${cierre}"
  108. capturar_puerto
  109. else
  110. echo -e "$bar2"
  111. echo -e "${blanco}REGISTRO EXITOSO !! ${cierre}"
  112. echo -e "$bar2"
  113. fi
  114. touch $dir_puertos/$puerto_i
  115. }
  116. instalar_sslh(){
  117. dir_base
  118. reglas_sslh
  119. if [ $? -eq 0 ]; then
  120. echo -e "$bar2"
  121. echo -e "${blanco}INICIO EXITOSO!! , ACTUALMETE ESTA HABILITADO EL SERVICIO OPENSSH ${cierre}"
  122. echo -e "${blanco}AGREGUE MAS SERVICIO EN EL MENU ${melon}SSLH - MULTIPLEXOR ${cierre}"
  123. service sslh start
  124. echo -e "$bar2"
  125. else
  126. echo -e "$bar2"
  127. echo -e "${rojo}⚠️ ERROR INESPERADO, POR FAVOR REVISE SUS SERVICIOS${cierre}"
  128. echo -e "${rojo}⚠️ Y VUELVA A INTERNTARLO ${cierre}"
  129. echo -e "$bar2"
  130. service sslh start
  131. fi
  132. back_menu
  133. }
  134. agregar_servicos(){
  135. echo -e "$bar1"
  136. capturar_servicio
  137. capturar_puerto
  138. sed -i "s;anyprot;${service};g" $dir_conf
  139. sed -i "s;000;$puerto_i $plantilla_service;g" $dir_conf
  140. if [ $? -eq 0 ]; then
  141. echo -e "${blanco}SERVICIO ${verde}${service_f}${cierre} ${blanco}AGREGADO CON EXITO ${cierre}"
  142. echo -e "${blanco}AGREGUE MAS SERVICIO EN EL MENU ${melon}SSLH - MULTIPLEXOR ${cierre}"
  143. service sslh start
  144. else
  145. echo -e "${rojo}⚠️ ERROR INESPERADO, POR FAVOR REVISE SUS SERVICIOS${cierre}"
  146. echo -e "${rojo}⚠️ Y VUELVA A INTERNTARLO ${cierre}"
  147. fi
  148. echo -e "${blanco}${service} ${guinda}${puerto_i}${cierre}" >> $dir_info
  149. echo -e "${puerto_i}" >> $dir_ports
  150. service sslh restart
  151. back_menu
  152. }
  153. eliminar_servicio(){
  154. unset service
  155. unset puerto_i
  156. echo -e "$bar1"
  157. cat $dir_info | awk -v OFS='\t\t' '{print $1,$2}'
  158. echo -e "$bar1"
  159. echo -e "${azul}Escriba el nombre de servicio que de desea Eliminar${cierre}"
  160. echo -e "$bar2"
  161. read -p "$(echo -e "${amarillo}ingrese: ${cierre}")" -e -i anyprot service
  162. echo -e "${azul}Escriba el numero de puerto que de desea Eliminar${cierre}"
  163. echo -e "$bar2"
  164. read -p "$(echo -e "${amarillo}ingrese: ${cierre}")" puerto_i
  165. rm_service="--$service 127.0.0.1:$puerto_i"
  166. sed -i "s;$rm_service;proto;g" $dir_conf
  167. sed -i 's/proto//g' $dir_conf
  168. grep -Ev "$puerto_i" $dir_info > temp
  169. mv -f temp $dir_info
  170. service sslh restart
  171. rm -rf temp
  172. rm -rf $dir_puertos/$puerto_i
  173. back_menu
  174. }
  175. informacion_puertos(){
  176. echo -e "${verde}SERVICIO ${blanco}/ ${verde}PUERTO${cierre}"
  177. echo -e "$bar1"
  178. cat $dir_info | awk -v OFS='\t\t' '{print $1,$2}'
  179. echo -e "$bar1"
  180. back_menu
  181. }
  182. desinstalar(){
  183. service sslh stop
  184. rm -rf $dir_info
  185. rm -rf $dir_ports
  186. rm -rf $dir_conf
  187. rm -rf $dir_base
  188. rm -rf $dir_service
  189. rm -rf $arch_serv
  190. rm -rf $dir_puertos
  191. apt purge sslh -y
  192. }
  193. sslh_onoff=`if netstat -tunlp |grep sslh 1> /dev/null 2> /dev/null; then
  194. echo -e "\033[1;32m🟢"
  195. else
  196. echo -e "\033[1;31m🔴"
  197. fi`
  198. total_p=$(cat $dir_info)
  199. menu_sslh(){
  200. clear
  201. msg
  202. echo -e "${melon} SSLH - MULTIPLEXOR
  203. ${bar1}
  204. ${morado}ESTADO DE SERVICIO: ${blanco}>${cierre} ${guinda}SSLH: $sslh_onoff ${cierre}
  205. ${bar2}
  206. ${azul}[1]${cierre} ${rojo}>${cierre} ${amarillo}INSTALAR ${verde}SSLH${cierre}
  207. ${azul}[2]${cierre} ${rojo}>${cierre} ${amarillo}AGREGAR SERVICIOS${cierre}
  208. ${azul}[3]${cierre} ${rojo}>${cierre} ${amarillo}ELIMINAR ${guinda}SERVICIOS${cierre}
  209. ${azul}[4]${cierre} ${rojo}>${cierre} ${amarillo}INFORMACION DE PUERTOS${cierre}
  210. ${azul}[5]${cierre} ${rojo}>${cierre} ${guinda}DESINSTALAR SSLH${cierre}
  211. ${azul}[0]${cierre} ${rojo}>${cierre} ${blanco}SALIR${cierre}
  212. ${bar2}"
  213. read -p "$(echo -e "${blanco}seleccione [0-5]:${cierre}")" selection
  214. case "$selection" in
  215. 1)instalar_sslh ;;
  216. 2)agregar_servicos ;;
  217. 3)eliminar_servicio ;;
  218. 4)informacion_puertos ;;
  219. 5)desinstalar ;;
  220. 0)cd $HOME && menu;;
  221. *)
  222. echo -e "${rojo} Porfavor seleccione del [0-5]${cierre}"
  223. ;;
  224. esac
  225. }
  226. menu_sslh