Beberapa waktu lalu saya sudah menulis tutorial tentang instal OpenVPN di server Debian, nah karena ga semua orang pake Debian maka kali ini saya akan coba posting tutorial yg sama untuk VPS dengan OS Centos 6. Cara setupnya tidak kalah mudah dengan yg pernah kita coba di Debian. Sebelum saya mulai, saya akan beberkan dahulu sedikit tentang ramuan yg saya perlukan di sini.
VPS yg saya pake yaitu Centos 6.5 32 bit, virtualisasi OpenVZ. Bagi yg pake 64 bit silahkan dicoba saja karena mungkin ada sedikit perbedaan. File editor yg saya pake yaitu vim. Jalur konek yg akan saya buat pada OpenVPN ini adalah hanya via TCP (tidak setup UDP). Kenapa? Karena nanti config untuk client akan diberi mantra supaya bisa konek via Squid proxy.
INFO: Squid proxy tidak support trafik UDP, maka di sini saya hanya akan bikin jalur TCP saja. Ah tapi jangan stres dulu, hasil setup ini saya jamin bisa untuk main game online ataupun koneksi UDP lainnya. 

TUN/TAP harus sudah enable. Jika dicek hasilnya masih “No such file…” artinya belum aktif/enabled. Jika hasilnya seperti berikut ini maka TUN/TAP interface udah aktif dan ready untuk instal OpenVPN.

Tanpa perlu chit-chat lagi, mari kita mulai saja…
- Login ke VPS anda sebagai root
- Lakukan update dan tunggu sampai complete
yum install epel-release , yum update -y - Instal semua package berikut:
yum install gcc make rpm-build autoconf.noarch zlib-devel pam-devel openssl-devel easy-rsa -y
- Download rpm LZO dan configure repo RPMforge:
wget http://openvpn.net/release/lzo-1.08-4.rf.src.rpm wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
- Sekarang kita build rpm package, jalankan satu persatu:
rpmbuild --rebuild lzo-1.08-4.rf.src.rpm
rpm -Uvh lzo-*.rpm
rpm -Uvh rpmforge-release* - Instal OpenVPN
yum install openvpn -y - Copy saja direktori easy-rsa ke dalam direktori openvpn
cp -R/usr/share/doc/openvpn-2.2.2/easy-rsa/ /etc/openvpn/ - Kalo step no 8 malah error cannot stat `/usr/share/doc/openvpn-2.2.2/easy-rsa/’: No such file or directory silahkan jalankan fix yang ada pada bagian akhir postingan ini. Bagi yg ga eror, lanjutkan ke step 10
- Edit file berikut:
/etc/openvpn/easy-rsa/2.0/vars - Delete atau comment (beri tanda #) entri yang bunyinya
exportKEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`dan ubah jadiexport KEY_CONFIG=/etc/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf
- Save kemudian jalankan:
cd /etc/openvpn/easy-rsa/2.0 - Jalankan
chmod 755 * - Jalankan
source ./vars - Jalankan
./vars - Jalankan
./clean-all - Jalankan
./build-ca(tidak perlu isi apapun, enter saja semua pertanyaan) - Sekarang build key server
./build-key-server serverenter semua pertanyaan tapi ingat jika muncul Y/n maka anda harus pencet y diikuti pencet enter - Diffie Hellman parameter
./build-dh - Buat config server
vim /etc/openvpn/server.conf - Isinya adalah:
port 9090 proto tcp dev tun tun-mtu 1500 tun-mtu-extra 32 mssfix 1450 reneg-sec 0 ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt cert /etc/openvpn/easy-rsa/2.0/keys/server.crt key /etc/openvpn/easy-rsa/2.0/keys/server.key dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so login 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 verb 3
- Save
- Mantap! Sekarang restart OpenVPN systemctl restart network.service , systemctl -f enable openvpn@server.service , systemctl start openvpn@server.service , service openvpn restart

