Tutorial Install dan Konfigurasi OpenVPN di VPS Ubuntu / Debian

Tutorial Install dan Konfigurasi OpenVPN di VPS Ubuntu / Debian

openvpn1.png
Kali ini saya akan menuliskan tutorial tentang instalasi dan konfigurasi OpenVPN di Ubuntu 14.04 Server x64 bit, dan untuk di Debian sendiri kurang lebih stepnya adalah sama tinggal penyesuaian sedikit.
Yang akan kita gunakan ini adalah OpenVPN versi Community Edition yang gratis dan tidak dibatasi untuk jumlah clientnya, sedangkan ada satu lagi ada versi OpenVPN versi Acces Server yang instalasinya jauh lebih mudah, tapi gratis hanya untuk 2 client dan untuk selebihnya anda harus membayar lisensi.
Yang perlu diperhatikan, saya akan menggunakan 2 jalur untuk koneksi ke OpenVPN Server, yaitu UDP pada port 1194 (default bawaan OpenVPN) dan jalur TCP port 443 (pastikan port 443 masih tersedia, belum dipakai untuk ssh tunnel dan lainnya)
Untuk mulai menginstal, pertama kali pastikan  bahwa TUN/TAP server (VPS) anda sudah aktif (enable). Untuk mengeceknya ketikkan perintah berikut :
cat /dev/net/tun
Pastikan Hasilnya seperti dibawah ini
cat: /dev/net/tun: File descriptor in bad state
Jika hasilnya berbeda, berarti TUN/TAP anda belum aktif, anda bisa mengaktifkannya melalui panel web VPS anda, atau hubungi support Provider anda jika tidak bisa diaktifkan dari sana.

Install dan Konfigurasi OpenVPN Server

