WireGuard VPN: Setup Cepat & Aman di Linux | Ilmu Komputer

WireGuard VPN: Setup Cepat & Aman di Linux | Ilmu Komputer

WireGuard telah menjadi protokol VPN modern yang mengalahkan OpenVPN dalam hampir semua aspek — kecepatan, keamanan, dan kemudahan konfigurasi. Artikel ini akan memandu Anda setup WireGuard server dan client di Linux.

Apa itu WireGuard?

WireGuard adalah protokol VPN open-source yang dirancang dengan filosofi minimalis. Tidak seperti OpenVPN yang kompleks, WireGuard hanya memiliki ~4000 baris kode — sangat sedikit dibandingkan OpenVPN yang ratusan ribu baris. Ini berarti attack surface yang lebih kecil dan audit keamanan yang lebih mudah.

Keunggulan WireGuard

  • Performa Tinggi — Kecepatan koneksi hingga 2-3x lebih cepat dari OpenVPN
  • Kode Minimal — ~4.000 baris kode (OpenVPN: >500.000)
  • Simple Config — Satu file konfigurasi per peer
  • Crypto Agility — Menggunakan Curve25519, ChaCha20, Poly1305
  • Built-in in Linux Kernel — Tersedia langsung di kernel 5.6+

Instalasi WireGuard

# Ubuntu/Debian
sudo apt update
sudo apt install wireguard

# CentOS/RHEL/Fedora
sudo dnf install wireguard-tools

# Cek apakah modul kernel tersedia
sudo modprobe wireguard
lsmod | grep wireguard

Setup Server WireGuard

1. Generate Key Pair

cd /etc/wireguard
umask 077  # Pastikan private key hanya readable oleh root

# Generate private & public key
wg genkey | tee server_private.key | wg pubkey > server_public.key
cat server_private.key
cat server_public.key

2. Buat Konfigurasi Server

Buat file /etc/wireguard/wg0.conf:

[Interface]
PrivateKey = [isi private key server]
Address = 10.0.0.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

# Client 1 — Laptop
[Peer]
PublicKey = [public key client 1]
AllowedIPs = 10.0.0.2/32

# Client 2 — HP
[Peer]
PublicKey = [public key client 2]
AllowedIPs = 10.0.0.3/32

Aktifkan IP forwarding di server:

sudo sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf

Setup Client WireGuard

1. Generate Key Client

cd /etc/wireguard
umask 077
wg genkey | tee client_private.key | wg pubkey > client_public.key

2. Konfigurasi Client

Buat file /etc/wireguard/wg0.conf di client:

[Interface]
PrivateKey = [isi private key client]
Address = 10.0.0.2/24
DNS = 1.1.1.1, 8.8.8.8

[Peer]
PublicKey = [public key server]
Endpoint = [IP_PUBLIK_SERVER]:51820
AllowedIPs = 0.0.0.0/0  # Route semua traffic via VPN
PersistentKeepalive = 25

Menyalakan WireGuard

# Start service
sudo systemctl start wg-quick@wg0
sudo systemctl enable wg-quick@wg0

# Cek status
sudo wg show

# Test koneksi
ping 10.0.0.1  # Ping server dari client

Monitoring & Troubleshooting

# Cek traffic
sudo wg show
sudo wg show wg0 transfer

# Log
sudo journalctl -u wg-quick@wg0 -f

# Restart dengan konfigurasi baru
sudo systemctl restart wg-quick@wg0

Troubleshooting

1. "Handshake did not complete"

Sebab: Firewall memblokir port UDP 51820.

Solusi: Buka port di firewall server: sudo ufw allow 51820/udp. Pastikan juga port forwarding di router/Cloudflare Tunnel sudah dikonfigurasi.

2. Koneksi sangat lambat

Sebab: MTU tidak sesuai atau ada routing issue.

Solusi: Turunkan MTU di konfigurasi client dengan menambahkan MTU = 1280 di bagian [Interface].

Baca Juga

Kesimpulan

WireGuard adalah solusi VPN modern yang sempurna untuk kebutuhan remote server, privasi online, dan koneksi aman antar perangkat. Dengan performa tinggi, konfigurasi sederhana, dan keamanan kelas dunia, WireGuard adalah standar baru VPN di 2026.

Iklan

Iklan
Iklan

Iklan
Iklan

Iklan
Iklan