Koneksi internet melalui VPN di OpenVZ VPS dengan validasi username dan password



Tutorial ini saya terapkan di VPS saya dengan spesifikasi berikut :


OpenVZ Virtual Private Server
CentOS 5.5 x86
Memory 128 Mb
Burstable 256 Mb
Disk Space 10Gb
Bandwidth 500Gb
Tun / Tap enabled

  • Konfigurasi Server

Seperti biasa, untuk mencegah adanya konflik, maka kita install ulang VPSnya, dan memilih CentOS 5 32bit
Mengupdate dan mengupgrade Operating System yang berjalan di VPS :

# yum upgrade && yum update
# yum install nano gcc make rpm-build autoconf.noarch zlib-devel pam-devel openssl-devel


  • Download OPENVPN repo :
# wget http://openvpn.net/release/lzo-1.08-4.rf.src.rpm
Untuk 32bit
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
Untuk 64bit
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

  • Build the rpm packages
# rpmbuild --rebuild lzo-1.08-4.rf.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/lzo-*.rpm
# rpm -Uvh rpmforge-release-0.5.2-2.el5.rf.i386.rpm
* remember to change i386 to x86_64 if you're using 64bit

  • Install OPENVPN
# yum install openvpn

  • Copy OPENVPN easy-rsa folder to /etc/openvpn/
# cp -R /usr/share/doc/openvpn-2.2.0/easy-rsa/ /etc/openvpn/

  • Creating the Certificate :
# cd /etc/openvpn/easy-rsa/2.0
# chmod 755 *
# source ./vars
# ./vars
# ./clean-all

  • Build CA :
#./build-ca

  • Build key server :
#./build-key-server server

  • Build Diffie Hellman (wait a moment until the process finish)
# ./build-dh

Karena akan mempergunakan validasi berdasar Username dan Password, maka kita tidak perlu membuat Certiticate untuk user
  • Membuat konfigurasi port forwarding ke IP VPS :
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j SNAT --to ip.address.vps.anda
# /etc/init.d/iptables save

Selanjutnya kita membuat file konfigurasi untuk server , disimpan di /etc/openvpn/openvpn.conf

local xxx.xxx.xxx.xxx
port 1194
proto udp
dev tun
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so /etc/pam.d/login
client-cert-not-required
username-as-common-name
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 5 30
comp-lzo
persist-key
persist-tun
status 1194.log
verb 3

  • Mengcopy file certificate ke directory openvpn :
# cp /etc/openvpn/easy-rsa/2.0/keys/ca.crt /etc/openvpn/ca.crt
# cp /etc/openvpn/easy-rsa/2.0/keys/ca.key /etc/openvpn/ca.key
# cp /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem /etc/openvpn/dh1024.pem
# cp /etc/openvpn/easy-rsa/2.0/keys/server.crt /etc/openvpn/server.crt
# cp /etc/openvpn/easy-rsa/2.0/keys/server.csr /etc/openvpn/server.csr
# cp /etc/openvpn/easy-rsa/2.0/keys/server.key /etc/openvpn/server.key

  • Menambahkan OpenVPN saat startup VPS :
# chkconfig openvpn on

  • Menjalankan OpenVPN sebagai service :
# service openvpn start

Jika konfigurasi berhasil, maka OpenVPN akan berjalan.


  • Menambahkan User yang nanti akan mempergunakan VPN :
# useradd namauser -s /bin/false
Misalnya :
# useradd vpnusatu -s /bin/false
  • Memberikan password untuk User yang tadi kita buat :
# passwd namauser
Misalnya :
# passwd vpnusatu
  • Konfigurasi Client

Mengcopy file di direktory /etc/openvpn/easy-rsa/2.0/keys ke komputer, dan menyimpannya di C:/Program Files/OpenVPN/config

  • Membuat file konfigurasi untuk Client :

C:/Program Files/OpenVPN/config/Openvpn.ovpn

client
dev tun
proto udp
remote xxx.xxx.xxx.xxx 1194
resolv-retry infinite
nobind
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
persist-key
persist-tun
ca ca.crt
auth-user-pass
comp-lzo
verb 3

Setelah semua selesai, kita jalankan OpenVPN Gui.
Jika sukses, maka kita akan diminta untuk mengisi Username dan Password yang telah kita buat di VPS