Langsung ke konten utama

Port Forwarding ke Arah OpenVPN Client


Pada artikel sebelumnya, telah dijelaskan bagaimana caranya mengkonfigurasi OpenVPN server (Debian) dengan OpenVPN client (MikroTik). Tujuan akhir dari konfigurasi tersebut adalah akses MikroTik secara remote.




Sayang sekali, dengan cara tersebut pengguna harus mengkonfigurasi MikroTik secara console (SSH) dan tidak dapat menggunakan Winbox. Beberapa alternatif dapat digunakan, diantaranya adalah port forwarding.

1. Prerequisite
Port forwarding adalah sebuah penerapan NAT yang mengarahkan komunikasi IP address beserta port dari sebuah host ke IP address dan port lain yang sudah mengalami masquerading. Hal ini dapat membuat host yang berada di jaringan internal dapat dijangkau dari luar (e.g internet).
Port forwarding sering digunakan karena:
a. User ingin mengaktifkan sebuah service, namun service tersebut berada dibelakang NAT router (e.g sebuah warnet mengaktifkan bandwidth monitor, sedangkan akses yang digunakan adalah internet dari warnet itu sendiri)
b. User ingin mengaktifkan beberapa service pada satu IP dengan server yang terpisah. (e.g mysql server ada di host A, sedangkan webserver ada di host B. 2 host tersebut dapat di akses dengan 1 IP address)
c. Dan lain sebagainya.
Inti dari port forwading terletak pada pemetaan port yang dilakukan oleh router. Sehingga port yang sudah digunakan, tidak boleh digunakan lagi. Pemetaan port dilakukan pada IP tujuan (destination) untuk selanjutnya IP address beserta port tersebut ditranslasikan (DNAT). Port forwarding sangat melibatkan Firewall.
Biar tidak bingung, suatu misal terdapat topologi seperti ini:


Seorang user dari internet mengakses router  dengan IP address 20.1.1.1 dan port 80. Karena port forwarding diaktifkan, maka setiap akses yang menuju router dengan port 80 akan dialihkan ke desktop. Mengapa bisa demikian? Karena sebelum mengalami proses routing, router telah merubah IP address 20.1.1.1 menjadi alamat desktop dan hanya berlaku untuk port 80. Begitu juga dengan port 8080.

2. Batasan Masalah
Biar tidak membahas terlalu jauh, mari membuat batasan masalahnya:
a. Artikel ini membahas mengenai port forwarding
b. Port forwarding dilakukank terhadap IP public VPS menuju IP private client via OpenVPN
c. VPS menggunakan operating system Debian Jessie dan client adalah MikroTik
d. Trafik yang datang menuju port 8880 akan dialihkan ke client port 8880 juga (MikroTik webservice)
e. Misalkan IPv4 dari VPS nya adalah 12.12.12.12 (fiktif)
f. OpenVPN server IPv4 10.8.0.1 dan OpenVPN client IPv4 10.8.0.2
Dengan batasan ini, maka jelas apa yang akan dilakukan.

3. Konfigurasi
Note: Seperti yang dijelaskan sebelumnya, posting ini sangat berkaitan dengan artikel yang berjudul Konfigurasi OpenVPN Client pada MikroTik.
a. Login pada VPS menggunakan putty (sejenisnya)



b. Pastikan koneksi antara OpenVPN server dan OpenVPN client sudah dibuat



IP address OpenVPN server dan OpenVPN client akan diperlukan nanti. Silahkan ingat atau catat

c.   Reset dahulu seluruh firewall. Masukkan perintah:


iptables -P INPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -P OUTPUT ACCEPT

iptables -F

iptables -X

iptables -F -t nat

iptables -X - nat

iptables -F -t mangle
iptables -X -t mangle


d. Aktifkan IP forwading
edit file /etc/sysctl.conf dan rubah (hilangkan comment) pada baris net.ipv4.ip_forward=1

nano /etc/sysctl.conf


e. Lakukan port forwarding. Masukkan perintah berikut:

iptables -t nat -A PREROUTING  -i eth0 -p tcp --dport 8880 -j DNAT --to-dest 10.8.0.2:8880

bunyi rule diatas adalah:
Apabila ada paket yang masuk (prerouting) dengan tujuan melalui (in-interface) eth0 dan port 8880, maka IP tujuannya (dst address) harus dirubah ke 10.8.0.2 dan port 8880
Perintah diatas sangatlah lazim dan sering ditemui apabila seorang user melakukan port forwarding.

