Setup OpenVPN di CentOS Server part #2

Setup OpenVPN di CentOS Server part #2

Setelah melakukan persiapan konfigurasi untuk server dan client pada postingan part 1 tentang Setup OpenVPN di CentOS Server part 1, selanjutnya akan mencoba setup node baru pada Vultr Dashboard.

4. Buat Node Baru

Pada tutorial kali ini saya akan menggunakan Data Center di Singapore.

Operating System yang digunakan adalah CentOS 64bit.

Pada option ini, sebetulnya ada server yang harganya $2.5 per bulan. Sayangnya selalu berstatus Sold Out. Jadi saya memilih server yang menggunakan 1G Memory.

Selanjutnya click button deploy now di bagian paling bawah page. Pada saat process instal dan resize server, akan memakan waktu beberapa saat. Sekitar 2 menit kurang lebih. Setelah berhasil deploy, maka akan muncul IP Address pada label Cloud Instance. Gunakan IP itu untuk login ke Server.

IP Address Gambar Server Successfully Deployed

Pada gambar di atas, saya mendapatkan IP Address 45.77.36.99. IP Address hanya exist untuk Tutorial disini saja. Silahkan sesuaikan dengan IP Address yang muncul di dashboard masing-masing.

5. Install OpenVPN

Setelah berhasil mendapatkan IP address dari server yang dibuild. Lalu lanjutkan dengan masuk ke server menggunakan SSH. Lakukan upgrade package agar mendapatkan package terbaru, dilanjut dengan menginstall OpenVPN.

$ ssh -l root 45.77.36.99
# yum update -y 
# yum install -y openvpn

Setelah installation berhasil, seharusnya di dalam folder /etc/openvpn terdapat dua buah folder yaitu server dan client. Hapus saja kedua folder tersebut dengan command # rm -rf /etc/openvpn/*. Lalu pastikan firewall tidak mem-block VPN Port dengan cara membuka akses untuk public agar diperbolehkan mengakses port VPN menggunakan command berikut:

# firewall-cmd --permanent --zone=public --add-service=openvpn
# systemctl restart firewalld
# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
# echo 1 > /proc/sys/net/ipv4/ip_forward

Saya asumsikan kita tidak merubah default port VPN. Jadi command di atas adalah untuk membuka port 1194 default dari VPN. Jika menggunakan custom port, gunakan parameter --add-port.

Pada command diatas, setelah menjalankan firewall-cmd, saya merestart firewalld. Kenapa? karena option --permanent yang saya pass ke command tidak akan ada artinya tanpa restart firewall. Option --permanent berarti saya akan men-set-nya untuk selamanya. Jika ingin temporary rule, tidak perlu tambahkan --permanent dan tidak perlu restart firewalld.

Lalu untuk command echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf adalah agar server membolehkan melakukan forwarding untuk IP versi 4 dan untuk echo 1 > /proc/sys/net/ipv4/ip_forward bermaksud untuk membolehkan melakukan forwarding dalam kondisi sementara.

Selanjutnya setup NAT agar semua packet data dari interface tun yang vpn gunakan, bisa di redirect ke eth0 yang merupakan interface untuk menghubungkan public network dengan server.

# firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -s 10.8.0.0/24 -o eth0 -j MASQUERADE
# firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -s 10.8.0.0/24 -j ACCEPT
# systemctl restart firewalld

Setelah itu copy semua file konfigurasi server yang sudah dibuat sebelum ke server. Saya asumsikan kita masih di folder dimana direktori easyrsa3. Maka gunakan command rsync untuk mengcopy semua file di direktori server ke server.

$ rsync -arlv $(pwd)/server/ root@45.77.36.99:/etc/openpvn

jika berhasil maka akan terlihat seperti ini

Syncronize Config
Gambar Copy Configurasi Server

Selanjutnya, uji coba jalankan OpenVPN di server untuk memastikan Konfigurasi tidak error

# openvpn --config /etc/openvpn/server.conf

jika tidak ada error maka akan muncul seperti ini

OpenVPN Running Gambar Contoh OpenVPN berhasil berjalan

Sekarang biarkan server menjalankan OpenVPN Server. Lalu kita coba koneksikan dari client ke server. Tapi sebelumnya, tadi kita belum mengeset parameter remote pada sisi konfigurasi client di file tiduronline.ovpn. Maka isi parameter remote dengan IP dari VPN Server yang baru kita buat.

remote 45.77.36.99 1194

Setelah itu kita coba jalankan openvpn client dari komputer atau laptop kita. Saya asumsikan, direktori yang aktif masih di folder easyrsa3.

$ sudo openvpn --config client/tiduronline.ovpn

Saya menggunakan sudo, dengan asumsi saya bukan sebagai user root. Karena untuk mentrigger tun device. OpenVPN memerlukan user root.

Jika berhasil dan tanpa ada kendala saat menjalankan OpenVPN Client, maka bisa dicoba untuk mengakses IP Checker website. Misal https://whatismyip.akamai.com. Jika muncul IP Server pada browser, berarti OpenVPN siap digunakan.

Selanjutnya membuat OpenVPN server berjalan secara daemon. Coba masuk ke server dan jalankan command berikut:

# systemctl enable [email protected]
# shutdown -r now

Command shutdown -r now berarti melakukan restart server sekarang juga.

Jika sudah kembali up. Silahakan jalankan OpenVPN Client dan juga check IP ulang untuk memastikan IP sudah menggunakan IP Server.

Check IP Address
Gambar IP Addres sudah diganti

VPN Client yang dibuat, tidak hanya untuk PC atau Laptop. Tapi juga bisa digunakan untuk Mobile Device. Untuk Android sendiri sudah ada app yang bernama OpenVPN yang bisa didownload di Playstore.

Cukup sekian tutorial untuk konfigurasi OpenVPN yang sederhana ini. Semoga bermanfaat dan semoga bisa digunakan dengan bijak. Wassalam..