port-ovpn.sh 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. #!/bin/bash
  2. red='\e[1;31m'
  3. green='\e[0;32m'
  4. NC='\e[0m'
  5. MYIP=$(wget -qO- icanhazip.com);
  6. echo "Checking VPS"
  7. clear
  8. MYIP=$(wget -qO- icanhazip.com);
  9. ovpn="$(netstat -nlpt | grep -i openvpn | grep -i 0.0.0.0 | awk '{print $4}' | cut -d: -f2)"
  10. ovpn2="$(netstat -nlpu | grep -i openvpn | grep -i 0.0.0.0 | awk '{print $4}' | cut -d: -f2)"
  11. echo -e "======================================"
  12. echo -e ""
  13. echo -e " [1] Change Port TCP $ovpn"
  14. echo -e " [2] Change Port UDP $ovpn2"
  15. echo -e " [x] Exit"
  16. echo -e "======================================"
  17. echo -e ""
  18. read -p " Select From Options [1-2 or x] : " prot
  19. echo -e ""
  20. case $prot in
  21. 1)
  22. read -p "New Port OpenVPN: " vpn
  23. if [ -z $vpn ]; then
  24. echo "Please Input Port"
  25. exit 0
  26. fi
  27. cek=$(netstat -nutlp | grep -w $vpn)
  28. if [[ -z $cek ]]; then
  29. rm -f /etc/openvpn/server/server-tcp-$ovpn.conf
  30. rm -f /etc/openvpn/client-tcp-$ovpn.ovpn
  31. rm -f /home/vps/public_html/client-tcp-$ovpn.ovpn
  32. cat > /etc/openvpn/server/server-tcp-$vpn.conf<<END
  33. port $vpn
  34. proto tcp
  35. dev tun
  36. ca ca.crt
  37. cert server.crt
  38. key server.key
  39. dh dh2048.pem
  40. plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so login
  41. verify-client-cert none
  42. username-as-common-name
  43. server 10.6.0.0 255.255.255.0
  44. ifconfig-pool-persist ipp.txt
  45. push "redirect-gateway def1 bypass-dhcp"
  46. push "dhcp-option DNS 8.8.8.8"
  47. push "dhcp-option DNS 8.8.4.4"
  48. keepalive 5 30
  49. comp-lzo
  50. persist-key
  51. persist-tun
  52. status openvpn-tcp.log
  53. verb 3
  54. END
  55. cat > /etc/openvpn/client-tcp-$vpn.ovpn <<-END
  56. client
  57. dev tun
  58. proto tcp
  59. remote $MYIP $vpn
  60. resolv-retry infinite
  61. route-method exe
  62. nobind
  63. persist-key
  64. persist-tun
  65. auth-user-pass
  66. comp-lzo
  67. verb 3
  68. END
  69. echo '<ca>' >> /etc/openvpn/client-tcp-$vpn.ovpn
  70. cat /etc/openvpn/server/ca.crt >> /etc/openvpn/client-tcp-$vpn.ovpn
  71. echo '</ca>' >> /etc/openvpn/client-tcp-$vpn.ovpn
  72. cp /etc/openvpn/client-tcp-$vpn.ovpn /home/vps/public_html/client-tcp-$vpn.ovpn
  73. systemctl disable --now openvpn-server@server-tcp-$ovpn > /dev/null
  74. systemctl enable --now openvpn-server@server-tcp-$vpn > /dev/null
  75. sed -i "s/ - OpenVPN : TCP $ovpn, UDP $ovpn2, SSL 442/ - OpenVPN : TCP $vpn, UDP $ovpn2, SSL 442/g" /root/log-install.txt
  76. sed -i "s/$ovpn/$vpn/g" /etc/stunnel/stunnel.conf
  77. echo -e "\e[032;1mPort $vpn modified successfully\e[0m"
  78. else
  79. echo "Port $vpn is used"
  80. fi
  81. ;;
  82. 2)
  83. read -p "New Port OpenVPN: " vpn
  84. if [ -z $vpn ]; then
  85. echo "Please Input Port"
  86. exit 0
  87. fi
  88. cek=$(netstat -nutlp | grep -w $vpn)
  89. if [[ -z $cek ]]; then
  90. rm -f /etc/openvpn/server/server-udp-$ovpn2.conf
  91. rm -f /etc/openvpn/client-udp-$ovpn2.ovpn
  92. rm -f /home/vps/public_html/client-tcp-$ovpn2.ovpn
  93. cat > /etc/openvpn/server/server-udp-$vpn.conf<<END
  94. port $vpn
  95. proto udp
  96. dev tun
  97. ca ca.crt
  98. cert server.crt
  99. key server.key
  100. dh dh2048.pem
  101. plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so login
  102. verify-client-cert none
  103. username-as-common-name
  104. server 10.7.0.0 255.255.255.0
  105. ifconfig-pool-persist ipp.txt
  106. push "redirect-gateway def1 bypass-dhcp"
  107. push "dhcp-option DNS 8.8.8.8"
  108. push "dhcp-option DNS 8.8.4.4"
  109. keepalive 5 30
  110. comp-lzo
  111. persist-key
  112. persist-tun
  113. status openvpn-udp.log
  114. verb 3
  115. explicit-exit-notify
  116. END
  117. cat > /etc/openvpn/client-udp-$vpn.ovpn <<-END
  118. client
  119. dev tun
  120. proto udp
  121. remote $MYIP $vpn
  122. resolv-retry infinite
  123. route-method exe
  124. nobind
  125. persist-key
  126. persist-tun
  127. auth-user-pass
  128. comp-lzo
  129. verb 3
  130. END
  131. echo '<ca>' >> /etc/openvpn/client-udp-$vpn.ovpn
  132. cat /etc/openvpn/server/ca.crt >> /etc/openvpn/client-udp-$vpn.ovpn
  133. echo '</ca>' >> /etc/openvpn/client-udp-$vpn.ovpn
  134. cp /etc/openvpn/client-udp-$vpn.ovpn /home/vps/public_html/client-udp-$vpn.ovpn
  135. systemctl disable --now openvpn-server@server-udp-$ovpn2 > /dev/null
  136. systemctl enable --now openvpn-server@server-udp-$vpn > /dev/null
  137. sed -i "s/ - OpenVPN : TCP $ovpn, UDP $ovpn2, SSL 442/ - OpenVPN : TCP $ovpn, UDP $vpn, SSL 442/g" /root/log-install.txt
  138. echo -e "\e[032;1mPort $vpn modified successfully\e[0m"
  139. else
  140. echo "Port $vpn is used"
  141. fi
  142. ;;
  143. x)
  144. exit
  145. menu
  146. ;;
  147. *)
  148. echo "Please enter an correct number"
  149. ;;
  150. esac