1. Pertama-tama update repository ubuntu, dengan perintah
apt-get update
2. Install OpenVPN dan Easy-RSA , ketikkan perintah
apt-get install openvpn easy-rsa
op1.jpg
3. Setelah terinstall, kemudian copykan script generate Easy-RSA ke direktori OpenVPN kita
cp -r /usr/share/easy-rsa/ /etc/openvpn
4. Buat direktori baru untuk easy-rsa keys
mkdir /etc/openvpn/easy-rsa/keys
5. Kemudian edit file variabel easy-rsa , ketikkan perintah
nano /etc/openvpn/easy-rsa/vars
Cari pada bagian bawah berikut ini, sesuaikan pengaturan settingnya dengan yang anda punya, terutama pada bagian detail export KEY, sebagai contoh seperti dibawah ini
op2.jpg
6. Save dan keluar dari editor.
7. Selanjutnya kita akan mengenerate Diffie hellman parameters, dengan perintah berikut
openssl dhparam -out /etc/openvpn/dh2048.pem 2048
tunggu beberapa saat, hingga prose selesai,
op3.jpg
8.  Kemudian inialisasikan Public Key Infrastructure, dengan jalankan perintah dibawah
cd /etc/openvpn/easy-rsa
. ./vars
./clean-all
9.  Saatnya buat  Certificate Authority (CA) dengan jalankan perintah dibawah ini
./build-ca
Dalam prosesnya akan ditanya beberapa pertayaan, enter-enter saja,
op4.jpg
10. Kemudia buat server key dengan perintah dibawah, anda dapat mengganti tulisan “serverv01” sesuaikan dengan pengaturan sebelumya,
./build-key-server server01
Akan muncul pertanyaan lagi, enter saja, dan 2 pertanyaan terakhir bisa anda jawab dengan “y”,  sampai muncul tulisan Database Updated.
op5.jpg
11. Untuk menghindari UDP flood dan serangan DDoS kita perlu mengenerate ta.key, jalankan perintah berikut
openvpn --genkey --secret keys/ta.key
12. Selanjutnya kita buat server config sebanyak 2 file, masing-masing untuk udp config dan tcp config,
masuk ke direktori openvpn dulu
cd /etc/openvpn
13. Buat config udp file
nano server.conf
Isikan dengan baris-baris parameter berikut ini
port 1194
proto udp
dev tun
ca easy-rsa/keys/ca.crt
cert easy-rsa/keys/server01.crt
key easy-rsa/keys/server01.key
dh dh2048.pem
plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so login
client-cert-not-required
username-as-common-name
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
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 server-udp.log
verb 3
Save dan keluar dari editor.
14. Buat config tcp file
nano server-tcp.conf
Isikan dengan baris-baris parameter berikut ini
port 443
proto tcp
dev tun
ca easy-rsa/keys/ca.crt
cert easy-rsa/keys/server01.crt
key easy-rsa/keys/server01.key
dh dh2048.pem
plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so login
client-cert-not-required
username-as-common-name
server 10.9.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
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 server-tcp.log
verb 3
Save dan keluar dari editor.
15. Sekarang Server Certificate Key telah berhasil dibuat, kita harus pindahkan file-file key nya ke dalam direktori OpenVPN, jalankan perintah berikut
cp /etc/openvpn/easy-rsa/keys/{server01.crt,server01.key,ca.crt,ta.key} /etc/openvpn
ls /etc/openvpn
hasilnya
op8.jpg
16. Kemudian kita edit config default OpenVPN, agar tcp dan udp dapat diload otomatis,
nano /etc/default/openvpn
Cari pada baris #AUTOSTART=”all” hilangkan tanda pagar # didepannya sehingga menjadi AUTOSTART=”all”. Save dan keluar dari editor.
17. Selanjutnya restart OpenVPN dengan perintah,
service openvpn restart
Pastikan kedua service berjalaan yaitu config udp dan config tcp nya.
Dan pastikan ada 2 instances OpenVPN running di server, untuk mengeceknya
lsof -i |grep openvpn
18. Atau bisa juga anda dapat mengecek statusnya dengan perintah
service openvpn status
op9.jpg
19. Langkah berikutnya aktifkan ip4 forwarding, gunanya untuk memforward trafik dari klien agar tersambung ke internet melalui vpn server kita, pertama ketikkan perintah
echo 1 > /proc/sys/net/ipv4/ip_forward
20. Kemudian edit file sysctl.conf, dengan perintah
nano /etc/sysctl.conf
21. Uncomment hilangkan tanda pagar pada #net.ipv4.ip_forward = 1 hasilnya akan seperti dibawah, save dan exit dari editor nano.
op10.jpg
22.  Langkah berikutnya beritahu firewall untuk memperbolehkan akses UDP dan akses jalur TCP, kita akan menggunakan iptables, jalankan perintah berikut ini. Perhatikan : Jika anda menggunakan vps virtualisasi KVM/Xen rubah venet0 menjadi eth0 , jika menggunakan OpenVZ anda dapat jalankan perintah seperti dibawah
untuk UDP
iptables -t nat -I POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE
Untuk TCP
iptables -t nat -I POSTROUTING -s 10.9.0.0/24 -o venet0 -j MASQUERADE
kemudian ketikkan
iptables-save
23. Pada ubuntu/debian iptables diatas akan direset ketika kita reboot, untuk mempermanenkannya, kita pakai iptables-persistent , jalankan perintah berikut untuk menginstalnya
sudo apt-get install iptables-persistent
akan muncul beberapa pertanyaan, cukup dijawab “y” saja.
24. Restart lagi OpenVPN service dengan perintah
service openvpn restart

Konfigurasi dan Setting untuk Client

Sekarang kita akan membuat file-file konfigurasi yang akan dipergunakan oleh client,
1. Masih didalam direktori /etc/openvpn buatlah sebuah direktori baru
mkdir clientconfig
2. Copykan file ca.crt dan ta.key yang telah kita buat sebelumnya ke dir clientconfig. Ini yang akan dibutuhkan client sebagai syarat konek ke vpn server
cp /etc/openvpn/easy-rsa/keys/{ca.crt,ta.key} clientconfig/
cd clientconfig
3. Buat 2 file berektensi .ovpn untuk pengaturan pada client nantinya, yang pertama saya beri nama misal, config-udp.ovpn ,
 nano config-udp.ovpn
