Install dan Konfigurasi VPN WireGuard di Ubuntu
Konfigurasi VPN WireGuard di Ubuntu. Oke kali ini saya akan membahas tentang Wireguard. Wireguard adalah protokol VPN "masa depan" yang diklaim lebih cepat dan lebih aman dari protokol VPN lain seperti IPsec ataupun OpenVPN. Konfigurasinya pun sebenarnya lebih mudah dibanding protokol VPN lain, bisa dibilang kita hanya perlu bertukar key saja.
Di tutorial ini saya menggunakan OS Ubuntu 18.04 sebagai server VPN Wireguard, sementara untuk clientnya saya menggunaakan OS Ubuntu 19.10.
Pertama, pastikan kalian menginstall Wireguard di server maupun di client.
Konfigurasi di Server
Pertama, kita lakukan konfigurasi di sisi server, yang dalam tutorial ini adalah OS Ubuntu 18.04.
Generate public key serta private key yang akan digunakan oleh server Wireguard.
Lalu buat file konfigurasi Wireguard server.
Perhatikan bagian PrivateKey. Sesuaikan dengan private key yang kalian generate pada langkah pertama. Pada bagian Address, isinya merupakan internal IP, tidak perlu diganti. ListenPort bebas diganti sesuai selera. Sementara untuk interface ens33 sesuaikan sendiri dengan interface aktif kalian. Bisa saja eth0 ataupun wlan0.
Jangan lupa open port di firewall agar tidak diblokir.
Generate private key dan juga public key sama seperti di server.
Sekarang buat file konfigurasi seperti di server.
Oke bagian interface isinya adalah informasi client. PrivateKey yang ditambahkan ke file tersebut adalah private key milik client atau dalam tutorial ini adalah private key milik Ubuntu 19.10. Untuk Address, gunakan internal IP yang masih satu range dengan internal IP server. Sementara untuk peer, PublicKey isikan dengan PublicKey milik server (Ubuntu 18.04). Endpoint isikan dengan alamat ip publik dan port dari server (ingat ip publik bukan ip internal).
Sekarang jalankan Wireguard di client:
Menghubungkan Client dan Server
Edit lagi konfigurasi Wireguard server (Ubuntu 18.04).
PublicKey yang ditambahkan adalah public key milik client. Sementara AllowedIPs diisi dengan ip internal milik client.
Sekarang, kita jalankan Wireguard server.
sudo wg-quick up wg0
Seharusnya sekarang client dan juga server sudah bisa berkomunikasi melalui protokol Wireguard.
Kita coba ping ke server dari client
Nah jika kalian sudah memastikan bahwa koneksi tidak error, kalian bisa enable service Wireguard agar langsung berjalan saat booting.
Baik dari sisi server maupun client jalankan command
Oke mungkin sekian tutorial kali ini, semoga bermanfaat. Jika ada yang ingin ditanyakan silahkan tinggalkan komentar.
Di tutorial ini saya menggunakan OS Ubuntu 18.04 sebagai server VPN Wireguard, sementara untuk clientnya saya menggunaakan OS Ubuntu 19.10.
Pertama, pastikan kalian menginstall Wireguard di server maupun di client.
sudo add-apt-repository ppa:wireguard/wireguard
sudo apt-get update
sudo apt-get install wireguardUntuk sistem operasi lain kalian bisa cek di halaman Install Wireguard.
Konfigurasi di Server
Pertama, kita lakukan konfigurasi di sisi server, yang dalam tutorial ini adalah OS Ubuntu 18.04.
Generate public key serta private key yang akan digunakan oleh server Wireguard.
umask 077
wg genkey | tee privatekey | wg pubkey > publickeyMaka akan tercipta dua file di direktori home kalian. Contoh output:
root@nakano-server:~# cat privatekey IMmW5mWYyolYp74pACs0YfEIRFs9EzlllRF9xHjfgXA= root@nakano-server:~# cat publickey jP7TF48B6lOsB3rBNkBTo8d3wmQkKPfg3XTcs5qJ+lc=
Lalu buat file konfigurasi Wireguard server.
sudo nano /etc/wireguard/wg0.confIsinya
[Interface] PrivateKey = IMmW5mWYyolYp74pACs0YfEIRFs9EzlllRF9xHjfgXA= ListenPort = 6969 SaveConfig = false Address = 10.0.0.1/24 PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o ens33 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens33 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o ens33 -j MASQUERADE
Perhatikan bagian PrivateKey. Sesuaikan dengan private key yang kalian generate pada langkah pertama. Pada bagian Address, isinya merupakan internal IP, tidak perlu diganti. ListenPort bebas diganti sesuai selera. Sementara untuk interface ens33 sesuaikan sendiri dengan interface aktif kalian. Bisa saja eth0 ataupun wlan0.
Jangan lupa open port di firewall agar tidak diblokir.
sudo ufw allow 6969/udpSekarang kita coba jalankan Wireguard.
sudo wg-quick up wg0Cek statusnya menggunakan perintah
sudo wgJika tidak ada error, kita matikan lagi untuk sementara.
sudo wg-quick down wg0Konfigurasi di Client
Generate private key dan juga public key sama seperti di server.
umask 077
wg genkey | tee privatekey | wg pubkey > publickeyOutput private key dan public key.
yuzuriha@linuxsec:~$ cat publickey tiB4uuYhmzPJrvsAXXVmGm0M7d3ne1sMD7p5x9sKdRo= yuzuriha@linuxsec:~$ cat privatekey SHZ+auQO3PlHlNymy2sUKHlfZDHj3MVjrWwjEY99Blk=
Sekarang buat file konfigurasi seperti di server.
sudo nano /etc/wireguard/wg0.confNamun isinya
[Interface] #client PrivateKey=SHZ+auQO3PlHlNymy2sUKHlfZDHj3MVjrWwjEY99Blk= Address=10.0.0.2/32 DNS=1.1.1.1 [Peer] #server PublicKey=jP7TF48B6lOsB3rBNkBTo8d3wmQkKPfg3XTcs5qJ+lc= Endpoint=192.168.23.21:6969 AllowedIPs=0.0.0.0/0
Oke bagian interface isinya adalah informasi client. PrivateKey yang ditambahkan ke file tersebut adalah private key milik client atau dalam tutorial ini adalah private key milik Ubuntu 19.10. Untuk Address, gunakan internal IP yang masih satu range dengan internal IP server. Sementara untuk peer, PublicKey isikan dengan PublicKey milik server (Ubuntu 18.04). Endpoint isikan dengan alamat ip publik dan port dari server (ingat ip publik bukan ip internal).
Sekarang jalankan Wireguard di client:
sudo wg-quick up wg0Sampai disini masih adasatu step yang harus dilakukan. Yakni menambahkan informasi client pada konfigurasi server.
Menghubungkan Client dan Server
Edit lagi konfigurasi Wireguard server (Ubuntu 18.04).
sudo nano /etc/wireguard/wg0.confLalu tambahkan informasi client. Contoh konfigurasi akhir:
[Interface] PrivateKey = IMmW5mWYyolYp74pACs0YfEIRFs9EzlllRF9xHjfgXA= ListenPort = 6969 SaveConfig = false Address = 10.0.0.1/24 PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -$ PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens33 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat$ [Peer] #client PublicKey = tiB4uuYhmzPJrvsAXXVmGm0M7d3ne1sMD7p5x9sKdRo= AllowedIPs = 10.0.0.2/32
PublicKey yang ditambahkan adalah public key milik client. Sementara AllowedIPs diisi dengan ip internal milik client.
Sekarang, kita jalankan Wireguard server.
sudo wg-quick up wg0
Seharusnya sekarang client dan juga server sudah bisa berkomunikasi melalui protokol Wireguard.
Kita coba ping ke server dari client
ping 10.0.0.1Lalu dari sisi server kita cek menggunakan perintah
sudo wg
Nah jika kalian sudah memastikan bahwa koneksi tidak error, kalian bisa enable service Wireguard agar langsung berjalan saat booting.
Baik dari sisi server maupun client jalankan command
sudo systemctl enable wg-quick@wg0
Install WireGuard di Docker
Saya juga membuat tutorial di artikel berbeda tentang bagaimana cara install WireGuard di Docker. Cek tutorialnya di url berikut: