Ekin Karadeniz

Wireguard kurulumu ve kullanımı

Wireguard kurulumu ve kullanımı

Wireguard yeni çıkan bir VPN yazılımıdır. OpenVPN’e göre çok daha performanslıdır ve kurulumu daha kolaydır. Wireguard ile iki farklı ağı birbirine sanal olarak bağlayabilirsiniz. Çok uzatmadan kuruluma geçelim.

Wireguard’ın kendi sitesinden kendi platformunuza uygun olanı kurun: https://www.wireguard.com/install/

Örnek olarak sunucumuz Ubuntu ise, dökümanlarda anlatılan kuruluma göre yapalım:

sudo add-apt-repository ppa:wireguard/wireguard
sudo apt-get update
sudo apt-get install wireguard

Bu arada Linux header modülleri yüklü değilse bunu da kurmayı unutmayın.

sudo apt-get install linux-headers-$(uname --kernel-release)

Wireguard kurulumu tamamlandıysa wg komutunun çalışması lazım. Ardından /etc/wireguard dizinine gidin.

cd /etc/wireguard

Wireguard’da bilgisayarları birbirine bağlamak için private ve public keyler gerekir. Bu dosyaları oluşturalım.

umask 077
wg genkey > privatekey
wg pubkey < privatekey > publickey

Aşağıda sunucu için kullanabileceğiniz bir config örneği bulunuyor. Metin editöründen dosyayı /etc/wireguard/wg0.conf ismiyle açıp, kendinize göre düzenleyin.

[Interface]
PrivateKey = <sunucuda oluşturduğunuz privatekey içeriği>
Address = 10.22.0.1/24
ListenPort = 9999
SaveConfig = false

[Peer]
PublicKey = <client bilgisayarda oluşturduğunuz publickey içeriği>
AllowedIPs = 10.22.0.4/32

Şimdi client bilgisayarınızda da aynı şekilde bir private ve public keyleri oluşturun. Peer kısmındaki PublicKey‘e, bilgisayarınızda oluşturduğunuz publickey dosyasının içeriğini girin ve dosyayı kaydedin.

Not: Interface kısmında her bir Wireguard istemcisinin kendi private keyi bulunur ve bu key kimseyle paylaşılmamalı. Eşleştirme yaparken bilgisayarlar arasında yalnızca public keyleri paylaşın.

Sunucumuza geri dönelim. Sunucudaki IP forwarding özelliğini aktif edin.

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
echo "net.ipv4.conf.all.forwarding=1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf
sysctl -p

IPtables için gerekli ayarlamaları yapın.

sudo apt install iptables-persistent
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate NEW -s 10.22.0.0/24 -m policy --pol none --dir in -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.22.0.0/24 -m policy --pol none --dir out -j MASQUERADE
iptables -A INPUT -p udp --dport 9999 -j ACCEPT
iptables-save > /etc/iptables/rules.v4

Her şey tamamsa, sunucunuzdaki Wireguard’ı aktif edin ve sunucuya restart atın.

systemctl enable wg-quick@wg0.service
systemctl start wg-quick@wg0.service
reboot

Sunucu ile işimiz bitti. Aşağıda client için kullanabileceğiniz örnek bir config dosyası bulunuyor.

[Interface]
PrivateKey = <bilgisayarınızda oluşturduğunuz privatekey içeriği>
Address = 10.22.0.4/24
DNS = 1.1.1.1

[Peer]
PublicKey = <sunucuda oluşturduğunuz publickey içeriği>
Endpoint = <sunucunun ip adresi>:9999
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

Client bilgisayarınız Linux ise /etc/wireguard/wg0.conf dosyasına kaydedin ve wg-quick up wg0 komutu ile çalıştırın. Windows veya macOS işletim sistemlerinde ise Wireguard’ın grafik arayüzlü programında yeni tünel ekleme kısmından doldurmanızı istediği config’i de üstteki gibi düzenleyerek çalıştırabilirsiniz.