Kali ini saya akan membuat tutorial alternatif VPN memakai Wireguard. Dari beberapa situs, Wireguard memiliki kelebihan pada sisi kecepatan Download dan Upload dibandingkan dengan memakai OpenVPN
Langsung saja, berikut tutorial instalasi Wireguard pada server Debian 9
1 2 3 4 | echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable-wireguard.list printf 'Package: *\nPin: release a=unstable\nPin-Priority: 150\n' > /etc/apt/preferences.d/limit-unstable apt update apt install wireguard-dkms wireguard-tools |
Aktifkan port forwarding jika belum, dengan uncomment pada file /etc/sysctl.conf
1 2 3 4 | net.ipv4.ip_forward = 1 net.ipv6.conf.all.forwarding=1 simpan, lalu terapkan perubahan dengan perintah : sysctl -p |
Buat PrivateKey dan PublicKey
1 2 3 4 | cd /etc/wireguard umask 077 sudo wg genkey | tee privatekey | wg pubkey > publickey cat publickey privatekey |
Kiita akan memakai isi file /etc/wireguard/privatekey dan /etc/wireguard/publickey pada konfigurasi selanjutnya
Buat file konfigurasi Server Wireguard
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # nano /etc/wireguard/wg0.conf [Interface] Address = 10.0.0.1/24 Address = fd86:ea04:1115::1/64 SaveConfig = true PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -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; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE ListenPort = 5555 PrivateKey = ThisIsServerPrivateKey= <----- baris ini kebawah, diisi dengan data setelah install Client ------> [Peer] PublicKey = IniAdalahPublicKeynyaClientWindows10= AllowedIPs = 10.0.0.2/24, fd86:ea04:1115::0/64 |
Buka port di firewall, misalnya ufw allow 5555 sesuai setingan diatas.
Start Wireguard memakai perintah : wg-quick up wg0
Stop Wireguard memakai perintah : wg-quick down wg0
Enable Wireguard saat boot memakai perintah : systemctl enable wg-quick@wg0
Cek apakah sudah berjalan : wg show
Bisa juga menambahkan peer ke Client dari terminal ssh, :
1 2 3 4 | wg set wg0 peer ClientPublicKeyInsertHere allowed-ips 10.0.0.2/32,fd86:ea04:1115::/64 Simpan memakai perintah : wg-quick save wg0 |
Konfigurasi Client pada Windows 10
Download aplikasi Client dari situs Wireguard
Jalankan aplikasi Wireguard, kemudian klik Add Tunnel – Add empty tunnel
Kemudian isi dengan contoh berikut :
1 2 3 4 5 6 7 8 9 | [Interface] PrivateKey = IniadalahPrivateKeyClientWindows10= Address = 10.0.0.2/32, fd86:ea04:1115::5/64 DNS = 8.8.8.8 [Peer] PublicKey = ThisIsServerPublicKey= AllowedIPs = 0.0.0.0/0, ::/0 Endpoint = 123.123.123.123:5555 |
PrivateKey memakai key yang otomatis dibuat oleh aplikasi
Address memakai 10.0.0.2/32, karena akan error jika memakai /24, atau ganti memakai /30 jika masih error. Hapus baris IPv6 jika tidak ingin memakai IPv6
DNS memakai 8.8.8.8 karena akan error ketika resolve domain jika tidak memakai DNS
PublicKey diisi memakai PublicKeynya Server Wireguard
AllowedIPs diisi 0.0.0.0/0 supaya berhasil, kalau diganti 10.0.0.1/24 akan eror
Endpoint diisi dengan alamat IP Server Wireguard beserta port yang dipakai
Setelah selesai, klik tombol Activate pada Client di Windows 10, jika berhasil maka kita bisa melakukan ping pada 10.0.0.1 dan google.com
Konfigurasi Client pada Android
Download aplikasi Wireguard untuk Android di Playstore
1 2 3 4 5 6 7 8 9 10 | PrivateKey dan PublicKey autogenerated, copy untuk ditambahkan ke Wireguard Server Address = 10.0.0.4/32 DNS Servers = 8.8.8.8 [Peer] Public Key = ThisIsServerPublicKey= <-- diisi PublicKey Server Pre-share Key = kosong Persisten keepalive = kosong Endpoint = 123.123.123.123:5555 <-- diisi ip Server:port AllowedIPs = 0.0.0.0/0, ::/0 <-- penyebab port forward gagal kalau diganti yang lain |
Semoga bermanfaat 🙂