Konfigurasi Wireguard Server dan Klien

Konfigurasi Wireguard Server dan Klien

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

1
2
mkdir -p /etc/wireguard
cd /etc/wireguard

Generate key-pair

Kita harus generate keypair server dan klien

1
2
3
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

1
nano /etc/wireguard/wg0.conf

Isinya sbb:

1
2
3
4
5
6
7
8
9
[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

1
wg-quick up wg0

enable IP forwarding

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

setting firewall

Saya pakai firewall cmd, pertama bikin masquerade rule

1
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

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

Selanjutnya kita buka port 34777/udp

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

Selanjutnya, kita tambahkan interface wg0 ke zone public

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

Terakhir, reload firewall-cmd

1
firewall-cmd --reload

2. Klien

Sisi server sudah selesai, selanjutnya konfigurasi klien

Bikin folder untuk menyimpan konfigurasi

Folder ini untuk menyimpan konfigurasi wireguard

1
2
mkdir -p /etc/wireguard
cd /etc/wireguard

Bikin konfigurasi untuk klien

1
nano /etc/wireguard/wg0-client.conf

Isinya sbb:

1
2
3
4
5
6
7
8
9
10
11
[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

1
wg-quick up wg0-client

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

1
2
3
4
5
6
7
8
9
10
11
[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?

1
2
3
4
5
6
7
8
9
10
11
12
[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.