Wireguard kurulumu ve kullanımı
Wireguard son günlerde popüler hale gelen 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.