WireGuard adalah jaringan pribadi virtual sumber terbuka dan berfokus pada keamanan yang dirancang untuk kesederhanaan dan kemudahan penggunaan. Ini mendukung sistem operasi yang berbeda termasuk, Linux, macOS, Windows, BSD dan Android. Ini adalah VPN tujuan umum dan sederhana yang dapat dengan mudah digunakan pada perangkat kecil ke server kelas atas. Ini adalah titik ke titik server VPN bukan model client-server. Ini menggunakan mekanisme pertukaran kunci publik untuk mengautentikasi klien.
Jika Anda mencari VPN yang ringan dan cepat, maka WireGuard VPN adalah pilihan terbaik untuk Anda. Dalam tutorial ini, kami akan menunjukkan cara menginstal server dan klien WireGuard VPN di Ubuntu 20.04.
Prasyarat
- Dua server menjalankan server Ubuntu 20.04.
- Kata sandi root dikonfigurasi di kedua server.
Memulai
Pertama, disarankan untuk memperbarui paket sistem Anda ke versi terbaru. Anda dapat memperbaruinya dengan perintah berikut:
apt-get update -y
Setelah semua paket diperbarui, Anda perlu menginstal Iptables di sistem Anda. Anda dapat menginstalnya dengan perintah berikut:
apt-get install iptables -y
Setelah penginstalan selesai, Anda dapat melanjutkan ke langkah berikutnya.
Instal Server VPN WireGuard
Secara default, paket WireGuard tersedia di repositori default Ubuntu 20.04. Anda dapat menginstalnya dengan menjalankan perintah berikut:
apt-get install wireguard -y
Setelah paket WireGuard diinstal, Anda dapat melanjutkan ke langkah berikutnya.
Konfigurasi Server WireGuard
WireGuard bekerja dengan menukar kunci publik antara setiap perangkat di jaringan WireGuard. Jadi, Anda perlu membuat kunci publik dan pribadi di server.
WireGuard menyediakan utilitas baris perintah wg dan wg-quick untuk membuat kunci dan mengelola antarmuka.
Anda dapat membuat kunci publik dan pribadi menggunakan perintah berikut:
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey
Setelah kedua kunci dibuat, Anda dapat memeriksanya dengan perintah berikut:
ls /etc/wireguard
Anda akan melihat output berikut:
privatekey publickey
Anda dapat menampilkan konten kunci pribadi dengan perintah berikut:
cat /etc/wireguard/privatekey
Anda akan melihat output berikut:
4M1l65NIaoR2+fQ6xVnIdwj6iVjsSPDkEMuzVnbFh3A=
Anda dapat menampilkan konten kunci publik dengan perintah berikut:
cat /etc/wireguard/publickey
Anda akan melihat output berikut:
00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4=
Selanjutnya, Anda perlu membuat antarmuka jaringan untuk WireGuard. Anda dapat membuatnya dengan perintah berikut:
nano /etc/wireguard/wg0.conf
Tambahkan baris berikut:
[Interface] Address = 10.0.0.1/24 SaveConfig = true ListenPort = 51820 PrivateKey = server-private-key PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Simpan dan tutup file setelah Anda selesai.
Di mana :
- Alamat : Alamat IP pribadi untuk antarmuka wg0.
- ListenPort : Tentukan port mendengarkan WireGuard.
- Kunci Pribadi : Kunci pribadi yang disimpan dalam file /etc/wireguard/privatekey.
- PostUp : Tentukan perintah yang memungkinkan lalu lintas meninggalkan server dan memberikan akses klien VPN ke Internet. Ganti juga eth0 dengan nama antarmuka jaringan Anda.
Selanjutnya, atur izin yang tepat ke kunci pribadi dan file wg0.
chmod 600 /etc/wireguard/{privatekey,wg0.conf}
Selanjutnya, aktifkan antarmuka wg0 dengan menjalankan perintah berikut:
wg-quick up wg0
Anda akan mendapatkan output berikut:
[#] ip link add wg0 type wireguard [#] wg setconf wg0 /dev/fd/63 [#] ip -4 address add 10.0.0.1/24 dev wg0 [#] ip link set mtu 1420 up dev wg0 [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Anda juga dapat memulai layanan WireGuard menggunakan systemd seperti yang ditunjukkan di bawah ini:
systemctl start [email protected]
Selanjutnya, aktifkan layanan WireGuard untuk memulai pada sistem reboot dengan perintah berikut:
systemctl enable [email protected]
Selanjutnya, verifikasi status layanan WireGuard dengan perintah berikut:
systemctl status [email protected]
Anda akan mendapatkan output berikut:
? [email protected] - WireGuard via wg-quick(8) for wg0 Loaded: loaded (/lib/systemd/system/[email protected]; disabled; vendor preset: enabled) Active: active (exited) since Thu 2020-12-10 11:42:14 UTC; 7s ago Docs: man:wg-quick(8) man:wg(8) https://www.wireguard.com/ https://www.wireguard.com/quickstart/ https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8 https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8 Process: 2173 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=0/SUCCESS) Main PID: 2173 (code=exited, status=0/SUCCESS) Dec 10 11:42:14 ubuntu2004 systemd[1]: Starting WireGuard via wg-quick(8) for wg0... Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip link add wg0 type wireguard Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] wg setconf wg0 /dev/fd/63 Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip -4 address add 10.0.0.1/24 dev wg0 Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip link set mtu 1420 up dev wg0 Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE Dec 10 11:42:14 ubuntu2004 systemd[1]: Finished WireGuard via wg-quick(8) for wg0.
Anda juga dapat memeriksa status antarmuka wg0 dengan perintah berikut:
wg show wg0
Anda akan mendapatkan output berikut:
interface: wg0 public key: 00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4= private key: (hidden) listening port: 51820
Anda bisa mendapatkan status alamat IP dari antarmuka wg0 dengan perintah berikut:
ip a show wg0
Anda akan mendapatkan output berikut:
13: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 10.0.0.1/24 scope global wg0 valid_lft forever preferred_lft forever
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Aktifkan Penerusan IP
Selanjutnya, Anda harus mengaktifkan penerusan IP di server Anda untuk merutekan paket antara klien VPN dan Internet. Anda dapat mengaktifkannya dengan mengedit file /etc/sysctl.conf:
nano /etc/sysctl.conf
Ubah baris berikut:
net.ipv4.ip_forward=1
Simpan dan tutup file kemudian jalankan perintah berikut untuk menerapkan perubahan konfigurasi:
sysctl -p
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Instal dan Konfigurasikan Klien WireGuard
Pertama, Anda perlu menginstal paket WireGuard pada mesin klien. Anda dapat menginstalnya dengan perintah berikut:
apt-get install wireguard -y
Setelah menginstal paket WireGuard, buat privatekey dan publickey dengan perintah berikut:
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey
Setelah kedua kunci dibuat, Anda perlu membuat file konfigurasi baru.
Anda dapat membuatnya dengan perintah berikut:
nano /etc/wireguard/wg0.conf
Tambahkan baris berikut:
[Interface] PrivateKey = client-private-key Address = 10.0.0.2/24 [Peer] PublicKey = server-public-key Endpoint = server-ip-address:51820 AllowedIPs = 0.0.0.0/0
Simpan dan tutup file setelah Anda selesai.
Di mana :
- Alamat : Alamat IP pribadi untuk antarmuka wg0.
- Kunci Pribadi : Tentukan kunci pribadi pada mesin klien.
- Kunci Publik : Tentukan kunci publik pada mesin server.
- Titik akhir : Tentukan alamat IP server.
- IP yang Diizinkan : Tentukan daftar alamat IP yang diizinkan.
Selanjutnya, Anda perlu menambahkan kunci publik klien dan alamat IP pada mesin server.
Pada mesin server, jalankan perintah berikut untuk menambahkan keduanya:
wg set wg0 peer client-public-key allowed-ips 10.0.0.2
Selanjutnya, Anda perlu membuka antarmuka wg0 pada mesin klien.
Pada mesin klien, jalankan perintah berikut untuk membuka antarmuka:
wg-quick up wg0
Anda akan mendapatkan output berikut:
[#] ip link add wg0 type wireguard [#] wg setconf wg0 /dev/fd/63 [#] ip -4 address add 10.0.0.2/24 dev wg0 [#] ip link set mtu 1420 up dev wg0 [#] wg set wg0 fwmark 51820
Pada titik ini, mesin klien Anda terhubung ke server VPN WireGuard. Anda dapat memeriksa status koneksi dengan perintah berikut:
wg
Anda akan mendapatkan output berikut:
interface: wg0 public key: 3FXBDpAO4Vado1tDjLtVQt+JnOCa+W2piLeFYQ8KyB4= private key: (hidden) listening port: 38830 fwmark: 0xca6c peer: 00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4= endpoint: 69.87.216.36:51820 allowed ips: 0.0.0.0/0 latest handshake: 41 seconds ago transfer: 5.27 KiB received, 12.97 KiB sent
Kesimpulan
Selamat! Anda telah berhasil menginstal dan mengkonfigurasi server dan klien WireGuard VPN di server Ubuntu 20.04. Sekarang, lalu lintas dari mesin klien Anda harus dialihkan melalui mesin server Anda. Sekarang Anda dapat menjelajahi internet secara anonim dan menjaga kerahasiaan data Anda.