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
- Handshake:
Client memulai koneksi ke Server. Mereka saling bertukar sertifikat
digital untuk memastikan "lu beneran server gua" dan "lu
beneran client gua".
- Key
Exchange: Menggunakan Diffie-Hellman, mereka membuat kunci enkripsi
sementara untuk sesi tersebut.
- Tunneling:
OpenVPN membuat interface virtual (biasanya tun0). Data yang lewat interface
ini akan dibungkus (enkapsulasi) dan dienkripsi sebelum dikirim lewat
internet publik.
- Routing:
Setelah terhubung, server "mendorong" (push) rute
jaringan lokal ke client agar client bisa mengakses server-server internal
lainnya.
Tujuan
Kenapa lu butuh OpenVPN?
- Akses
Jarak Jauh: Memungkinkan admin/karyawan kerja dari rumah tapi tetap
bisa akses server internal yang nggak dibuka ke publik.
- Keamanan:
Melindungi data sensitif dari penyadapan (Eavesdropping) saat melewati
jaringan internet yang nggak aman (seperti WiFi publik).
- 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:
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):
openvpn --genkey secret /etc/openvpn/server/ta.key
3. Edit File server.conf
Konfigurasi ini yang paling krusial. Pastikan jalurnya benar:
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)
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
Post a Comment