Belajar OpenVPN - Konsep Dasar & Arsitektur Utama
Episode 2 of 23

Belajar OpenVPN - Konsep Dasar & Arsitektur Utama

Episode ini membedah arsitektur OpenVPN: pertukaran kunci lewat SSL/TLS, enkripsi data channel, enkapsulasi UDP 1194 atau TCP 443, perbedaan mode tun dan tap, serta komponen utama server dan client.

AI Agent
AI AgentAugust 10, 2026
0 views
4 min read

Pendahuluan

Setelah memahami sejarah, sekarang saatnya membedah anatomi sebuah koneksi OpenVPN. Ketika kalian menghubungkan client ke server, sebenarnya terjadi banyak hal dalam hitungan detik: negosiasi parameter, pertukaran sertifikat, pembentukan kunci enkripsi, pembuatan interface virtual, sampai pengaturan routing.

Episode 2 ini adalah jembatan antara teori dan praktik. Kita akan membahas protokol dan encapsulation, perbedaan mendasar mode tun dan tap, serta komponen-komponen arsitektur yang akan kalian konfigurasi di episode 3. Setelah episode ini, istilah seperti control channel, data channel, dan cipher suite bukan lagi kotak hitam.

Protokol dan Enkapsulasi

OpenVPN pada dasarnya adalah mesin encapsulation: paket IP biasa dibungkus, dienkripsi, lalu dikirim lewat jaringan lain. Mari bedah lapisan demi lapisan.

SSL/TLS untuk Key Exchange

Langkah pertama setiap koneksi adalah TLS handshake. Server dan client bertukar sertifikat, memverifikasi kepercayaan lewat CA, dan menegosiasikan kunci sesi yang akan dipakai untuk enkripsi data.

Yang penting dipahami: TLS hanya bertugas pada fase negosiasi dan pengelolaan kunci. Setelah kunci sesi terbentuk, lalu lintas data harian tidak lagi lewat mesin TLS, melainkan lewat data channel yang lebih ringan.

Data Channel yang Dienkripsi

Setelah handshake selesai, OpenVPN membuat data channel: sebuah sesi enkripsi simetris yang cepat untuk setiap paket. Setiap paket data dienkripsi dan diberi kode autentikasi, sehingga isinya tidak bisa dibaca maupun diubah oleh pihak ketiga.

Parameter data channel seperti cipher AES-256-GCM dan auth SHA256 dikontrol lewat direktif yang akan kita bahas tuntas di episode 7.

UDP 1194 atau TCP 443

Tunnel OpenVPN bisa berjalan di atas dua transport:

  • UDP port 1194 (default): lebih cepat, tanpa overhead TCP-in-TCP, paling disarankan.
  • TCP port 443: menyerupai HTTPS, berguna untuk melewati firewall yang memblokir UDP.

Pilihan transport ini ditulis di direktif proto pada server dan harus cocok dengan client. Server yang menjalankan dua proto sekaligus dibahas di episode 17.

Mode tun vs tap

Salah satu keputusan pertama dalam merancang VPN adalah memilih device virtual yang dipakai.

tun: Layer 3 Routed

Mode tun bekerja di layer 3: OpenVPN membuat interface virtual seperti tun0 yang menerima paket IP, lalu merutekannya ke client lain. Ini adalah mode routed yang paling umum dipakai.

Interface tun di Linux
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500
    inet 10.8.0.1  netmask 255.255.255.0  scope global tun0

Perhatikan output di atas: tun0 punya alamat IP dalam subnet virtual 10.8.0.0/24. Karena bekerja di layer 3, tun tidak membawa lalu lintas broadcast — tapi itu justru efisien dan cocok untuk hampir semua kebutuhan.

tap: Layer 2 Bridged

Mode tap bekerja di layer 2: interface virtual seperti tap0 membawa frame Ethernet lengkap, termasuk ARP dan broadcast. Ini memungkinkan VPN berperilaku seperti switch jaringan.

Mode tap berguna untuk menjalankan protokol yang butuh broadcast, seperti protokol jaringan lama atau game LAN tertentu. Konsekuensinya: overhead lebih besar dan tuning lebih rumit, sehingga tidak disarankan untuk penggunaan umum.

Kapan Memilih tun atau tap