- Edit file forwarding agar trafik dari client bisa browsing
vim /etc/sysctl.conf net.ipv4.ip_forward = 0ganti menjadinet.ipv4.ip_forward = 1sysctl -p- Sekarang setup iptables… nah ini sangat penting, perhatikan baik-baik. Jalankan 2 command iptables ini jika anda pake VPS OpenVZ:
iptables -t nat -A POSTROUTING -o venet0 -j SNAT --to-source x.x.x.x
kemudianiptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source x.x.x.x
Tetapi jika VPS anda adalah XEN atau KVM (misal bagi yg pake DigitalOcean) maka iptablesnya adalah:iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
- Simpan rule iptables
service iptables save - Supaya OpenVPN selalu starts saat server boot, jalankan command
chkconfig openvpn on - Nah berikutnya adalah membuat config ovpn untuk para user/client anda. Kalau pada OpenVPN Debian yg terdahulu saya simpan ovpn di dalam server supaya bisa di download, maka di sini saya akan pandu anda untuk membuatnya pake aplikasi Notepad di pc anda. Mudah sekali.. OK bukalah Notepad dan isikan dengan:
client
dev tun
proto tcp
remote 162.218.232.166 9090
resolv-retry infinite
nobind
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
persist-key
persist-tun
auth-user-pass
comp-lzo
reneg-sec 0
verb 3 - Jangan save dulu. Perhatikan pada remote di situ ada IP silahkan ganti dg IP VPS anda, atau jika anda menggunakan domain maka bisa digunakan untuk replace IP tsb. Port harus sesuai dengan server.conf, pada contoh di sini saya gunakan 9090. Anda boleh gunakan port lain sesuka hati selama port tsb free alias ga sedang dipake oleh aplikasi lain di server
- Bagaimana dg ca.crt? OK, tenang bro… saya akan gabungkan sekalian dg config ovpn di atas supaya client lebih mudah pakenya. Baca mantra berikut di Putty untuk memanggil kekuatan gaib ca.crt
cat /etc/openvpn/easy-rsa/2.0/keys/ca.crt - Sippp… ca.crt nongol kan? Kalo ga nongol maka mantra yg anda baca sama sekali ga ampuh hehehe
- Gunakan mouse anda untuk highlight/mengeblok isi ca.crt. Pada putty cukup mengeblok teks maka anda sudah otomatis mengcopynya. Anda bisa paste di manapun diperlukan
- Balik ke Notepad di mana anda sudah membuat config opvn sebelumnya. Tambahkan <ca> kemudian paste certificate tsb dan segera akhiri dengan </ca>
- OPTIONAL: Kalau anda ingin konek via Proxy maka tambahkan parameter http-proxy diikuti dengan ip dan port proxy. Sehingga hasil final adalah kurang lebih sbb:

- RALAT: pada contoh config Notepad di atas terdapat baris ca ca.rt (di bawah persist-tun) harus dihapus karena ca.crt sudah dipaste di bawahnya.
- Save file tsb dg ekstensi .ovpn misalnya kampret.ovpn atau pake nama pacar teman anda etc.. dan pastikan saat save dari Notepad anda memilih Save as, Save as type: All files.
- S E L E S A I!!!!
Anda bisa gunakan aplikasi Securepoint VPN ataupun OpenVPN GUI (saya sarankan Securepoint saja karena bisa save username dan password) untuk melakukan koneksi VPN di PC anda. Jika anda adalah pengguna Android maka anda bisa menikmati akses OpenVPN menggunakan app bernama OpenVPN connect yang bisa anda unduh dari Google Play. Cara koneknya di perangkat tidak akan saya tulis… Karena ini adalah jaman modern, ada Google yg bisa anda andalkan.
Trus bagaimana dengan usernamenya? Halahhh ini gampang, udah jadi topik yg teramat beginner jadi saya skip saja hehehe. Kalo anda pusing instal OpenVPN ini maka bisa saya instalin lengkap termasuk dengan config ovpn. Saya siap dibayar untuk men-setup VPN di VPS anda. Saya beri bonus juga instalin script autocreate user VPN. Cocok nih kalo anda hendak jualan akun OpenVPN.

Script ini juga memiliki fitur autodelete user yg udah habis masa aktifnya… Ya, pokoknya keren lah. 

FIX untuk error pada langkah nomor 8. Silahkan jalankan command berikut satu persatu, dan langsung lanjut ke step nomor 10 di atas.
wget https://github.com/downloads/OpenVPN/easy-rsa/easy-rsa-2.2.0_master.tar.gz
tar -zxvf easy-rsa-2.2.0_master.tar.gzcp -R easy-rsa-2.2.0_master/easy-rsa/ /etc/openvpn/
FIX untuk yg gagal restart OpenVPN (step 23)
wget http://safesrv.net/public/dl/openvpn-auth-pam.zipunzip openvpn-auth-pam.zipmv openvpn-auth-pam.so /etc/openvpn/openvpn-auth-pam.so- Edit lagi file server.conf, delete baris yg diawali dg kata
pluginkemudian ganti dg:plugin /etc/openvpn/openvpn-auth-pam.so /etc/pam.d/login - Save dan silahkan restart OpenVPN.