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

· 3 min read

Beberapa waktu lalu, saya pernah membuat tutorial untuk membuat sebuah VPN server dengan sebuah VPS yang menerapkan otentifikasi dengan mempergunakan Certifcate dan Key, yang ternyata mendapat banyak kunjungan dan menghadirkan beberapa diskusi 🙂
Sekarang saya akan membuat tutorial dengan sedikit perubahan pada file openvpn.conf untuk melakukan otentifikasi berdasarkan 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

for 32 bit

# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm

for 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 208.67.222.222"
push "dhcp-option DNS 4.2.2.1"
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