ports.sh 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. #!/bin/bash
  2. #27/01/2021
  3. clear
  4. clear
  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. port () {
  11. local portas
  12. local portas_var=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN")
  13. i=0
  14. while read port; do
  15. var1=$(echo $port | awk '{print $1}') && var2=$(echo $port | awk '{print $9}' | awk -F ":" '{print $2}')
  16. [[ "$(echo -e ${portas}|grep -w "$var1 $var2")" ]] || {
  17. portas+="$var1 $var2 $portas"
  18. echo "$var1 $var2"
  19. let i++
  20. }
  21. done <<< "$portas_var"
  22. }
  23. verify_port () {
  24. local SERVICE="$1"
  25. local PORTENTRY="$2"
  26. [[ ! $(echo -e $(port|grep -v ${SERVICE})|grep -w "$PORTENTRY") ]] && return 0 || return 1
  27. }
  28. edit_squid () {
  29. msg -ama "$(fun_trans "REDEFINIR PUERTOS SQUID")"
  30. msg -bar
  31. if [[ -e /etc/squid/squid.conf ]]; then
  32. local CONF="/etc/squid/squid.conf"
  33. elif [[ -e /etc/squid3/squid.conf ]]; then
  34. local CONF="/etc/squid3/squid.conf"
  35. fi
  36. NEWCONF="$(cat ${CONF}|grep -v "http_port")"
  37. msg -ne "$(fun_trans "Nuevos Puertos"): "
  38. read -p "" newports
  39. for PTS in `echo ${newports}`; do
  40. verify_port squid "${PTS}" && echo -e "\033[1;33mPort $PTS \033[1;32mOK" || {
  41. echo -e "\033[1;33mPort $PTS \033[1;31mFAIL"
  42. return 1
  43. }
  44. done
  45. rm ${CONF}
  46. while read varline; do
  47. echo -e "${varline}" >> ${CONF}
  48. if [[ "${varline}" = "#portas" ]]; then
  49. for NPT in $(echo ${newports}); do
  50. echo -e "http_port ${NPT}" >> ${CONF}
  51. done
  52. fi
  53. done <<< "${NEWCONF}"
  54. msg -azu "$(fun_trans "AGUARDE")"
  55. service squid restart &>/dev/null
  56. service squid3 restart &>/dev/null
  57. sleep 1s
  58. msg -bar
  59. msg -azu "$(fun_trans "PUERTOS REDEFINIDOS")"
  60. msg -bar
  61. }
  62. edit_apache () {
  63. msg -azu "$(fun_trans "REDEFINIR PUERTOS APACHE")"
  64. msg -bar
  65. local CONF="/etc/apache2/ports.conf"
  66. local NEWCONF="$(cat ${CONF})"
  67. msg -ne "$(fun_trans "Nuevos Puertos"): "
  68. read -p "" newports
  69. for PTS in `echo ${newports}`; do
  70. verify_port apache "${PTS}" && echo -e "\033[1;33mPort $PTS \033[1;32mOK" || {
  71. echo -e "\033[1;33mPort $PTS \033[1;31mFAIL"
  72. return 1
  73. }
  74. done
  75. rm ${CONF}
  76. while read varline; do
  77. if [[ $(echo ${varline}|grep -w "Listen") ]]; then
  78. if [[ -z ${END} ]]; then
  79. echo -e "Listen ${newports}" >> ${CONF}
  80. END="True"
  81. else
  82. echo -e "${varline}" >> ${CONF}
  83. fi
  84. else
  85. echo -e "${varline}" >> ${CONF}
  86. fi
  87. done <<< "${NEWCONF}"
  88. msg -azu "$(fun_trans "AGUARDE")"
  89. service apache2 restart &>/dev/null
  90. sleep 1s
  91. msg -bar
  92. msg -azu "$(fun_trans "PUERTOS REDEFINIDOS")"
  93. msg -bar
  94. }
  95. edit_openvpn () {
  96. msg -azu "$(fun_trans "REDEFINIR PUERTOS OPENVPN")"
  97. msg -bar
  98. local CONF="/etc/openvpn/server.conf"
  99. local CONF2="/etc/openvpn/client-common.txt"
  100. local NEWCONF="$(cat ${CONF}|grep -v [Pp]ort)"
  101. local NEWCONF2="$(cat ${CONF2})"
  102. msg -ne "$(fun_trans "Nuevos puertos"): "
  103. read -p "" newports
  104. for PTS in `echo ${newports}`; do
  105. verify_port openvpn "${PTS}" && echo -e "\033[1;33mPort $PTS \033[1;32mOK" || {
  106. echo -e "\033[1;33mPort $PTS \033[1;31mFAIL"
  107. return 1
  108. }
  109. done
  110. rm ${CONF}
  111. while read varline; do
  112. echo -e "${varline}" >> ${CONF}
  113. if [[ ${varline} = "proto tcp" ]]; then
  114. echo -e "port ${newports}" >> ${CONF}
  115. fi
  116. done <<< "${NEWCONF}"
  117. rm ${CONF2}
  118. while read varline; do
  119. if [[ $(echo ${varline}|grep -v "remote-random"|grep "remote") ]]; then
  120. echo -e "$(echo ${varline}|cut -d' ' -f1,2) ${newports} $(echo ${varline}|cut -d' ' -f4)" >> ${CONF2}
  121. else
  122. echo -e "${varline}" >> ${CONF2}
  123. fi
  124. done <<< "${NEWCONF2}"
  125. msg -azu "$(fun_trans "AGUARDE")"
  126. service openvpn restart &>/dev/null
  127. /etc/init.d/openvpn restart &>/dev/null
  128. sleep 1s
  129. msg -bar
  130. msg -azu "$(fun_trans "PUERTOS REDEFINIDOS")"
  131. msg -bar
  132. }
  133. edit_dropbear () {
  134. msg -bar
  135. msg -azu "$(fun_trans "REDEFINIR PUERTOS DROPBEAR")"
  136. msg -bar
  137. local CONF="/etc/default/dropbear"
  138. local NEWCONF="$(cat ${CONF}|grep -v "DROPBEAR_EXTRA_ARGS")"
  139. msg -ne "$(fun_trans "Nuevos Puertos"): "
  140. read -p "" newports
  141. for PTS in `echo ${newports}`; do
  142. verify_port dropbear "${PTS}" && echo -e "\033[1;33mPort $PTS \033[1;32mOK" || {
  143. echo -e "\033[1;33mPort $PTS \033[1;31mFAIL"
  144. return 1
  145. }
  146. done
  147. rm ${CONF}
  148. while read varline; do
  149. echo -e "${varline}" >> ${CONF}
  150. if [[ ${varline} = "NO_START=0" ]]; then
  151. echo -e 'DROPBEAR_EXTRA_ARGS="VAR"' >> ${CONF}
  152. for NPT in $(echo ${newports}); do
  153. sed -i "s/VAR/-p ${NPT} VAR/g" ${CONF}
  154. done
  155. sed -i "s/VAR//g" ${CONF}
  156. fi
  157. done <<< "${NEWCONF}"
  158. msg -azu "$(fun_trans "AGUARDE")"
  159. service dropbear restart &>/dev/null
  160. sleep 1s
  161. msg -bar
  162. msg -azu "$(fun_trans "PUERTOS REDEFINIDOS")"
  163. msg -bar
  164. }
  165. edit_openssh () {
  166. msg -azu "$(fun_trans "REDEFINIR PUERTOS OPENSSH")"
  167. msg -bar
  168. local CONF="/etc/ssh/sshd_config"
  169. local NEWCONF="$(cat ${CONF}|grep -v [Pp]ort)"
  170. msg -ne "$(fun_trans "Nuevos Puertos"): "
  171. read -p "" newports
  172. for PTS in `echo ${newports}`; do
  173. verify_port sshd "${PTS}" && echo -e "\033[1;33mPort $PTS \033[1;32mOK" || {
  174. echo -e "\033[1;33mPort $PTS \033[1;31mFAIL"
  175. return 1
  176. }
  177. done
  178. rm ${CONF}
  179. for NPT in $(echo ${newports}); do
  180. echo -e "Port ${NPT}" >> ${CONF}
  181. done
  182. while read varline; do
  183. echo -e "${varline}" >> ${CONF}
  184. done <<< "${NEWCONF}"
  185. msg -azu "$(fun_trans "AGUARDE")"
  186. service ssh restart &>/dev/null
  187. service sshd restart &>/dev/null
  188. sleep 1s
  189. msg -bar
  190. msg -azu "$(fun_trans "PUERTOS REDEFINIDOS")"
  191. msg -bar
  192. }
  193. main_fun () {
  194. msg -bar2
  195. msg -tit ""
  196. msg -ama " EDITAR PUERTOS ACTIVOS "
  197. msg -bar2
  198. unset newports
  199. i=0
  200. while read line; do
  201. let i++
  202. case $line in
  203. squid|squid3)squid=$i;;
  204. apache|apache2)apache=$i;;
  205. openvpn)openvpn=$i;;
  206. dropbear)dropbear=$i;;
  207. sshd)ssh=$i;;
  208. esac
  209. done <<< "$(port|cut -d' ' -f1|sort -u)"
  210. for((a=1; a<=$i; a++)); do
  211. [[ $squid = $a ]] && echo -ne "\033[1;32m [$squid] > " && msg -azu "$(fun_trans "REDEFINIR PUERTOS SQUID")"
  212. [[ $apache = $a ]] && echo -ne "\033[1;32m [$apache] > " && msg -azu "$(fun_trans "REDEFINIR PUERTOS APACHE")"
  213. [[ $openvpn = $a ]] && echo -ne "\033[1;32m [$openvpn] > " && msg -azu "$(fun_trans "REDEFINIR PUERTOS OPENVPN")"
  214. [[ $dropbear = $a ]] && echo -ne "\033[1;32m [$dropbear] > " && msg -azu "$(fun_trans "REDEFINIR PUERTOS DROPBEAR")"
  215. [[ $ssh = $a ]] && echo -ne "\033[1;32m [$ssh] > " && msg -azu "$(fun_trans "REDEFINIR PUERTOS SSH")"
  216. done
  217. echo -ne "$(msg -bar)\n\033[1;32m [0] > " && msg -azu "\e[97m\033[1;41m VOLVER \033[1;37m"
  218. msg -bar
  219. while true; do
  220. echo -ne "\033[1;37m$(fun_trans "Seleccione"): " && read selection
  221. tput cuu1 && tput dl1
  222. [[ ! -z $squid ]] && [[ $squid = $selection ]] && edit_squid && break
  223. [[ ! -z $apache ]] && [[ $apache = $selection ]] && edit_apache && break
  224. [[ ! -z $openvpn ]] && [[ $openvpn = $selection ]] && edit_openvpn && break
  225. [[ ! -z $dropbear ]] && [[ $dropbear = $selection ]] && edit_dropbear && break
  226. [[ ! -z $ssh ]] && [[ $ssh = $selection ]] && edit_openssh && break
  227. [[ "0" = $selection ]] && break
  228. done
  229. #exit 0
  230. }
  231. main_fun