Selasa, 19 Desember 2017

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  -d 12.12.12.12 -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 IP 12.12.12.12 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. Berbeda apabila port forwarding dilakukan pada jaringan OpenVPN (port forwarding ke OpenVPN client)
Mengapa demikian? Karena setiap reply yang dikirimkan, akan melalui default gateway yang ada pada router client (MikroTik). Sedangkan default gateway-nya tidak dilewatkan OpenVPN. Sehingga, server harus merubah source address-nya dengan IP address OpenVPN server.
Masukkan perintah berikut:

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 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

Tidak ada komentar:

Posting Komentar