blockBT.sh 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537
  1. #!/bin/bash
  2. #19/12/19
  3. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
  4. export PATH
  5. declare -A cor=( [0]="\033[1;37m" [1]="\033[1;34m" [2]="\033[1;31m" [3]="\033[1;33m" [4]="\033[1;32m" )
  6. SCPdir="/etc/VPS-MX" && [[ ! -d ${SCPdir} ]] && exit 1
  7. SCPusr="${SCPdir}/controlador" && [[ ! -d ${SCPusr} ]] && mkdir ${SCPusr}
  8. SCPfrm="${SCPdir}/herramientas" && [[ ! -d ${SCPfrm} ]] && mkdir ${SCPfrm}
  9. SCPinst="${SCPdir}/protocolos" && [[ ! -d ${SCPfrm} ]] && mkdir ${SCPfrm}
  10. sh_ver="1.0.11"
  11. Green_font_prefix="\033[32m" && Red_font_prefix="\033[31m" && Green_background_prefix="\033[42;37m" && Red_background_prefix="\033[41;37m" && Font_color_suffix="\033[0m"
  12. Info="${Green_font_prefix}[Informacion]${Font_color_suffix}"
  13. Error="${Red_font_prefix}[Error]${Font_color_suffix}"
  14. smtp_port="25,26,465,587"
  15. pop3_port="109,110,995"
  16. imap_port="143,218,220,993"
  17. other_port="24,50,57,105,106,158,209,1109,24554,60177,60179"
  18. bt_key_word="torrent
  19. .torrent
  20. peer_id=
  21. announce
  22. info_hash
  23. get_peers
  24. find_node
  25. BitTorrent
  26. announce_peer
  27. BitTorrent protocol
  28. announce.php?passkey=
  29. magnet:
  30. xunlei
  31. sandai
  32. Thunder
  33. XLLiveUD"
  34. check_sys(){
  35. if [[ -f /etc/redhat-release ]]; then
  36. release="centos"
  37. elif cat /etc/issue | grep -q -E -i "debian"; then
  38. release="debian"
  39. elif cat /etc/issue | grep -q -E -i "ubuntu"; then
  40. release="ubuntu"
  41. elif cat /etc/issue | grep -q -E -i "centos|red hat|redhat"; then
  42. release="centos"
  43. elif cat /proc/version | grep -q -E -i "debian"; then
  44. release="debian"
  45. elif cat /proc/version | grep -q -E -i "ubuntu"; then
  46. release="ubuntu"
  47. elif cat /proc/version | grep -q -E -i "centos|red hat|redhat"; then
  48. release="centos"
  49. fi
  50. bit=`uname -m`
  51. }
  52. check_BT(){
  53. Cat_KEY_WORDS
  54. BT_KEY_WORDS=$(echo -e "$Ban_KEY_WORDS_list"|grep "torrent")
  55. }
  56. check_SPAM(){
  57. Cat_PORT
  58. SPAM_PORT=$(echo -e "$Ban_PORT_list"|grep "${smtp_port}")
  59. }
  60. Cat_PORT(){
  61. Ban_PORT_list=$(iptables -t filter -L OUTPUT -nvx --line-numbers|grep "REJECT"|awk '{print $13}')
  62. }
  63. Cat_KEY_WORDS(){
  64. Ban_KEY_WORDS_list=""
  65. Ban_KEY_WORDS_v6_list=""
  66. if [[ ! -z ${v6iptables} ]]; then
  67. Ban_KEY_WORDS_v6_text=$(${v6iptables} -t mangle -L OUTPUT -nvx --line-numbers|grep "DROP")
  68. Ban_KEY_WORDS_v6_list=$(echo -e "${Ban_KEY_WORDS_v6_text}"|sed -r 's/.*\"(.+)\".*/\1/')
  69. fi
  70. Ban_KEY_WORDS_text=$(${v4iptables} -t mangle -L OUTPUT -nvx --line-numbers|grep "DROP")
  71. Ban_KEY_WORDS_list=$(echo -e "${Ban_KEY_WORDS_text}"|sed -r 's/.*\"(.+)\".*/\1/')
  72. }
  73. View_PORT(){
  74. Cat_PORT
  75. echo -e "========${Red_background_prefix} Puerto Bloqueado Actualmente ${Font_color_suffix}========="
  76. echo -e "$Ban_PORT_list" && echo && echo -e "==============================================="
  77. }
  78. View_KEY_WORDS(){
  79. Cat_KEY_WORDS
  80. echo -e "============${Red_background_prefix} Actualmente Prohibido ${Font_color_suffix}============"
  81. echo -e "$Ban_KEY_WORDS_list" && echo -e "==============================================="
  82. }
  83. View_ALL(){
  84. echo
  85. View_PORT
  86. View_KEY_WORDS
  87. echo
  88. msg -bar2
  89. }
  90. Save_iptables_v4_v6(){
  91. if [[ ${release} == "centos" ]]; then
  92. if [[ ! -z "$v6iptables" ]]; then
  93. service ip6tables save
  94. chkconfig --level 2345 ip6tables on
  95. fi
  96. service iptables save
  97. chkconfig --level 2345 iptables on
  98. else
  99. if [[ ! -z "$v6iptables" ]]; then
  100. ip6tables-save > /etc/ip6tables.up.rules
  101. echo -e "#!/bin/bash\n/sbin/iptables-restore < /etc/iptables.up.rules\n/sbin/ip6tables-restore < /etc/ip6tables.up.rules" > /etc/network/if-pre-up.d/iptables
  102. else
  103. echo -e "#!/bin/bash\n/sbin/iptables-restore < /etc/iptables.up.rules" > /etc/network/if-pre-up.d/iptables
  104. fi
  105. iptables-save > /etc/iptables.up.rules
  106. chmod +x /etc/network/if-pre-up.d/iptables
  107. fi
  108. }
  109. Set_key_word() { $1 -t mangle -$3 OUTPUT -m string --string "$2" --algo bm --to 65535 -j DROP; }
  110. Set_tcp_port() {
  111. [[ "$1" = "$v4iptables" ]] && $1 -t filter -$3 OUTPUT -p tcp -m multiport --dports "$2" -m state --state NEW,ESTABLISHED -j REJECT --reject-with icmp-port-unreachable
  112. [[ "$1" = "$v6iptables" ]] && $1 -t filter -$3 OUTPUT -p tcp -m multiport --dports "$2" -m state --state NEW,ESTABLISHED -j REJECT --reject-with tcp-reset
  113. }
  114. Set_udp_port() { $1 -t filter -$3 OUTPUT -p udp -m multiport --dports "$2" -j DROP; }
  115. Set_SPAM_Code_v4(){
  116. for i in ${smtp_port} ${pop3_port} ${imap_port} ${other_port}
  117. do
  118. Set_tcp_port $v4iptables "$i" $s
  119. Set_udp_port $v4iptables "$i" $s
  120. done
  121. }
  122. Set_SPAM_Code_v4_v6(){
  123. for i in ${smtp_port} ${pop3_port} ${imap_port} ${other_port}
  124. do
  125. for j in $v4iptables $v6iptables
  126. do
  127. Set_tcp_port $j "$i" $s
  128. Set_udp_port $j "$i" $s
  129. done
  130. done
  131. }
  132. Set_PORT(){
  133. if [[ -n "$v4iptables" ]] && [[ -n "$v6iptables" ]]; then
  134. Set_tcp_port $v4iptables $PORT $s
  135. Set_udp_port $v4iptables $PORT $s
  136. Set_tcp_port $v6iptables $PORT $s
  137. Set_udp_port $v6iptables $PORT $s
  138. elif [[ -n "$v4iptables" ]]; then
  139. Set_tcp_port $v4iptables $PORT $s
  140. Set_udp_port $v4iptables $PORT $s
  141. fi
  142. Save_iptables_v4_v6
  143. }
  144. Set_KEY_WORDS(){
  145. key_word_num=$(echo -e "${key_word}"|wc -l)
  146. for((integer = 1; integer <= ${key_word_num}; integer++))
  147. do
  148. i=$(echo -e "${key_word}"|sed -n "${integer}p")
  149. Set_key_word $v4iptables "$i" $s
  150. [[ ! -z "$v6iptables" ]] && Set_key_word $v6iptables "$i" $s
  151. done
  152. Save_iptables_v4_v6
  153. }
  154. Set_BT(){
  155. key_word=${bt_key_word}
  156. Set_KEY_WORDS
  157. Save_iptables_v4_v6
  158. }
  159. Set_SPAM(){
  160. if [[ -n "$v4iptables" ]] && [[ -n "$v6iptables" ]]; then
  161. Set_SPAM_Code_v4_v6
  162. elif [[ -n "$v4iptables" ]]; then
  163. Set_SPAM_Code_v4
  164. fi
  165. Save_iptables_v4_v6
  166. }
  167. Set_ALL(){
  168. Set_BT
  169. Set_SPAM
  170. }
  171. Ban_BT(){
  172. check_BT
  173. [[ ! -z ${BT_KEY_WORDS} ]] && echo -e "${Error} Torrent bloqueados y Palabras Claves, no es\nnecesario volver a prohibirlas !" && msg -bar2 && exit 0
  174. s="A"
  175. Set_BT
  176. View_ALL
  177. echo -e "${Info} Torrent bloqueados y Palabras Claves !"
  178. msg -bar2
  179. }
  180. Ban_SPAM(){
  181. check_SPAM
  182. [[ ! -z ${SPAM_PORT} ]] && echo -e "${Error} Se detectó un puerto SPAM bloqueado, no es\nnecesario volver a bloquear !" && msg -bar2 && exit 0
  183. s="A"
  184. Set_SPAM
  185. View_ALL
  186. echo -e "${Info} Puertos SPAM Bloqueados !"
  187. msg -bar2
  188. }
  189. Ban_ALL(){
  190. check_BT
  191. check_SPAM
  192. s="A"
  193. if [[ -z ${BT_KEY_WORDS} ]]; then
  194. if [[ -z ${SPAM_PORT} ]]; then
  195. Set_ALL
  196. View_ALL
  197. echo -e "${Info} Torrent bloqueados, Palabras Claves y Puertos SPAM !"
  198. msg -bar2
  199. else
  200. Set_BT
  201. View_ALL
  202. echo -e "${Info} Torrent bloqueados y Palabras Claves !"
  203. fi
  204. else
  205. if [[ -z ${SPAM_PORT} ]]; then
  206. Set_SPAM
  207. View_ALL
  208. echo -e "${Info} Puerto SPAM (spam) prohibido !"
  209. else
  210. echo -e "${Error} Torrent Bloqueados, Palabras Claves y Puertos SPAM,\nno es necesario volver a prohibir !" && msg -bar2 && exit 0
  211. fi
  212. fi
  213. }
  214. UnBan_BT(){
  215. check_BT
  216. [[ -z ${BT_KEY_WORDS} ]] && echo -e "${Error} Torrent y Palabras Claves no bloqueadas, verifique !"&& msg -bar2 && exit 0
  217. s="D"
  218. Set_BT
  219. View_ALL
  220. echo -e "${Info} Torrent Desbloqueados y Palabras Claves !"
  221. msg -bar2
  222. }
  223. UnBan_SPAM(){
  224. check_SPAM
  225. [[ -z ${SPAM_PORT} ]] && echo -e "${Error} Puerto SPAM no detectados, verifique !" && msg -bar2 && exit 0
  226. s="D"
  227. Set_SPAM
  228. View_ALL
  229. echo -e "${Info} Puertos de SPAM Desbloqueados !"
  230. msg -bar2
  231. }
  232. UnBan_ALL(){
  233. check_BT
  234. check_SPAM
  235. s="D"
  236. if [[ ! -z ${BT_KEY_WORDS} ]]; then
  237. if [[ ! -z ${SPAM_PORT} ]]; then
  238. Set_ALL
  239. View_ALL
  240. echo -e "${Info} Torrent, Palabras Claves y Puertos SPAM Desbloqueados !"
  241. msg -bar2
  242. else
  243. Set_BT
  244. View_ALL
  245. echo -e "${Info} Torrent, Palabras Claves Desbloqueados !"
  246. msg -bar2
  247. fi
  248. else
  249. if [[ ! -z ${SPAM_PORT} ]]; then
  250. Set_SPAM
  251. View_ALL
  252. echo -e "${Info} Puertos SPAM Desbloqueados !"
  253. msg -bar2
  254. else
  255. echo -e "${Error} No se detectan Torrent, Palabras Claves y Puertos SPAM Bloqueados, verifique !" && msg -bar2 && exit 0
  256. fi
  257. fi
  258. }
  259. ENTER_Ban_KEY_WORDS_type(){
  260. Type=$1
  261. Type_1=$2
  262. if [[ $Type_1 != "ban_1" ]]; then
  263. echo -e "Por favor seleccione un tipo de entrada:
  264. 1. Entrada manual (solo se admiten palabras clave únicas)
  265. 2. Lectura local de archivos (admite lectura por lotes de palabras clave, una palabra clave por línea)
  266. 3. Lectura de dirección de red (admite lectura por lotes de palabras clave, una palabra clave por línea)" && echo
  267. read -e -p "(Por defecto: 1. Entrada manual):" key_word_type
  268. fi
  269. [[ -z "${key_word_type}" ]] && key_word_type="1"
  270. if [[ ${key_word_type} == "1" ]]; then
  271. if [[ $Type == "ban" ]]; then
  272. ENTER_Ban_KEY_WORDS
  273. else
  274. ENTER_UnBan_KEY_WORDS
  275. fi
  276. elif [[ ${key_word_type} == "2" ]]; then
  277. ENTER_Ban_KEY_WORDS_file
  278. elif [[ ${key_word_type} == "3" ]]; then
  279. ENTER_Ban_KEY_WORDS_url
  280. else
  281. if [[ $Type == "ban" ]]; then
  282. ENTER_Ban_KEY_WORDS
  283. else
  284. ENTER_UnBan_KEY_WORDS
  285. fi
  286. fi
  287. }
  288. ENTER_Ban_PORT(){
  289. echo -e "Ingrese el puerto que Bloqueará:\n(segmento de Puerto único / Puerto múltiple / Puerto continuo)\n"
  290. if [[ ${Ban_PORT_Type_1} != "1" ]]; then
  291. echo -e "
  292. ${Green_font_prefix}======== Ejemplo Descripción ========${Font_color_suffix}
  293. -Puerto único: 25 (puerto único)
  294.  -Multipuerto: 25, 26, 465, 587 (varios puertos están separados por comas)
  295.  -Segmento de puerto continuo: 25: 587 (todos los puertos entre 25-587)" && echo
  296. fi
  297. read -e -p "(Intro se cancela por defecto):" PORT
  298. [[ -z "${PORT}" ]] && echo "Cancelado..." && View_ALL && exit 0
  299. }
  300. ENTER_Ban_KEY_WORDS(){
  301. msg -bar2
  302. echo -e "Ingrese las palabras clave que se prohibirán\n(nombre de dominio, etc., solo admite una sola palabra clave)"
  303. if [[ ${Type_1} != "ban_1" ]]; then
  304. echo ""
  305. echo -e "${Green_font_prefix}======== Ejemplo Descripción ========${Font_color_suffix}
  306. -Palabras clave: youtube, que prohíbe el acceso a cualquier nombre de dominio que contenga la palabra clave youtube.
  307.  -Palabras clave: youtube.com, que prohíbe el acceso a cualquier nombre de dominio (máscara de nombre de pan-dominio) que contenga la palabra clave youtube.com.
  308.  -Palabras clave: www.youtube.com, que prohíbe el acceso a cualquier nombre de dominio (máscara de subdominio) que contenga la palabra clave www.youtube.com.
  309.  -Autoevaluación de más efectos (como la palabra clave .zip se puede usar para deshabilitar la descarga de cualquier archivo de sufijo .zip)." && echo
  310. fi
  311. read -e -p "(Intro se cancela por defecto):" key_word
  312. [[ -z "${key_word}" ]] && echo "Cancelado ..." && View_ALL && exit 0
  313. }
  314. ENTER_Ban_KEY_WORDS_file(){
  315. echo -e "Ingrese el archivo local de palabras clave que se prohibirá / desbloqueará (utilice la ruta absoluta)" && echo
  316. read -e -p "(El valor predeterminado es leer key_word.txt en el mismo directorio que el script):" key_word
  317. [[ -z "${key_word}" ]] && key_word="key_word.txt"
  318. if [[ -e "${key_word}" ]]; then
  319. key_word=$(cat "${key_word}")
  320. [[ -z ${key_word} ]] && echo -e "${Error} El contenido del archivo está vacío. !" && View_ALL && exit 0
  321. else
  322. echo -e "${Error} Archivo no encontrado ${key_word} !" && View_ALL && exit 0
  323. fi
  324. }
  325. ENTER_Ban_KEY_WORDS_url(){
  326. echo -e "Ingrese la dirección del archivo de red de palabras clave que se prohibirá / desbloqueará (por ejemplo, http: //xxx.xx/key_word.txt)" && echo
  327. read -e -p "(Intro se cancela por defecto):" key_word
  328. [[ -z "${key_word}" ]] && echo "Cancelado ..." && View_ALL && exit 0
  329. key_word=$(wget --no-check-certificate -t3 -T5 -qO- "${key_word}")
  330. [[ -z ${key_word} ]] && echo -e "${Error} El contenido del archivo de red está vacío o se agotó el tiempo de acceso !" && View_ALL && exit 0
  331. }
  332. ENTER_UnBan_KEY_WORDS(){
  333. View_KEY_WORDS
  334. echo -e "Ingrese la palabra clave que desea desbloquear (ingrese la palabra clave completa y precisa de acuerdo con la lista anterior)" && echo
  335. read -e -p "(Intro se cancela por defecto):" key_word
  336. [[ -z "${key_word}" ]] && echo "Cancelado ..." && View_ALL && exit 0
  337. }
  338. ENTER_UnBan_PORT(){
  339. echo -e "Ingrese el puerto que desea desempaquetar:\n(ingrese el puerto completo y preciso de acuerdo con la lista anterior, incluyendo comas, dos puntos)" && echo
  340. read -e -p "(Intro se cancela por defecto):" PORT
  341. [[ -z "${PORT}" ]] && echo "Cancelado ..." && View_ALL && exit 0
  342. }
  343. Ban_PORT(){
  344. s="A"
  345. ENTER_Ban_PORT
  346. Set_PORT
  347. echo -e "${Info} Puerto bloqueado [ ${PORT} ] !\n"
  348. Ban_PORT_Type_1="1"
  349. while true
  350. do
  351. ENTER_Ban_PORT
  352. Set_PORT
  353. echo -e "${Info} Puerto bloqueado [ ${PORT} ] !\n"
  354. done
  355. View_ALL
  356. }
  357. Ban_KEY_WORDS(){
  358. s="A"
  359. ENTER_Ban_KEY_WORDS_type "ban"
  360. Set_KEY_WORDS
  361. echo -e "${Info} Palabras clave bloqueadas [ ${key_word} ] !\n"
  362. while true
  363. do
  364. ENTER_Ban_KEY_WORDS_type "ban" "ban_1"
  365. Set_KEY_WORDS
  366. echo -e "${Info} Palabras clave bloqueadas [ ${key_word} ] !\n"
  367. done
  368. View_ALL
  369. }
  370. UnBan_PORT(){
  371. s="D"
  372. View_PORT
  373. [[ -z ${Ban_PORT_list} ]] && echo -e "${Error} Se detecta cualquier puerto no bloqueado !" && exit 0
  374. ENTER_UnBan_PORT
  375. Set_PORT
  376. echo -e "${Info} Puerto decapsulado [ ${PORT} ] !\n"
  377. while true
  378. do
  379. View_PORT
  380. [[ -z ${Ban_PORT_list} ]] && echo -e "${Error} No se detecta puertos bloqueados !" && msg -bar2 && exit 0
  381. ENTER_UnBan_PORT
  382. Set_PORT
  383. echo -e "${Info} Puerto decapsulado [ ${PORT} ] !\n"
  384. done
  385. View_ALL
  386. }
  387. UnBan_KEY_WORDS(){
  388. s="D"
  389. Cat_KEY_WORDS
  390. [[ -z ${Ban_KEY_WORDS_list} ]] && echo -e "${Error} No se ha detectado ningún bloqueo !" && exit 0
  391. ENTER_Ban_KEY_WORDS_type "unban"
  392. Set_KEY_WORDS
  393. echo -e "${Info} Palabras clave desbloqueadas [ ${key_word} ] !\n"
  394. while true
  395. do
  396. Cat_KEY_WORDS
  397. [[ -z ${Ban_KEY_WORDS_list} ]] && echo -e "${Error} No se ha detectado ningún bloqueo !" && msg -bar2 && exit 0
  398. ENTER_Ban_KEY_WORDS_type "unban" "ban_1"
  399. Set_KEY_WORDS
  400. echo -e "${Info} Palabras clave desbloqueadas [ ${key_word} ] !\n"
  401. done
  402. View_ALL
  403. }
  404. UnBan_KEY_WORDS_ALL(){
  405. Cat_KEY_WORDS
  406. [[ -z ${Ban_KEY_WORDS_text} ]] && echo -e "${Error} No se detectó ninguna clave, verifique !" && msg -bar2 && exit 0
  407. if [[ ! -z "${v6iptables}" ]]; then
  408. Ban_KEY_WORDS_v6_num=$(echo -e "${Ban_KEY_WORDS_v6_list}"|wc -l)
  409. for((integer = 1; integer <= ${Ban_KEY_WORDS_v6_num}; integer++))
  410. do
  411. ${v6iptables} -t mangle -D OUTPUT 1
  412. done
  413. fi
  414. Ban_KEY_WORDS_num=$(echo -e "${Ban_KEY_WORDS_list}"|wc -l)
  415. for((integer = 1; integer <= ${Ban_KEY_WORDS_num}; integer++))
  416. do
  417. ${v4iptables} -t mangle -D OUTPUT 1
  418. done
  419. Save_iptables_v4_v6
  420. View_ALL
  421. echo -e "${Info} Todas las palabras clave han sido desbloqueadas !"
  422. }
  423. check_iptables(){
  424. v4iptables=`iptables -V`
  425. v6iptables=`ip6tables -V`
  426. if [[ ! -z ${v4iptables} ]]; then
  427. v4iptables="iptables"
  428. if [[ ! -z ${v6iptables} ]]; then
  429. v6iptables="ip6tables"
  430. fi
  431. else
  432. echo -e "${Error} El firewall de iptables no está instalado !
  433. Por favor, instale el firewall de iptables:
  434. CentOS Sistema: yum install iptables -y
  435. Debian / Ubuntu Sistema: apt-get install iptables -y"
  436. fi
  437. }
  438. Update_Shell(){
  439. sh_new_ver=$(wget --no-check-certificate -qO- -t1 -T3 "https://www.dropbox.com/s/xlecnj3kcw5bwqt/blockBT.sh"|grep 'sh_ver="'|awk -F "=" '{print $NF}'|sed 's/\"//g'|head -1)
  440. [[ -z ${sh_new_ver} ]] && echo -e "${Error} No se puede vincular a Github !" && exit 0
  441. wget https://www.dropbox.com/s/xlecnj3kcw5bwqt/blockBT.sh -O /etc/ger-frm/blockBT.sh &> /dev/null
  442. chmod +x /etc/ger-frm/blockBT.sh
  443. echo -e "El script ha sido actualizado a la última versión.[ ${sh_new_ver} ]"
  444. msg -bar2
  445. exit 0
  446. }
  447. check_sys
  448. check_iptables
  449. action=$1
  450. if [[ ! -z $action ]]; then
  451. [[ $action = "banbt" ]] && Ban_BT && exit 0
  452. [[ $action = "banspam" ]] && Ban_SPAM && exit 0
  453. [[ $action = "banall" ]] && Ban_ALL && exit 0
  454. [[ $action = "unbanbt" ]] && UnBan_BT && exit 0
  455. [[ $action = "unbanspam" ]] && UnBan_SPAM && exit 0
  456. [[ $action = "unbanall" ]] && UnBan_ALL && exit 0
  457. fi
  458. clear
  459. clear
  460. msg -bar
  461. echo -e "$(msg -tit) "
  462. echo -e " Panel de Firewall VPS•MX ${Red_font_prefix}[v${sh_ver}]${Font_color_suffix}"
  463. msg -bar2
  464. echo -e " ${Green_font_prefix}0.${Font_color_suffix} Ver la lista actual de prohibidos
  465. ————————————
  466. ${Green_font_prefix}1.${Font_color_suffix} Bloquear Torrent, Palabras Clave
  467. ${Green_font_prefix}2.${Font_color_suffix} Bloquear Puertos SPAM
  468. ${Green_font_prefix}3.${Font_color_suffix} Bloquear Torrent, Palabras Clave + Puertos SPAM
  469. ${Green_font_prefix}4.${Font_color_suffix} Bloquear Puerto personalizado
  470. ${Green_font_prefix}5.${Font_color_suffix} Bloquear Palabras Clave Personalizadas
  471. ————————————
  472. ${Green_font_prefix}6.${Font_color_suffix} Desbloquear Torrent, Palabras Clave
  473. ${Green_font_prefix}7.${Font_color_suffix} Desbloquear Puertos SPAM
  474. ${Green_font_prefix}8.${Font_color_suffix} Desbloquear Torrent, Palabras Clave , Puertos SPAM
  475. ${Green_font_prefix}9.${Font_color_suffix} Desbloquear Puerto Personalizado
  476. ${Green_font_prefix}10.${Font_color_suffix} Desbloquear Palabra Clave Personalizadas
  477. ${Green_font_prefix}11.${Font_color_suffix} Desbloquear Todas las palabras Clave Personalizadas
  478. ————————————
  479. ${Green_font_prefix}12.${Font_color_suffix} Actualizar script" && msg -bar2
  480. read -e -p " Por favor ingrese un número [0-12]:" num && msg -bar2
  481. case "$num" in
  482. 0)
  483. View_ALL
  484. ;;
  485. 1)
  486. Ban_BT
  487. ;;
  488. 2)
  489. Ban_SPAM
  490. ;;
  491. 3)
  492. Ban_ALL
  493. ;;
  494. 4)
  495. Ban_PORT
  496. ;;
  497. 5)
  498. Ban_KEY_WORDS
  499. ;;
  500. 6)
  501. UnBan_BT
  502. ;;
  503. 7)
  504. UnBan_SPAM
  505. ;;
  506. 8)
  507. UnBan_ALL
  508. ;;
  509. 9)
  510. UnBan_PORT
  511. ;;
  512. 10)
  513. UnBan_KEY_WORDS
  514. ;;
  515. 11)
  516. UnBan_KEY_WORDS_ALL
  517. ;;
  518. 12)
  519. Update_Shell
  520. ;;
  521. *)
  522. echo "Por favor ingrese el número correcto [0-12]"
  523. ;;
  524. esac