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
- OS Centos 7.5 dengan kernel 4.20
- Terpasang wireguard
- Lokasi: VPS Linode singapura
Klien
- OS Manjaro dengan kernel 4.18
- Terpasang wireguard
- 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
SaveConfig = true
PrivateKey = <insert server_private.key>
ListenPort = 34777
[Peer]
PublicKey = <insert client_public.key>
PresharedKey = <client_psk.key>
AllowedIPs = 10.200.200.5/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.
Sumber: https://unomind.github.io/2019/01/10/konfigurasi-wireguard-server-dan-klien/