vpn.sh 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  1. #!/bin/bash
  2. #
  3. # By LostServer
  4. # ==================================================
  5. # initialisasi var
  6. export DEBIAN_FRONTEND=noninteractive
  7. OS=`uname -m`;
  8. MYIP=$(wget -qO- ipv4.icanhazip.com);
  9. MYIP2="s/xxxxxxxxx/$MYIP/g";
  10. ANU=$(ip -o $ANU -4 route show to default | awk '{print $5}');
  11. # Install OpenVPN dan Easy-RSA
  12. apt install openvpn easy-rsa -y
  13. apt install openssl iptables iptables-persistent -y
  14. cp -r /usr/share/easy-rsa/ /etc/openvpn
  15. mkdir /etc/openvpn/easy-rsa/keys
  16. cp /etc/openvpn/easy-rsa/vars.example /etc/openvpn/easy-rsa/vars
  17. # Kemudian edit file variabel easy-rsa
  18. # nano /etc/openvpn/easy-rsa/vars
  19. wget -O /etc/openvpn/easy-rsa/vars "https://notabug.org/irwanmohi/test/src/master/vars"
  20. # edit projek export KEY_NAME="vpn"
  21. # Save dan keluar dari editor
  22. # generate Diffie hellman parameters
  23. openssl dhparam -out /etc/openvpn/dh2048.pem 2048
  24. # install openvpn
  25. wget -O /etc/openvpn/vpn.zip "https://raw.githubusercontent.com/benkemad/benninstall/master/vpn.zip"
  26. cd /etc/openvpn/
  27. unzip vpn.zip
  28. rm -f vpn.zip
  29. cd
  30. # Buat config server TCP 1194
  31. cd /etc/openvpn
  32. cat > /etc/openvpn/server-tcp-1194.conf <<-END
  33. port 1194
  34. proto tcp
  35. dev tun
  36. ca ca.crt
  37. cert lostserver.crt
  38. key lostserver.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 1.1.1.1"
  47. push "dhcp-option DNS 8.8.8.8"
  48. keepalive 5 30
  49. comp-lzo
  50. persist-key
  51. persist-tun
  52. status lostserver-tcp-1194.log
  53. verb 3
  54. END
  55. # Buat config server UDP 2200
  56. cat > /etc/openvpn/server-udp-2200.conf <<-END
  57. port 2200
  58. proto udp
  59. dev tun
  60. ca ca.crt
  61. cert lostserver.crt
  62. key lostserver.key
  63. dh dh2048.pem
  64. plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so login
  65. verify-client-cert none
  66. username-as-common-name
  67. server 10.7.0.0 255.255.255.0
  68. ifconfig-pool-persist ipp.txt
  69. push "redirect-gateway def1 bypass-dhcp"
  70. push "dhcp-option DNS 1.1.1.1"
  71. push "dhcp-option DNS 8.8.8.8"
  72. keepalive 5 30
  73. comp-lzo
  74. persist-key
  75. persist-tun
  76. status lostserver-udp-2200.log
  77. verb 3
  78. END
  79. cd
  80. mkdir -p /usr/lib/openvpn/
  81. cp /usr/lib/x86_64-linux-gnu/openvpn/plugins/openvpn-plugin-auth-pam.so /usr/lib/openvpn/openvpn-plugin-auth-pam.so
  82. # nano /etc/default/openvpn
  83. sed -i 's/#AUTOSTART="all"/AUTOSTART="all"/g' /etc/default/openvpn
  84. # Cari pada baris #AUTOSTART=”all” hilangkan tanda pagar # didepannya sehingga menjadi AUTOSTART=”all”. Save dan keluar dari editor
  85. # restart openvpn dan cek status openvpn
  86. /etc/init.d/openvpn restart
  87. /etc/init.d/openvpn status
  88. # aktifkan ip4 forwarding
  89. echo 1 > /proc/sys/net/ipv4/ip_forward
  90. sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
  91. # edit file sysctl.conf
  92. # nano /etc/sysctl.conf
  93. # Uncomment hilangkan tanda pagar pada #net.ipv4.ip_forward=1
  94. # Konfigurasi dan Setting untuk Client
  95. mkdir clientconfig
  96. cp /etc/openvpn/{lostserver.crt,lostserver.key,ca.crt,ta.key} clientconfig/
  97. cd clientconfig
  98. # Buat config client UDP 1194
  99. cd /etc/openvpn
  100. cat > /etc/openvpn/client-udp-1194.ovpn <<-END
  101. ############## WELCOME TO ###############
  102. ########## WWW.LOSESERVER.XYZ ###########
  103. ####### DONT FORGET TO SUPPORT US #######
  104. client
  105. dev tun
  106. proto udp
  107. remote xxxxxxxxx 1194
  108. resolv-retry infinite
  109. route-method exe
  110. nobind
  111. persist-key
  112. persist-tun
  113. auth-user-pass
  114. comp-lzo
  115. verb 3
  116. END
  117. sed -i $MYIP2 /etc/openvpn/client-udp-1194.ovpn;
  118. # Buat config client TCP 1194
  119. cat > /etc/openvpn/client-tcp-1194.ovpn <<-END
  120. ############## WELCOME TO ###############
  121. ########## WWW.LOSTSERVER.XYZ ###########
  122. ####### DONT FORGET TO SUPPORT US #######
  123. client
  124. dev tun
  125. proto tcp
  126. remote xxxxxxxxx 1194
  127. resolv-retry infinite
  128. route-method exe
  129. nobind
  130. persist-key
  131. persist-tun
  132. auth-user-pass
  133. comp-lzo
  134. verb 3
  135. END
  136. sed -i $MYIP2 /etc/openvpn/client-tcp-1194.ovpn;
  137. # Buat config client UDP 2200
  138. cat > /etc/openvpn/client-udp-2200.ovpn <<-END
  139. ############## WELCOME TO ###############
  140. ########## WWW.LOSTSERVER.XYZ ###########
  141. ####### DONT FORGET TO SUPPORT US #######
  142. client
  143. dev tun
  144. proto udp
  145. remote xxxxxxxxx 2200
  146. resolv-retry infinite
  147. route-method exe
  148. nobind
  149. persist-key
  150. persist-tun
  151. auth-user-pass
  152. comp-lzo
  153. verb 3
  154. END
  155. sed -i $MYIP2 /etc/openvpn/client-udp-2200.ovpn;
  156. # Buat config client TCP 2200
  157. cat > /etc/openvpn/client-tcp-2200.ovpn <<-END
  158. ############## WELCOME TO ###############
  159. ########## WWW.LOSTSERVER.XYZ ###########
  160. ####### DONT FORGET TO SUPPORT US #######
  161. client
  162. dev tun
  163. proto tcp
  164. remote xxxxxxxxx 2200
  165. resolv-retry infinite
  166. route-method exe
  167. nobind
  168. persist-key
  169. persist-tun
  170. auth-user-pass
  171. comp-lzo
  172. verb 3
  173. END
  174. sed -i $MYIP2 /etc/openvpn/client-tcp-2200.ovpn;
  175. # Buat config client SSL
  176. cat > /etc/openvpn/client-tcp-ssl.ovpn <<-END
  177. ############## WELCOME TO ###############
  178. ########## WWW.LOSTSERVER.XYZ ###########
  179. ####### DONT FORGET TO SUPPORT US #######
  180. client
  181. dev tun
  182. proto tcp
  183. remote xxxxxxxxx 442
  184. resolv-retry infinite
  185. route-method exe
  186. nobind
  187. persist-key
  188. persist-tun
  189. auth-user-pass
  190. comp-lzo
  191. verb 3
  192. END
  193. sed -i $MYIP2 /etc/openvpn/client-tcp-ssl.ovpn;
  194. cd
  195. # pada tulisan xxx ganti dengan alamat ip address VPS anda
  196. /etc/init.d/openvpn restart
  197. # masukkan certificatenya ke dalam config client TCP 1194
  198. echo '<ca>' >> /etc/openvpn/client-tcp-1194.ovpn
  199. cat /etc/openvpn/ca.crt >> /etc/openvpn/client-tcp-1194.ovpn
  200. echo '</ca>' >> /etc/openvpn/client-tcp-1194.ovpn
  201. # Copy config OpenVPN client ke home directory root agar mudah didownload ( TCP 1194 )
  202. cp /etc/openvpn/client-tcp-1194.ovpn /home/vps/public_html/client-tcp-1194.ovpn
  203. # masukkan certificatenya ke dalam config client UDP 2200
  204. echo '<ca>' >> /etc/openvpn/client-udp-2200.ovpn
  205. cat /etc/openvpn/ca.crt >> /etc/openvpn/client-udp-2200.ovpn
  206. echo '</ca>' >> /etc/openvpn/client-udp-2200.ovpn
  207. # Copy config OpenVPN client ke home directory root agar mudah didownload ( UDP 2200 )
  208. cp /etc/openvpn/client-udp-2200.ovpn /home/vps/public_html/client-udp-2200.ovpn
  209. # masukkan certificatenya ke dalam config client SSL
  210. echo '<ca>' >> /etc/openvpn/client-tcp-ssl.ovpn
  211. cat /etc/openvpn/ca.crt >> /etc/openvpn/client-tcp-ssl.ovpn
  212. echo '</ca>' >> /etc/openvpn/client-tcp-ssl.ovpn
  213. # Copy config OpenVPN client ke home directory root agar mudah didownload ( SSL )
  214. cp /etc/openvpn/client-tcp-ssl.ovpn /home/vps/public_html/client-tcp-ssl.ovpn
  215. #firewall untuk memperbolehkan akses UDP dan akses jalur TCP
  216. iptables -t nat -I POSTROUTING -s 10.6.0.0/24 -o $ANU -j MASQUERADE
  217. iptables -t nat -I POSTROUTING -s 10.7.0.0/24 -o $ANU -j MASQUERADE
  218. iptables-save > /etc/iptables.up.rules
  219. chmod +x /etc/iptables.up.rules
  220. iptables-restore -t < /etc/iptables.up.rules
  221. netfilter-persistent save
  222. netfilter-persistent reload
  223. # Restart service openvpn
  224. systemctl enable openvpn
  225. systemctl start openvpn
  226. /etc/init.d/openvpn restart
  227. # Restore iptables
  228. cat > /etc/network/if-up.d/iptables <<-END
  229. iptables-restore < /etc/iptables.up.rules
  230. iptables -t nat -A POSTROUTING -s 10.6.0.0/24 -o $ANU -j SNAT --to xxxxxxxxx
  231. iptables -t nat -A POSTROUTING -s 10.7.0.0/24 -o $ANU -j SNAT --to xxxxxxxxx
  232. END
  233. sed -i $MYIP2 /etc/network/if-up.d/iptables
  234. chmod +x /etc/network/if-up.d/iptables
  235. # restart opevpn
  236. /etc/init.d/openvpn restart
  237. # Delete script
  238. history -c
  239. rm -f /root/vpn.sh