conexao 58 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783
  1. #!/bin/bash
  2. #====================================================
  3. # SCRIPT: CONEXAO SSHPLUS MANAGER
  4. # DESENVOLVIDO POR: CRAZY_VPN
  5. # DATA ATUALIZACAO: 28-04-2021
  6. # CONTATO TELEGRAM: http://t.me/crazy_vpn
  7. # CANAL TELEGRAM: http://t.me/sshplus
  8. #====================================================
  9. [[ $(awk -F" " '{print $2}' /usr/lib/licence) == "@CRAZY_VPN" ]] && {
  10. ram1=$(free -h | grep -i mem | awk {'print $2'})
  11. ram2=$(free -h | grep -i mem | awk {'print $4'})
  12. ram3=$(free -h | grep -i mem | awk {'print $3'})
  13. uso=$(top -bn1 | awk '/Cpu/ { cpu = "" 100 - $8 "%" }; END { print cpu }')
  14. system=$(cat /etc/issue.net)
  15. fun_bar() {
  16. comando[0]="$1"
  17. comando[1]="$2"
  18. (
  19. [[ -e $HOME/fim ]] && rm $HOME/fim
  20. [[ ! -d /etc/SSHPlus ]] && rm -rf /bin/menu
  21. ${comando[0]} >/dev/null 2>&1
  22. ${comando[1]} >/dev/null 2>&1
  23. touch $HOME/fim
  24. ) >/dev/null 2>&1 &
  25. tput civis
  26. echo -ne "\033[1;33mAGUARDE \033[1;37m- \033[1;33m["
  27. while true; do
  28. for ((i = 0; i < 18; i++)); do
  29. echo -ne "\033[1;31m#"
  30. sleep 0.1s
  31. done
  32. [[ -e $HOME/fim ]] && rm $HOME/fim && break
  33. echo -e "\033[1;33m]"
  34. sleep 1s
  35. tput cuu1
  36. tput dl1
  37. echo -ne "\033[1;33mAGUARDE \033[1;37m- \033[1;33m["
  38. done
  39. echo -e "\033[1;33m]\033[1;37m -\033[1;32m OK !\033[1;37m"
  40. tput cnorm
  41. }
  42. verif_ptrs() {
  43. porta=$1
  44. PT=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" | grep -v "COMMAND" | grep "LISTEN")
  45. for pton in $(echo -e "$PT" | cut -d: -f2 | cut -d' ' -f1 | uniq); do
  46. svcs=$(echo -e "$PT" | grep -w "$pton" | awk '{print $1}' | uniq)
  47. [[ "$porta" = "$pton" ]] && {
  48. echo -e "\n\033[1;31mPORTA \033[1;33m$porta \033[1;31mEM USO PELO \033[1;37m$svcs\033[0m"
  49. sleep 3
  50. fun_conexao
  51. }
  52. done
  53. }
  54. inst_sqd() {
  55. if netstat -nltp | grep 'squid' 1>/dev/null 2>/dev/null; then
  56. echo -e "\E[41;1;37m REMOVER SQUID PROXY \E[0m"
  57. echo ""
  58. echo -ne "\033[1;32mREALMENTE DESEJA REMOVER O SQUID \033[1;31m? \033[1;33m[s/n]:\033[1;37m "
  59. read resp
  60. [[ "$resp" = 's' ]] && {
  61. echo -e "\n\033[1;32mREMOVENDO O SQUID PROXY !\033[0m"
  62. echo ""
  63. rem_sqd() {
  64. [[ -d "/etc/squid" ]] && {
  65. apt-get remove squid -y >/dev/null 2>&1
  66. apt-get purge squid -y >/dev/null 2>&1
  67. rm -rf /etc/squid >/dev/null 2>&1
  68. }
  69. [[ -d "/etc/squid3" ]] && {
  70. apt-get remove squid3 -y >/dev/null 2>&1
  71. apt-get purge squid3 -y >/dev/null 2>&1
  72. rm -rf /etc/squid3 >/dev/null 2>&1
  73. apt autoremove -y >/dev/null 2>&1
  74. }
  75. }
  76. fun_bar 'rem_sqd'
  77. echo -e "\n\033[1;32mSQUID REMOVIDO COM SUCESSO !\033[0m"
  78. sleep 2
  79. clear
  80. fun_conexao
  81. } || {
  82. echo -e "\n\033[1;31mRetornando...\033[0m"
  83. sleep 2
  84. clear
  85. fun_conexao
  86. }
  87. else
  88. clear
  89. echo -e "\E[44;1;37m INSTALADOR SQUID \E[0m"
  90. echo ""
  91. IP=$(wget -qO- ipv4.icanhazip.com)
  92. echo -ne "\033[1;32mPARA CONTINUAR CONFIRME SEU IP: \033[1;37m"
  93. read -e -i $IP ipdovps
  94. [[ -z "$ipdovps" ]] && {
  95. echo -e "\n\033[1;31mIP invalido\033[1;32m"
  96. echo ""
  97. read -p "Digite seu IP: " IP
  98. }
  99. echo -e "\n\033[1;33mQUAIS PORTAS DESEJA ULTILIZAR NO SQUID \033[1;31m?"
  100. echo -e "\n\033[1;33m[\033[1;31m!\033[1;33m] \033[1;32mDEFINA AS PORTAS EM SEQUENCIA \033[1;33mEX: \033[1;37m80 8080"
  101. echo ""
  102. echo -ne "\033[1;32mINFORME AS PORTAS\033[1;37m: "
  103. read portass
  104. [[ -z "$portass" ]] && {
  105. echo -e "\n\033[1;31mPorta invalida!"
  106. sleep 3
  107. fun_conexao
  108. }
  109. for porta in $(echo -e $portass); do
  110. verif_ptrs $porta
  111. done
  112. [[ $(grep -wc '14' /etc/issue.net) != '0' ]] || [[ $(grep -wc '8' /etc/issue.net) != '0' ]] && {
  113. echo -e "\n\033[1;32mINSTALANDO SQUID PROXY\033[0m\n"
  114. fun_bar 'apt update -y' "apt install squid3 -y"
  115. } || {
  116. echo -e "\n\033[1;31m[\033[1;36m1\033[1;31m] \033[1;37m• \033[1;33mSQUID VERSAO 3.3.X\n\033[1;31m[\033[1;36m2\033[1;31m] \033[1;37m• \033[1;33mSQUID VERSAO 3.5.X\033[0m\n"
  117. read -p "$(echo -e "\033[1;32mINFORME UMA OPÇÃO \033[1;37m: ")" -e -i 1 opc
  118. [[ -z "$opc" ]] && {
  119. echo -e "\n\033[1;31mOpcao invalida!"
  120. sleep 2
  121. fun_conexao
  122. }
  123. [[ "$opc" != '1' ]] && {
  124. [[ "$opc" != '2' ]] && {
  125. echo -e "\n\033[1;31mOpcao invalida !"
  126. sleep 2
  127. fun_conexao
  128. }
  129. }
  130. echo -e "\n\033[1;32mINSTALANDO SQUID PROXY\033[0m\n"
  131. fun_bar 'apt update -y' "instsqd $opc"
  132. }
  133. if [[ -d "/etc/squid/" ]]; then
  134. var_sqd="/etc/squid/squid.conf"
  135. var_pay="/etc/squid/payload.txt"
  136. elif [[ -d "/etc/squid3/" ]]; then
  137. var_sqd="/etc/squid3/squid.conf"
  138. var_pay="/etc/squid3/payload.txt"
  139. else
  140. echo -e "\n\033[1;33m[\033[1;31mERRO\033[1;33m]\033[1;37m: \033[1;33mO SQUID PROXY CORROMPEU\033[0m"
  141. sleep 2
  142. fun_conexao
  143. fi
  144. cat <<-EOF >$var_pay
  145. .whatsapp.net/
  146. .facebook.net/
  147. .twitter.com/
  148. .speedtest.net/
  149. EOF
  150. cat <<-EOF >$var_sqd
  151. acl url1 dstdomain -i 127.0.0.1
  152. acl url2 dstdomain -i localhost
  153. acl url3 dstdomain -i $ipdovps
  154. acl url4 dstdomain -i /SSHPLUS?
  155. acl payload url_regex -i "$var_pay"
  156. acl all src 0.0.0.0/0
  157. http_access allow url1
  158. http_access allow url2
  159. http_access allow url3
  160. http_access allow url4
  161. http_access allow payload
  162. http_access deny all
  163. #Portas
  164. EOF
  165. for Pts in $(echo -e $portass); do
  166. echo -e "http_port $Pts" >>$var_sqd
  167. [[ -f "/usr/sbin/ufw" ]] && ufw allow $Pts/tcp
  168. done
  169. cat <<-EOF >>$var_sqd
  170. #Nome squid
  171. visible_hostname SSHPLUS
  172. via off
  173. forwarded_for off
  174. pipeline_prefetch off
  175. EOF
  176. sqd_conf() {
  177. [[ -d "/etc/squid/" ]] && {
  178. service ssh restart
  179. /etc/init.d/squid restart
  180. service squid restart
  181. }
  182. [[ -d "/etc/squid3/" ]] && {
  183. service ssh restart
  184. /etc/init.d/squid3 restart
  185. service squid3 restart
  186. }
  187. }
  188. echo -e "\n\033[1;32mCONFIGURANDO SQUID PROXY\033[0m"
  189. echo ""
  190. fun_bar 'sqd_conf'
  191. echo -e "\n\033[1;32mSQUID INSTALADO COM SUCESSO!\033[0m"
  192. sleep 2.5s
  193. fun_conexao
  194. fi
  195. }
  196. addpt_sqd() {
  197. echo -e "\E[44;1;37m ADICIONAR PORTA AO SQUID \E[0m"
  198. echo -e "\n\033[1;33mPORTAS EM USO: \033[1;32m$sqdp\n"
  199. if [[ -f "/etc/squid/squid.conf" ]]; then
  200. var_sqd="/etc/squid/squid.conf"
  201. elif [[ -f "/etc/squid3/squid.conf" ]]; then
  202. var_sqd="/etc/squid3/squid.conf"
  203. else
  204. echo -e "\n\033[1;31mSQUID NAO ESTA INSTALADO!\033[0m"
  205. echo -e "\n\033[1;31mRetornando...\033[0m"
  206. sleep 2
  207. clear
  208. fun_squid
  209. fi
  210. echo -ne "\033[1;32mQUAL PORTA DESEJA ADICIONAR \033[1;33m?\033[1;37m "
  211. read pt
  212. [[ -z "$pt" ]] && {
  213. echo -e "\n\033[1;31mPorta invalida!"
  214. sleep 2
  215. clear
  216. fun_conexao
  217. }
  218. verif_ptrs $pt
  219. echo -e "\n\033[1;32mADICIONANDO PORTA AO SQUID!"
  220. echo ""
  221. sed -i "s/#Portas/#Portas\nhttp_port $pt/g" $var_sqd
  222. fun_bar 'sleep 2'
  223. echo -e "\n\033[1;32mREINICIANDO O SQUID!"
  224. echo ""
  225. fun_bar 'service squid restart' 'service squid3 restart'
  226. echo -e "\n\033[1;32mPORTA ADICIONADA COM SUCESSO!"
  227. sleep 3
  228. clear
  229. fun_squid
  230. }
  231. rempt_sqd() {
  232. echo -e "\E[41;1;37m REMOVER PORTA DO SQUID \E[0m"
  233. echo -e "\n\033[1;33mPORTAS EM USO: \033[1;32m$sqdp\n"
  234. if [[ -f "/etc/squid/squid.conf" ]]; then
  235. var_sqd="/etc/squid/squid.conf"
  236. elif [[ -f "/etc/squid3/squid.conf" ]]; then
  237. var_sqd="/etc/squid3/squid.conf"
  238. else
  239. echo -e "\n\033[1;31mSQUID NAO ESTA INSTALADO!\033[0m"
  240. echo -e "\n\033[1;31mRetornando...\033[0m"
  241. sleep 2
  242. clear
  243. fun_squid
  244. fi
  245. echo -ne "\033[1;32mQUAL PORTA DESEJA REMOVER \033[1;33m?\033[1;37m "
  246. read pt
  247. [[ -z "$pt" ]] && {
  248. echo -e "\n\033[1;31mPorta invalida!"
  249. sleep 2
  250. clear
  251. fun_conexao
  252. }
  253. if grep -E "$pt" $var_sqd >/dev/null 2>&1; then
  254. echo -e "\n\033[1;32mREMOVENDO PORTA DO SQUID!"
  255. echo ""
  256. sed -i "/http_port $pt/d" $var_sqd
  257. fun_bar 'sleep 3'
  258. echo -e "\n\033[1;32mREINICIANDO O SQUID!"
  259. echo ""
  260. fun_bar 'service squid restart' 'service squid3 restart'
  261. echo -e "\n\033[1;32mPORTA REMOVIDA COM SUCESSO!"
  262. sleep 3.5s
  263. clear
  264. fun_squid
  265. else
  266. echo -e "\n\033[1;31mPORTA \033[1;32m$pt \033[1;31mNAO ENCONTRADA!"
  267. sleep 3.5s
  268. clear
  269. fun_squid
  270. fi
  271. }
  272. fun_squid() {
  273. [[ "$(netstat -nplt | grep -c 'squid')" = "0" ]] && inst_sqd
  274. echo -e "\E[44;1;37m GERENCIAR SQUID PROXY \E[0m"
  275. [[ "$(netstat -nplt | grep -c 'squid')" != "0" ]] && {
  276. sqdp=$(netstat -nplt | grep 'squid' | awk -F ":" {'print $4'} | xargs)
  277. echo -e "\n\033[1;33mPORTAS\033[1;37m: \033[1;32m$sqdp"
  278. VarSqdOn="REMOVER SQUID PROXY"
  279. } || {
  280. VarSqdOn="INSTALAR SQUID PROXY"
  281. }
  282. echo -e "\n\033[1;31m[\033[1;36m1\033[1;31m] \033[1;37m• \033[1;33m$VarSqdOn \033[1;31m
  283. [\033[1;36m2\033[1;31m] \033[1;37m• \033[1;33mADICIONAR PORTA \033[1;31m
  284. [\033[1;36m3\033[1;31m] \033[1;37m• \033[1;33mREMOVER PORTA\033[1;31m
  285. [\033[1;36m0\033[1;31m] \033[1;37m• \033[1;33mVOLTAR\033[0m"
  286. echo ""
  287. echo -ne "\033[1;32mOQUE DESEJA FAZER \033[1;33m?\033[1;31m?\033[1;37m "
  288. read x
  289. clear
  290. case $x in
  291. 1 | 01)
  292. inst_sqd
  293. ;;
  294. 2 | 02)
  295. addpt_sqd
  296. ;;
  297. 3 | 03)
  298. rempt_sqd
  299. ;;
  300. 0 | 00)
  301. echo -e "\033[1;31mRetornando...\033[0m"
  302. sleep 1
  303. fun_conexao
  304. ;;
  305. *)
  306. echo -e "\033[1;31mOpcao Invalida...\033[0m"
  307. sleep 2
  308. fun_conexao
  309. ;;
  310. esac
  311. }
  312. fun_drop() {
  313. if netstat -nltp | grep 'dropbear' 1>/dev/null 2>/dev/null; then
  314. clear
  315. [[ $(netstat -nltp | grep -c 'dropbear') != '0' ]] && dpbr=$(netstat -nplt | grep 'dropbear' | awk -F ":" {'print $4'} | xargs) || sqdp="\033[1;31mINDISPONIVEL"
  316. if ps x | grep "limiter" | grep -v grep 1>/dev/null 2>/dev/null; then
  317. stats='\033[1;32m◉ '
  318. else
  319. stats='\033[1;31m○ '
  320. fi
  321. echo -e "\E[44;1;37m GERENCIAR DROPBEAR \E[0m"
  322. echo -e "\n\033[1;33mPORTAS\033[1;37m: \033[1;32m$dpbr"
  323. echo ""
  324. echo -e "\033[1;31m[\033[1;36m1\033[1;31m] \033[1;37m• \033[1;33mLIMITER DROPBEAR $stats\033[0m"
  325. echo -e "\033[1;31m[\033[1;36m2\033[1;31m] \033[1;37m• \033[1;33mALTERAR PORTA DROPBEAR\033[0m"
  326. echo -e "\033[1;31m[\033[1;36m3\033[1;31m] \033[1;37m• \033[1;33mREMOVER DROPBEAR\033[0m"
  327. echo -e "\033[1;31m[\033[1;36m0\033[1;31m] \033[1;37m• \033[1;33mVOLTAR\033[0m"
  328. echo ""
  329. echo -ne "\033[1;32mOQUE DESEJA FAZER \033[1;33m?\033[1;37m "
  330. read resposta
  331. if [[ "$resposta" = '1' ]]; then
  332. clear
  333. if ps x | grep "limiter" | grep -v grep 1>/dev/null 2>/dev/null; then
  334. echo -e "\033[1;32mParando o limiter... \033[0m"
  335. echo ""
  336. fun_stplimiter() {
  337. pidlimiter=$(ps x | grep "limiter" | awk -F "pts" {'print $1'})
  338. kill -9 $pidlimiter
  339. screen -wipe
  340. }
  341. fun_bar 'fun_stplimiter' 'sleep 2'
  342. echo -e "\n\033[1;31m LIMITER DESATIVADO \033[0m"
  343. sleep 3
  344. fun_drop
  345. else
  346. echo -e "\n\033[1;32mIniciando o limiter... \033[0m"
  347. echo ""
  348. fun_bar 'screen -d -m -t limiter droplimiter' 'sleep 3'
  349. echo -e "\n\033[1;32m LIMITER ATIVADO \033[0m"
  350. sleep 3
  351. fun_drop
  352. fi
  353. elif [[ "$resposta" = '2' ]]; then
  354. echo ""
  355. echo -ne "\033[1;32mQUAL PORTA DESEJA ULTILIZAR \033[1;33m?\033[1;37m "
  356. read pt
  357. echo ""
  358. verif_ptrs $pt
  359. var1=$(grep 'DROPBEAR_PORT=' /etc/default/dropbear | cut -d'=' -f2)
  360. echo -e "\033[1;32mALTERANDO PORTA DROPBEAR!"
  361. sed -i "s/\b$var1\b/$pt/g" /etc/default/dropbear >/dev/null 2>&1
  362. echo ""
  363. fun_bar 'sleep 2'
  364. echo -e "\n\033[1;32mREINICIANDO DROPBEAR!"
  365. echo ""
  366. fun_bar 'service dropbear restart' '/etc/init.d/dropbear restart'
  367. echo -e "\n\033[1;32mPORTA ALTERADA COM SUCESSO!"
  368. sleep 3
  369. clear
  370. fun_conexao
  371. elif [[ "$resposta" = '3' ]]; then
  372. echo -e "\n\033[1;32mREMOVENDO O DROPBEAR !\033[0m"
  373. echo ""
  374. fun_dropunistall() {
  375. service dropbear stop && /etc/init.d/dropbear stop
  376. apt remove dropbear-run -y
  377. apt remove dropbear -y
  378. apt purge dropbear -y
  379. rm -rf /etc/default/dropbear
  380. apt autoremove -y
  381. }
  382. fun_bar 'fun_dropunistall'
  383. echo -e "\n\033[1;32mDROPBEAR REMOVIDO COM SUCESSO !\033[0m"
  384. sleep 3
  385. clear
  386. fun_conexao
  387. elif [[ "$resposta" = '0' ]]; then
  388. echo -e "\n\033[1;31mRetornando...\033[0m"
  389. sleep 2
  390. fun_conexao
  391. else
  392. echo -e "\n\033[1;31mOpcao invalida...\033[0m"
  393. sleep 2
  394. fun_conexao
  395. fi
  396. else
  397. clear
  398. echo -e "\E[44;1;37m INSTALADOR DROPBEAR \E[0m"
  399. echo -e "\n\033[1;33mVC ESTA PRESTES A INSTALAR O DROPBEAR !\033[0m\n"
  400. echo -ne "\033[1;32mDESEJA CONTINUAR \033[1;31m? \033[1;33m[s/n]:\033[1;37m "
  401. read resposta
  402. [[ "$resposta" = 's' ]] && {
  403. echo -e "\n\033[1;33mDEFINA UMA PORTA PARA O DROPBEAR !\033[0m\n"
  404. echo -ne "\033[1;32mQUAL A PORTA \033[1;33m?\033[1;37m "
  405. read porta
  406. [[ -z "$porta" ]] && {
  407. echo -e "\n\033[1;31mPorta invalida!"
  408. sleep 3
  409. clear
  410. fun_conexao
  411. }
  412. verif_ptrs $porta
  413. echo -e "\n\033[1;32mINSTALANDO O DROPBEAR ! \033[0m"
  414. echo ""
  415. fun_instdrop() {
  416. apt-get update -y
  417. apt-get install dropbear -y
  418. }
  419. fun_bar 'fun_instdrop'
  420. fun_ports() {
  421. sed -i 's/NO_START=1/NO_START=0/g' /etc/default/dropbear >/dev/null 2>&1
  422. sed -i "s/DROPBEAR_PORT=22/DROPBEAR_PORT=$porta/g" /etc/default/dropbear >/dev/null 2>&1
  423. sed -i 's/DROPBEAR_EXTRA_ARGS=/DROPBEAR_EXTRA_ARGS="-p 110"/g' /etc/default/dropbear >/dev/null 2>&1
  424. }
  425. echo ""
  426. echo -e "\033[1;32mCONFIGURANDO PORTA DROPBEAR !\033[0m"
  427. echo ""
  428. fun_bar 'fun_ports'
  429. grep -v "^PasswordAuthentication yes" /etc/ssh/sshd_config >/tmp/passlogin && mv /tmp/passlogin /etc/ssh/sshd_config
  430. echo "PasswordAuthentication yes" >>/etc/ssh/sshd_config
  431. grep -v "^PermitTunnel yes" /etc/ssh/sshd_config >/tmp/ssh && mv /tmp/ssh /etc/ssh/sshd_config
  432. echo "PermitTunnel yes" >>/etc/ssh/sshd_config
  433. echo ""
  434. echo -e "\033[1;32mFINALIZANDO INSTALACAO !\033[0m"
  435. echo ""
  436. fun_ondrop() {
  437. service ssh restart
  438. service dropbear start
  439. /etc/init.d/dropbear restart
  440. }
  441. fun_bar 'fun_ondrop' 'sleep 1'
  442. echo -e "\n\033[1;32mINSTALACAO CONCLUIDA \033[1;33mPORTA: \033[1;37m$porta\033[0m"
  443. [[ $(grep -c "/bin/false" /etc/shells) = '0' ]] && echo "/bin/false" >>/etc/shells
  444. sleep 2
  445. clear
  446. fun_conexao
  447. } || {
  448. echo""
  449. echo -e "\033[1;31mRetornando...\033[0m"
  450. sleep 3
  451. clear
  452. fun_conexao
  453. }
  454. fi
  455. }
  456. inst_ssl() {
  457. if netstat -nltp | grep 'stunnel4' 1>/dev/null 2>/dev/null; then
  458. [[ $(netstat -nltp | grep 'stunnel4' | wc -l) != '0' ]] && sslt=$(netstat -nplt | grep stunnel4 | awk {'print $4'} | awk -F ":" {'print $2'} | xargs) || sslt="\033[1;31mINDISPONIVEL"
  459. echo -e "\E[44;1;37m GERENCIAR SSL TUNNEL \E[0m"
  460. echo -e "\n\033[1;33mPORTAS\033[1;37m: \033[1;32m$sslt"
  461. echo ""
  462. echo -e "\033[1;31m[\033[1;36m1\033[1;31m] \033[1;37m• \033[1;33mALTERAR PORTA SSL TUNNEL\033[0m"
  463. echo -e "\033[1;31m[\033[1;36m2\033[1;31m] \033[1;37m• \033[1;33mREMOVER SSL TUNNEL\033[0m"
  464. echo -e "\033[1;31m[\033[1;36m0\033[1;31m] \033[1;37m• \033[1;33mVOLTAR\033[0m"
  465. echo ""
  466. echo -ne "\033[1;32mOQUE DESEJA FAZER \033[1;33m?\033[1;37m "
  467. read resposta
  468. echo ""
  469. [[ "$resposta" = '1' ]] && {
  470. echo -ne "\033[1;32mQUAL PORTA DESEJA ULTILIZAR \033[1;33m?\033[1;37m "
  471. read porta
  472. echo ""
  473. [[ -z "$porta" ]] && {
  474. echo ""
  475. echo -e "\033[1;31mPorta invalida!"
  476. sleep 2
  477. clear
  478. fun_conexao
  479. }
  480. verif_ptrs $porta
  481. echo -e "\033[1;32mALTERANDO PORTA SSL TUNNEL!"
  482. var2=$(grep 'accept' /etc/stunnel/stunnel.conf | awk '{print $NF}')
  483. sed -i "s/\b$var2\b/$porta/g" /etc/stunnel/stunnel.conf >/dev/null 2>&1
  484. echo ""
  485. fun_bar 'sleep 2'
  486. echo ""
  487. echo -e "\033[1;32mREINICIANDO SSL TUNNEL!\n"
  488. fun_bar 'service stunnel4 restart' '/etc/init.d/stunnel4 restart'
  489. echo ""
  490. netstat -nltp | grep 'stunnel4' >/dev/null && echo -e "\033[1;32mPORTA ALTERADA COM SUCESSO !" || echo -e "\033[1;31mERRO INESPERADO!"
  491. sleep 3.5s
  492. clear
  493. fun_conexao
  494. }
  495. [[ "$resposta" = '2' ]] && {
  496. echo -e "\033[1;32mREMOVENDO O SSL TUNNEL !\033[0m"
  497. del_ssl() {
  498. service stunnel4 stop
  499. apt-get remove stunnel4 -y
  500. apt-get autoremove stunnel4 -y
  501. apt-get purge stunnel4 -y
  502. rm -rf /etc/stunnel/stunnel.conf
  503. rm -rf /etc/default/stunnel4
  504. rm -rf /etc/stunnel/stunnel.pem
  505. }
  506. echo ""
  507. fun_bar 'del_ssl'
  508. echo ""
  509. echo -e "\033[1;32mSSL TUNNEL REMOVIDO COM SUCESSO!\033[0m"
  510. sleep 3
  511. fun_conexao
  512. } || {
  513. echo -e "\033[1;31mRetornando...\033[0m"
  514. sleep 3
  515. fun_conexao
  516. }
  517. else
  518. clear
  519. echo -e "\E[44;1;37m INSTALADOR SSL TUNNEL \E[0m"
  520. echo -e "\n\033[1;33mVC ESTA PRESTES A INSTALAR O SSL TUNNEL !\033[0m"
  521. echo ""
  522. echo -ne "\033[1;32mDESEJA CONTINUAR \033[1;31m? \033[1;33m[s/n]:\033[1;37m "
  523. read resposta
  524. [[ "$resposta" = 's' ]] && {
  525. echo -e "\n\033[1;33mDEFINA UMA PORTA PARA O SSL TUNNEL !\033[0m"
  526. echo ""
  527. read -p "$(echo -e "\033[1;32mQUAL PORTA DESEJA UTILIZAR? \033[1;37m")" -e -i 443 porta
  528. [[ -z "$porta" ]] && {
  529. echo ""
  530. echo -e "\033[1;31mPorta invalida!"
  531. sleep 3
  532. clear
  533. fun_conexao
  534. }
  535. verif_ptrs $porta
  536. echo -e "\n\033[1;32mINSTALANDO O SSL TUNNEL !\033[1;33m"
  537. echo ""
  538. fun_bar 'apt-get update -y' 'apt-get install stunnel4 -y'
  539. echo -e "\n\033[1;32mCONFIGURANDO O SSL TUNNEL !\033[0m"
  540. echo ""
  541. ssl_conf() {
  542. echo -e "cert = /etc/stunnel/stunnel.pem\nclient = no\nsocket = a:SO_REUSEADDR=1\nsocket = l:TCP_NODELAY=1\nsocket = r:TCP_NODELAY=1\n\n[stunnel]\nconnect = 0.0.0.0:22\naccept = ${porta}\nsslVersion = all" >/etc/stunnel/stunnel.conf
  543. }
  544. fun_bar 'ssl_conf'
  545. echo -e "\n\033[1;32mCRIANDO CERTIFICADO !\033[0m"
  546. echo ""
  547. ssl_certif() {
  548. #crt='EC'
  549. #openssl genrsa -out key.pem 2048 >/dev/null 2>&1
  550. #(
  551. #echo $crt
  552. #echo $crt
  553. #echo $crt
  554. #echo $crt
  555. #echo $crt
  556. #echo $crt
  557. #echo $crt
  558. #) | openssl req -new -x509 -key key.pem -out cert.pem -days 1050 >/dev/null 2>&1
  559. #cat cert.pem key.pem >>/etc/stunnel/stunnel.pem
  560. #rm key.pem cert.pem >/dev/null 2>&1
  561. sed -i 's/ENABLED=0/ENABLED=1/g' /etc/default/stunnel4
  562. cd /etc/stunnel && wget sshplus.xyz/script/stunnel.pem && cd $HOME
  563. }
  564. fun_bar 'ssl_certif'
  565. echo -e "\n\033[1;32mINICIANDO O SSL TUNNEL !\033[0m"
  566. echo ""
  567. fun_finssl() {
  568. service stunnel4 restart
  569. service ssh restart
  570. /etc/init.d/stunnel4 restart
  571. }
  572. fun_bar 'fun_finssl' 'service stunnel4 restart'
  573. echo -e "\n\033[1;32mSSL TUNNEL INSTALADO COM SUCESSO !\033[1;31m PORTA: \033[1;33m$porta\033[0m"
  574. sleep 3
  575. clear
  576. fun_conexao
  577. } || {
  578. echo -e "\n\033[1;31mRetornando...\033[0m"
  579. sleep 2
  580. clear
  581. fun_conexao
  582. }
  583. fi
  584. }
  585. fun_openvpn() {
  586. if readlink /proc/$$/exe | grep -qs "dash"; then
  587. echo "Este script precisa ser executado com bash, não sh"
  588. exit 1
  589. fi
  590. [[ "$EUID" -ne 0 ]] && {
  591. clear
  592. echo "Execulte como root"
  593. exit 2
  594. }
  595. [[ ! -e /dev/net/tun ]] && {
  596. echo -e "\033[1;31mTUN TAP NAO DISPONIVEL\033[0m"
  597. sleep 2
  598. exit 3
  599. }
  600. if grep -qs "CentOS release 5" "/etc/redhat-release"; then
  601. echo "O CentOS 5 é muito antigo e não é suportado"
  602. exit 4
  603. fi
  604. if [[ -e /etc/debian_version ]]; then
  605. OS=debian
  606. GROUPNAME=nogroup
  607. RCLOCAL='/etc/rc.local'
  608. elif [[ -e /etc/centos-release || -e /etc/redhat-release ]]; then
  609. OS=centos
  610. GROUPNAME=nobody
  611. RCLOCAL='/etc/rc.d/rc.local'
  612. else
  613. echo -e "SISTEMA NAO SUPORTADO"
  614. exit 5
  615. fi
  616. newclient() {
  617. # gerar client.ovpn
  618. cp /etc/openvpn/client-common.txt ~/$1.ovpn
  619. echo "<ca>" >>~/$1.ovpn
  620. cat /etc/openvpn/easy-rsa/pki/ca.crt >>~/$1.ovpn
  621. echo "</ca>" >>~/$1.ovpn
  622. echo "<cert>" >>~/$1.ovpn
  623. cat /etc/openvpn/easy-rsa/pki/issued/$1.crt >>~/$1.ovpn
  624. echo "</cert>" >>~/$1.ovpn
  625. echo "<key>" >>~/$1.ovpn
  626. cat /etc/openvpn/easy-rsa/pki/private/$1.key >>~/$1.ovpn
  627. echo "</key>" >>~/$1.ovpn
  628. echo "<tls-auth>" >>~/$1.ovpn
  629. cat /etc/openvpn/ta.key >>~/$1.ovpn
  630. echo "</tls-auth>" >>~/$1.ovpn
  631. }
  632. IP1=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1)
  633. IP2=$(wget -4qO- "http://whatismyip.akamai.com/")
  634. [[ "$IP1" = "" ]] && {
  635. IP1=$(hostname -I | cut -d' ' -f1)
  636. }
  637. [[ "$IP1" != "$IP2" ]] && {
  638. IP="$IP1"
  639. } || {
  640. IP="$IP2"
  641. }
  642. [[ $(netstat -nplt | grep -wc 'openvpn') != '0' ]] && {
  643. while :; do
  644. clear
  645. opnp=$(cat /etc/openvpn/server.conf | grep "port" | awk {'print $2'})
  646. [[ -d /var/www/html/openvpn ]] && {
  647. ovpnweb=$(echo -e "\033[1;32m◉ ")
  648. } || {
  649. ovpnweb=$(echo -e "\033[1;31m○ ")
  650. }
  651. if grep "duplicate-cn" /etc/openvpn/server.conf >/dev/null; then
  652. mult=$(echo -e "\033[1;32m◉ ")
  653. else
  654. mult=$(echo -e "\033[1;31m○ ")
  655. fi
  656. echo -e "\E[44;1;37m GERENCIAR OPENVPN \E[0m"
  657. echo ""
  658. echo -e "\033[1;33mPORTA\033[1;37m: \033[1;32m$opnp"
  659. echo ""
  660. echo -e "\033[1;31m[\033[1;36m1\033[1;31m] \033[1;37m• \033[1;33mALTERAR PORTA"
  661. echo -e "\033[1;31m[\033[1;36m2\033[1;31m] \033[1;37m• \033[1;33mREMOVER OPENVPN"
  662. echo -e "\033[1;31m[\033[1;36m3\033[1;31m] \033[1;37m• \033[1;33mOVPN VIA LINK $ovpnweb"
  663. echo -e "\033[1;31m[\033[1;36m4\033[1;31m] \033[1;37m• \033[1;33mMULTILOGIN OVPN $mult"
  664. echo -e "\033[1;31m[\033[1;36m5\033[1;31m] \033[1;37m• \033[1;33mALTERAR HOST DNS"
  665. echo -e "\033[1;31m[\033[1;36m0\033[1;31m] \033[1;37m• \033[1;33mVOLTAR"
  666. echo ""
  667. echo -ne "\033[1;32mOQUE DESEJA FAZER \033[1;33m?\033[1;31m?\033[1;37m "
  668. read option
  669. case $option in
  670. 1)
  671. clear
  672. echo -e "\E[44;1;37m ALTERAR PORTA OPENVPN \E[0m"
  673. echo ""
  674. echo -e "\033[1;33mPORTA EM USO: \033[1;32m$opnp"
  675. echo ""
  676. echo -ne "\033[1;32mQUAL PORTA DESEJA UTILIZAR \033[1;33m?\033[1;37m "
  677. read porta
  678. [[ -z "$porta" ]] && {
  679. echo ""
  680. echo -e "\033[1;31mPorta invalida!"
  681. sleep 3
  682. fun_conexao
  683. }
  684. verif_ptrs
  685. echo ""
  686. echo -e "\033[1;32mALTERANDO A PORTA OPENVPN!\033[1;33m"
  687. echo ""
  688. fun_opn() {
  689. var_ptovpn=$(sed -n '1 p' /etc/openvpn/server.conf)
  690. sed -i "s/\b$var_ptovpn\b/port $porta/g" /etc/openvpn/server.conf
  691. sleep 1
  692. var_ptovpn2=$(sed -n '7 p' /etc/openvpn/client-common.txt | awk {'print $NF'})
  693. sed -i "s/\b$var_ptovpn2/\b$porta/g" /etc/openvpn/client-common.txt
  694. sleep 1
  695. service openvpn restart
  696. }
  697. fun_bar 'fun_opn'
  698. echo ""
  699. echo -e "\033[1;32mPORTA ALTERADA COM SUCESSO!\033[1;33m"
  700. sleep 2
  701. fun_conexao
  702. ;;
  703. 2)
  704. echo ""
  705. echo -ne "\033[1;32mDESEJA REMOVER O OPENVPN \033[1;31m? \033[1;33m[s/n]:\033[1;37m "
  706. read REMOVE
  707. [[ "$REMOVE" = 's' ]] && {
  708. rmv_open() {
  709. PORT=$(grep '^port ' /etc/openvpn/server.conf | cut -d " " -f 2)
  710. PROTOCOL=$(grep '^proto ' /etc/openvpn/server.conf | cut -d " " -f 2)
  711. IP=$(grep 'iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to ' $RCLOCAL | cut -d " " -f 11)
  712. if pgrep firewalld; then
  713. firewall-cmd --zone=public --remove-port=$PORT/$PROTOCOL
  714. firewall-cmd --zone=trusted --remove-source=10.8.0.0/24
  715. firewall-cmd --permanent --zone=public --remove-port=$PORT/$PROTOCOL
  716. firewall-cmd --permanent --zone=trusted --remove-source=10.8.0.0/24
  717. fi
  718. if iptables -L -n | grep -qE 'REJECT|DROP|ACCEPT'; then
  719. iptables -D INPUT -p $PROTOCOL --dport $PORT -j ACCEPT
  720. iptables -D FORWARD -s 10.8.0.0/24 -j ACCEPT
  721. iptables -D FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
  722. sed -i "/iptables -I INPUT -p $PROTOCOL --dport $PORT -j ACCEPT/d" $RCLOCAL
  723. sed -i "/iptables -I FORWARD -s 10.8.0.0\/24 -j ACCEPT/d" $RCLOCAL
  724. sed -i "/iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT/d" $RCLOCAL
  725. fi
  726. iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -j SNAT --to $IP
  727. sed -i '/iptables -t nat -A POSTROUTING -s 10.8.0.0\/24 -j SNAT --to /d' $RCLOCAL
  728. if hash sestatus 2>/dev/null; then
  729. if sestatus | grep "Current mode" | grep -qs "enforcing"; then
  730. if [[ "$PORT" != '1194' || "$PROTOCOL" = 'tcp' ]]; then
  731. semanage port -d -t openvpn_port_t -p $PROTOCOL $PORT
  732. fi
  733. fi
  734. fi
  735. [[ "$OS" = 'debian' ]] && {
  736. apt-get remove --purge -y openvpn openvpn-blacklist
  737. apt-get autoremove openvpn -y
  738. apt-get autoremove -y
  739. } || {
  740. yum remove openvpn -y
  741. }
  742. rm -rf /etc/openvpn
  743. rm -rf /usr/share/doc/openvpn*
  744. }
  745. echo ""
  746. echo -e "\033[1;32mREMOVENDO O OPENVPN!\033[0m"
  747. echo ""
  748. fun_bar 'rmv_open'
  749. echo ""
  750. echo -e "\033[1;32mOPENVPN REMOVIDO COM SUCESSO!\033[0m"
  751. sleep 2
  752. fun_conexao
  753. } || {
  754. echo ""
  755. echo -e "\033[1;31mRetornando...\033[0m"
  756. sleep 2
  757. fun_conexao
  758. }
  759. ;;
  760. 3)
  761. [[ -d /var/www/html/openvpn ]] && {
  762. clear
  763. fun_spcr() {
  764. apt-get remove apache2 -y
  765. apt-get autoremove -y
  766. rm -rf /var/www/html/openvpn
  767. }
  768. function aguarde() {
  769. helice() {
  770. fun_spcr >/dev/null 2>&1 &
  771. tput civis
  772. while [ -d /proc/$! ]; do
  773. for i in / - \\ \|; do
  774. sleep .1
  775. echo -ne "\e[1D$i"
  776. done
  777. done
  778. tput cnorm
  779. }
  780. echo -ne "\033[1;31mDESATIVANDO\033[1;32m.\033[1;33m.\033[1;31m. \033[1;33m"
  781. helice
  782. echo -e "\e[1DOk"
  783. }
  784. aguarde
  785. sleep 2
  786. fun_openvpn
  787. } || {
  788. clear
  789. fun_apchon() {
  790. apt-get install apache2 zip -y
  791. sed -i "s/Listen 80/Listen 81/g" /etc/apache2/ports.conf
  792. service apache2 restart
  793. [[ ! -d /var/www/html ]] && {
  794. mkdir /var/www/html
  795. }
  796. [[ ! -d /var/www/html/openvpn ]] && {
  797. mkdir /var/www/html/openvpn
  798. }
  799. touch /var/www/html/openvpn/index.html
  800. chmod -R 755 /var/www
  801. /etc/init.d/apache2 restart
  802. }
  803. function aguarde2() {
  804. helice() {
  805. fun_apchon >/dev/null 2>&1 &
  806. tput civis
  807. while [ -d /proc/$! ]; do
  808. for i in / - \\ \|; do
  809. sleep .1
  810. echo -ne "\e[1D$i"
  811. done
  812. done
  813. tput cnorm
  814. }
  815. echo -ne "\033[1;32mATIVANDO\033[1;32m.\033[1;33m.\033[1;31m. \033[1;33m"
  816. helice
  817. echo -e "\e[1DOk"
  818. }
  819. aguarde2
  820. fun_openvpn
  821. }
  822. ;;
  823. 4)
  824. if grep "duplicate-cn" /etc/openvpn/server.conf >/dev/null; then
  825. clear
  826. fun_multon() {
  827. sed -i '/duplicate-cn/d' /etc/openvpn/server.conf
  828. sleep 1.5s
  829. service openvpn restart >/dev/null
  830. sleep 2
  831. }
  832. fun_spinmult() {
  833. helice() {
  834. fun_multon >/dev/null 2>&1 &
  835. tput civis
  836. while [ -d /proc/$! ]; do
  837. for i in / - \\ \|; do
  838. sleep .1
  839. echo -ne "\e[1D$i"
  840. done
  841. done
  842. tput cnorm
  843. }
  844. echo ""
  845. echo -ne "\033[1;31mBLOQUEANDO MULTILOGIN\033[1;32m.\033[1;33m.\033[1;31m. \033[1;33m"
  846. helice
  847. echo -e "\e[1DOk"
  848. }
  849. fun_spinmult
  850. sleep 1
  851. fun_openvpn
  852. else
  853. clear
  854. fun_multoff() {
  855. grep -v "^duplicate-cn" /etc/openvpn/server.conf >/tmp/tmpass && mv /tmp/tmpass /etc/openvpn/server.conf
  856. echo "duplicate-cn" >>/etc/openvpn/server.conf
  857. sleep 1.5s
  858. service openvpn restart >/dev/null
  859. }
  860. fun_spinmult2() {
  861. helice() {
  862. fun_multoff >/dev/null 2>&1 &
  863. tput civis
  864. while [ -d /proc/$! ]; do
  865. for i in / - \\ \|; do
  866. sleep .1
  867. echo -ne "\e[1D$i"
  868. done
  869. done
  870. tput cnorm
  871. }
  872. echo ""
  873. echo -ne "\033[1;32mPERMITINDO MULTILOGIN\033[1;32m.\033[1;33m.\033[1;31m. \033[1;33m"
  874. helice
  875. echo -e "\e[1DOk"
  876. }
  877. fun_spinmult2
  878. sleep 1
  879. fun_openvpn
  880. fi
  881. ;;
  882. 5)
  883. clear
  884. echo -e "\E[44;1;37m ALTERAR HOST DNS \E[0m"
  885. echo ""
  886. echo -e "\033[1;31m[\033[1;36m1\033[1;31m] \033[1;37m• \033[1;33mADICIONAR HOST DNS"
  887. echo -e "\033[1;31m[\033[1;36m2\033[1;31m] \033[1;37m• \033[1;33mREMOVER HOST DNS"
  888. echo -e "\033[1;31m[\033[1;36m3\033[1;31m] \033[1;37m• \033[1;33mEDITAR MANUALMENTE"
  889. echo -e "\033[1;31m[\033[1;36m0\033[1;31m] \033[1;37m• \033[1;33mVOLTAR"
  890. echo ""
  891. echo -ne "\033[1;32mOQUE DESEJA FAZER \033[1;33m?\033[1;31m?\033[1;37m "
  892. read resp
  893. [[ -z "$resp" ]] && {
  894. echo ""
  895. echo -e "\033[1;31mOpcao invalida!"
  896. sleep 3
  897. fun_openvpn
  898. }
  899. if [[ "$resp" = '1' ]]; then
  900. clear
  901. echo -e "\E[44;1;37m Adicionar Host DNS \E[0m"
  902. echo ""
  903. echo -e "\033[1;33mLista dos hosts atuais:\033[0m "
  904. echo ""
  905. i=0
  906. for _host in $(grep -w "127.0.0.1" /etc/hosts | grep -v "localhost" | cut -d' ' -f2); do
  907. echo -e "\033[1;32m$_host"
  908. done
  909. echo ""
  910. echo -ne "\033[1;33mDigite o host a ser adicionado\033[1;37m : "
  911. read host
  912. if [[ -z $host ]]; then
  913. echo ""
  914. echo -e "\E[41;1;37m Campo Vazio ou invalido ! \E[0m"
  915. sleep 2
  916. fun_openvpn
  917. fi
  918. if [[ "$(grep -w "$host" /etc/hosts | wc -l)" -gt "0" ]]; then
  919. echo -e "\E[41;1;37m Esse host ja está adicionado ! \E[0m"
  920. sleep 2
  921. fun_openvpn
  922. fi
  923. sed -i "3i\127.0.0.1 $host" /etc/hosts
  924. echo ""
  925. echo -e "\E[44;1;37m Host adicionado com sucesso ! \E[0m"
  926. sleep 2
  927. fun_openvpn
  928. elif [[ "$resp" = '2' ]]; then
  929. clear
  930. echo -e "\E[44;1;37m Remover Host DNS \E[0m"
  931. echo ""
  932. echo -e "\033[1;33mLista dos hosts atuais:\033[0m "
  933. echo ""
  934. i=0
  935. for _host in $(grep -w "127.0.0.1" /etc/hosts | grep -v "localhost" | cut -d' ' -f2); do
  936. i=$(expr $i + 1)
  937. oP+=$i
  938. [[ $i == [1-9] ]] && oP+=" 0$i" && i=0$i
  939. oP+=":$_host\n"
  940. echo -e "\033[1;33m[\033[1;31m$i\033[1;33m] \033[1;37m- \033[1;32m$_host\033[0m"
  941. done
  942. echo ""
  943. echo -ne "\033[1;32mSelecione o host a ser removido \033[1;33m[\033[1;37m1\033[1;31m-\033[1;37m$i\033[1;33m]\033[1;37m: "
  944. read option
  945. if [[ -z $option ]]; then
  946. echo ""
  947. echo -e "\E[41;1;37m Opcao invalida ! \E[0m"
  948. sleep 2
  949. fun_openvpn
  950. fi
  951. host=$(echo -e "$oP" | grep -E "\b$option\b" | cut -d: -f2)
  952. hst=$(grep -v "127.0.0.1 $host" /etc/hosts)
  953. echo "$hst" >/etc/hosts
  954. echo ""
  955. echo -e "\E[41;1;37m Host removido com sucesso ! \E[0m"
  956. sleep 2
  957. fun_openvpn
  958. elif [[ "$resp" = '3' ]]; then
  959. echo -e "\n\033[1;32mALTERANDO ARQUIVO \033[1;37m/etc/hosts\033[0m"
  960. echo -e "\n\033[1;31mATENCAO!\033[0m"
  961. echo -e "\n\033[1;33mPARA SALVAR USE AS TECLAS \033[1;32mctrl x y\033[0m"
  962. sleep 4
  963. clear
  964. nano /etc/hosts
  965. echo -e "\n\033[1;32mALTERADO COM SUCESSO!\033[0m"
  966. sleep 3
  967. fun_openvpn
  968. elif [[ "$resp" = '0' ]]; then
  969. echo ""
  970. echo -e "\033[1;31mRetornando...\033[0m"
  971. sleep 2
  972. fun_conexao
  973. else
  974. echo ""
  975. echo -e "\033[1;31mOpcao invalida !\033[0m"
  976. sleep 2
  977. fun_openvpn
  978. fi
  979. ;;
  980. 0)
  981. fun_conexao
  982. ;;
  983. *)
  984. echo ""
  985. echo -e "\033[1;31mOpcao invalida !\033[0m"
  986. sleep 2
  987. fun_openvpn
  988. ;;
  989. esac
  990. done
  991. } || {
  992. clear
  993. echo -e "\E[44;1;37m INSTALADOR OPENVPN \E[0m"
  994. echo ""
  995. echo -e "\033[1;33mRESPONDA AS QUESTOES PARA INICIAR A INSTALACAO"
  996. echo ""
  997. echo -ne "\033[1;32mPARA CONTINUAR CONFIRME SEU IP: \033[1;37m"
  998. read -e -i $IP IP
  999. [[ -z "$IP" ]] && {
  1000. echo ""
  1001. echo -e "\033[1;31mIP invalido!"
  1002. sleep 3
  1003. fun_conexao
  1004. }
  1005. echo ""
  1006. read -p "$(echo -e "\033[1;32mQUAL PORTA DESEJA UTILIZAR? \033[1;37m")" -e -i 1194 porta
  1007. [[ -z "$porta" ]] && {
  1008. echo ""
  1009. echo -e "\033[1;31mPorta invalida!"
  1010. sleep 2
  1011. fun_conexao
  1012. }
  1013. echo ""
  1014. echo -e "\033[1;33mVERIFICANDO PORTA..."
  1015. verif_ptrs $porta
  1016. echo ""
  1017. echo -e "\033[1;31m[\033[1;36m1\033[1;31m] \033[1;33mSistema"
  1018. echo -e "\033[1;31m[\033[1;36m2\033[1;31m] \033[1;33mGoogle (\033[1;32mRecomendado\033[1;33m)"
  1019. echo -e "\033[1;31m[\033[1;36m3\033[1;31m] \033[1;33mOpenDNS"
  1020. echo -e "\033[1;31m[\033[1;36m4\033[1;31m] \033[1;33mCloudflare"
  1021. echo -e "\033[1;31m[\033[1;36m5\033[1;31m] \033[1;33mHurricane Electric"
  1022. echo -e "\033[1;31m[\033[1;36m6\033[1;31m] \033[1;33mVerisign"
  1023. echo -e "\033[1;31m[\033[1;36m7\033[1;31m] \033[1;33mDNS Performace\033[0m"
  1024. echo ""
  1025. read -p "$(echo -e "\033[1;32mQUAL DNS DESEJA UTILIZAR? \033[1;37m")" -e -i 2 DNS
  1026. echo ""
  1027. echo -e "\033[1;31m[\033[1;36m1\033[1;31m] \033[1;33mUDP"
  1028. echo -e "\033[1;31m[\033[1;36m2\033[1;31m] \033[1;33mTCP (\033[1;32mRecomendado\033[1;33m)"
  1029. echo ""
  1030. read -p "$(echo -e "\033[1;32mQUAL PROTOCOLO DESEJA UTILIZAR NO OPENVPN? \033[1;37m")" -e -i 2 resp
  1031. if [[ "$resp" = '1' ]]; then
  1032. PROTOCOL=udp
  1033. elif [[ "$resp" = '2' ]]; then
  1034. PROTOCOL=tcp
  1035. else
  1036. PROTOCOL=tcp
  1037. fi
  1038. echo ""
  1039. [[ "$OS" = 'debian' ]] && {
  1040. echo -e "\033[1;32mATUALIZANDO O SISTEMA"
  1041. echo ""
  1042. fun_attos() {
  1043. apt-get update-y
  1044. }
  1045. fun_bar 'fun_attos'
  1046. echo ""
  1047. echo -e "\033[1;32mINSTALANDO DEPENDENCIAS"
  1048. echo ""
  1049. fun_instdep() {
  1050. apt-get install openvpn iptables openssl ca-certificates -y
  1051. apt-get install zip -y
  1052. }
  1053. fun_bar 'fun_instdep'
  1054. } || {
  1055. fun_bar 'yum install epel-release -y'
  1056. fun_bar 'yum install openvpn iptables openssl wget ca-certificates -y'
  1057. }
  1058. [[ -d /etc/openvpn/easy-rsa/ ]] && {
  1059. rm -rf /etc/openvpn/easy-rsa/
  1060. }
  1061. # Adquirindo easy-rsa
  1062. echo ""
  1063. fun_dep() {
  1064. wget -O ~/EasyRSA-3.0.1.tgz "https://github.com/OpenVPN/easy-rsa/releases/download/3.0.1/EasyRSA-3.0.1.tgz"
  1065. [[ ! -e $HOME/EasyRSA-3.0.1.tgz ]] && {
  1066. wget -O ~/EasyRSA-3.0.1.tgz "http://sshplus.xyz/script/EasyRSA-3.0.1.tgz"
  1067. }
  1068. tar xzf ~/EasyRSA-3.0.1.tgz -C ~/
  1069. mv ~/EasyRSA-3.0.1/ /etc/openvpn/
  1070. mv /etc/openvpn/EasyRSA-3.0.1/ /etc/openvpn/easy-rsa/
  1071. chown -R root:root /etc/openvpn/easy-rsa/
  1072. rm -rf ~/EasyRSA-3.0.1.tgz
  1073. cd /etc/openvpn/easy-rsa/
  1074. ./easyrsa init-pki
  1075. ./easyrsa --batch build-ca nopass
  1076. ./easyrsa gen-dh
  1077. ./easyrsa build-server-full server nopass
  1078. ./easyrsa build-client-full SSHPLUS nopass
  1079. ./easyrsa gen-crl
  1080. cp pki/ca.crt pki/private/ca.key pki/dh.pem pki/issued/server.crt pki/private/server.key /etc/openvpn/easy-rsa/pki/crl.pem /etc/openvpn
  1081. chown nobody:$GROUPNAME /etc/openvpn/crl.pem
  1082. openvpn --genkey --secret /etc/openvpn/ta.key
  1083. # Generando server.conf
  1084. echo "port $porta
  1085. proto $PROTOCOL
  1086. dev tun
  1087. sndbuf 0
  1088. rcvbuf 0
  1089. ca ca.crt
  1090. cert server.crt
  1091. key server.key
  1092. dh dh.pem
  1093. tls-auth ta.key 0
  1094. topology subnet
  1095. server 10.8.0.0 255.255.255.0
  1096. ifconfig-pool-persist ipp.txt" >/etc/openvpn/server.conf
  1097. echo 'push "redirect-gateway def1 bypass-dhcp"' >>/etc/openvpn/server.conf
  1098. # DNS
  1099. case $DNS in
  1100. 1)
  1101. # Obtain the resolvers from resolv.conf and use them for OpenVPN
  1102. grep -v '#' /etc/resolv.conf | grep 'nameserver' | grep -E -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | while read line; do
  1103. echo "push \"dhcp-option DNS $line\"" >>/etc/openvpn/server.conf
  1104. done
  1105. ;;
  1106. 2)
  1107. echo 'push "dhcp-option DNS 8.8.8.8"' >>/etc/openvpn/server.conf
  1108. echo 'push "dhcp-option DNS 8.8.4.4"' >>/etc/openvpn/server.conf
  1109. ;;
  1110. 3)
  1111. echo 'push "dhcp-option DNS 208.67.222.222"' >>/etc/openvpn/server.conf
  1112. echo 'push "dhcp-option DNS 208.67.220.220"' >>/etc/openvpn/server.conf
  1113. ;;
  1114. 4)
  1115. echo 'push "dhcp-option DNS 1.1.1.1"' >>/etc/openvpn/server.conf
  1116. echo 'push "dhcp-option DNS 1.0.0.1"' >>/etc/openvpn/server.conf
  1117. ;;
  1118. 5)
  1119. echo 'push "dhcp-option DNS 74.82.42.42"' >>/etc/openvpn/server.conf
  1120. ;;
  1121. 6)
  1122. echo 'push "dhcp-option DNS 64.6.64.6"' >>/etc/openvpn/server.conf
  1123. echo 'push "dhcp-option DNS 64.6.65.6"' >>/etc/openvpn/server.conf
  1124. ;;
  1125. 7)
  1126. echo 'push "dhcp-option DNS 189.38.95.95"' >>/etc/openvpn/server.conf
  1127. echo 'push "dhcp-option DNS 216.146.36.36"' >>/etc/openvpn/server.conf
  1128. ;;
  1129. esac
  1130. echo "keepalive 10 120
  1131. float
  1132. cipher AES-256-CBC
  1133. comp-lzo yes
  1134. user nobody
  1135. group $GROUPNAME
  1136. persist-key
  1137. persist-tun
  1138. status openvpn-status.log
  1139. management localhost 7505
  1140. verb 3
  1141. crl-verify crl.pem
  1142. client-to-client
  1143. client-cert-not-required
  1144. username-as-common-name
  1145. plugin $(find /usr -type f -name 'openvpn-plugin-auth-pam.so') login
  1146. duplicate-cn" >>/etc/openvpn/server.conf
  1147. sed -i '/\<net.ipv4.ip_forward\>/c\net.ipv4.ip_forward=1' /etc/sysctl.conf
  1148. if ! grep -q "\<net.ipv4.ip_forward\>" /etc/sysctl.conf; then
  1149. echo 'net.ipv4.ip_forward=1' >>/etc/sysctl.conf
  1150. fi
  1151. echo 1 >/proc/sys/net/ipv4/ip_forward
  1152. if [[ "$OS" = 'debian' && ! -e $RCLOCAL ]]; then
  1153. echo '#!/bin/sh -e
  1154. exit 0' >$RCLOCAL
  1155. fi
  1156. chmod +x $RCLOCAL
  1157. iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to $IP
  1158. sed -i "1 a\iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to $IP" $RCLOCAL
  1159. if pgrep firewalld; then
  1160. firewall-cmd --zone=public --add-port=$porta/$PROTOCOL
  1161. firewall-cmd --zone=trusted --add-source=10.8.0.0/24
  1162. firewall-cmd --permanent --zone=public --add-port=$porta/$PROTOCOL
  1163. firewall-cmd --permanent --zone=trusted --add-source=10.8.0.0/24
  1164. fi
  1165. if iptables -L -n | grep -qE 'REJECT|DROP'; then
  1166. iptables -I INPUT -p $PROTOCOL --dport $porta -j ACCEPT
  1167. iptables -I FORWARD -s 10.8.0.0/24 -j ACCEPT
  1168. iptables -F
  1169. iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
  1170. sed -i "1 a\iptables -I INPUT -p $PROTOCOL --dport $porta -j ACCEPT" $RCLOCAL
  1171. sed -i "1 a\iptables -I FORWARD -s 10.8.0.0/24 -j ACCEPT" $RCLOCAL
  1172. sed -i "1 a\iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT" $RCLOCAL
  1173. fi
  1174. if hash sestatus 2>/dev/null; then
  1175. if sestatus | grep "Current mode" | grep -qs "enforcing"; then
  1176. if [[ "$porta" != '1194' || "$PROTOCOL" = 'tcp' ]]; then
  1177. if ! hash semanage 2>/dev/null; then
  1178. yum install policycoreutils-python -y
  1179. fi
  1180. semanage port -a -t openvpn_port_t -p $PROTOCOL $porta
  1181. fi
  1182. fi
  1183. fi
  1184. }
  1185. echo -e "\033[1;32mINSTALANDO O OPENVPN \033[1;31m(\033[1;33mPODE DEMORAR!\033[1;31m)"
  1186. echo ""
  1187. fun_bar 'fun_dep > /dev/null 2>&1'
  1188. fun_ropen() {
  1189. [[ "$OS" = 'debian' ]] && {
  1190. if pgrep systemd-journal; then
  1191. systemctl restart openvpn@server.service
  1192. else
  1193. /etc/init.d/openvpn restart
  1194. fi
  1195. } || {
  1196. if pgrep systemd-journal; then
  1197. systemctl restart openvpn@server.service
  1198. systemctl enable openvpn@server.service
  1199. else
  1200. service openvpn restart
  1201. chkconfig openvpn on
  1202. fi
  1203. }
  1204. }
  1205. echo ""
  1206. echo -e "\033[1;32mREINICIANDO O OPENVPN"
  1207. echo ""
  1208. fun_bar 'fun_ropen'
  1209. IP2=$(wget -4qO- "http://whatismyip.akamai.com/")
  1210. if [[ "$IP" != "$IP2" ]]; then
  1211. IP="$IP2"
  1212. fi
  1213. [[ $(grep -wc 'open.py' /etc/autostart) != '0' ]] && pt_proxy=$(grep -w 'open.py' /etc/autostart| cut -d' ' -f6) || pt_proxy=80
  1214. cat <<-EOF >/etc/openvpn/client-common.txt
  1215. # OVPN_ACCESS_SERVER_PROFILE=[SSHPLUS]
  1216. client
  1217. dev tun
  1218. proto $PROTOCOL
  1219. sndbuf 0
  1220. rcvbuf 0
  1221. remote 127.0.0.1 2222
  1222. route $IP 255.255.255.255 net_gateway
  1223. #MODO SLOWDNS, UTILIZE O APP OPENVPN PARA ANDROID, SELECIONE O TERMUX EM APLICAÇÕES PERMITIDAS
  1224. resolv-retry 5
  1225. nobind
  1226. persist-key
  1227. persist-tun
  1228. remote-cert-tls server
  1229. cipher AES-256-CBC
  1230. comp-lzo yes
  1231. setenv opt block-outside-dns
  1232. key-direction 1
  1233. verb 3
  1234. auth-user-pass
  1235. keepalive 10 120
  1236. float
  1237. EOF
  1238. # gerar client.ovpn
  1239. newclient "SSHPLUS"
  1240. [[ "$(netstat -nplt | grep -wc 'openvpn')" != '0' ]] && echo -e "\n\033[1;32mOPENVPN INSTALADO COM SUCESSO\033[0m" || echo -e "\n\033[1;31mERRO ! A INSTALACAO CORROMPEU\033[0m"
  1241. }
  1242. sed -i '$ i\echo 1 > /proc/sys/net/ipv4/ip_forward' /etc/rc.local
  1243. sed -i '$ i\echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6' /etc/rc.local
  1244. sed -i '$ i\iptables -A INPUT -p tcp --dport 25 -j DROP' /etc/rc.local
  1245. sed -i '$ i\iptables -A INPUT -p tcp --dport 110 -j DROP' /etc/rc.local
  1246. sed -i '$ i\iptables -A OUTPUT -p tcp --dport 25 -j DROP' /etc/rc.local
  1247. sed -i '$ i\iptables -A OUTPUT -p tcp --dport 110 -j DROP' /etc/rc.local
  1248. sed -i '$ i\iptables -A FORWARD -p tcp --dport 25 -j DROP' /etc/rc.local
  1249. sed -i '$ i\iptables -A FORWARD -p tcp --dport 110 -j DROP' /etc/rc.local
  1250. sleep 3
  1251. fun_conexao
  1252. }
  1253. fun_socks() {
  1254. clear
  1255. echo -e "\E[44;1;37m GERENCIAR PROXY SOCKS \E[0m"
  1256. echo ""
  1257. [[ $(netstat -nplt | grep -wc 'python') != '0' ]] && {
  1258. sks='\033[1;32mON'
  1259. echo -e "\033[1;33mPORTAS\033[1;37m: \033[1;32m$(netstat -nplt | grep 'python' | awk {'print $4'} | cut -d: -f2 | xargs)"
  1260. } || {
  1261. sks='\033[1;31mOFF'
  1262. }
  1263. [[ $(screen -list | grep -wc 'proxy') != '0' ]] && var_sks1="\033[1;32m◉" || var_sks1="\033[1;31m○"
  1264. [[ $(screen -list | grep -wc 'openpy') != '0' ]] && sksop="\033[1;32m◉" || sksop="\033[1;31m○"
  1265. echo ""
  1266. echo -e "\033[1;31m[\033[1;36m1\033[1;31m] \033[1;37m• \033[1;33mSOCKS SSH $var_sks1 \033[0m"
  1267. echo -e "\033[1;31m[\033[1;36m2\033[1;31m] \033[1;37m• \033[1;33mSOCKS OEPNVPN $sksop \033[0m"
  1268. echo -e "\033[1;31m[\033[1;36m3\033[1;31m] \033[1;37m• \033[1;33mABRIR PORTA\033[0m"
  1269. echo -e "\033[1;31m[\033[1;36m4\033[1;31m] \033[1;37m• \033[1;33mALTERAR STATUS\033[0m"
  1270. echo -e "\033[1;31m[\033[1;36m0\033[1;31m] \033[1;37m• \033[1;33mVOLTAR\033[0m"
  1271. echo ""
  1272. echo -ne "\033[1;32mOQUE DESEJA FAZER \033[1;33m?\033[1;37m "
  1273. read resposta
  1274. if [[ "$resposta" = '1' ]]; then
  1275. if ps x | grep -w proxy.py | grep -v grep 1>/dev/null 2>/dev/null; then
  1276. clear
  1277. echo -e "\E[41;1;37m PROXY SOCKS \E[0m"
  1278. echo ""
  1279. fun_socksoff() {
  1280. for pidproxy in $(screen -ls | grep ".proxy" | awk {'print $1'}); do
  1281. screen -r -S "$pidproxy" -X quit
  1282. done
  1283. [[ $(grep -wc "proxy.py" /etc/autostart) != '0' ]] && {
  1284. sed -i '/proxy.py/d' /etc/autostart
  1285. }
  1286. sleep 1
  1287. screen -wipe >/dev/null
  1288. }
  1289. echo -e "\033[1;32mDESATIVANDO O PROXY SOCKS\033[1;33m"
  1290. echo ""
  1291. fun_bar 'fun_socksoff'
  1292. echo ""
  1293. echo -e "\033[1;32mPROXY SOCKS DESATIVADO COM SUCESSO!\033[1;33m"
  1294. sleep 3
  1295. fun_socks
  1296. else
  1297. clear
  1298. echo -e "\E[44;1;37m PROXY SOCKS \E[0m"
  1299. echo ""
  1300. echo -ne "\033[1;32mQUAL PORTA DESEJA ULTILIZAR \033[1;33m?\033[1;37m: "
  1301. read porta
  1302. [[ -z "$porta" ]] && {
  1303. echo ""
  1304. echo -e "\033[1;31mPorta invalida!"
  1305. sleep 3
  1306. clear
  1307. fun_conexao
  1308. }
  1309. verif_ptrs $porta
  1310. fun_inisocks() {
  1311. sleep 1
  1312. screen -dmS proxy python /etc/SSHPlus/proxy.py $porta
  1313. [[ $(grep -wc "proxy.py" /etc/autostart) = '0' ]] && {
  1314. echo -e "netstat -tlpn | grep -w $porta > /dev/null || { screen -r -S 'proxy' -X quit; screen -dmS proxy python /etc/SSHPlus/proxy.py $porta; }" >>/etc/autostart
  1315. } || {
  1316. sed -i '/proxy.py/d' /etc/autostart
  1317. echo -e "netstat -tlpn | grep -w $porta > /dev/null || { screen -r -S 'proxy' -X quit; screen -dmS proxy python /etc/SSHPlus/proxy.py $porta; }" >>/etc/autostart
  1318. }
  1319. }
  1320. echo ""
  1321. echo -e "\033[1;32mINICIANDO O PROXY SOCKS\033[1;33m"
  1322. echo ""
  1323. fun_bar 'fun_inisocks'
  1324. echo ""
  1325. echo -e "\033[1;32mSOCKS ATIVADO COM SUCESSO\033[1;33m"
  1326. sleep 3
  1327. fun_socks
  1328. fi
  1329. elif [[ "$resposta" = '2' ]]; then
  1330. if ps x | grep -w open.py | grep -v grep 1>/dev/null 2>/dev/null; then
  1331. clear
  1332. echo -e "\E[41;1;37m SOCKS OPENVPN \E[0m"
  1333. echo ""
  1334. fun_socksopenoff() {
  1335. for pidproxy in $(screen -list | grep -w "openpy" | awk {'print $1'}); do
  1336. screen -r -S "$pidproxy" -X quit
  1337. done
  1338. [[ $(grep -wc "open.py" /etc/autostart) != '0' ]] && {
  1339. sed -i '/open.py/d' /etc/autostart
  1340. }
  1341. sleep 1
  1342. screen -wipe >/dev/null
  1343. }
  1344. echo -e "\033[1;32mDESATIVANDO O SOCKS OPEN\033[1;33m"
  1345. echo ""
  1346. fun_bar 'fun_socksopenoff'
  1347. echo ""
  1348. echo -e "\033[1;32mSOCKS DESATIVADO COM SUCESSO!\033[1;33m"
  1349. sleep 2
  1350. fun_socks
  1351. else
  1352. clear
  1353. echo -e "\E[41;1;37m SOCKS OPENVPN \E[0m"
  1354. echo ""
  1355. echo -ne "\033[1;32mQUAL PORTA DESEJA ULTILIZAR \033[1;33m?\033[1;37m: "
  1356. read porta
  1357. [[ -z "$porta" ]] && {
  1358. echo ""
  1359. echo -e "\033[1;31mPorta invalida!"
  1360. sleep 2
  1361. clear
  1362. fun_conexao
  1363. }
  1364. verif_ptrs $porta
  1365. fun_inisocksop() {
  1366. [[ "$(netstat -tlpn | grep 'openvpn' | wc -l)" != '0' ]] && {
  1367. listoldop=$(grep -w 'DEFAULT_HOST =' /etc/SSHPlus/open.py | cut -d"'" -f2 | cut -d: -f2)
  1368. listopen=$(netstat -tlpn | grep -w openvpn | grep -v 127.0.0.1 | awk {'print $4'} | cut -d: -f2)
  1369. sed -i "s/$listoldop/$listopen/" /etc/SSHPlus/open.py
  1370. }
  1371. sleep 1
  1372. screen -dmS openpy python /etc/SSHPlus/open.py $porta
  1373. [[ $(grep -wc "open.py" /etc/autostart) = '0' ]] && {
  1374. echo -e "netstat -tlpn | grep -w $porta > /dev/null || { screen -r -S 'openpy' -X quit; screen -dmS openpy python /etc/SSHPlus/open.py $porta; }" >>/etc/autostart
  1375. } || {
  1376. sed -i '/open.py/d' /etc/autostart
  1377. echo -e "netstat -tlpn | grep -w $porta > /dev/null || { screen -r -S 'openpy' -X quit; screen -dmS openpy python /etc/SSHPlus/open.py $porta; }" >>/etc/autostart
  1378. }
  1379. }
  1380. echo ""
  1381. echo -e "\033[1;32mINICIANDO O SOCKS OPENVPN\033[1;33m"
  1382. echo ""
  1383. fun_bar 'fun_inisocksop'
  1384. echo ""
  1385. echo -e "\033[1;32mSOCKS OPENVPN ATIVADO COM SUCESSO\033[1;33m"
  1386. sleep 3
  1387. fun_socks
  1388. fi
  1389. elif [[ "$resposta" = '3' ]]; then
  1390. if ps x | grep proxy.py | grep -v grep 1>/dev/null 2>/dev/null; then
  1391. sockspt=$(netstat -nplt | grep 'python' | awk {'print $4'} | cut -d: -f2 | xargs)
  1392. clear
  1393. echo -e "\E[44;1;37m PROXY SOCKS \E[0m"
  1394. echo ""
  1395. echo -e "\033[1;33mPORTAS EM USO: \033[1;32m$sockspt"
  1396. echo ""
  1397. echo -ne "\033[1;32mQUAL PORTA DESEJA ULTILIZAR \033[1;33m?\033[1;37m: "
  1398. read porta
  1399. [[ -z "$porta" ]] && {
  1400. echo ""
  1401. echo -e "\033[1;31mPorta invalida!"
  1402. sleep 2
  1403. clear
  1404. fun_conexao
  1405. }
  1406. verif_ptrs $porta
  1407. echo ""
  1408. echo -e "\033[1;32mINICIANDO O PROXY SOCKS NA PORTA \033[1;31m$porta\033[1;33m"
  1409. echo ""
  1410. abrirptsks() {
  1411. sleep 1
  1412. screen -dmS proxy python /etc/SSHPlus/proxy.py $porta
  1413. sleep 1
  1414. }
  1415. fun_bar 'abrirptsks'
  1416. echo ""
  1417. echo -e "\033[1;32mPROXY SOCKS ATIVADO COM SUCESSO\033[1;33m"
  1418. sleep 2
  1419. fun_socks
  1420. else
  1421. clear
  1422. echo -e "\033[1;31mFUNCAO INDISPONIVEL\n\n\033[1;33mATIVE O SOCKS PRIMEIRO !\033[1;33m"
  1423. sleep 2
  1424. fun_socks
  1425. fi
  1426. elif [[ "$resposta" = '4' ]]; then
  1427. if ps x | grep -w proxy.py | grep -v grep 1>/dev/null 2>/dev/null; then
  1428. clear
  1429. msgsocks=$(cat /etc/SSHPlus/proxy.py | grep -E "MSG =" | awk -F = '{print $2}' | cut -d "'" -f 2)
  1430. echo -e "\E[44;1;37m PROXY SOCKS \E[0m"
  1431. echo ""
  1432. echo -e "\033[1;33mSTATUS: \033[1;32m$msgsocks"
  1433. echo""
  1434. echo -ne "\033[1;32mINFORME SEU STATUS\033[1;31m:\033[1;37m "
  1435. read msgg
  1436. [[ -z "$msgg" ]] && {
  1437. echo -e "\n\033[1;31mStatus invalido!"
  1438. sleep 2
  1439. fun_conexao
  1440. }
  1441. [[ ${msgg} != ?(+|-)+([a-zA-Z0-9-. ]) ]] && {
  1442. echo -e "\n\033[1;31m[\033[1;33m!\033[1;31m]\033[1;33m EVITE CARACTERES ESPECIAIS\033[0m"
  1443. sleep 2
  1444. fun_socks
  1445. }
  1446. echo -e "\n\033[1;31m[\033[1;36m01\033[1;31m]\033[1;33m AZUL"
  1447. echo -e "\033[1;31m[\033[1;36m02\033[1;31m]\033[1;33m VERDE"
  1448. echo -e "\033[1;31m[\033[1;36m03\033[1;31m]\033[1;33m VERMELHO"
  1449. echo -e "\033[1;31m[\033[1;36m04\033[1;31m]\033[1;33m AMARELO"
  1450. echo -e "\033[1;31m[\033[1;36m05\033[1;31m]\033[1;33m ROSA"
  1451. echo -e "\033[1;31m[\033[1;36m06\033[1;31m]\033[1;33m CYANO"
  1452. echo -e "\033[1;31m[\033[1;36m07\033[1;31m]\033[1;33m LARANJA"
  1453. echo -e "\033[1;31m[\033[1;36m08\033[1;31m]\033[1;33m ROXO"
  1454. echo -e "\033[1;31m[\033[1;36m09\033[1;31m]\033[1;33m PRETO"
  1455. echo -e "\033[1;31m[\033[1;36m10\033[1;31m]\033[1;33m SEM COR"
  1456. echo ""
  1457. echo -ne "\033[1;32mQUAL A COR\033[1;31m ?\033[1;37m : "
  1458. read sts_cor
  1459. if [[ "$sts_cor" = "1" ]] || [[ "$sts_cor" = "01" ]]; then
  1460. cor_sts='blue'
  1461. elif [[ "$sts_cor" = "2" ]] || [[ "$sts_cor" = "02" ]]; then
  1462. cor_sts='green'
  1463. elif [[ "$sts_cor" = "3" ]] || [[ "$sts_cor" = "03" ]]; then
  1464. cor_sts='red'
  1465. elif [[ "$sts_cor" = "4" ]] || [[ "$sts_cor" = "04" ]]; then
  1466. cor_sts='yellow'
  1467. elif [[ "$sts_cor" = "5" ]] || [[ "$sts_cor" = "05" ]]; then
  1468. cor_sts='#F535AA'
  1469. elif [[ "$sts_cor" = "6" ]] || [[ "$sts_cor" = "06" ]]; then
  1470. cor_sts='cyan'
  1471. elif [[ "$sts_cor" = "7" ]] || [[ "$sts_cor" = "07" ]]; then
  1472. cor_sts='#FF7F00'
  1473. elif [[ "$sts_cor" = "8" ]] || [[ "$sts_cor" = "08" ]]; then
  1474. cor_sts='#9932CD'
  1475. elif [[ "$sts_cor" = "9" ]] || [[ "$sts_cor" = "09" ]]; then
  1476. cor_sts='black'
  1477. elif [[ "$sts_cor" = "10" ]]; then
  1478. cor_sts='null'
  1479. else
  1480. echo -e "\n\033[1;33mOPCAO INVALIDA !"
  1481. cor_sts='null'
  1482. fi
  1483. fun_msgsocks() {
  1484. msgsocks2=$(cat /etc/SSHPlus/proxy.py | grep "MSG =" | awk -F = '{print $2}')
  1485. sed -i "s/$msgsocks2/ '$msgg'/g" /etc/SSHPlus/proxy.py
  1486. sleep 1
  1487. cor_old=$(grep 'color=' /etc/SSHPlus/proxy.py | cut -d '"' -f2)
  1488. sed -i "s/\b$cor_old\b/$cor_sts/g" /etc/SSHPlus/proxy.py
  1489. }
  1490. echo ""
  1491. echo -e "\033[1;32mALTERANDO STATUS!"
  1492. echo ""
  1493. fun_bar 'fun_msgsocks'
  1494. restartsocks() {
  1495. if ps x | grep proxy.py | grep -v grep 1>/dev/null 2>/dev/null; then
  1496. echo -e "$(netstat -nplt | grep 'python' | awk {'print $4'} | cut -d: -f2 | xargs)" >/tmp/Pt_sks
  1497. for pidproxy in $(screen -ls | grep ".proxy" | awk {'print $1'}); do
  1498. screen -r -S "$pidproxy" -X quit
  1499. done
  1500. screen -wipe >/dev/null
  1501. _Ptsks="$(cat /tmp/Pt_sks)"
  1502. sleep 1
  1503. screen -dmS proxy python /etc/SSHPlus/proxy.py $_Ptsks
  1504. rm /tmp/Pt_sks
  1505. fi
  1506. }
  1507. echo ""
  1508. echo -e "\033[1;32mREINICIANDO PROXY SOCKS!"
  1509. echo ""
  1510. fun_bar 'restartsocks'
  1511. echo ""
  1512. echo -e "\033[1;32mSTATUS ALTERADO COM SUCESSO!"
  1513. sleep 2
  1514. fun_socks
  1515. else
  1516. clear
  1517. echo -e "\033[1;31mFUNCAO INDISPONIVEL\n\n\033[1;33mATIVE O SOCKS SSH PRIMEIRO !\033[1;33m"
  1518. sleep 2
  1519. fun_socks
  1520. fi
  1521. elif [[ "$resposta" = '0' ]]; then
  1522. echo ""
  1523. echo -e "\033[1;31mRetornando...\033[0m"
  1524. sleep 1
  1525. fun_conexao
  1526. else
  1527. echo ""
  1528. echo -e "\033[1;31mOpcao invalida !\033[0m"
  1529. sleep 1
  1530. fun_socks
  1531. fi
  1532. }
  1533. fun_openssh() {
  1534. clear
  1535. echo -e "\E[44;1;37m OPENSSH \E[0m\n"
  1536. echo -e "\033[1;31m[\033[1;36m1\033[1;31m] \033[1;37m• \033[1;33mADICIONAR PORTA\033[1;31m
  1537. [\033[1;36m2\033[1;31m] \033[1;37m• \033[1;33mREMOVER PORTA\033[1;31m
  1538. [\033[1;36m3\033[1;31m] \033[1;37m• \033[1;33mVOLTAR\033[0m"
  1539. echo ""
  1540. echo -ne "\033[1;32mOQUE DESEJA FAZER \033[1;33m?\033[1;37m "
  1541. read resp
  1542. if [[ "$resp" = '1' ]]; then
  1543. clear
  1544. echo -e "\E[44;1;37m ADICIONAR PORTA AO SSH \E[0m\n"
  1545. echo -ne "\033[1;32mQUAL PORTA DESEJA ADICIONAR \033[1;33m?\033[1;37m "
  1546. read pt
  1547. [[ -z "$pt" ]] && {
  1548. echo -e "\n\033[1;31mPorta invalida!"
  1549. sleep 3
  1550. fun_conexao
  1551. }
  1552. verif_ptrs $pt
  1553. echo -e "\n\033[1;32mADICIONANDO PORTA AO SSH\033[0m"
  1554. echo ""
  1555. fun_addpssh() {
  1556. echo "Port $pt" >>/etc/ssh/sshd_config
  1557. service ssh restart
  1558. }
  1559. fun_bar 'fun_addpssh'
  1560. echo -e "\n\033[1;32mPORTA ADICIONADA COM SUCESSO\033[0m"
  1561. sleep 3
  1562. fun_conexao
  1563. elif [[ "$resp" = '2' ]]; then
  1564. clear
  1565. echo -e "\E[41;1;37m REMOVER PORTA DO SSH \E[0m"
  1566. echo -e "\n\033[1;33m[\033[1;31m!\033[1;33m] \033[1;32mPORTA PADRAO \033[1;37m22 \033[1;33mCUIDADO !\033[0m"
  1567. echo -e "\n\033[1;33mPORTAS EM USO: \033[1;37m$(grep 'Port' /etc/ssh/sshd_config | cut -d' ' -f2 | grep -v 'no' | xargs)\n"
  1568. echo -ne "\033[1;32mQUAL PORTA DESEJA REMOVER \033[1;33m?\033[1;37m "
  1569. read pt
  1570. [[ -z "$pt" ]] && {
  1571. echo -e "\n\033[1;31mPorta invalida!"
  1572. sleep 2
  1573. fun_conexao
  1574. }
  1575. [[ $(grep -wc "$pt" '/etc/ssh/sshd_config') != '0' ]] && {
  1576. echo -e "\n\033[1;32mREMOVENDO PORTA DO SSH\033[0m"
  1577. echo ""
  1578. fun_delpssh() {
  1579. sed -i "/Port $pt/d" /etc/ssh/sshd_config
  1580. service ssh restart
  1581. }
  1582. fun_bar 'fun_delpssh'
  1583. echo -e "\n\033[1;32mPORTA REMOVIDA COM SUCESSO\033[0m"
  1584. sleep 2
  1585. fun_conexao
  1586. } || {
  1587. echo -e "\n\033[1;31mPorta invalida!"
  1588. sleep 2
  1589. fun_conexao
  1590. }
  1591. elif [[ "$resp" = '3' ]]; then
  1592. echo -e "\n\033[1;31mRetornando.."
  1593. sleep 2
  1594. fun_conexao
  1595. else
  1596. echo -e "\n\033[1;31mOpcao invalida!"
  1597. sleep 2
  1598. fun_conexao
  1599. fi
  1600. }
  1601. fun_sslh() {
  1602. [[ "$(netstat -nltp | grep 'sslh' | wc -l)" = '0' ]] && {
  1603. clear
  1604. echo -e "\E[44;1;37m INSTALADOR SSLH \E[0m\n"
  1605. echo -e "\n\033[1;33m[\033[1;31m!\033[1;33m] \033[1;32mA PORTA \033[1;37m3128 \033[1;32mSERA USADA POR PADRAO\033[0m\n"
  1606. echo -ne "\033[1;32mREALMENTE DESEJA INSTALAR O SSLH \033[1;31m? \033[1;33m[s/n]:\033[1;37m "
  1607. read resp
  1608. [[ "$resp" = 's' ]] && {
  1609. verif_ptrs 3128
  1610. fun_instsslh() {
  1611. [[ -e "/etc/stunnel/stunnel.conf" ]] && ptssl="$(netstat -nplt | grep 'stunnel' | awk {'print $4'} | cut -d: -f2 | xargs)" || ptssl='3128'
  1612. [[ -e "/etc/openvpn/server.conf" ]] && ptvpn="$(netstat -nplt | grep 'openvpn' | awk {'print $4'} | cut -d: -f2 | xargs)" || ptvpn='1194'
  1613. DEBIAN_FRONTEND=noninteractive apt-get -y install sslh
  1614. 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
  1615. /etc/init.d/sslh start && service sslh start
  1616. }
  1617. echo -e "\n\033[1;32mINSTALANDO O SSLH !\033[0m\n"
  1618. fun_bar 'fun_instsslh'
  1619. echo -e "\n\033[1;32mINICIANDO O SSLH !\033[0m\n"
  1620. fun_bar '/etc/init.d/sslh restart && service sslh restart'
  1621. [[ $(netstat -nplt | grep -w 'sslh' | wc -l) != '0' ]] && echo -e "\n\033[1;32mINSTALADO COM SUCESSO !\033[0m" || echo -e "\n\033[1;31mERRO INESPERADO !\033[0m"
  1622. sleep 3
  1623. fun_conexao
  1624. } || {
  1625. echo -e "\n\033[1;31mRetornando.."
  1626. sleep 2
  1627. fun_conexao
  1628. }
  1629. } || {
  1630. clear
  1631. echo -e "\E[41;1;37m REMOVER O SSLH \E[0m\n"
  1632. echo -ne "\033[1;32mREALMENTE DESEJA REMOVER O SSLH \033[1;31m? \033[1;33m[s/n]:\033[1;37m "
  1633. read respo
  1634. [[ "$respo" = "s" ]] && {
  1635. fun_delsslh() {
  1636. /etc/init.d/sslh stop && service sslh stop
  1637. apt-get remove sslh -y
  1638. apt-get purge sslh -y
  1639. }
  1640. echo -e "\n\033[1;32mREMOVENDO O SSLH !\033[0m\n"
  1641. fun_bar 'fun_delsslh'
  1642. echo -e "\n\033[1;32mREMOVIDO COM SUCESSO !\033[0m\n"
  1643. sleep 2
  1644. fun_conexao
  1645. } || {
  1646. echo -e "\n\033[1;31mRetornando.."
  1647. sleep 2
  1648. fun_conexao
  1649. }
  1650. }
  1651. }
  1652. x="ok"
  1653. fun_conexao() {
  1654. while true $x != "ok"; do
  1655. [[ ! -e '/home/sshplus' ]] && exit 0
  1656. clear
  1657. echo -e "\E[44;1;37m MODO DE CONEXAO \E[0m\n"
  1658. echo -e "\033[1;32mSERVICO: \033[1;33mOPENSSH \033[1;32mPORTA: \033[1;37m$(grep 'Port' /etc/ssh/sshd_config | cut -d' ' -f2 | grep -v 'no' | xargs)" && sts6="\033[1;32m◉ "
  1659. [[ "$(netstat -tlpn | grep 'sslh' | wc -l)" != '0' ]] && {
  1660. echo -e "\033[1;32mSERVICO: \033[1;33mSSLH: \033[1;32mPORTA: \033[1;37m$(netstat -nplt | grep 'sslh' | awk {'print $4'} | cut -d: -f2 | xargs)"
  1661. sts7="\033[1;32m◉ "
  1662. } || {
  1663. sts7="\033[1;31m○ "
  1664. }
  1665. [[ "$(netstat -tlpn | grep 'openvpn' | wc -l)" != '0' ]] && {
  1666. echo -e "\033[1;32mSERVICO: \033[1;33mOPENVPN: \033[1;32mPORTA: \033[1;37m$(netstat -nplt | grep 'openvpn' | awk {'print $4'} | cut -d: -f2 | xargs)"
  1667. sts5="\033[1;32m◉ "
  1668. } || {
  1669. sts5="\033[1;31m○ "
  1670. }
  1671. [[ "$(netstat -tlpn | grep 'python' | wc -l)" != '0' ]] && {
  1672. echo -e "\033[1;32mSERVICO: \033[1;33mPROXY SOCKS \033[1;32mPORTA: \033[1;37m$(netstat -nplt | grep 'python' | awk {'print $4'} | cut -d: -f2 | xargs)"
  1673. sts4="\033[1;32m◉ "
  1674. } || {
  1675. sts4="\033[1;31m○ "
  1676. }
  1677. [[ -e "/etc/stunnel/stunnel.conf" ]] && {
  1678. echo -e "\033[1;32mSERVICO: \033[1;33mSSL TUNNEL \033[1;32mPORTA: \033[1;37m$(netstat -nplt | grep 'stunnel' | awk {'print $4'} | cut -d: -f2 | xargs)"
  1679. sts3="\033[1;32m◉ "
  1680. } || {
  1681. sts3="\033[1;31m○ "
  1682. }
  1683. [[ "$(netstat -tlpn | grep 'dropbear' | wc -l)" != '0' ]] && {
  1684. echo -e "\033[1;32mSERVICO: \033[1;33mDROPBEAR \033[1;32mPORTA: \033[1;37m$(netstat -nplt | grep 'dropbear' | awk -F ":" {'print $4'} | xargs)"
  1685. sts2="\033[1;32m◉ "
  1686. } || {
  1687. sts2="\033[1;31m○ "
  1688. }
  1689. [[ "$(netstat -tlpn | grep 'squid' | wc -l)" != '0' ]] && {
  1690. echo -e "\033[1;32mSERVICO: \033[1;33mSQUID \033[1;32mPORTA: \033[1;37m$(netstat -nplt | grep 'squid' | awk -F ":" {'print $4'} | xargs)"
  1691. sts1="\033[1;32m◉ "
  1692. } || {
  1693. sts1="\033[1;31m○ "
  1694. }
  1695. [[ "$(ps x | grep 'slow_dns' | grep -v 'grep'|wc -l)" != '0' ]] && {
  1696. echo -e "\033[1;32mSERVICO: \033[1;33mSLOWDNS \033[1;32mPORTA: \033[1;37m$(sed -n 1p /etc/SSHPlus/dns/autodns | awk '{print $6}' | cut -d':' -f2)"
  1697. sts8="\033[1;32m◉ "
  1698. } || {
  1699. sts8="\033[1;31m○ "
  1700. }
  1701. echo -e "\033[0;34m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
  1702. echo ""
  1703. echo -e "\033[1;31m[\033[1;36m01\033[1;31m] \033[1;37m• \033[1;33mOPENSSH $sts6\033[1;31m
  1704. [\033[1;36m02\033[1;31m] \033[1;37m• \033[1;33mSQUID PROXY $sts1\033[1;31m
  1705. [\033[1;36m03\033[1;31m] \033[1;37m• \033[1;33mDROPBEAR $sts2\033[1;31m
  1706. [\033[1;36m04\033[1;31m] \033[1;37m• \033[1;33mOPENVPN $sts5\033[1;31m
  1707. [\033[1;36m05\033[1;31m] \033[1;37m• \033[1;33mPROXY SOCKS $sts4\033[1;31m
  1708. [\033[1;36m06\033[1;31m] \033[1;37m• \033[1;33mSSL TUNNEL $sts3\033[1;31m
  1709. [\033[1;36m07\033[1;31m] \033[1;37m• \033[1;33mSSLH MULTIPLEX $sts7\033[1;31m
  1710. [\033[1;36m08\033[1;31m] \033[1;37m• \033[1;33mSLOWDNS $sts8\033[1;31m
  1711. [\033[1;36m09\033[1;31m] \033[1;37m• \033[1;33mVOLTAR \033[1;32m<\033[1;33m<\033[1;31m< \033[1;31m
  1712. [\033[1;36m00\033[1;31m] \033[1;37m• \033[1;33mSAIR \033[1;32m<\033[1;33m<\033[1;31m< \033[0m"
  1713. echo ""
  1714. echo -e "\033[0;34m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
  1715. echo ""
  1716. tput civis
  1717. echo -ne "\033[1;32mOQUE DESEJA FAZER \033[1;33m?\033[1;31m?\033[1;37m "
  1718. read x
  1719. tput cnorm
  1720. clear
  1721. case $x in
  1722. 1 | 01)
  1723. fun_openssh
  1724. ;;
  1725. 2 | 02)
  1726. fun_squid
  1727. ;;
  1728. 3 | 03)
  1729. fun_drop
  1730. ;;
  1731. 4 | 04)
  1732. fun_openvpn
  1733. ;;
  1734. 5 | 05)
  1735. fun_socks
  1736. ;;
  1737. 6 | 06)
  1738. inst_ssl
  1739. ;;
  1740. 7 | 07)
  1741. fun_sslh
  1742. ;;
  1743. 8 | 08)
  1744. slow_dns
  1745. ;;
  1746. 9 | 09)
  1747. menu
  1748. ;;
  1749. 0 | 00)
  1750. echo -e "\033[1;31mSaindo...\033[0m"
  1751. sleep 2
  1752. clear
  1753. exit
  1754. ;;
  1755. *)
  1756. echo -e "\033[1;31mOpcao invalida !\033[0m"
  1757. sleep 2
  1758. ;;
  1759. esac
  1760. done
  1761. }
  1762. fun_conexao
  1763. }