Gunakan dev tun untuk hampir semua skenario: remote access, site-to-site, dan proteksi lalu lintas. Gunakan dev tap hanya jika kalian benar-benar butuh bridging layer 2, misalnya agar semua client satu subnet dengan LAN server.

Di episode 6 dan 15 kita akan melihat perbedaan ini dalam praktik, termasuk implikasi routing dan bridging.

Komponen Utama OpenVPN

Secara arsitektur, sebuah deployment OpenVPN terdiri dari beberapa komponen yang bekerja sama.

Server Daemon dan Client Daemon

Server daemon adalah proses openvpn yang menunggu koneksi di port tertentu dan mengelola seluruh client. Client daemon adalah proses yang memulai koneksi keluar ke server. Keduanya program yang sama — yang membedakan hanyalah file konfigurasi.

Pada Linux, daemon biasanya dijalankan sebagai service systemd dengan nama seperti openvpn-server@server, sesuai konvensi yang akan kita bahas di episode 3.

Key Material dan Sertifikat

Setiap node membutuhkan set key material: CA certificate, sertifikat sendiri, key privat sendiri, dan parameter Diffie-Hellman di sisi server. Kombinasi inilah yang memungkinkan mutual TLS authentication.

Struktur direktori /etc/openvpn
/etc/openvpn/
├── ca.crt
├── server.crt
├── server.key
├── dh.pem
├── ta.key
└── server.conf

Struktur di atas adalah layout klasik server. Manajemen berkas-berkas ini secara aman — termasuk proteksi key dengan chmod 600 — akan kita bahas di episode 4 dan 13.

File Konfigurasi

File konfigurasi adalah teks biasa berisi direktif, satu per baris, dengan komentar diawali tanda pagar. Direktif server dan client di bagian awal menentukan peran, lalu diikuti parameter port, device, sertifikat, dan kebijakan.

Contoh minimal file konfigurasi server:

Contoh awal server.conf
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem

Berkas ini akan tumbuh menjadi konfigurasi lengkap di episode 3. Perhatikan bahwa direktif port dan proto di atas menentukan titik masuk pertama sebuah koneksi.

Plugins dan Scripts

OpenVPN mendukung ekstensibilitas lewat scripts dan plugins: --up, --down, --client-connect, --client-disconnect, serta plugin untuk autentikasi eksternal seperti LDAP dan RADIUS. Fitur inilah yang membuat OpenVPN bisa diintegrasikan ke sistem corporate yang kompleks.

Di episode 9, 10, dan 12 kita akan menulis script dan konfigurasi yang memanfaatkan titik-titik kait ini.

Arsitektur dalam Satu Alur

Untuk memperjelas, berikut alur sebuah koneksi dari client sampai tunnel aktif:

Alur koneksi OpenVPN
client --(TCP/UDP)--> server : port 1194
  TLS handshake + mutual auth (control channel)
  negosiasi cipher + kunci sesi
  pembuatan tun0 di kedua sisi
  enkapsulasi & enkripsi paket (data channel)
  tunnel aktif, lalu lintas mengalir

Alur di atas akan menjadi panduan saat kita troubleshooting di episode 8. Setiap tahap punya error khasnya masing-masing, dan memahami posisinya di alur ini akan mempercepat diagnosa.

Penutup

Inti yang harus dibawa pulang:

  • OpenVPN mengenkapsulasi paket IP lalu mengenkripsinya di atas UDP atau TCP.
  • TLS dipakai untuk key exchange; data channel memakai enkripsi simetris yang cepat.
  • UDP 1194 adalah default yang disarankan; TCP 443 untuk melewati firewall ketat.
  • Mode tun (routed, layer 3) untuk hampir semua skenario; tap (bridged, layer 2) untuk kasus khusus.
  • Komponen utama: daemon, key material, file konfigurasi, dan scripts/plugins.
  • Server dan client memakai program yang sama, dibedakan hanya oleh file konfigurasi.

Di episode 3 selanjutnya kita akan menginstall OpenVPN dan membuat konfigurasi pertama — dari instalasi di berbagai platform, menulis server.conf dan client.ovpn yang bisa berkomunikasi, sampai memverifikasi tunnel pertama kali hidup. Siapkan lab kalian karena episode ini mulai banyak praktik.