lalu akan kita isi dengan parameter sebagai berikut
client
dev tun
proto udp
remote xxx.xxx.xxx.xxx 1194
resolv-retry infinite
route-method exe
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
auth-user-pass
comp-lzo
verb 3
pada tulisan xxx ganti dengan alamat ip address VPS anda,
selanjutnya buat file ke 2, config-tcp.ovpn ,
nano config-tcp.ovpn
isikan parameter sebagai berikut
client
dev tun
proto tcp
remote xxx.xxx.xxx.xxx 443
resolv-retry infinite
route-method exe
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
auth-user-pass
comp-lzo
verb 3
sama, pada tulisan xxx ganti dengan alamat ip address VPS anda, simpan dan keluar dari editor,
harusnya sekarang kita memiliki 4 buah file di direktori clientconfig, yaitu, ca.crt, ta.key, config-udp.ovpn, dan config-tcp.ovpn.
4. Ke empat file diatas adalah file yang harus kita download dan kita tempatkan pada direktori config, pada aplikasi client OpenVPN yang ada di PC, Smarthphone maupun Tablet. Untuk mendownloadnya kita dapat menggunkan software filezilla/winscp, login ke server vps dengan winscp, masuk ke direktori /etc/openvpn/clientconfig , ke empat file tersebuat silahkan anda download ke lokal PC.
op11.jpg

Testing Koneksi Client ke OpenVPN Server

Untuk pengguna windows,
Anda bisa memakai aplikasi VPN bawaan windows 8, atau jika anda bisa mendownload aplikasi populer Client OpenVPN di halaman ini. Setelah menginstalnya, kita akan coba login dengan config client yang telah kita buat pada tutorial diatas. Disini saya mencontohkan menggunakan aplikasi Client OpenVPN.
1. Pertama kali masuk ke direktori C:\Program Files\OpenVPN\config , disini kita akan buat 2 folder, pertama folder kita beri nama folder config udp dan folder config tcp , didalam folder config udp masukkan file ca.crt, ta.key dan config-udp.ovpn , sedangkan pada folder config tcp masukkan file ca.crt, ta.key dan config-tcp.ovpn , maka hasilnya terlihat seperti gambar dibawah
op12.jpg
op13.jpg
2. Selanjutnya yang perlu diperhatikan setiap client user membutuhkan autentikasi yang berupa username dan password agar bisa connect dan login ke server OpenVPN kita. Disini user client openvpn hanyalah sebuah user atau akun Linux biasa. Kita dapat membuatnya dengan perintah useradd ataupun adduser, kembali login ke VPS, lalu kita coba untuk membuat user baru dengan perintah
useradd -s /bin/false andykamto
set passwordnya
passwd andykamto
3.  Catat username & password, kemudian kita buka aplikasi OpenVPN client GUI. Jangan lupa agar berhasil, jalankan OpenVPN GUI dengan “Run as administrator”, kemudian nanti akan muncul di system tray, klik kanan, pilih salah satu config, kemudian klik connect.
op14.jpg
4. OpenVPN GUI akan segera menyambungkan anda dengan server, setelah itu akan muncul promt username & password, masukkan user dan password yang telah kita buat tadi
op15.jpg
5. Klik Ok, dan tunggu jika berhasil status berubah menjadi connected
op16.jpg
6. Selamat kita telah terhubung ke server OpenVPN, untuk mengetesnya coba browsing ke What is my ip details atau ke What is my ip, pastikan browser anda tidak sedang menggunakan proxy apapun. Jika anda melihat IP VPS anda tertampil di layar monitor, maka sudah bisa dipastikan anda sudah sukses menginstal OpenVPN di VPS Ubuntu 14.04 dan client bisa login dengan sukses terhubung di server OpenVPN kita.
op17.jpg
Tutorial ini lumayan panjang, pastikan anda dengan cermat mengikuti step-stepnya, sudah saya praktekkan ini berjalan dengan sukses. Semoga bermanfaat 🙂

0 komentar:

Posting Komentar