Pengantar

WireGuard adalah protokol VPN modern yang ringan, cepat, dan aman. WireGuard lebih mudah dikonfigurasi dibanding OpenVPN, dan sudah masuk ke kernel Linux sejak versi 5.6. Di Ubuntu 22.04, kamu bisa langsung menggunakannya tanpa perlu compile manual.

Install WireGuard di Ubuntu Server - side

  1. Update Sistem
    Sebelum melakukan instalasi WireGuard anda harus melakukan update sistem
    sudo apt update && sudo apt upgrade -y
  2. Install WireGuard 
    Install WireGuard pada server Ubuntu 24.04 dengan user root
    apt install wireguard
  3. Generate Private Key
    Jalankan sebagai sudo atau root
    wg genkey | tee /etc/wireguard/private.key	

    Akan mengeluarkan output sebagai berikut

    UPyBDGzvxIQgVmvCaJxUU7IW8urmUe3oy87qHiags0o=
  4. Generate Public Key
    chmod 600 /etc/wireguard/private.key
    cat /etc/wireguard/private.key | wg pubkey | tee /etc/wireguard/public.key	
    Akan mengeluarkan output sebagai berikut
    H1RRxmRTidyFk3yav+jKdVStKNMfaUXMONSE25KtQjs=

Konfigurasi Interface Server

  1. Konfigurasi Interface
    Buat file untuk mengkonfigurasikan interface pada server
    nano /etc/wireguard/wg0.conf
  2. Masukan konfigurasi interface seperti dibawah
    [Interface]
    PrivateKey = UPyBDGzvxIQgVmvCaJxUU7IW8urmUe3oy87qHiags0o=
    Address = 192.168.150.1/24
    ListenPort = 51820
    
    [Peer]
    PublicKey = WJYZ/Va4z0Ua8oMXwEcrKpWMFys0uGggi+AMn3wtBD4=
    AllowedIPs = 192.168.150.2/32

    Private Key : Masukan Private Key milik Server
    Address : Private IP untuk VPN Server
    ListenPort : Port default dari WireGuard 51820 UDP
    Public Key : Masukan Public Key milik Client 

Install WireGuard di Almalinux Client - side

  1. Install WireGuard 
    Untuk bisa terhubung dengan VPN server anda harus install WireGuard untuk Client 
    sudo dnf wireguard-tools
  2. Generate Private Key
    Setelah berhasil melakukan instalasi, anda harus mengenerate Private Key
    wg genkey | tee /etc/wireguard/private.key
    chmod 600 /etc/wireguard/private.key
    Outputnya 
    OOoym1v/0HMSTuXAFeE8eaqG+BNDHDg9h6LvaWT7Vlo=
  3. Generate Public Key
    Gunakan perintah berikut
    cat /etc/wireguard/private.key | wg pubkey | tee /etc/wireguard/public.key	
    Outputnya
    WJYZ/Va4z0Ua8oMXwEcrKpWMFys0uGggi+AMn3wtBD4=

Konfigurasi Interface Client

  1. File Konfigurasi
    Setelah mengenerate Private dan Publik Key anda bisa membuat file konfigurasi menggunakan perintah berikut
    nano /etc/wireguard/wg0.conf
  2. Masukan Konfigurasi Interface
    [Interface]
    PrivateKey = OOoym1v/0HMSTuXAFeE8eaqG+BNDHDg9h6LvaWT7Vlo=
    Address = 192.168.150.2/24
    
    [Peer]
    PublicKey = H1RRxmRTidyFk3yav+jKdVStKNMfaUXMONSE25KtQjs=
    Endpoint = 103.151.141.xxx:51820
    AllowedIPs = 192.168.150.0/24

    Private Key: Private Key dari client
    Address: Private Address untuk VPN Server
    Public Key: Public Key dari VPN Server
    Endpoint: Alamat IP publik dari server VPN beserta port yang dipakai.
    AllowedIPs : Untuk mengatur IP yang diizinkan terkoneksi ke peer, Anda bisa menggunakan IP spesifik (misalnya 192.168.150.1) atau seluruh subnet (192.168.150.0/24). Jika ada beberapa IP, pisahkan dengan koma.

Jalankan WireGuard

Setelah melakukan konfigurasi didua sisi sekarang anda bisa menjalankan WireGuard menggunakan perintah berikut

systemctl start wg-quick@wg0.service
systemctl enable wg-quick@wg0.service
systemctl status wg-quick@wg0.service

Jalankan perintah diatas di sisi Client dan Server

Test Koneksi VPN

Gunakan perintah ini untuk melakukan tes koneksi 

wg

Jika berhasil anda akan mendapatkan output sepert gambar dibawah

Atau anda juga bisa melakukan tes koneksi dengan cara menggunakan perintah ping, contoh ping dari sisi server 

Dari sisi Client

Port Forwarding

Port forwarding adalah proses mengarahkan koneksi dari satu IP/port ke IP/port lain. Contoh Redirect koneksi dari IP publik port 8004 ke server lokal 192.168.150.4 port 8888

  1. Aktifkan IP Forwarding
    echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
    Edit
    sudo nano /etc/sysctl.conf
    Cari atau tambahkan 
    net.ipv4.ip_forward=1

    Aktifkan menggunakan perintah berikut

    sudo sysctl -p
  2. Port Forwarding Menggunakan iptables
    iptables -t nat -A PREROUTING -p tcp --dport 8003 -j DNAT --to-destination 192.168.150.4:8888
    1. -t nat = Menunjukkan bahwa aturan ini ditambahkan pada table NAT (Network Address Translation). NAT digunakan untuk mengubah alamat IP dalam paket yang lewat
    2. -A PREROUTING = Menambahkan aturan ke chain PREROUTING, yang berarti aturan ini akan diterapkan sebelum sistem memutuskan ke mana paket akan dikirim
    3. -p tcp = Aturan ini hanya berlaku untuk paket TCP
    4. --dport 8003 = IP publik dengan port 8004 yang akan diteruskan
    5. -j DNAT = Menyuruh iptables untuk melakukan DNAT (Destination NAT) – yaitu mengubah tujuan paket.
    6. -to-destination = Paket yang ditujukan ke port 8003 akan diteruskan ke IP 192.168.150.4 port 8888
  3. Simpan Konfigurasi
    iptables-save
  4. Cek Konfigurasi
    Untuk melihat apakah konfigurasi sudah tersimpan atau belum anda bisa menggunakan perintah berikut
    iptables -L -t nat --line-numbers
    Output-nya

Kesimpulan

WireGuard adalah solusi VPN ringan, cepat, dan aman untuk Ubuntu 22.04. Dengan konfigurasi sederhana dan performa tinggi, ini cocok untuk personal VPN, akses remote, maupun kebutuhan server-to-server. Kamu hanya perlu mengatur kunci dan IP per client, dan koneksi bisa berjalan dengan efisien.