ports.sh 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340
  1. #!/bin/bash
  2. clear
  3. port(){
  4. local portas
  5. local portas_var=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN")
  6. i=0
  7. while read port; do
  8. var1=$(echo $port | awk '{print $1}') && var2=$(echo $port | awk '{print $9}' | awk -F ":" '{print $2}')
  9. [[ "$(echo -e ${portas}|grep -w "$var1 $var2")" ]] || {
  10. portas+="$var1 $var2 $portas"
  11. echo "$var1 $var2"
  12. let i++
  13. }
  14. done <<< "$portas_var"
  15. }
  16. verify_port () {
  17. local SERVICE="$1"
  18. local PORTENTRY="$2"
  19. [[ ! $(echo -e $(port|grep -v ${SERVICE})|grep -w "$PORTENTRY") ]] && return 0 || return 1
  20. }
  21. edit_squid(){
  22. if [[ -e /etc/squid/squid.conf ]]; then
  23. local CONF="/etc/squid/squid.conf"
  24. elif [[ -e /etc/squid3/squid.conf ]]; then
  25. local CONF="/etc/squid3/squid.conf"
  26. fi
  27. local line="$(cat ${CONF}|sed -n '/http_port/='|head -1)"
  28. local NEWCONF="$(cat ${CONF}|sed "$line c ADMR_port"|sed '/http_port/d')"
  29. title "$(fun_trans "REDEFINIR PUERTOS SQUID")"
  30. msg -ne " $(fun_trans " Digite Puertos"): " && read DPORT
  31. tput cuu1 && tput dl1
  32. TTOTAL=($DPORT)
  33. for((i=0; i<${#TTOTAL[@]}; i++)); do
  34. [[ $(mportas|grep -v squid|grep -v '>'|grep -w "${TTOTAL[$i]}") = "" ]] && {
  35. echo -e "\033[1;33m Puerto Elegido:\033[1;32m ${TTOTAL[$i]} OK"
  36. PORT="$PORT ${TTOTAL[$i]}"
  37. } || {
  38. echo -e "\033[1;33m Puerto Elegido:\033[1;31m ${TTOTAL[$i]} FAIL"
  39. }
  40. done
  41. [[ -z $PORT ]] && {
  42. msg -bar
  43. print_center -verm2 "Ningun Puerto Valido"
  44. return 1
  45. }
  46. rm ${CONF}
  47. while read varline; do
  48. if [[ ! -z "$(echo "$varline"|grep 'ADMR_port')" ]]; then
  49. for i in `echo $PORT`; do
  50. echo -e "http_port ${i}" >> ${CONF}
  51. ufw allow $i/tcp &>/dev/null 2>&1
  52. done
  53. continue
  54. fi
  55. echo -e "${varline}" >> ${CONF}
  56. done <<< "${NEWCONF}"
  57. msg -bar
  58. print_center -azu "$(fun_trans "AGUARDE")"
  59. [[ -d "/etc/squid/" ]] && {
  60. service ssh restart > /dev/null 2>&1
  61. /etc/init.d/squid start > /dev/null 2>&1
  62. service squid restart > /dev/null 2>&1
  63. }
  64. [[ -d "/etc/squid3/" ]] && {
  65. service ssh restart > /dev/null 2>&1
  66. /etc/init.d/squid3 start > /dev/null 2>&1
  67. service squid3 restart > /dev/null 2>&1
  68. }
  69. sleep 2s
  70. tput cuu1 && tput dl1
  71. print_center -verd "$(fun_trans "PUERTOS REDEFINIDOS")"
  72. }
  73. edit_apache(){
  74. local CONF="/etc/apache2/ports.conf"
  75. local line="$(cat ${CONF}|sed -n '/Listen/='|head -1)"
  76. local NEWCONF="$(cat ${CONF}|sed "$line c ADMRufu")"
  77. let line++
  78. while [[ ! -z $(echo "$NEWCONF"|sed -n "${line}p"|grep 'Listen') ]]; do
  79. NEWCONF=$(echo "$NEWCONF"|sed "${line}d")
  80. done
  81. title "$(fun_trans "REDEFINIR PUERTOS APACHE")"
  82. msg -ne " $(fun_trans " Digite Puertos"): " && read DPORT
  83. tput cuu1 && tput dl1
  84. TTOTAL=($DPORT)
  85. for((i=0; i<${#TTOTAL[@]}; i++)); do
  86. [[ $(mportas|grep -v apache|grep -v '>'|grep -w "${TTOTAL[$i]}") = "" ]] && {
  87. echo -e "\033[1;33m Puerto Elegido:\033[1;32m ${TTOTAL[$i]} OK"
  88. PORT="$PORT ${TTOTAL[$i]}"
  89. } || {
  90. echo -e "\033[1;33m Puerto Elegido:\033[1;31m ${TTOTAL[$i]} FAIL"
  91. }
  92. done
  93. [[ -z $PORT ]] && {
  94. msg -bar
  95. print_center -verm2 "Ningun Puerto Valido"
  96. return 1
  97. }
  98. rm ${CONF}
  99. while read varline; do
  100. if [[ ! -z "$(echo "$varline"|grep 'ADMRufu')" ]]; then
  101. for i in `echo $PORT`; do
  102. echo -e "Listen ${i}" >> ${CONF}
  103. done
  104. continue
  105. fi
  106. echo -e "${varline}" >> ${CONF}
  107. done <<< "${NEWCONF}"
  108. msg -bar
  109. print_center -azu "$(fun_trans "AGUARDE")"
  110. service apache2 restart &>/dev/null
  111. sleep 2s
  112. tput cuu1 && tput dl1
  113. print_center -verd "$(fun_trans "PUERTOS REDEFINIDOS")"
  114. }
  115. edit_openvpn(){
  116. msg -azu "$(fun_trans "REDEFINIR PUERTOS OPENVPN")"
  117. msg -bar
  118. local CONF="/etc/openvpn/server.conf"
  119. local CONF2="/etc/openvpn/client-common.txt"
  120. local NEWCONF="$(cat ${CONF}|grep -v [Pp]ort)"
  121. local NEWCONF2="$(cat ${CONF2})"
  122. msg -ne "$(fun_trans "Nuevos puertos"): "
  123. read -p "" newports
  124. for PTS in `echo ${newports}`; do
  125. verify_port openvpn "${PTS}" && echo -e "\033[1;33mPort $PTS \033[1;32mOK" || {
  126. echo -e "\033[1;33mPort $PTS \033[1;31mFAIL"
  127. return 1
  128. }
  129. done
  130. rm ${CONF}
  131. while read varline; do
  132. echo -e "${varline}" >> ${CONF}
  133. if [[ ${varline} = "proto tcp" ]]; then
  134. echo -e "port ${newports}" >> ${CONF}
  135. fi
  136. done <<< "${NEWCONF}"
  137. rm ${CONF2}
  138. while read varline; do
  139. if [[ $(echo ${varline}|grep -v "remote-random"|grep "remote") ]]; then
  140. echo -e "$(echo ${varline}|cut -d' ' -f1,2) ${newports} $(echo ${varline}|cut -d' ' -f4)" >> ${CONF2}
  141. else
  142. echo -e "${varline}" >> ${CONF2}
  143. fi
  144. done <<< "${NEWCONF2}"
  145. msg -azu "$(fun_trans "AGUARDE")"
  146. service openvpn restart &>/dev/null
  147. /etc/init.d/openvpn restart &>/dev/null
  148. sleep 1s
  149. msg -bar
  150. msg -azu "$(fun_trans "PUERTOS REDEFINIDOS")"
  151. msg -bar
  152. }
  153. edit_dropbear(){
  154. title "$(fun_trans "REDEFINIR PUERTOS DROPBEAR")"
  155. msg -ne " $(fun_trans " Digite Puertos"): " && read DPORT
  156. tput cuu1 && tput dl1
  157. TTOTAL=($DPORT)
  158. for((i=0; i<${#TTOTAL[@]}; i++)); do
  159. [[ $(mportas|grep -v 'dropbear'|grep "${TTOTAL[$i]}") = "" ]] && {
  160. echo -e "\033[1;33m Puerto Elegido:\033[1;32m ${TTOTAL[$i]} OK"
  161. PORT="$PORT ${TTOTAL[$i]}"
  162. } || {
  163. echo -e "\033[1;33m Puerto Elegido:\033[1;31m ${TTOTAL[$i]} FAIL"
  164. }
  165. done
  166. [[ -z $PORT ]] && {
  167. echo -e "\033[1;31m Ningun Puerto Valida Fue Elegido\033[0m"
  168. return 1
  169. }
  170. cat <<EOF > /etc/default/dropbear
  171. NO_START=0
  172. DROPBEAR_PORT=VAR1
  173. DROPBEAR_EXTRA_ARGS="VAR"
  174. DROPBEAR_BANNER="/etc/dropbear/banner"
  175. DROPBEAR_RECEIVE_WINDOW=65536
  176. EOF
  177. n=0
  178. for i in $(echo $PORT); do
  179. p[$n]=$i
  180. let n++
  181. done
  182. sed -i "s/VAR1/${p[0]}/g" /etc/default/dropbear
  183. if [[ ! -z ${p[1]} ]]; then
  184. for (( i = 0; i < ${#p[@]}; i++ )); do
  185. [[ "$i" = "0" ]] && continue
  186. sed -i "s/VAR/-p ${p[$i]} VAR/g" /etc/default/dropbear
  187. done
  188. fi
  189. sed -i "s/VAR//g" /etc/default/dropbear
  190. msg -bar
  191. print_center -azu "$(fun_trans "AGUARDE")"
  192. service dropbear restart &>/dev/null
  193. sleep 2s
  194. tput cuu1 && tput dl1
  195. print_center -verd "$(fun_trans "PUERTOS REDEFINIDOS")"
  196. }
  197. edit_openssh(){
  198. local CONF="/etc/ssh/sshd_config"
  199. local line="$(cat ${CONF}|sed -n '/[Pp]ort/='|head -1)"
  200. local NEWCONF="$(cat ${CONF}|sed "$line c ADMRufu"|sed '/[Pp]ort/d')"
  201. title "$(fun_trans "REDEFINIR PUERTOS OPENSSH")"
  202. msg -ne " $(fun_trans " Digite Puertos"): " && read DPORT
  203. tput cuu1 && tput dl1
  204. TTOTAL=($DPORT)
  205. for((i=0; i<${#TTOTAL[@]}; i++)); do
  206. [[ $(mportas|grep -v ssh|grep -v '>'|grep -w "${TTOTAL[$i]}") = "" ]] && {
  207. echo -e "\033[1;33m Puerto Elegido:\033[1;32m ${TTOTAL[$i]} OK"
  208. PORT="$PORT ${TTOTAL[$i]}"
  209. } || {
  210. echo -e "\033[1;33m Puerto Elegido:\033[1;31m ${TTOTAL[$i]} FAIL"
  211. }
  212. done
  213. [[ -z $PORT ]] && {
  214. msg -bar
  215. print_center -verm2 "Ningun Puerto Valido"
  216. return 1
  217. }
  218. rm ${CONF}
  219. while read varline; do
  220. if [[ ! -z "$(echo "$varline"|grep 'ADMRufu')" ]]; then
  221. for i in `echo $PORT`; do
  222. echo -e "Port ${i}" >> ${CONF}
  223. done
  224. continue
  225. fi
  226. echo -e "${varline}" >> ${CONF}
  227. done <<< "${NEWCONF}"
  228. msg -bar
  229. print_center -azu "$(fun_trans "AGUARDE")"
  230. service ssh restart &>/dev/null
  231. service sshd restart &>/dev/null
  232. sleep 2s
  233. tput cuu1 && tput dl1
  234. print_center -verd "$(fun_trans "PUERTOS REDEFINIDOS")"
  235. }
  236. main_fun(){
  237. title "$(fun_trans "GESTOR DE PUERTOS")"
  238. unset newports
  239. i=0
  240. new=$(mportas|cut -d ' ' -f1|grep -E 'squid|apache|dropbear|ssh')
  241. [[ ! -z $(echo "$new"|grep squid) ]] && {
  242. let i++
  243. echo -e "$(msg -verd "[$i]") $(msg -verm2 ">") $(msg -azu "$(fun_trans "REDEFINIR PUERTOS SQUID")")"
  244. squid=$i
  245. }
  246. [[ ! -z $(echo "$new"|grep apache) ]] && {
  247. let i++
  248. echo -e "$(msg -verd "[$i]") $(msg -verm2 ">") $(msg -azu "$(fun_trans "REDEFINIR PUERTOS APACHE")")"
  249. apache=$i
  250. }
  251. #[[ ! -z $(echo "$new"|grep openvpn) ]] && {
  252. # let i++
  253. # echo -e "$(msg -verd "[$i]") $(msg -verm2 ">") $(msg -azu "$(fun_trans "REDEFINIR PUERTOS OPENVPN")")"
  254. # openvpn=$i
  255. #}
  256. [[ ! -z $(echo "$new"|grep dropbear) ]] && {
  257. let i++
  258. echo -e "$(msg -verd "[$i]") $(msg -verm2 ">") $(msg -azu "$(fun_trans "REDEFINIR PUERTOS DROPBEAR")")"
  259. dropbear=$i
  260. }
  261. [[ ! -z $(echo "$new"|grep ssh) ]] && {
  262. let i++
  263. echo -e "$(msg -verd "[$i]") $(msg -verm2 ">") $(msg -azu "$(fun_trans "REDEFINIR PUERTOS SSH")")"
  264. ssh=$i
  265. }
  266. back
  267. opcion=$(selection_fun $i)
  268. case $opcion in
  269. $squid)edit_squid;;
  270. $apache)edit_apache;;
  271. #$openvpn)edit_openvpn;;
  272. $dropbear)edit_dropbear;;
  273. $ssh)edit_openssh;;
  274. esac
  275. }
  276. main_fun
  277. enter
  278. return 1