
WireGuard VPN Sunucu Kurulumu: Peer Yönetimi ve Split Tunneling Rehberi
VDS'inizde WireGuard VPN sunucusu nasıl kurulur? Anahtar çifti oluşturma, peer ekleme/çıkarma, split tunneling ve DNS leak önleme adım adım anlatıldı.
WireGuard VPN Sunucu Kurulumu: Peer Yönetimi ve Split Tunneling Rehberi
Önemli Not: Bu rehber, kendi VDS sunucunuza WireGuard kurmak isteyen sistem yöneticileri içindir. Büyükweb'in yönetilen VPN hizmetinde OpenVPN protokolü kullanılmaktadır; Büyükweb'in WireGuard tabanlı bir VPN ürünü bulunmamaktadır. Yönetilen VPN için /vpn-paketleri sayfasını, kendi sunucunuza kurmak için ise /vds-sunucu sayfasını inceleyebilirsiniz.
Kendi VPN sunucunuzu kurmak için günümüzde en çok tercih edilen protokollerden biri WireGuard'dır. Linux çekirdeğine 5.6 sürümüyle dahil olan bu modern protokol, sadeliği ve performansıyla öne çıkar. Bu rehberde Ubuntu 24.04 LTS veya Debian 12 üzerinde WireGuard sunucusunu sıfırdan nasıl kuracağınızı, peer'ları nasıl yöneteceğinizi ve split tunneling ile DNS leak önleme gibi ileri düzey yapılandırmaları adım adım göreceğiz.
WireGuard Nedir?
WireGuard, Jason Donenfeld tarafından geliştirilen ve 2020 yılında Linux çekirdeği 5.6'ya (Mart 2020) dahil edilen modern bir VPN protokolüdür. Tasarımının en belirgin özelliği minimal kod tabanıdır: yaklaşık 4.000 satır kod içerir; bu rakam, onlarca yıllık birikimle büyümüş OpenVPN'in ~100.000 satırının yanında devede kulak kalır.
Az satır = az saldırı yüzeyi = daha kolay güvenlik denetimi. Bu mantık, güvenlik araştırmacıları ve sistem yöneticileri arasında WireGuard'ı hızla popüler hale getirdi.
Teknik temeller:
- Kriptografi: Curve25519 (anahtar değişimi), ChaCha20-Poly1305 (şifreleme + doğrulama), BLAKE2s (karma), SipHash24 (hashtable anahtarları)
- Protokol: UDP tabanlı, herhangi bir port kullanılabilir (varsayılan: 51820)
- Kimlik doğrulama: Yalnızca public key tabanlı; kullanıcı adı/parola yok
- Kernel modülü: Linux 5.6+ ile çekirdek içinde gelir, ek modül derlemeye gerek yok
- Çapraz platform: Linux, macOS, Windows, iOS, Android için resmi istemci uygulamaları mevcut
WireGuard ile OpenVPN ve IPSec Karşılaştırması
| Özellik | WireGuard | OpenVPN | IPSec/IKEv2 |
|---|---|---|---|
| Kod tabanı | ~4.000 satır | ~100.000 satır | Karmaşık, dağınık |
| Protokol | UDP | TCP veya UDP | UDP (IKEv2) |
| Kurulum kolaylığı | Çok kolay | Orta | Zor |
| Performans (throughput) | Yüksek | Orta | Yüksek |
| Gecikme (latency) | Çok düşük | Orta | Düşük |
| Roaming desteği | Mükemmel | Orta | İyi |
| Kernel entegrasyonu | Tam (Linux 5.6+) | Userspace | Kernel + userspace |
| Mobil desteği | Resmi uygulama | Üçüncü taraf | Yerleşik (iOS/Android) |
| Güvenlik denetlenebilirliği | Kolay | Zor | Çok zor |
| Dinamik IP desteği | Evet | Evet | Kısıtlı |
| Platform bağımsızlığı | Yüksek | Yüksek | Orta |
Not: "Hangisi daha iyi?" sorusunun tek bir cevabı yoktur. WireGuard özellikle düşük gecikme ve kolay yönetim isteyenler için öne çıkar. OpenVPN kurumsal ortamlarda uzun süredir kullanılmakta ve geniş destek altyapısına sahiptir. Bu rehber yalnızca WireGuard kurulumunu kapsar.
Gereksinimler
Başlamadan önce aşağıdakilerin hazır olması gerekir:
- Sunucu işletim sistemi: Ubuntu 22.04 LTS, Ubuntu 24.04 LTS veya Debian 12
- Erişim: root veya sudo yetkili kullanıcı
- Çekirdek sürümü: Linux 5.6 ve üzeri (Ubuntu 22.04+ ve Debian 12'de varsayılan olarak gelir)
- Ağ: Açık UDP port 51820 (veya tercih ettiğiniz başka bir port)
- Yazılım:
wireguard-toolspaketi (wg, wg-quick komutlarını içerir) - İstemciler: Bağlanacak cihazlarda WireGuard istemcisi kurulu olmalı
Çekirdek sürümünüzü doğrulamak için:
uname -r
# Örnek çıktı: 6.8.0-41-generic (Ubuntu 24.04)
5.6'nın altındaysa güncelleme yapmanız önerilir:
sudo apt update && sudo apt upgrade -y
sudo reboot
WireGuard Kurulumu
1. Paketi Yükleyin
Ubuntu 22.04/24.04 ve Debian 12'de WireGuard doğrudan resmi depolardan gelir:
sudo apt update
sudo apt install wireguard wireguard-tools -y
Yükleme sonrası wg sürümünü doğrulayın:
wg --version
# wireguard-tools v1.0.20210914 - https://git.zx2c4.com/wireguard-tools/
2. Sunucu Anahtar Çifti Oluşturma
WireGuard, kimlik doğrulama için asimetrik anahtar çifti kullanır. Anahtarlarınızı /etc/wireguard/ dizininde saklayın:
cd /etc/wireguard
umask 077 # Dosya izinlerini kısıtla (sadece root okuyabilsin)
wg genkey | tee privatekey | wg pubkey > publickey
Anahtarları görüntüleyin:
cat /etc/wireguard/privatekey # ASLA başkasıyla paylaşmayın
cat /etc/wireguard/publickey # Peer'lara verilecek anahtar
Güvenlik uyarısı: Private key, sunucunuzun kimliğidir. Yedeğini alın, kimseyle paylaşmayın ve izinlerin 600 olduğunu doğrulayın:
chmod 600 /etc/wireguard/privatekey
3. Sunucu Yapılandırma Dosyası: wg0.conf
/etc/wireguard/wg0.conf dosyasını oluşturun. Aşağıdaki şablonu kendi değerlerinizle doldurun:
[Interface]
# Sunucunun WireGuard tünelindeki IP adresi (subnet: /24)
Address = 10.0.0.1/24
# Dinlenecek UDP port (varsayılan 51820, değiştirilebilir)
ListenPort = 51820
# Sunucunun private key'i (/etc/wireguard/privatekey içeriği)
PrivateKey = <SUNUCU_PRIVATE_KEY>
# Tünel arayüzü aktif olduğunda çalışacak komutlar (NAT + IP forwarding)
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
# --- Peer 1: Laptop ---
[Peer]
PublicKey = <ISTEMCI_1_PUBLIC_KEY>
AllowedIPs = 10.0.0.2/32
# --- Peer 2: Telefon ---
[Peer]
PublicKey = <ISTEMCI_2_PUBLIC_KEY>
AllowedIPs = 10.0.0.3/32
Önemli notlar:
eth0yerine sunucunuzun gerçek ağ arayüzünü yazın (ip route | grep defaultile bulabilirsiniz)- Her peer için benzersiz bir
AllowedIPs(/32) atayın PostUp/PostDownsatırları NAT kurallarını yönetir
Dosya izinlerini ayarlayın:
chmod 600 /etc/wireguard/wg0.conf
IP Forwarding ve NAT Yapılandırması
VPN trafiğinin yönlendirilebilmesi için IP forwarding aktif edilmelidir:
# Anlık aktif et (reboot'ta sıfırlanır)
sysctl -w net.ipv4.ip_forward=1
# Kalıcı hale getir
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.d/99-wireguard.conf
sudo sysctl -p /etc/sysctl.d/99-wireguard.conf
IPv6 kullanıyorsanız aynısını IPv6 için de yapın:
echo "net.ipv6.conf.all.forwarding = 1" | sudo tee -a /etc/sysctl.d/99-wireguard.conf
Doğrulama:
sysctl net.ipv4.ip_forward
# net.ipv4.ip_forward = 1
Firewall Kuralları (UFW Kullanıyorsanız)
# WireGuard portuna izin ver
sudo ufw allow 51820/udp
# SSH erişimini kapat(ma)
sudo ufw allow ssh
# UFW aktif et (henüz aktif değilse)
sudo ufw enable
# Durumu kontrol et
sudo ufw status
WireGuard'ı Başlatma ve Systemd ile Otomatik Başlatma
# Tüneli başlat
sudo wg-quick up wg0
# Sistem başlangıcında otomatik başlatmayı etkinleştir
sudo systemctl enable wg-quick@wg0
# Durumu kontrol et
sudo wg show
wg show çıktısı şuna benzer olmalı:
interface: wg0
public key: <SUNUCU_PUBLIC_KEY>
private key: (hidden)
listening port: 51820
Tüneli durdurmak için:
sudo wg-quick down wg0
İstemci Yapılandırması
Her istemci (peer) için ayrı bir anahtar çifti oluşturulmalıdır. Bu işlemi istemci cihazda veya sunucuda yapabilirsiniz.
İstemci Anahtar Çifti Oluşturma
# İstemci için anahtar çifti oluştur (sunucuda ya da istemcide)
wg genkey | tee istemci1_private | wg pubkey > istemci1_public
cat istemci1_private # İstemci config dosyasına eklenecek
cat istemci1_public # Sunucu wg0.conf'a eklenecek
Windows / macOS / Linux İstemci Yapılandırması
İstemci cihazda aşağıdaki içerikle bir .conf dosyası oluşturun (ör: buyukweb-vpn.conf):
[Interface]
# İstemcinin VPN IP adresi
Address = 10.0.0.2/24
# İstemcinin private key'i
PrivateKey = <ISTEMCI_PRIVATE_KEY>
# DNS sunucusu (DNS leak önleme için)
DNS = 1.1.1.1, 8.8.8.8
[Peer]
# Sunucunun public key'i
PublicKey = <SUNUCU_PUBLIC_KEY>
# Sunucunun gerçek IP adresi ve portu
Endpoint = <SUNUCU_IP>:51820
# Tüm trafik VPN üzerinden (full tunnel)
# Split tunneling için bkz. aşağıdaki bölüm
AllowedIPs = 0.0.0.0/0, ::/0
# Bağlantıyı canlı tutmak için (NAT arkasındaysa önerilir)
PersistentKeepalive = 25
- Windows: Resmi WireGuard for Windows uygulamasını kurun, "Import tunnel from file" ile .conf dosyasını içe aktarın.
- macOS: App Store'dan "WireGuard" uygulamasını kurun, aynı şekilde .conf dosyasını içe aktarın.
- Linux:
sudo apt install wireguardardındansudo wg-quick up /path/to/buyukweb-vpn.conf
iOS ve Android İstemci Yapılandırması
Resmi WireGuard uygulaması App Store ve Google Play'de ücretsiz olarak mevcuttur. Yapılandırmayı QR kod ile kolayca aktarabilirsiniz (aşağıdaki QR kod bölümüne bakın).
Peer Ekleme ve Silme
Yeni Peer Ekleme (Sunucu Tarafı)
Yeni bir istemci eklerken iki seçeneğiniz var:
Seçenek 1: wg0.conf dosyasını düzenleyip reload etmek (kalıcı)
/etc/wireguard/wg0.conf dosyasına yeni bir [Peer] bloğu ekleyin:
[Peer]
PublicKey = <YENI_ISTEMCI_PUBLIC_KEY>
AllowedIPs = 10.0.0.4/32
Ardından yapılandırmayı yeniden yükleyin:
sudo wg-quick down wg0 && sudo wg-quick up wg0
# veya (downtime olmadan hot reload):
sudo wg syncconf wg0 <(wg-quick strip wg0)
Seçenek 2: wg set ile anlık ekleme (geçici — reboot'ta kaybolur)
sudo wg set wg0 peer <YENI_ISTEMCI_PUBLIC_KEY> allowed-ips 10.0.0.4/32
Peer Silme
# Anlık kaldırma
sudo wg set wg0 peer <ISTEMCI_PUBLIC_KEY> remove
# Kalıcı kaldırma: wg0.conf'tan ilgili [Peer] bloğunu silin, ardından reload
sudo wg syncconf wg0 <(wg-quick strip wg0)
Tüm Peer'ları Listeleme
sudo wg show
# veya daha ayrıntılı:
sudo wg show wg0 dump
Split Tunneling: Kısmi Trafik Yönlendirme
Split tunneling, yalnızca belirli trafiğin VPN tünelinden geçmesini sağlar. Bunun için istemci yapılandırmasındaki AllowedIPs değerini düzenlersiniz.
Full Tunnel (Tüm Trafik VPN'den)
AllowedIPs = 0.0.0.0/0, ::/0
Bu ayar tüm internet trafiğini VPN üzerinden yönlendirir.
Split Tunnel: Yalnızca Belirli Ağlar
# Yalnızca şirket ağı (örn: 192.168.10.0/24) ve VPN subnet'i
AllowedIPs = 10.0.0.0/24, 192.168.10.0/24
# Yalnızca belirli IP adresleri
AllowedIPs = 10.0.0.0/24, 203.0.113.50/32
Split Tunnel: Belirli Aralıkları Hariç Tutma
WireGuard'ın AllowedIPs hesaplayıcısı ile "şu IP'ler hariç her şey" kuralı oluşturabilirsiniz. WireGuard AllowedIPs Calculator gibi araçlar bu hesaplamayı kolaylaştırır.
Örnek: 192.168.1.0/24 hariç tüm trafik:
AllowedIPs = 0.0.0.0/1, 128.0.0.0/1
# (192.168.1.0/24 bloktan çıkarılmış hali)
Pratik ipucu: Uzaktan çalışanlar için genellikle split tunnel tercih edilir; bant genişliği tasarrufu sağlar ve yerel ağ erişimini korur. Güvenlik açısından tam kontrol isteyenler full tunnel kullanır.
DNS Leak Önleme
DNS leak, VPN açıkken DNS sorgularının tünel dışına sızmasıdır. WireGuard'da önlemek için:
İstemci Yapılandırmasında DNS Direktifi
[Interface]
DNS = 1.1.1.1, 8.8.8.8
Bu satır, wg-quick aracılığıyla resolvconf veya systemd-resolved'u otomatik olarak yapılandırır.
resolvconf Entegrasyonu (Eski Sistemler)
Ubuntu 22.04 ve öncesinde resolvconf kurulu olmayabilir:
sudo apt install resolvconf -y
Systemd-resolved ile DNS Yapılandırması
Eğer sistemde systemd-resolved kullanılıyorsa:
# DNS leak testi: aşağıdaki komut tünel aktifken çalıştırılır
resolvectl status wg0
DNS leak doğrulaması için dnsleaktest.com gibi çevrimiçi araçlar kullanabilirsiniz.
QR Kod ile Mobil İstemci Kurulumu
Telefon veya tablete istemci yapılandırmasını manuel girmek yerine QR kod kullanmak çok daha pratiktir.
qrencode Kurulumu
sudo apt install qrencode -y
İstemci .conf Dosyasından QR Kod Üretme
# istemci1.conf dosyasını QR koda çevir (terminalde göster)
qrencode -t ansiutf8 < /etc/wireguard/istemci1.conf
# Veya PNG dosyası olarak kaydet
qrencode -t png -o /tmp/istemci1-qr.png < /etc/wireguard/istemci1.conf
QR kodu mobil WireGuard uygulamasında "Scan QR Code" seçeneğiyle okutun.
Güvenlik notu: QR kodunu ekran görüntüsüne almaktan kaçının. Kullandıktan sonra geçici dosyayı silin:
rm /tmp/istemci1-qr.png
Güvenlik Notları
Pre-Shared Key (PSK) Ekleme
Ek bir güvenlik katmanı olarak her peer için pre-shared key ekleyebilirsiniz:
# PSK oluştur
wg genpsk > /etc/wireguard/psk-peer1
# Sunucu wg0.conf'ta ilgili [Peer] bloğuna ekle:
# PresharedKey = <PSK_DEĞERI>
# İstemci yapılandırmasında da [Peer] altına aynı PSK eklenmeli
Anahtar Rotasyonu
Periyodik anahtar rotasyonu güvenliği artırır. Önerilen sıklık: 3-6 ayda bir.
# Sunucu için yeni anahtar çifti oluştur
cd /etc/wireguard
wg genkey | tee privatekey.new | wg pubkey > publickey.new
# wg0.conf'ta PrivateKey değerini güncelle
# Tüm peer'ların Endpoint public key'ini güncelle
# Servisi yeniden başlat
sudo systemctl restart wg-quick@wg0
Fail2ban ile Brute-Force Koruması
WireGuard UDP tabanlı olduğundan geleneksel TCP brute-force koruması uygulanmaz. Ancak genel güvenlik önlemi olarak:
# Iptables ile belirli bir IP'den yoğun UDP isteklerini sınırla
sudo iptables -A INPUT -p udp --dport 51820 -m recent --set --name wireguard
sudo iptables -A INPUT -p udp --dport 51820 -m recent --update --seconds 60 --hitcount 30 --name wireguard -j DROP
MTU Sorunlarını Önleme
WireGuard'ın kapsülleme başlıkları nedeniyle MTU ayarı önemlidir:
# wg0.conf Interface bölümüne ekleyin (önerilen):
MTU = 1420
Sorun Giderme
Handshake Gerçekleşmiyor
Eğer wg show çıktısında "latest handshake" göremiyorsanız:
# 1. Sunucuda port açık mı kontrol et
sudo ss -tulnp | grep 51820
# 2. Firewall kurallarını kontrol et
sudo iptables -L -n | grep 51820
sudo ufw status
# 3. IP forwarding aktif mi?
cat /proc/sys/net/ipv4/ip_forward
# 4. Public key'lerin doğru girildiğini doğrula
sudo wg show wg0
# 5. Gerçek zamanlı debug
sudo wg show wg0 latest-handshakes
Bağlantı Yavaş veya Paket Kaybı Var
# MTU testi: ping ile büyük paket gönder
ping -M do -s 1400 <HEDEF_IP>
# MTU'yu küçült (wg0.conf Interface'e ekle):
MTU = 1380
DNS Çalışmıyor
# Tunnel aktifken DNS sorgusunu test et
nslookup google.com
# systemd-resolved durumu
resolvectl status
# resolvconf yenile
sudo resolvconf -u
Peer Bağlanıp Bağlanmadığını Kontrol Etme
# Son handshake zamanı (unix timestamp)
sudo wg show wg0 latest-handshakes
# Aktarılan veri miktarı
sudo wg show wg0 transfer
Son handshake 180 saniyeden eskiyse bağlantı kesilmiş sayılır.
Büyükweb VDS ile WireGuard: Pratik Kurulum Senaryosu
Kendi WireGuard sunucunuzu kurmak istiyorsanız, ihtiyaç duyduğunuz şey root erişimli bir VDS'dir. Büyükweb'in E5-V4 VDS paketleri, Linux 5.6+ çekirdeği desteğiyle WireGuard kurulumuna hazır gelir:
- Root erişimi — wg-tools kurulumu ve çekirdek modülü yükleme
- Statik IP — Endpoint yapılandırması için sabit adres
- UDP port esnekliği — İstediğiniz portu açabilme
- 7/24 Türkçe teknik destek — Kurulum sorunlarında yardım
VDS paketlerini incelemek için: /vds-sunucu veya /e5v4-vds
Dilerseniz /sanal-sunucu sayfasında tüm sunucu seçeneklerini karşılaştırabilirsiniz.
Yönetilen VPN hizmeti mi arıyorsunuz? Büyükweb'in OpenVPN tabanlı VPN paketleri, sunucu yönetimi olmadan hazır VPN bağlantısı sunar. Kurulum gerektirmez, .ovpn dosyası ile anında bağlanırsınız.
Sık Sorulan Sorular
WireGuard, OpenVPN'den daha hızlı mı?
Çoğu senaryoda evet. WireGuard, çekirdek içinde çalıştığı ve daha verimli kriptografi algoritmaları kullandığı için özellikle yüksek bant genişliği gerektiren kullanım durumlarında belirgin şekilde daha iyi performans gösterir. Ancak fark, ağ altyapısına ve kullanım senaryosuna göre değişir; bazı durumlarda ikisi benzer performans sergiler.
Türkiye'de WireGuard kullanmak yasal mı?
Kendi sunucunuzda kişisel veya kurumsal amaçlı VPN kurmak ve kullanmak yasal bir faaliyettir. Ticari VPN hizmeti satmak veya devlet güvenlik önlemlerini aşmak amacıyla kullanmak farklı değerlendirilebilir. Hukuki konularda bir avukattan görüş almanızı öneririz.
iOS ve Android için WireGuard istemcisi ücretli mi?
Hayır. App Store ve Google Play'deki resmi WireGuard uygulamaları tamamen ücretsizdir ve açık kaynak kodludur.
Bir WireGuard sunucusuna kaç peer eklenebilir?
Teknik olarak binlerce peer eklenebilir; bellek ve CPU kapasitesiyle sınırlıdır. Her peer için yaklaşık birkaç kilobayt bellek kullanılır. Pratikte, düzinelerce aktif bağlantı için giriş düzey bir VDS yeterlidir; yüzlerce eş zamanlı bağlantı için daha güçlü bir sunucu önerilir.
WireGuard'ın varsayılan portu olan 51820 değiştirilebilir mi?
Evet. wg0.conf dosyasında ListenPort değerini istediğiniz UDP portuna (örn: 443, 1194, 8080) ayarlayabilirsiniz. Firewall'da seçtiğiniz portu açmayı unutmayın.
WireGuard'da TCP port kullanmak mümkün mü?
WireGuard yalnızca UDP üzerinde çalışır; TCP desteği yoktur. TCP gereken ortamlarda (örn: bazı kurumsal ağlar yalnızca TCP'ye izin verir) UDP-over-TCP tünelleme araçları kullanılabilir, ancak bu WireGuard'ın bir parçası değildir.
Peer yapılandırması yanlışsa ne olur?
WireGuard, yanlış public key veya AllowedIPs ile yapılandırılmış peer'ları sessizce yok sayar; hata vermez. Bağlantı kurulamıyorsa her iki taraftaki public key değerlerini ve AllowedIPs bloklarını dikkatle doğrulayın.
Büyükweb, 0850 302 60 70 numarası ve iletisim sayfası aracılığıyla teknik destek sağlamaktadır. VDS kurulumu veya yönetilen VPN hakkında sorularınız için bize ulaşabilirsiniz.
Ağ & Network İlgili Hizmetlerimiz
Bu yazıda anlatılan teknik konuyu profesyonel altyapıyla deneyimleyin
Etiketler:
