squid.sh 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. #!/bin/bash
  2. lshost(){
  3. n=1
  4. for i in `cat $payload|awk -F "/" '{print $1,$2,$3,$4}'`; do
  5. echo -e " $(msg -verd "$n)") $(msg -verm2 ">") $(msg -teal "$i")"
  6. pay[$n]=$i
  7. let n++
  8. done
  9. }
  10. fun_squid(){
  11. if [[ -e /etc/squid/squid.conf ]]; then
  12. var_squid="/etc/squid/squid.conf"
  13. elif [[ -e /etc/squid3/squid.conf ]]; then
  14. var_squid="/etc/squid3/squid.conf"
  15. fi
  16. [[ -e $var_squid ]] && {
  17. clear
  18. msg -bar
  19. print_center -ama "$(fun_trans "REMOVIENDO SQUID")"
  20. print_center -ama "Aguarde un momento!!!"
  21. msg -bar
  22. [[ -d "/etc/squid" ]] && {
  23. service squid stop > /dev/null 2>&1
  24. apt-get remove squid -y >/dev/null 2>&1
  25. apt-get purge squid -y >/dev/null 2>&1
  26. rm -rf /etc/squid >/dev/null 2>&1
  27. }
  28. [[ -d "/etc/squid3" ]] && {
  29. service squid3 stop > /dev/null 2>&1
  30. apt-get remove squid3 -y >/dev/null 2>&1
  31. apt-get purge squid3 -y >/dev/null 2>&1
  32. rm -rf /etc/squid3 >/dev/null 2>&1
  33. }
  34. clear
  35. msg -bar
  36. print_center -verd "$(fun_trans "Squid removido")"
  37. [[ -e $var_squid ]] && rm -rf $var_squid
  38. [[ -e /etc/payloads ]] && rm -rf /etc/payloads
  39. enter
  40. return 1
  41. }
  42. clear
  43. msg -bar
  44. print_center -ama "$(fun_trans "INSTALADOR SQUID ADMRufu")"
  45. msg -bar
  46. print_center -ama " $(fun_trans "Seleccione los puertos en orden secuencial")"
  47. print_center -ama " Ejemplo: \e[32m80 8080 8799 3128"
  48. msg -bar
  49. while [[ -z $PORT ]]; do
  50. msg -ne " $(fun_trans "Digite los Puertos:") "; read PORT
  51. tput cuu1 && tput dl1
  52. [[ $(mportas|grep -w "${PORT}") = "" ]] && {
  53. echo -e "\033[1;33m $(fun_trans "Puerto de squid:")\033[1;32m ${PORT} OK"
  54. } || {
  55. echo -e "\033[1;33m $(fun_trans "Puerto de squid:")\033[1;31m ${PORT} FAIL" && sleep 2
  56. tput cuu1 && tput dl1
  57. unset PORT
  58. }
  59. done
  60. msg -bar
  61. print_center -ama " $(fun_trans "INSTALANDO SQUID")"
  62. msg -bar
  63. fun_bar "apt-get install squid3 -y"
  64. msg -bar
  65. print_center -ama " $(fun_trans "INICIANDO CONFIGURACION")"
  66. cat <<-EOF > /etc/payloads
  67. .bookclaro.com.br/
  68. .claro.com.ar/
  69. .claro.com.br/
  70. .claro.com.co/
  71. .claro.com.ec/
  72. .claro.com.gt/
  73. .cloudfront.net/
  74. .claro.com.ni/
  75. .claro.com.pe/
  76. .claro.com.sv/
  77. .claro.cr/
  78. .clarocurtas.com.br/
  79. .claroideas.com/
  80. .claroideias.com.br/
  81. .claromusica.com/
  82. .clarosomdechamada.com.br/
  83. .clarovideo.com/
  84. .facebook.net/
  85. .facebook.com/
  86. .netclaro.com.br/
  87. .oi.com.br/
  88. .oimusica.com.br/
  89. .speedtest.net/
  90. .tim.com.br/
  91. .timanamaria.com.br/
  92. .vivo.com.br/
  93. .rdio.com/
  94. .compute-1.amazonaws.com/
  95. .portalrecarga.vivo.com.br/
  96. .vivo.ddivulga.com/
  97. EOF
  98. unset var_squid
  99. if [[ -d /etc/squid ]]; then
  100. var_squid="/etc/squid/squid.conf"
  101. elif [[ -d /etc/squid3 ]]; then
  102. var_squid="/etc/squid3/squid.conf"
  103. fi
  104. ip=$(fun_ip)
  105. cat <<-EOF > $var_squid
  106. #Configuracion SquiD
  107. acl url1 dstdomain -i $ip
  108. acl url2 dstdomain -i 127.0.0.1
  109. acl url3 url_regex -i '/etc/payloads'
  110. acl url4 dstdomain -i localhost
  111. acl all src 0.0.0.0/0
  112. http_access allow url1
  113. http_access allow url2
  114. http_access allow url3
  115. http_access allow url4
  116. http_access deny all
  117. #puertos
  118. EOF
  119. for pts in $(echo -e $PORT); do
  120. echo -e "http_port $pts" >> $var_squid
  121. [[ -f "/usr/sbin/ufw" ]] && ufw allow $pts/tcp &>/dev/null 2>&1
  122. done
  123. cat <<-EOF >> $var_squid
  124. #Nombre Squid
  125. visible_hostname ADMRufu
  126. via off
  127. forwarded_for off
  128. pipeline_prefetch off
  129. EOF
  130. print_center -ama "$(fun_trans "REINICIANDO SERVICIOS")"
  131. [[ -d "/etc/squid/" ]] && {
  132. service ssh restart > /dev/null 2>&1
  133. /etc/init.d/squid start > /dev/null 2>&1
  134. service squid restart > /dev/null 2>&1
  135. }
  136. [[ -d "/etc/squid3/" ]] && {
  137. service ssh restart > /dev/null 2>&1
  138. /etc/init.d/squid3 start > /dev/null 2>&1
  139. service squid3 restart > /dev/null 2>&1
  140. }
  141. sleep 2s
  142. tput cuu1 && tput dl1
  143. print_center -verd "$(fun_trans "SQUID CONFIGURADO")"
  144. enter
  145. }
  146. add_host(){
  147. clear
  148. msg -bar
  149. print_center -ama "$(fun_trans "Hosts Actuales Dentro del Squid")"
  150. msg -bar
  151. lshost
  152. back
  153. while [[ $hos != \.* ]]; do
  154. msg -nazu " $(fun_trans "Digita un nuevo host"): " && read hos
  155. [[ $hos = 0 ]] && return 1
  156. tput cuu1 && tput dl1
  157. [[ $hos = \.* ]] && continue
  158. print_center -ama "$(fun_trans "El host deve comensar con") .punto.com"
  159. sleep 3s
  160. tput cuu1 && tput dl1
  161. done
  162. host="$hos/"
  163. [[ -z $host ]] && return 1
  164. if [[ `grep -c "^$host" $payload` -eq 1 ]]; then
  165. print_center -ama " $(fun_trans "El host ya exciste")"
  166. enter
  167. return 1
  168. fi
  169. echo "$host" >> $payload && grep -v "^$" $payload > /tmp/a && mv /tmp/a $payload
  170. clear
  171. msg -bar
  172. print_center -ama "$(fun_trans "Host Agregado con Exito")"
  173. msg -bar
  174. lshost
  175. msg -bar
  176. print_center -ama "Reiniciando servicios"
  177. if [[ ! -f "/etc/init.d/squid" ]]; then
  178. service squid3 reload &>/dev/null
  179. service squid3 restart &>/dev/null
  180. else
  181. /etc/init.d/squid reload &>/dev/null
  182. service squid restart &>/dev/null
  183. fi
  184. tput cuu1 && tput dl1
  185. tput cuu1 && tput dl1
  186. enter
  187. return 1
  188. }
  189. del_host(){
  190. unset opcion
  191. clear
  192. msg -bar
  193. print_center -ama "$(fun_trans "Hosts Actuales Dentro del Squid")"
  194. msg -bar
  195. lshost
  196. back
  197. while [[ -z $opcion ]]; do
  198. msg -ne " Eliminar el host numero: "
  199. read opcion
  200. if [[ ! $opcion =~ $numero ]]; then
  201. tput cuu1 && tput dl1
  202. print_center -verm2 "ingresa solo numeros"
  203. sleep 2s
  204. tput cuu1 && tput dl1
  205. unset opcion
  206. elif [[ $opcion -gt ${#pay[@]} ]]; then
  207. tput cuu1 && tput dl1
  208. print_center -ama "solo numeros entre 0 y ${#pay[@]}"
  209. sleep 2s
  210. tput cuu1 && tput dl1
  211. unset opcion
  212. fi
  213. done
  214. [[ $opcion = 0 ]] && return 1
  215. host="${pay[$opcion]}/"
  216. [[ -z $host ]] && return 1
  217. [[ `grep -c "^$host" $payload` -ne 1 ]] && print_center -ama "$(fun_trans "Host No Encontrado")" && return 1
  218. grep -v "^$host" $payload > /tmp/a && mv /tmp/a $payload
  219. clear
  220. msg -bar
  221. print_center -ama "$(fun_trans "Host Removido Con Exito")"
  222. msg -bar
  223. lshost
  224. msg -bar
  225. print_center -ama "Reiniciando servicios"
  226. if [[ ! -f "/etc/init.d/squid" ]]; then
  227. service squid3 reload &>/dev/null
  228. service squid3 restart &>/dev/null
  229. else
  230. /etc/init.d/squid reload &>/dev/null
  231. service squid restart &>/dev/null
  232. fi
  233. tput cuu1 && tput dl1
  234. tput cuu1 && tput dl1
  235. enter
  236. return 1
  237. }
  238. online_squid(){
  239. payload="/etc/payloads"
  240. clear
  241. msg -bar
  242. print_center -ama "$(fun_trans "CONFIGURACION DE SQUID")"
  243. msg -bar
  244. menu_func "$(fun_trans "Colocar Host en Squid")" "$(fun_trans "Remover Host de Squid")" "$(fun_trans "Desinstalar Squid")"
  245. back
  246. opcion=$(selection_fun 3)
  247. case $opcion in
  248. 1)add_host;;
  249. 2)del_host;;
  250. 3)fun_squid;;
  251. 0)return 1;;
  252. esac
  253. }
  254. if [[ -e /etc/squid/squid.conf ]]; then
  255. online_squid
  256. elif [[ -e /etc/squid3/squid.conf ]]; then
  257. online_squid
  258. else
  259. fun_squid
  260. return 1
  261. fi