Tapi bagaimana dengan jaringan OpenVPN yang tidak memiliki default gateway ke arah server?

Ada sedikit tambahan konfigurasi agar paket yang dikirim ke OpenVPN client dapat dikembalikan ke source address dengan sempurna. Oke, gambarannya seperti berikut:
akses dari wan: 69.69.69.69

i. Saat kita melakukan port forwarding, maka server harus merubah destination address menjadi alamat dari jaringan yang ada dibelakang server (private network).
src.address: 69.69.69.69
dst.address: 12.12.12.12 karena dikenai DNAT maka menjadi 10.8.0.2

ii. Paket diproses oleh OpenVPN client. Ketika OpenVPN client me-replay, maka arah komunikasinya dibalik.
src.address: 10.8.0.2
dst.address: 69.69.69.69

iii. Karena OpenVPN client tidak mempunyai jalur ke 69.69.69.69 maka packet dilewat default gateway

iv. 69.69.69.69 menerima paket invalid karena source address berasal dari IP yang tidak dikenal.

Sehingga perlu ada perubahan alamat pada src.address sebelum paket sampai pada OpenVPN client. src.address harus dirubah ke alamat OpenVPN server agar paket dikembalikan kearah asalnya (OpenVPN server). Oleh karena itu, dibutuhkan satu lagi rules yang melakukan tugas tersebut. Berikut rules yang harus dituliskan:


iptables -t nat -A POSTROUTING -d 10.8.0.2 -p tcp --dport 8880 -j SNAT --to-source 10.8.0.1

bunyi rule diatas adalah:
Apabila ada paket yang keluar (postrouting) dengan tujuan (destinated) IP 10.8.0.2 dan port 8880, maka IP asalnya (src address) harus dirubah ke 10.8.0.1

4. Pengujian
Dengan setting diatas, ketika user mengakses 12.12.12.12:8880 maka akan diarahkan ke 10.8.0.2:8880 dan akan tampil halaman login MikroTik


Itu saja. Silahkan dicoba dan semoga memberikan banyak manfaat.



Referensi:
A. (2012, November 15). Port forward to VPN Client? Retrieved December 18, 2017, from  https://unix.stackexchange.com/questions/55791/port-forward-to-vpn-client

Komentar

Postingan populer dari blog ini

Hubungan Manis antara Conan Edogawa dan Haibara Ai.

( Hubungan Manis antara Conan Edogawa dan Haibara Ai)  Halo para Conaners, tahu kenyataan unik nggak. Ternyata Haibara Ai tuh demen lho sama Conan Edogawa. Tapi dia berusaha menyembunyikannya lantaran dia udah tau kalo Conan (Shinichi) tuh suka dan cinta sama Ran. Haibara yang kita ketahui mempunyai kepribadian dingin ini, tak gampang putus asa nih buat nunjukin kegigihannya untuk mendapatkan perhatian dari Conan. Yuk kita lihat, usaha apa saja yang dilakukan Haibara untuk menaklukan Conan :

Live Streaming ke Banyak Media Sosial

Beberapa dekade terakhir, banyak sekali para gamer yang "nyambi" cari uang dengan melakukan live stream di media sosial terutama Facebook. Sebenarnya saya juga mulai kesel karena para fans live streamer sering membagikan live streaming-nya ke grup Facebook. Sehingga grup Facebook yang awalnya diperuntukkan sebagai media diskusi malah jadi ajang pencarian views. Spam dan annoying banget.

Instalasi FreeRADIUS ft. daloRADIUS | [UPDATE - Study case pada Debian Buster]

NOTE: Artikel ini telah mengalami perubahan. Sebelumnya, versi sistem operasi yang saya gunakan adalah Debian Wheezy. Dengan menggunakan Debian Buster beberapa versi package  juga ikut berubah. Update package akan saya beri warna font merah Remote Authentication Dial-In User Service atau sering disebut dengan RADIUS adalah sebuah protokol jaringan yang melayani administrasi pengguna dalam penggunaan jaringan secara terpusat. Aspek pelayanan yang diberikan meliputi  Authetication, Authorization dan Accounting  yang kemudian disingkat AAA atau triple A . RADIUS akan sangat dibutuhkan oleh provider skala besar, misalkan  Internet Service Provider (ISP) . Untuk platform MikroTik, RADIUS sering dikenal dengan userman ( user manager ) karena tugasnya memang manajemen pengguna.