Ana içeriğe geç

🌐 WireGuard Sunucu Kurulumu, Yönetimi ve İstemci Rehberi

Bu rehber; temiz bir Linux sunucusu üzerinde WireGuard VPN servisinin sıfırdan kurulması, yeni kullanıcılar (peer) eklenmesi, anahtar yönetimi ve bu bağlantıların farklı platformlardaki (Linux, Windows, Mobil ve Keenetic Modem) uygulamalarda nasıl yapılandırılıp kullanılacağını içerir.


1. Sunucu Tarafı (Server) Kurulumu ve Yapılandırma

Bu adımlar Ubuntu/Debian tabanlı bir uzak sunucu (VPS) üzerinde gerçekleştirilir.

A. Paketlerin Kurulması

sudo apt update
sudo apt install wireguard iptables -y

B. Sunucu Anahtarlarının Üretilmesi

WireGuard, asimetrik şifreleme (Public/Private Key) kullanır. Sunucu için gerekli anahtarları üretmek için:

# Anahtarların güvenliği için yetkileri kısıtlı bir klasöre geçiyoruz
cd /etc/wireguard/
umask 077

# Sunucu için özel (private) ve genel (public) anahtarları üret
wg genkey | tee server_private.key | wg pubkey > server_public.key

C. Sunucu Yapılandırma Dosyası (wg0.conf)

/etc/wireguard/wg0.conf dosyasını oluşturun ve aşağıdaki şablonu kendinize göre düzenleyin:

[Interface]
Address = 10.66.66.1/24
ListenPort = 51820
PrivateKey = <server_private.key_DOSYASININ_İÇERİĞİ>

# Sunucu üzerinden internete çıkış için IP Yönlendirme kuralları (iptables)
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

D. Sistem Seviyesinde IP Yönlendirmenin (Routing) Açılması

Sunucunun bir router gibi davranıp paketleri internete aktarabilmesi için çekirdek seviyesinde yönlendirme açılmalıdır:

# Geçici olarak açmak için:
sudo sysctl -w net.ipv4.ip_forward=1

# Kalıcı hale getirmek için /etc/sysctl.conf dosyasını açın ve şu satırın başındaki '#' işaretini kaldırın veya ekleyin:
net.ipv4.ip_forward=1

# Ayarları uygulamak için:
sudo sysctl -p

E. Servisin Başlatılması ve Kontrolü

# Güvenlik duvarından (UFW kullanılıyorsa) porta izin verin
sudo ufw allow 51820/udp

# WireGuard servisini başlatın ve sistem açılışına ekleyin
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

# Durumu kontrol etmek için:
sudo wg show

2. Sunucuya Manuel Kullanıcı (Peer) Ekleme Adımları

Otomatik scriptler yerine arka plandaki mantığı anlamak ve manuel kullanıcı eklemek için sırasıyla şu komutlar işletilir:

Adım 1: Kullanıcı İçin Anahtar Üretimi

cd /etc/wireguard/
# Kullanıcı (Örn: ali) için anahtarları üret
wg genkey | tee ali_private.key | wg pubkey > ali_public.key
# İsteğe bağlı ek güvenlik (PresharedKey) üretimi
wg genpsk > ali_preshared.key

Adım 2: Sunucu Dosyasına (wg0.conf) Kullanıcıyı Tanımlama

Sunucunun bu yeni kullanıcıyı tanıyabilmesi için /etc/wireguard/wg0.conf dosyasının en altına şu blok eklenir:

[Peer]
PublicKey = <ali_public.key_İÇERİĞİ>
PresharedKey = <ali_preshared.key_İÇERİĞİ>
AllowedIPs = 10.66.66.2/32
Değişikliklerin devreye girmesi için sunucu servisi yeniden yüklenir:
sudo systemctl restart wg-quick@wg0

Adım 3: Kullanıcının Cihazına Yüklenecek Config Dosyasını Hazırlama

Kullanıcıya iletilecek ali.conf dosyası şu şekilde tasarlanır:

[Interface]
PrivateKey = <ali_private.key_İÇERİĞİ>
Address = 10.66.66.2/32
DNS = 1.1.1.1, 1.0.0.1

[Peer]
PublicKey = <server_public.key_İÇERİĞİ>
PresharedKey = <ali_preshared.key_İÇERİĞİ>
Endpoint = <SUNUCUNUN_DIŞ_IP_ADRESİ>:51820
AllowedIPs = 0.0.0.0/0


3. Farklı Uygulamalarda Kurulum ve Kullanım Rehberi

🐧 A. Linux Sistemlerde (CachyOS, Arch, Ubuntu vb.)

Linux üzerinde istemci olarak bağlanmanın iki popüler yolu vardır:

Yöntem 1: Terminal (CLI) ile Hızlı Bağlantı

Sunucudan aldığınız ali.conf dosyasını bilgisayarınıza kaydedin:

# Dosyayı güvenli bir yere taşıyın
sudo cp ali.conf /etc/wireguard/wg0-client.conf

# Bağlantıyı başlatmak için:
sudo wg-quick up wg0-client

# Bağlantıyı koparmak için:
sudo wg-quick down wg0-client

Yöntem 2: NetworkManager (GUI / Masaüstü Arayüzü) ile İthal Etme

KDE veya GNOME masaüstü ortamlarında terminalle uğraşmadan config dosyasını doğrudan ağ ayarlarına ekleyebilirsiniz: 1. Ağ ayarlarına (Network Settings) girin. 2. "+" (Yeni Bağlantı Ekle) butonuna basın. 3. Listeden "Import VPN connection..." (VPN bağlantısı aktar) seçeneğini seçin. 4. Sunucudan aldığınız ali.conf dosyasını gösterin. Sistem tüm ayarları otomatik çözer. Tek tıkla açıp kapatabilirsiniz.


🪟 B. Windows Sistemlerde

  1. WireGuard resmi web sitesinden Windows için .exe yükleyicisini indirin ve kurun.
  2. Uygulamayı açın ve sol alttaki "Import tunnels from file" (Dosyadan tünel aktar) butonuna tıklayın.
  3. Sunucudan gelen ali.conf dosyasını seçin.
  4. Listeye eklenen tünelin yanındaki "Activate" (Aktifleştir) butonuna basarak güvenle bağlanın.

📱 C. Mobil Cihazlarda (Android & iOS)

Mobil cihazlarda el ile dosya taşımak yerine QR kod yöntemi en pratik çözümdür.

Sunucuda QR Kod Üretme (Sunucu Terminalinde):

# Sunucuda qrencode paketini kurun
sudo apt install qrencode -y

# Hazırladığınız istemci dosyasını terminale QR kod olarak basın
qrencode -t ansiutf8 < /etc/wireguard/ali.conf

Telefondan Bağlanma:

  1. Google Play Store veya Apple App Store'dan resmi WireGuard uygulamasını indirin.
  2. Uygulama içindeki "+" butonuna basın ve "Scan from QR code" (QR kodunu tara) seçeneğini seçin.
  3. Sunucu ekranında basılan dev QR kodu telefon kamerasına okutun.
  4. Tünel ismini (Örn: oracle-vpn) yazıp kaydedin ve aktifleştirin.

🔌 D. Ağ Cihazlarında: Keenetic Modem / Router Yapılandırması

Modemi ağa yedek olarak bağlamak veya tüm evi değil de sadece belirli cihazları VPN'e yönlendirmek için Keenetic harika bir altyapıya sahiptir.

[!danger] Hayati Önem Taşıyan Kural Modeme WireGuard ayarı girerken AllowedIPs (İzin Verilen IP'ler) alanına asla 0.0.0.0/0 yazılmamalıdır. Eğer yazılırsa, modem tüm evdeki internet trafiğini VPN tüneline sokmaya çalışır ve yerel DNS çözümlenemediği için evdeki tüm cihazların internet erişimi kilitlenir.(Ben bu ayarı yapmadım galiba)

Adım Adım Keenetic Yapılandırması:

  1. Keenetic web arayüzüne girin (192.168.1.1).
  2. Sol menüden Ağ Ayarları ➔ İnternet Bağlantıları sekmesine gelin.
  3. Sayfayı aşağı kaydırıp "WireGuard VPN" başlığı altındaki "Bağlantı ekle" butonuna basın.
  4. Açılan pencerede ayarları şu mantıkla doldurun:
  5. Bağlantı adı: Sunucu-Yedek
  6. Gizli Anahtar (Private Key): Sunucuda modem için ürettiğiniz özel anahtar.
  7. IP Adresi: 10.66.66.19/32 (Modeme atanan tünel IP'si)
  8. DNS: 1.1.1.1
  9. Aynı pencerenin altındaki "Eş (Peer) Ekle" butonuna basın:
  10. Ortak Anahtar (Public Key): Sunucunun genel anahtarı.
  11. Ön Paylaşımlı Anahtar: Ürettiyseniz modem peer'ına ait PresharedKey.
  12. Uç Nokta (Endpoint): SUNUCU_DIŞ_IP_ADRESİ:51820
  13. İzin Verilen IP'ler (AllowedIPs): 10.66.66.0/24 (Güvenli olan budur, sadece tünel ağını görür, ev internetine dokunmaz).
  14. Bağlantıyı denetlemek için keepalive ayarı: 25 saniye.
  15. Kaydedin. Bağlantıyı ihtiyacınız olduğunda arayüzdeki şalteri (açma/kapama butonunu) kullanarak aktifleştirebilirsiniz.

🛠️ Temel Hata Ayıklama (Troubleshooting) Komutları

Eğer bağlantı kuruluyor ama internet akmıyorsa veya cihazlar birbirini görmüyorsa şu komutlarla kontrol sağlayın:

  • Sunucuda anlık trafik var mı?: sudo wg show komutunu çalıştırın. latest handshake (son el sıkışma) süresi 2 dakikadan az olmalı ve transfer kısmında byte akışı görünmelidir. Eğer görünmüyorsa istemci tarafında anahtarlar veya Endpoint IP'si yanlıştır.
  • Sunucu loglarını canlı izleme: sudo dmesg -wT veya sudo journalctl -f ile sunucuya anlık gelen paket hatalarını yakalayabilirsiniz.
  • Tünel içi ping testi: İstemci cihazdan sunucu tünel IP'sine (ping 10.66.66.1) ping atarak şifreli sanal hattın çalışıp çalışmadığını test edin. ```