Konfigurasi OpenVPN Debian


Halo, Junior. Kali ini lu dapet tugas yang cukup berat tapi seru, yaitu bangun terowongan aman pakai OpenVPN. Di dunia engineer, OpenVPN itu ibarat jalan tol rahasia di bawah tanah yang bikin lu bisa akses jaringan kantor dari mana aja seolah-olah lu lagi colok kabel di meja kerja.

Rangkuman lu udah cukup teknis, tapi mari gua rapihin biar jadi artikel Blogspot yang enak dibaca dan gampang dipraktekin. Simak bedahnya!


Pengertian

OpenVPN adalah aplikasi perangkat lunak open-source yang mengimplementasikan teknik Virtual Private Network (VPN) untuk membuat koneksi point-to-point atau site-to-site yang aman. Protokol ini sangat populer karena fleksibilitasnya dan kemampuannya menembus firewall yang ketat melalui enkripsi tingkat tinggi.

Konsep

Konsep utama OpenVPN adalah menciptakan sebuah Tunnel (terowongan) virtual di atas jaringan publik. OpenVPN menggunakan pustaka OpenSSL untuk menyediakan enkripsi dan otentikasi. Sistem ini bekerja dengan konsep Public Key Infrastructure (PKI) di mana server dan client harus memiliki sertifikat digital yang valid dan ditandatangani oleh Certificate Authority (CA) yang sama.

Cara Kerja

  1. Handshake: Client memulai koneksi ke Server. Mereka saling bertukar sertifikat digital untuk memastikan "lu beneran server gua" dan "lu beneran client gua".
  2. Key Exchange: Menggunakan Diffie-Hellman, mereka membuat kunci enkripsi sementara untuk sesi tersebut.
  3. Tunneling: OpenVPN membuat interface virtual (biasanya tun0). Data yang lewat interface ini akan dibungkus (enkapsulasi) dan dienkripsi sebelum dikirim lewat internet publik.
  4. Routing: Setelah terhubung, server "mendorong" (push) rute jaringan lokal ke client agar client bisa mengakses server-server internal lainnya.

Tujuan

Kenapa lu butuh OpenVPN?

  1. Akses Jarak Jauh: Memungkinkan admin/karyawan kerja dari rumah tapi tetap bisa akses server internal yang nggak dibuka ke publik.
  2. Keamanan: Melindungi data sensitif dari penyadapan (Eavesdropping) saat melewati jaringan internet yang nggak aman (seperti WiFi publik).
  3. Bypass Sensor: Digunakan untuk melewati pembatasan akses atau firewall di jaringan tertentu.

Analogi

Bayangkan OpenVPN itu kayak Kurir Mobil Box Lapis Baja.

  • Internet itu jalan raya umum yang macet dan banyak jambret.
  • Lu mau ngirim dokumen rahasia dari Kantor (Server) ke Rumah (Client).
  • Dokumen dimasukin ke mobil box baja (Enkripsi).
  • Supir mobil box punya tanda pengenal resmi (Sertifikat).
  • Jambret di jalan raya mungkin lihat mobil box itu lewat, tapi mereka nggak bisa lihat apa isinya apalagi nyolong dokumennya.

Kelebihan dan Kekurangan

Kelebihan

Kekurangan

Sangat Aman: Enkripsi AES-256 sulit ditembus.

Setup Rumit: Konfigurasi sertifikat dan CA manual cukup memakan waktu.

Fleksibel: Bisa jalan di port TCP atau UDP mana saja (default 1194).

Overhead: Proses enkripsi/dekripsi bikin koneksi sedikit lebih lambat dibanding koneksi biasa.

Multiplatform: Tersedia di Linux, Windows, macOS, Android, dan iOS.

Kompatibilitas: Butuh aplikasi client tambahan di sisi pengguna.


Tutorial & Problem Solving Lengkap

Berdasarkan rangkuman lu, ini langkah-langkah praktisnya. Gua bakal pakai asumsi direktori kerja di /etc/openvpn.

1. Pembuatan Sertifikat (PKI)

Gua saranin pakai Easy-RSA buat mempermudah, tapi kalau mau pakai manual OpenSSL sesuai rangkuman lu, kuncinya ada di file .ext:

# Generate Server Certificate
openssl req -new -nodes -out server.csr -newkey rsa:2048 -keyout server.key
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 500 -sha256 -extfile server.ext

Pastikan extendedKeyUsage = serverAuth ada di server.ext, kalau nggak, client bakal nolak koneksi.

2. Persiapan Server Environment

Jangan lupa buat parameter Diffie-Hellman dan TLS-Auth (untuk mencegah serangan DoS):

openssl dhparam -out /etc/openvpn/server/dh.pem 2048
openvpn --genkey secret /etc/openvpn/server/ta.key

3. Edit File server.conf

Konfigurasi ini yang paling krusial. Pastikan jalurnya benar:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
server 10.20.30.0 255.255.255.0
push "route 192.168.1.0 255.255.255.0" # Ganti dengan network lokal lu
tls-auth ta.key 0  # 0 untuk server
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun

4. Konfigurasi Client (client.ovpn)

client
dev tun
proto udp
remote [IP_PUBLIK_SERVER] 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
tls-auth ta.key 1  # 1 untuk client
cipher AES-256-CBC

5. Problem Solving (Masalah Umum)

  • Koneksi nyambung tapi nggak bisa ping LAN: Pastikan IP Forwarding sudah aktif di server Debian lu:

echo 1 > /proc/sys/net/ipv4/ip_forward

# Dan tambahkan aturan NAT di nftables/iptables

  • TLS Error: Biasanya karena perbedaan waktu (Clock Skew) antara server dan client. Pastikan keduanya pakai NTP untuk sinkronisasi waktu.

Kesimpulan

Membangun OpenVPN secara manual emang butuh ketelitian di bagian sertifikat. Best practice dari gua: selalu pakai otentikasi tambahan (User/Pass) lewat PAM biar kalau sertifikat client lu ilang, malingnya tetep nggak bisa masuk karena nggak tahu password-nya.


Glosarium Engineer

  • OpenVPN: Solusi VPN berbasis software dengan enkripsi SSL/TLS.
  • PKI (Public Key Infrastructure): Sistem yang mengatur pembuatan dan pengelolaan sertifikat digital.
  • CA (Certificate Authority): Entitas terpercaya yang menandatangani sertifikat digital.
  • CSR (Certificate Signing Request): Permohonan sertifikat yang dikirim ke CA.
  • Diffie-Hellman (DH): Algoritma pertukaran kunci yang aman.
  • TLS-Auth: Fitur keamanan tambahan untuk memvalidasi paket awal sebelum koneksi terbentuk.
  • Interface TUN: Interface jaringan virtual berbasis IP (Layer 3).
  • AES-256-CBC: Standar enkripsi simetris yang sangat kuat.
  • PAM (Pluggable Authentication Modules): Sistem otentikasi di Linux untuk integrasi password user.
  • IP Forwarding: Kemampuan kernel Linux untuk meneruskan paket dari satu interface ke interface lain.

Comments

Popular posts from this blog

Apa itu Link Aggregation?

Apa Itu Port Security di Switch Cisco