sumarsono.com
Take it with a grain of salt


Konfigurasi Wireguard Server dan Klien

Posted on

Melanjutkan artikel install wireguard. Sekarang saatnya konfigurasi biar bisa dipakai.

Untuk konfiguras akan saya bagi menjadi dua bagian, bagian server dan klien. Masing-masing memiliki konfigurasi sebagai berikut:

Server

  1. OS Centos 7.5 dengan kernel 4.20
  2. Terpasang wireguard
  3. Lokasi: VPS Linode singapura

Klien

  1. OS Manjaro dengan kernel 4.18
  2. Terpasang wireguard
  3. Lokasi: lokal

Konfigurasi

1. Server

Bikin folder untuk menyimpan konfigurasi

Folder ini untuk menyimpan konfigurasi wireguard

mkdir -p /etc/wireguard
cd /etc/wireguard

Generate key-pair

Kita harus generate keypair server dan klien

umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key
wg genkey | tee client_private.key | wg pubkey > client_public.key | wg genpsk > client_psk.key

Bikin konfigurasi untuk server

nano /etc/wireguard/wg0.conf

Isinya sbb:

[Interface]
Address = 10.200.200.4/24
PrivateKey = <insert server_private.key>
ListenPort = 34777

[Peer]
PublicKey = <insert client_public.key>
PresharedKey = <client_psk.key>
AllowedIPs = 10.200.200.2/32

/32 artinya hanya satu ip address.

jalankan wireguard

wg-quick up wg0

enable IP forwarding

echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -p

setting firewall

Saya pakai firewall cmd, pertama bikin masquerade rule

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=10.200.200.4/24 masquerade'

Kemudian bikin rule untuk accept forwarding dari wg0 ke eth0

firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i wg0 -o eth0 -j ACCEPT

Selanjutnya kita buka port 34777/udp

firewall-cmd --permanent --zone=public --add-port=34777/udp

Selanjutnya, kita tambahkan interface wg0 ke zone public

firewall-cmd --zone=public --add-interface=wg0 --permanent

Terakhir, reload firewall-cmd

firewall-cmd --reload

2. Klien

Sisi server sudah selesai, selanjutnya konfigurasi klien

Bikin folder untuk menyimpan konfigurasi

Folder ini untuk menyimpan konfigurasi wireguard

mkdir -p /etc/wireguard
cd /etc/wireguard

Bikin konfigurasi untuk klien

nano /etc/wireguard/wg0-client.conf

Isinya sbb:

[Interface]
Address = 10.200.200.5/24
PrivateKey = <insert client_private.key>
DNS = 8.8.8.8

[Peer]
PublicKey = <insert server_public.key>
PresharedKey = <client_psk.key, klien dan server harus sama>
Endpoint = <ip public server>:34777
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 21

Start wireguard

wg-quick up wg0-client

Selesai, coba tes ping dari klien ke server pakai ip address wireguard:

[NUC wireguard]# ping -c 5 10.200.200.4
PING 10.200.200.4 (10.200.200.4) 56(84) bytes of data.
64 bytes from 10.200.200.4: icmp_seq=1 ttl=64 time=61.5 ms
64 bytes from 10.200.200.4: icmp_seq=2 ttl=64 time=75.5 ms
64 bytes from 10.200.200.4: icmp_seq=3 ttl=64 time=72.3 ms
64 bytes from 10.200.200.4: icmp_seq=4 ttl=64 time=66.3 ms
64 bytes from 10.200.200.4: icmp_seq=5 ttl=64 time=37.6 ms

--- 10.200.200.4 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 9ms
rtt min/avg/max/mdev = 37.618/62.657/75.464/13.411 ms

Kalau server ke klien?

[sumarsono@vps ~]$ ping -c 5 10.200.200.5
PING 10.200.200.5 (10.200.200.5) 56(84) bytes of data.
64 bytes from 10.200.200.5: icmp_seq=1 ttl=64 time=35.2 ms
64 bytes from 10.200.200.5: icmp_seq=2 ttl=64 time=72.3 ms
64 bytes from 10.200.200.5: icmp_seq=3 ttl=64 time=45.8 ms
64 bytes from 10.200.200.5: icmp_seq=4 ttl=64 time=74.5 ms
64 bytes from 10.200.200.5: icmp_seq=5 ttl=64 time=43.8 ms

--- 10.200.200.5 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 35.290/54.376/74.501/15.978 ms
[sumarsono@vps ~]$ 

Mudah bukan? ada yg keliru? jangan sungkan komentar, gratis. Oh iya, konfigurasi di atas merupakan contoh ya, jadi kalau mau dipakai sesuaikan dulu. Selebihnya silakan merujuk ke wiki wireguard.