OpenVPN Possible Deloyment Modes | Skenario Yang Mungkin Di OpenVPN

OpenVPN. Salah satu vpn based yang keren juga katanya šŸ˜€ . Aku sendiri sih sukanya karena koneksi yang dia pake customable. Defaultnya pake UDP1194 tapi bisa kita ganti-ganti semau kita, mau pake UDP kek, TCP kek, port 1-65535 juga bisa dipake, jadi oke punya kalo dipake buat mainan dibelakang firewall šŸ™‚ . Atau buat kibul-mengkibul filter di firewall, misal di kantor kita cuma untuk browsingan sehingga port yang dibuka cuma port TCP80 dan UDP,TCP53 doang. Lainnya ditutup. Nah berarti kita cuma bisa browsingan doang kan karena yang bisa lewat cuma http & dns. Nah kita akali dengan bikin VPN Server diluar firewall itu yang pake koneksi TCP80 atau UDP,TCP53 (port yang kebuka tadi). Dan openVPN mengakomodir kebutuhan ini karena koneksinya dia bisa kita set semau kita..hahaha… šŸ˜€

Oke lanjut ke model pemakaian openVPN yang mungkin daripada ngelantur kemana-mana..haha.. Pertama, dari model VPN bisa kita deploy as L3VPN (Tunnel Mode) atau L2VPN (Bridging mode). Lalu secara model authentikasi ada pilihan untuk Site-to-Site Static key, Multiple Client Based on Certificate, Multiple Client Based on User-Pass Authentication. Nah dari model VPN dan model Authentikasi bisa kita kombinasikan sesuai kebutuhan kita (kecuali yang site-to-site static key). Here we gooo……


 

1. Site-to-Site Static Key (Point-to-Point)

site to site

Maksudnya adalah dari satu ujung ke satu ujung lainnya dengan generated static key yang sama di kedua sisi. Konsepnya mirip dengan GRE Tunnel, ada semacam tunnel source, ada tunnel destination. Kalo disini ada satu pihak yang bertindak ‘mirip’ server, sedangkan pihak satunya lagi ‘seperti’ nge-dial ke server. Model ini jalan di Layer 3, static key disini digunakan untuk authentikasi & enkripsi.

static key bisa digenerate dengan command : openvpn –genkey –secret namakey.key

konfigurasi sederhana, 3 baris doang šŸ˜€ : Define interface, define IP, define Secret key. di sisi klien tambah define remote server. udah..haha… sederhana kan? iya lah ini skenario openVPN paling mudah & simple (menurutku)..haha..

di ujung 1 (misal aku sebut servernya) konfignya seperti ini :

dev tun
ifconfig 1.1.1.1 1.1.1.2
secret static.key
--->> 1.1.1.1 adalah IP Tunnel di sisi kita, 1.1.1.2 IP tunnel di sisi sono
--->> nama file static.key di ujung satu dengan ujung lainnya tidak harus sama

Nah di ujung satunya (client) cuma tinggal sesuaiin IP dan tambahin parameter ‘remote’ :

remote 22.33.44.100
dev tun
ifconfig 1.1.1.1 1.1.1.2
secret static.key
--->> 22.33.44.100 adalah IP 'asli' si server

Dah, gitu doang, dah konek. simple & gampang kan?? šŸ™‚


 

2. Point-to-Multipoint

Nah yang ini bener2 kelihatan client server nih. Ada yang bertindak sebagai OpenVPN Server sedangkan lainnya sebagai openVPN Client. Disini yang kita mainkan adalah Authentikasinya menggunakan Certificate File atau Username-Password atau malah keduanya. Lalu apakah VPN Modenya, apakah Layer 2 VPN (Bridged) ataukan Layer 3 VPN (Tunnel). Gambaran bedanya L2VPN dan L3VPN bisa dilihat di gambar pertama, atau aku lampirin lagi dibawah ini nih :

1380805_10200566210869725_1796790915_n

Di skenario ini, wajib hukumnya kita generate key & certs. Di sisi server perlu ca.crt, ca.key dan dh.pem, di sisi client perlu ca.crt. Monggo silahkan digenerate dulu keperluannya. ./build-ca; ./build-dh; ./build-key-server; ./build-key. Untuk konfigurasinya seperti biasa, copy aja dari sample confignya, di linux, debian based misal ada di /usr/share/doc/openvpn/example/sample-config-files.

Oke… asumsi everything is oke. i just focus to main config each scenario.

2.a ————> Authentication

2.a.a. Authentikasi dengan Cert Files.

Defaultnya emang udah kayak gitu. tinggal konfig seperti biasa aja :3

2.a.b. Authentikasi dengan Cert Files+Local Username-Password

konfig di sisi server tambahakan parameter plugin dan auth :

….

plugin /usr/lib/openvpn/openvpn-auth-pam.so /etc/login
username-as-common-name

….

konfig di client tambahkan parameter :

….

auth-user-pass

….

2.a.c. Authetikasi dengan Username-Password tanpa Cert Files (ca.crt tetep ada tapi)

seperti konfig kedua, tinggal tambahkan baris ini di sisi server :

….

client-cert-not-required

 

2.b. ———-> openVPN L3VPN & L2VPN

2.b.a. L3VPN

By default openVPN jalan di L3VPN. Konfigurasi bawaannya begitu, jadi kalo skenarionya L3VPN tinggal sesuain IP Address doang aja dari sample confignya šŸ˜€

2.b.b. L2VPN

Nah disini konsepnya kita perlu bikin bridge, kita bridging antara interfacenya si openVPN dengan interface fisik. misal di Debian/ubuntu kita bisa pake bridge-utils. Lalu openVPN ada 2 jenis interface, tun dan tap, kalo tun dipake untuk L3VPN, untuk L2VPN kita pake interface tap. Misal skenarionya kita mau bridging jaringan openVPN dengan jaringan di eth1 yang ipnya 192.168.99.1/24:

kita bikin interface openVPN dulu, tap0 yang nanti akan kita bridge dengan eth1. Kalo nggak bikin interface dulu di langkah berikutnya apa yang mau dibridge kalo interfacenya belum ada..haha..

openvpn --mktun --dev tap0
brctl addbr br0 ----> create bridge, interface br0
brctl addif br0 eth1 ----> add eth1 to br0
brctl addif br0 tap0 ----> add tap0 to br0

….. lalu IP di eth1 kita pindah ke interface br0, eth1 nggak usah dikasih IP :

auto eth1
iface eth1 inet manual
auto br0
iface br0 inet static
address 192.168.99.1
netmask 255.255.255.0
bridge_ports eth1 tap0

…oke, interface yang diperlukan sudah disiapkan. next ke konfigurasi openvpn. di client konfig tinggal sesuaiin interface pake tap0. di kedua sisi (client dan server) jenis interface yang digunakan harus sama. kalo pake tap ya pake tap semua, kalo pake tun ya pake tun semua. berikut baris2 yang perlu ada perubahan :

dev tap0 Ā ---> define interface yang dipake
# server 10.8.0.0 255.255.255.0 ---> tutup barisnya, ini untuk L3VPN, kita nggak pake ini
server-bridge 192.168.99.1 255.255.255.0 192.168.99.200 192.168.99.240 ---> untuk L2VPN IP Poolnya pake yang server-bridge. formatnya server-bridge local_ip netmask start_client_ip stop_client_ip

dah… itu aja. keywordnya define interface dan server-bridge

 

dah, itu aja. pada bingung?? haha… tanyain aja deh ke aku, kadang bingung sendiri juga aku kalo nulis. selain itu dokumentasi versiku juga seperti penampakan dibawah ini, kemungkinan besar yang bisa paham adalah aku sendiri, paling dengan orang yang juga memang paham dengan materinya karena yang ditulis cuma keyword2 atau POC saja..hehe…

docu

Komen dimari gann....

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s