Advertisement
alfaisalvpn

script

Mar 28th, 2020
347
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.63 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. wget -O - https://swupdate.openvpn.net/repos/repo-public.gpg|apt-key add -
  4. sleep 2
  5. echo "deb http://build.openvpn.net/debian/openvpn/release/2.4 stretch main" > /etc/apt/sources.list.d/openvpn-aptrepo.list
  6. #Requirement
  7. apt update
  8. apt upgrade -y
  9. apt install openvpn nginx php7.0-fpm stunnel4 squid3 dropbear easy-rsa vnstat ufw build-essential fail2ban zip -y
  10.  
  11. # initializing var
  12. MYIP=`ifconfig eth0 | awk 'NR==2 {print $2}'`
  13. MYIP2="s/xxxxxxxxx/$MYIP/g";
  14. cd /root
  15. wget "https://raw.githubusercontent.com/wangzki03/VPSauto/master/tool/plugin.tgz"
  16. wget "https://raw.githubusercontent.com/wangzki03/VPSauto/master/tool/premiummenu.zip"
  17.  
  18. # disable ipv6
  19. echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
  20.  
  21.  
  22. # set time GMT +8
  23. ln -fs /usr/share/zoneinfo/Asia/Manila /etc/localtime
  24.  
  25. # install webmin
  26. cd
  27. wget "https://raw.githubusercontent.com/wangzki03/premscript/master/webmin_1.801_all.deb"
  28. dpkg --install webmin_1.801_all.deb;
  29. apt-get -y -f install;
  30. sed -i 's/ssl=1/ssl=0/g' /etc/webmin/miniserv.conf
  31. rm /root/webmin_1.801_all.deb
  32. service webmin restart
  33.  
  34. # install screenfetch
  35. cd
  36. wget -O /usr/bin/screenfetch "https://raw.githubusercontent.com/wangzki03/VPSauto/master/tool/screenfetch"
  37. chmod +x /usr/bin/screenfetch
  38. echo "clear" >> .profile
  39. echo "screenfetch" >> .profile
  40.  
  41. # install dropbear
  42. sed -i 's/NO_START=1/NO_START=0/g' /etc/default/dropbear
  43. sed -i 's/DROPBEAR_PORT=22/DROPBEAR_PORT=143/g' /etc/default/dropbear
  44. echo "/bin/false" >> /etc/shells
  45.  
  46. # install squid3
  47. cat > /etc/squid/squid.conf <<-END
  48. acl localhost src 127.0.0.1/32 ::1
  49. acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
  50. acl SSL_ports port 443
  51. acl Safe_ports port 80
  52. acl Safe_ports port 21
  53. acl Safe_ports port 443
  54. acl Safe_ports port 70
  55. acl Safe_ports port 210
  56. acl Safe_ports port 1025-65535
  57. acl Safe_ports port 280
  58. acl Safe_ports port 488
  59. acl Safe_ports port 591
  60. acl Safe_ports port 777
  61. acl CONNECT method CONNECT
  62. acl SSH dst xxxxxxxxx-xxxxxxxxx/32
  63. http_access allow SSH
  64. http_access allow manager localhost
  65. http_access deny manager
  66. http_access allow localhost
  67. http_access deny all
  68. http_port 8080
  69. http_port 3128
  70. coredump_dir /var/spool/squid3
  71. refresh_pattern ^ftp: 1440 20% 10080
  72. refresh_pattern ^gopher: 1440 0% 1440
  73. refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
  74. refresh_pattern . 0 20% 4320
  75. visible_hostname Wangzki
  76. END
  77. sed -i $MYIP2 /etc/squid/squid.conf;
  78.  
  79. # setting banner
  80. rm /etc/issue.net
  81. wget -O /etc/issue.net "https://raw.githubusercontent.com/wangzki03/premscript/master/issue.net"
  82. sed -i 's@#Banner@Banner@g' /etc/ssh/sshd_config
  83. sed -i 's@DROPBEAR_BANNER=""@DROPBEAR_BANNER="/etc/issue.net"@g' /etc/default/dropbear
  84. service ssh restart
  85. service dropbear restart
  86.  
  87. #install OpenVPN
  88. cp -r /usr/share/easy-rsa/ /etc/openvpn
  89. mkdir /etc/openvpn/easy-rsa/keys
  90.  
  91. # replace bits
  92. sed -i 's|export KEY_COUNTRY="US"|export KEY_COUNTRY="PH"|' /etc/openvpn/easy-rsa/vars
  93. sed -i 's|export KEY_PROVINCE="CA"|export KEY_PROVINCE="Rizal"|' /etc/openvpn/easy-rsa/vars
  94. sed -i 's|export KEY_CITY="SanFrancisco"|export KEY_CITY="Antipolo"|' /etc/openvpn/easy-rsa/vars
  95. sed -i 's|export KEY_ORG="Fort-Funston"|export KEY_ORG="EZ"|' /etc/openvpn/easy-rsa/vars
  96. sed -i 's|export KEY_EMAIL="me@myhost.mydomain"|export KEY_EMAIL="ezvpn@gmail.com"|' /etc/openvpn/easy-rsa/vars
  97. sed -i 's|export KEY_OU="MyOrganizationalUnit"|export KEY_OU="EZvpn"|' /etc/openvpn/easy-rsa/vars
  98. sed -i 's|export KEY_NAME="EasyRSA"|export KEY_NAME="EZvpn"|' /etc/openvpn/easy-rsa/vars
  99. sed -i 's|export KEY_OU=changeme|export KEY_OU=EZvpn|' /etc/openvpn/easy-rsa/vars
  100. #Create Diffie-Helman Pem
  101. openssl dhparam -out /etc/openvpn/dh2048.pem 2048
  102. # Create PKI
  103. cd /etc/openvpn/easy-rsa
  104. cp openssl-1.0.0.cnf openssl.cnf
  105. . ./vars
  106. ./clean-all
  107. export EASY_RSA="${EASY_RSA:-.}"
  108. "$EASY_RSA/pkitool" --initca $*
  109. # create key server
  110. export EASY_RSA="${EASY_RSA:-.}"
  111. "$EASY_RSA/pkitool" --server server
  112. # setting KEY CN
  113. export EASY_RSA="${EASY_RSA:-.}"
  114. "$EASY_RSA/pkitool" client
  115. cd
  116. #cp /etc/openvpn/easy-rsa/keys/{server.crt,server.key} /etc/openvpn
  117. cp /etc/openvpn/easy-rsa/keys/server.crt /etc/openvpn/server.crt
  118. cp /etc/openvpn/easy-rsa/keys/server.key /etc/openvpn/server.key
  119. cp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/ca.crt
  120. chmod +x /etc/openvpn/ca.crt
  121.  
  122. # Setting Server
  123. tar -xzvf /root/plugin.tgz -C /usr/lib/openvpn/
  124. chmod +x /usr/lib/openvpn/*
  125. cat > /etc/openvpn/server.conf <<-END
  126. port 1147
  127. proto tcp
  128. dev tun
  129. ca ca.crt
  130. cert server.crt
  131. key server.key
  132. dh dh2048.pem
  133. verify-client-cert none
  134. username-as-common-name
  135. plugin /usr/lib/openvpn/plugins/openvpn-plugin-auth-pam.so login
  136. server 192.168.10.0 255.255.255.0
  137. ifconfig-pool-persist ipp.txt
  138. push "redirect-gateway def1 bypass-dhcp"
  139. push "dhcp-option DNS 8.8.8.8"
  140. push "dhcp-option DNS 8.8.4.4"
  141. push "route-method exe"
  142. push "route-delay 2"
  143. socket-flags TCP_NODELAY
  144. push "socket-flags TCP_NODELAY"
  145. keepalive 10 120
  146. comp-lzo
  147. user nobody
  148. group nogroup
  149. persist-key
  150. persist-tun
  151. status openvpn-status.log
  152. log openvpn.log
  153. verb 3
  154. ncp-disable
  155. cipher none
  156. auth none
  157.  
  158. END
  159. systemctl start openvpn@server
  160. #Create OpenVPN Config
  161. mkdir -p /home/vps/public_html
  162. cat > /home/vps/public_html/client.ovpn <<-END
  163.  
  164. # Created by wang zki
  165. auth-user-pass
  166. client
  167. dev tun
  168. proto tcp
  169. remote $MYIP 1147
  170. persist-key
  171. persist-tun
  172. pull
  173. resolv-retry infinite
  174. nobind
  175. user nobody
  176. comp-lzo
  177. remote-cert-tls server
  178. verb 3
  179. mute 2
  180. connect-retry 5 5
  181. connect-retry-max 8080
  182. mute-replay-warnings
  183. redirect-gateway def1
  184. script-security 2
  185. cipher none
  186. auth none
  187. http-proxy $MYIP 8080
  188. http-proxy-option CUSTOM-HEADER CONNECT HTTP/1.1
  189. http-proxy-option CUSTOM-HEADER Host weixin.qq.cn
  190. http-proxy-option CUSTOM-HEADER X-Forward-Host weixin.qq.cn
  191. http-proxy-option CUSTOM-HEADER Connection: Keep-Alive
  192. http-proxy-option CUSTOM-HEADER Proxy-Connection: keep-alive
  193. END
  194. echo '<ca>' >> /home/vps/public_html/client.ovpn
  195. cat /etc/openvpn/ca.crt >> /home/vps/public_html/client.ovpn
  196. echo '</ca>' >> /home/vps/public_html/client.ovpn
  197.  
  198. cat > /home/vps/public_html/OpenVPN-Stunnel.ovpn <<-END
  199.  
  200. # Created by wang zki
  201. auth-user-pass
  202. client
  203. dev tun
  204. proto tcp
  205. remote 127.0.0.1 1147
  206. route $MYIP 255.255.255.255 net_gateway
  207. persist-key
  208. persist-tun
  209. pull
  210. resolv-retry infinite
  211. nobind
  212. user nobody
  213. comp-lzo
  214. remote-cert-tls server
  215. verb 3
  216. mute 2
  217. connect-retry 5 5
  218. connect-retry-max 8080
  219. mute-replay-warnings
  220. redirect-gateway def1
  221. script-security 2
  222. cipher none
  223. auth none
  224. END
  225. echo '<ca>' >> /home/vps/public_html/OpenVPN-Stunnel.ovpn
  226. cat /etc/openvpn/ca.crt >> /home/vps/public_html/OpenVPN-Stunnel.ovpn
  227. echo '</ca>' >> /home/vps/public_html/OpenVPN-Stunnel.ovpn
  228.  
  229. cat > /home/vps/public_html/stunnel.conf <<-END
  230.  
  231. client = yes
  232. debug = 6
  233.  
  234. [openvpn]
  235. accept = 127.0.0.1:1147
  236. connect = $MYIP:587
  237. TIMEOUTclose = 0
  238. verify = 0
  239. sni = m.facebook.com
  240. END
  241.  
  242. # Configure Stunnel
  243. sed -i 's/ENABLED=0/ENABLED=1/g' /etc/default/stunnel4
  244. openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 -sha256 -subj '/CN=127.0.0.1/O=localhost/C=PH' -keyout /etc/stunnel/stunnel.pem -out /etc/stunnel/stunnel.pem
  245. cat > /etc/stunnel/stunnel.conf <<-END
  246.  
  247. sslVersion = all
  248. pid = /stunnel.pid
  249. socket = l:TCP_NODELAY=1
  250. socket = r:TCP_NODELAY=1
  251. client = no
  252.  
  253. [openvpn]
  254. accept = 587
  255. connect = 127.0.0.1:1147
  256. cert = /etc/stunnel/stunnel.pem
  257.  
  258. [dropbear]
  259. accept = 442
  260. connect = 127.0.0.1:22
  261. cert = /etc/stunnel/stunnel.pem
  262.  
  263. END
  264.  
  265. #Setting UFW
  266. ufw allow ssh
  267. ufw allow 1147/tcp
  268. sed -i 's|DEFAULT_INPUT_POLICY="DROP"|DEFAULT_INPUT_POLICY="ACCEPT"|' /etc/default/ufw
  269. sed -i 's|DEFAULT_FORWARD_POLICY="DROP"|DEFAULT_FORWARD_POLICY="ACCEPT"|' /etc/default/ufw
  270.  
  271. # set ipv4 forward
  272. echo 1 > /proc/sys/net/ipv4/ip_forward
  273. sed -i 's|#net.ipv4.ip_forward=1|net.ipv4.ip_forward=1|' /etc/sysctl.conf
  274.  
  275. #Setting IPtables
  276. cat > /etc/iptables.up.rules <<-END
  277. *nat
  278. :PREROUTING ACCEPT [0:0]
  279. :OUTPUT ACCEPT [0:0]
  280. :POSTROUTING ACCEPT [0:0]
  281. -A POSTROUTING -j SNAT --to-source xxxxxxxxx
  282. -A POSTROUTING -o eth0 -j MASQUERADE
  283. -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
  284. COMMIT
  285. *filter
  286. :INPUT ACCEPT [0:0]
  287. :FORWARD ACCEPT [0:0]
  288. :OUTPUT ACCEPT [0:0]
  289. :fail2ban-ssh - [0:0]
  290. -A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
  291. -A INPUT -p ICMP --icmp-type 8 -j ACCEPT
  292. -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
  293. -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
  294. -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
  295. -A INPUT -p tcp --dport 143 -m state --state NEW -j ACCEPT
  296. -A INPUT -p tcp --dport 442 -m state --state NEW -j ACCEPT
  297. -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
  298. -A INPUT -p tcp --dport 587 -m state --state NEW -j ACCEPT
  299. -A INPUT -p tcp --dport 1147 -m state --state NEW -j ACCEPT
  300. -A INPUT -p udp --dport 1147 -m state --state NEW -j ACCEPT
  301. -A INPUT -p tcp --dport 3128 -m state --state NEW -j ACCEPT
  302. -A INPUT -p udp --dport 3128 -m state --state NEW -j ACCEPT
  303. -A INPUT -p tcp --dport 8080 -m state --state NEW -j ACCEPT
  304. -A INPUT -p udp --dport 8080 -m state --state NEW -j ACCEPT
  305. -A INPUT -p tcp --dport 10000 -m state --state NEW -j ACCEPT
  306. -A fail2ban-ssh -j RETURN
  307. COMMIT
  308. *raw
  309. :PREROUTING ACCEPT [0:0]
  310. :OUTPUT ACCEPT [0:0]
  311. COMMIT
  312. *mangle
  313. :PREROUTING ACCEPT [0:0]
  314. :INPUT ACCEPT [0:0]
  315. :FORWARD ACCEPT [0:0]
  316. :OUTPUT ACCEPT [0:0]
  317. :POSTROUTING ACCEPT [0:0]
  318. COMMIT
  319. END
  320. sed -i $MYIP2 /etc/iptables.up.rules;
  321. iptables-restore < /etc/iptables.up.rules
  322.  
  323. # Configure Nginx
  324. sed -i 's/\/var\/www\/html;/\/home\/vps\/public_html\/;/g' /etc/nginx/sites-enabled/default
  325. cp /var/www/html/index.nginx-debian.html /home/vps/public_html/index.html
  326.  
  327.  
  328.  
  329. # Create and Configure rc.local
  330. cat > /etc/rc.local <<-END
  331. #!/bin/sh -e
  332.  
  333. exit 0
  334. END
  335. chmod +x /etc/rc.local
  336. sed -i '$ i\echo "nameserver 8.8.8.8" > /etc/resolv.conf' /etc/rc.local
  337. sed -i '$ i\echo "nameserver 8.8.4.4" >> /etc/resolv.conf' /etc/rc.local
  338. sed -i '$ i\iptables-restore < /etc/iptables.up.rules' /etc/rc.local
  339.  
  340. # Configure menu
  341. apt-get install unzip
  342. cd /usr/local/bin/
  343. wget "https://raw.githubusercontent.com/wangzki03/VPSauto/master/tool/premiummenu.zip"
  344. unzip premiummenu.zip
  345. chmod +x /usr/local/bin/*
  346.  
  347. # add eth0 to vnstat
  348. vnstat -u -i eth0
  349.  
  350. # compress configs
  351. cd /home/vps/public_html
  352. zip configs.zip client.ovpn OpenVPN-Stunnel.ovpn stunnel.conf
  353.  
  354. # install libxml-parser
  355. apt-get install -y libxml-parser-perl
  356.  
  357. # finalizing
  358. vnstat -u -i eth0
  359. apt-get -y autoremove
  360. chown -R www-data:www-data /home/vps/public_html
  361. service nginx start
  362. service php7.0-fpm start
  363. service vnstat restart
  364. service openvpn restart
  365. service dropbear restart
  366. service fail2ban restart
  367. service squid restart
  368.  
  369. #clearing history
  370. history -c
  371. rm -rf /root/*
  372. cd /root
  373. # info
  374. clear
  375. echo " "
  376. echo "Installation has been completed!!"
  377. echo "DEVICE WILL REBOOT IN 10 SECONDS"
  378. echo "PLEASE WAIT PATIENTLY AND RELOGIN TO YOUR VPS"
  379. echo " "
  380. echo "--------------------------- Configuration Setup Server -------------------------"
  381. echo " Copyright HostingTermurah.net "
  382. echo " Modified by wangzki "
  383. echo "--------------------------------------------------------------------------------"
  384. echo "" | tee -a log-install.txt
  385. echo "Server Information" | tee -a log-install.txt
  386. echo " - Timezone : Asia/Manila (GMT +8)" | tee -a log-install.txt
  387. echo " - Fail2Ban : [ON]" | tee -a log-install.txt
  388. echo " - IPtables : [ON]" | tee -a log-install.txt
  389. echo " - Auto-Reboot : [OFF]" | tee -a log-install.txt
  390. echo " - IPv6 : [OFF]" | tee -a log-install.txt
  391. echo "" | tee -a log-install.txt
  392. echo "Application & Port Information" | tee -a log-install.txt
  393. echo " - OpenVPN : TCP 1147 " | tee -a log-install.txt
  394. echo " - OpenVPN-Stunnel : 587 " | tee -a log-install.txt
  395. echo " - Dropbear : 442" | tee -a log-install.txt
  396. echo " - Stunnel : 440" | tee -a log-install.txt
  397. echo " - Squid Proxy : 3128, 8080 (limit to IP Server)" | tee -a log-install.txt
  398. echo " - Nginx : 80" | tee -a log-install.txt
  399. echo "" | tee -a log-install.txt
  400. echo "" | tee -a log-install.txt
  401. echo "Premium Script Information" | tee -a log-install.txt
  402. echo " To display list of commands: menu" | tee -a log-install.txt
  403. echo "" | tee -a log-install.txt
  404. echo "" | tee -a log-install.txt
  405. echo "Important Information" | tee -a log-install.txt
  406. echo " - Download Config OpenVPN : http://$MYIP/configs.zip" | tee -a log-install.txt
  407. echo " - Installation Log : cat /root/log-install.txt" | tee -a log-install.txt
  408. echo "" | tee -a log-install.txt
  409. echo " - Webmin : http://$MYIP:10000/" | tee -a log-install.txt
  410. echo ""
  411. echo "------------------------------ Modified by Wangzki -----------------------------"
  412. echo "-----Rebooting your VPS -----"
  413. sleep 5
  414. reboot
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement