Advertisement
nodetx

Untitled

Dec 16th, 2012
326
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.49 KB | None | 0 0
  1. Installing HMA Pro ( Hide my ass ) on centos 6 64 bit with only CLI required the installation of openvpn. This is extremely complex and requires building allot of things from source. I found the solution here:
  2.  
  3. http://www.wjunction.com/13-tutorials-guides/152274-openvpn-centos-installer.html
  4.  
  5. It is a script that can run by:
  6. quick install guide
  7. yum install wget -y
  8. wget http://whattheserver.me/openvpninstaller-centos.sh
  9. sh openvpninstaller-centos.sh
  10.  
  11. After I was done I ran ./hma-vpn.sh USA and I connected fine. I opened another SSH shell and ran
  12. wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
  13.  
  14. that returned my HMA IP. When I disconnected from HMA my real IP returned, and when connected to HMA their IP returned.
  15.  
  16. The context of the script follows:
  17.  
  18. #!/bin/bash
  19. #OpenVPN Installer for Centos 5 & 6
  20. #Prequisites
  21. #Known issues Centos 6 isnt currently working due to ca.crt error
  22. #Written by Onessa credits to Keith from SaveSrv.net for tutorial I used as base Original Tutorial > https://safesrv.net/install-openvpn-on-centos/
  23. if [ $USER != 'root' ]
  24. then
  25. echo "REQUIRES ROOT"
  26. exit 0
  27. fi
  28.  
  29. ###Determine OS Version and Architecture
  30. read -p "What version of Centos are you Running? [5,6]?" VERSION
  31. echo $VERSION
  32. ARCH=$(uname -m | sed 's/x86_//;s/i[3-6]86/32/')
  33.  
  34. ###Determine Server IP
  35. yum install wget -y
  36. IP=$(wget -qO- ifconfig.me/ip)
  37.  
  38. ###Installing OpenVpn Dependicies
  39. echo Installing OpenVpn Dependicies
  40. yum install gcc make rpm-build autoconf.noarch zlib-devel pam-devel openssl-devel -y
  41.  
  42. ###Download LZO RPM and Configure RPMForge Repo
  43. wget http://openvpn.net/release/lzo-1.08-4.rf.src.rpm
  44. echo Downloaded LZO RPM
  45.  
  46. ##Download RPMForge Repo
  47. if [[ "$VERSION" = "5" && "$ARCH" = "32" ]]
  48. then
  49. wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
  50. elif [[ "$VERSION" = "5" && "$ARCH" = "64" ]]
  51. then
  52. wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
  53. elif [[ "$VERSION" = "6" && "$ARCH" = "32" ]]
  54. then
  55. wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-1.el6.rf.i686.rpm
  56. elif [[ "$VERSION" = "6" && "$ARCH" = "64" ]]
  57. then
  58. wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
  59. fi
  60.  
  61. echo Downloaded Centos $VERSION $ARCH Rpmforge RPM
  62.  
  63. ###Build the rpm packages
  64. rpmbuild --rebuild lzo-1.08-4.rf.src.rpm
  65. rpm -Uvh lzo-*.rpm
  66. rpm -Uvh rpmforge-release*
  67. echo rpm packages built
  68.  
  69. ###Install OpenVPN
  70. yum install openvpn -y
  71. echo Openvpn installed
  72.  
  73. ###Copy the easy-rsa folder to /etc/openvpn/
  74. cp -R /usr/share/doc/openvpn-2.2.2/easy-rsa/ /etc/openvpn/
  75. echo easy-rsa copied to /etc/openvpn/
  76.  
  77. ###CentOS 6 patch for /etc/openvpn/easy-rsa/2.0/vars
  78. #OLDRSA="export KEY_CONFIG=`$EASY_RSA\/whichopensslcnf $EASY_RSA`"
  79. #NEWRSA="export KEY_CONFIG=\/etc\/openvpn\/easy-rsa\/2.0\/openssl-1.0.0.cnf"
  80. if [ ["$VERSION" = "6" ];
  81. then
  82. sed -i 's/export KEY_CONFIG=`$EASY_RSA\/whichopensslcnf $EASY_RSA`/export KEY_CONFIG=\/etc\/openvpn\/easy-rsa\/2.0\/openssl-1.0.0.cnf/g' /etc/openvpn/easy-rsa/2.0/vars
  83. fi
  84. ###Now let’s create the certificate
  85. cd /etc/openvpn/easy-rsa/2.0
  86. chmod 755 *
  87. source ./vars
  88. ./vars
  89. ./clean-all
  90.  
  91. ###Build CA
  92. cd /etc/openvpn/easy-rsa/2.0
  93. ./build-ca
  94. echo certificate built
  95.  
  96. ###Build key Server
  97. cd /etc/openvpn/easy-rsa/2.0
  98. ./build-key-server server
  99. echo key Server built
  100.  
  101. ###Build Diffie Hellman
  102. echo Build Diffie Hellman
  103. ./build-dh
  104. echo Diffie Hellman built
  105.  
  106. ###Create OpenVPN server conf
  107. touch /etc/openvpn/server.conf
  108. echo "local 123.123.123.123 #- your_server_ip goes here
  109. port 1194 #- port
  110. proto udp #- protocol
  111. dev tun
  112. tun-mtu 1500
  113. tun-mtu-extra 32
  114. mssfix 1450
  115. ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
  116. cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
  117. key /etc/openvpn/easy-rsa/2.0/keys/server.key
  118. dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
  119. plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so /etc/pam.d/login
  120. client-cert-not-required
  121. username-as-common-name
  122. server 10.8.0.0 255.255.255.0
  123. push "redirect-gateway def1"
  124. push "dhcp-option DNS 8.8.8.8"
  125. push "dhcp-option DNS 8.8.4.4"
  126. keepalive 5 30
  127. comp-lzo
  128. persist-key
  129. persist-tun
  130. status 1194.log
  131. verb 3" > '/etc/openvpn/server.conf'
  132. sed -i s/123.123.123.123/$IP/g /etc/openvpn/server.conf
  133. echo default server copied to /etc/openvpn/server.conf
  134.  
  135.  
  136. ###Save it and start OpenVPN
  137. service openvpn start
  138.  
  139. ###enable IP forwarding
  140. sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf
  141. sysctl -p
  142. echo ipv4 forwarding enabled
  143.  
  144. ###Route Iptables
  145. echo iptables setup
  146. iptables -F
  147. read -p "What type of Virtualization are you using? [openvz,xen,kvm]?" VMVIRTTYPE
  148. echo $VMVIRTTYPE
  149.  
  150. if [ "$VMVIRTTYPE" = "openvz" ]
  151. then
  152. iptables -t nat -A POSTROUTING -o venet0 -j SNAT --to-source $IP
  153. elif [ "$VMVIRTTYPE" = "xen" ]
  154. then
  155. iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
  156. elif [ "$VMVIRTTYPE" = "kvm" ]
  157. then
  158. iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
  159. fi
  160. service iptables save
  161. echo iptables configured and saved
  162.  
  163. ###Create Server.opvn
  164. touch /etc/openvpn/server.ovpn
  165. echo "client
  166. dev tun
  167. proto udp
  168. remote 123.123.123.123 1194 # - Your server IP and OpenVPN Port
  169. resolv-retry infinite
  170. nobind
  171. tun-mtu 1500
  172. tun-mtu-extra 32
  173. mssfix 1450
  174. persist-key
  175. persist-tun
  176. ca ca.crt
  177. auth-user-pass
  178. comp-lzo
  179. verb 3" > '/etc/openvpn/server.ovpn'
  180. sed -i s/123.123.123.123/$IP/g /etc/openvpn/server.ovpn
  181. echo server.opvn saved to /etc/openvpn/server.ovpn
  182. exit 0
  183. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement