Ana içeriğe geç
Kategoriye Dön

WireGuard VPN Sunucusu Kurulumu: Adım Adım Rehber

WireGuard VPN sunucusu kurun: anahtar üretimi, sunucu ve istemci yapılandırması, IP yönlendirme, firewall kuralları ve Windows/Linux/Android istemci kurulumu.

Okuma süresi: 15 dk Güvenlik
wireguardvpnsunucu güvenliğitünellinuxağ güvenliğişifrelemevpn kurulum

İçindekiler

WireGuard VPN Sunucusu Kurulumu: Adım Adım Rehber

WireGuard, modern, hızlı ve güvenli bir VPN protokolüdür. OpenVPN ve IPSec'e kıyasla çok daha basit bir yapıya sahip olup yüksek performans sunar. Bu rehberde REXE sunucunuzda WireGuard VPN sunucusu kurarak istemcilerin güvenli bağlantı kurmasını sağlayacaksınız.

WireGuard Neden Tercih Edilmeli?

  • Basit yapılandırma: Yalnızca birkaç satır yapılandırma
  • Yüksek performans: Kernel düzeyinde çalışır, düşük gecikme
  • Modern kriptografi: ChaCha20, Poly1305, Curve25519
  • Küçük kod tabanı: ~4000 satır (OpenVPN ~100.000 satır)
  • Çapraz platform: Linux, Windows, macOS, iOS, Android

Kurulum

hljs bash
# Ubuntu 20.04+
sudo apt update
sudo apt install wireguard -y

# CentOS/AlmaLinux 8+
sudo dnf install epel-release -y
sudo dnf install wireguard-tools -y

# Debian 11+
sudo apt install wireguard -y

Anahtar Üretimi

WireGuard, her sunucu ve istemci için bir çift anahtar (özel + genel) kullanır.

hljs bash
# Sunucu anahtarlarını oluştur
cd /etc/wireguard

# Özel anahtar oluştur
wg genkey | sudo tee /etc/wireguard/server_private.key

# Genel anahtarı türet
sudo cat /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key

# Anahtarları görüntüle
sudo cat /etc/wireguard/server_private.key
sudo cat /etc/wireguard/server_public.key

# Dosya izinlerini ayarla
sudo chmod 600 /etc/wireguard/server_private.key

Sunucu Yapılandırması

hljs bash
# Ağ arayüzünü bul
ip route | grep default
# Örnek çıktı: default via 192.168.1.1 dev eth0
# Burada 'eth0' ağ arayüzüdür

# WireGuard yapılandırma dosyası oluştur
sudo nano /etc/wireguard/wg0.conf
hljs ini
# /etc/wireguard/wg0.conf — Sunucu yapılandırması

[Interface]
# WireGuard arayüzünün IP adresi
Address = 10.0.0.1/24

# WireGuard dinleme portu
ListenPort = 51820

# Sunucu özel anahtarı
PrivateKey = SUNUCU_OZEL_ANAHTARI_BURAYA

# IP yönlendirme kuralları (PostUp/PostDown)
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

# İstemci 1 (Peer)
[Peer]
# İstemci genel anahtarı
PublicKey = ISTEMCI1_GENEL_ANAHTARI
# İstemciye atanan IP
AllowedIPs = 10.0.0.2/32

# İstemci 2 (Peer)
[Peer]
PublicKey = ISTEMCI2_GENEL_ANAHTARI
AllowedIPs = 10.0.0.3/32

eth0 yerine kendi ağ arayüzünüzün adını kullanın. ip route | grep default komutu ile öğrenebilirsiniz.

IP Yönlendirme Etkinleştirme

hljs bash
# Geçici olarak etkinleştir
sudo sysctl -w net.ipv4.ip_forward=1

# Kalıcı olarak etkinleştir
sudo nano /etc/sysctl.conf
# Şu satırı ekle veya uncomment yap:
# net.ipv4.ip_forward=1

# Değişiklikleri uygula
sudo sysctl -p

# Doğrula
cat /proc/sys/net/ipv4/ip_forward
# Çıktı: 1

Firewall Kuralları

hljs bash
# UFW kullanıyorsanız
sudo ufw allow 51820/udp
sudo ufw allow OpenSSH
sudo ufw enable

# UFW yönlendirme için
sudo nano /etc/default/ufw
# DEFAULT_FORWARD_POLICY="ACCEPT" olarak değiştir

sudo nano /etc/ufw/before.rules
# *filter satırından önce ekle:
# NAT tablosu
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE
COMMIT
hljs bash
# iptables kullanıyorsanız
sudo iptables -A INPUT -p udp --dport 51820 -j ACCEPT
sudo iptables -A FORWARD -i wg0 -j ACCEPT
sudo iptables -A FORWARD -o wg0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Kuralları kalıcı yap
sudo apt install iptables-persistent -y
sudo netfilter-persistent save

WireGuard Servisini Başlatma

hljs bash
# WireGuard arayüzünü başlat
sudo wg-quick up wg0

# Sistem başlangıcında otomatik başlat
sudo systemctl enable wg-quick@wg0

# Durumu kontrol et
sudo wg show

# Arayüz bilgilerini görüntüle
ip addr show wg0

İstemci Yapılandırması

İstemci Anahtarı Oluşturma

hljs bash
# İstemci tarafında (veya sunucuda oluşturup aktarın)
wg genkey | tee client_private.key | wg pubkey > client_public.key

cat client_private.key  # Özel anahtar
cat client_public.key   # Genel anahtar (sunucuya eklenecek)

Linux İstemci Yapılandırması

hljs ini
# /etc/wireguard/wg0.conf — İstemci yapılandırması

[Interface]
# İstemcinin VPN IP adresi
Address = 10.0.0.2/24

# İstemci özel anahtarı
PrivateKey = ISTEMCI_OZEL_ANAHTARI

# DNS (isteğe bağlı)
DNS = 1.1.1.1

[Peer]
# Sunucu genel anahtarı
PublicKey = SUNUCU_GENEL_ANAHTARI

# Sunucu adresi ve portu
Endpoint = SUNUCU_IP:51820

# Hangi trafiği VPN üzerinden yönlendir
# Tüm trafik için:
AllowedIPs = 0.0.0.0/0, ::/0
# Yalnızca VPN ağı için:
# AllowedIPs = 10.0.0.0/24

# Bağlantıyı canlı tut (NAT arkasındaki istemciler için)
PersistentKeepalive = 25
hljs bash
# Linux istemcide bağlan
sudo wg-quick up wg0

# Bağlantıyı test et
ping 10.0.0.1
curl ifconfig.me  # Dış IP'nin sunucu IP'si olduğunu doğrula

Windows İstemci Kurulumu

  1. WireGuard for Windows indirin ve kurun
  2. Uygulamayı açın → "Add Tunnel" → "Add empty tunnel"
  3. Aşağıdaki yapılandırmayı yapıştırın:
hljs ini
[Interface]
Address = 10.0.0.3/24
PrivateKey = WINDOWS_ISTEMCI_OZEL_ANAHTARI
DNS = 1.1.1.1

[Peer]
PublicKey = SUNUCU_GENEL_ANAHTARI
Endpoint = SUNUCU_IP:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
  1. "Activate" butonuna tıklayın

Android/iOS İstemci Kurulumu

  1. WireGuard uygulamasını Play Store/App Store'dan indirin
  2. "+" butonuna tıklayın → "Create from QR code" veya "Create from file"
  3. Yapılandırma dosyasını QR koda dönüştürmek için:
hljs bash
# Sunucuda QR kod oluştur
sudo apt install qrencode -y
qrencode -t ansiutf8 < /path/to/client.conf

Yeni İstemci Ekleme

hljs bash
# 1. İstemci anahtarı oluştur
wg genkey | tee /etc/wireguard/client3_private.key | wg pubkey > /etc/wireguard/client3_public.key

# 2. Sunucu yapılandırmasına ekle (servis yeniden başlatmadan)
sudo wg set wg0 peer $(cat /etc/wireguard/client3_public.key) allowed-ips 10.0.0.4/32

# 3. Kalıcı olarak kaydet
sudo wg-quick save wg0

# 4. Durumu kontrol et
sudo wg show

Sorun Giderme

hljs bash
# WireGuard loglarını görüntüle
sudo journalctl -u wg-quick@wg0 -f

# Bağlantı istatistikleri
sudo wg show wg0

# Paket yakalama (sorun giderme için)
sudo tcpdump -i wg0

# IP yönlendirme kontrolü
cat /proc/sys/net/ipv4/ip_forward

# Firewall kurallarını kontrol et
sudo iptables -L -n -v
sudo iptables -t nat -L -n -v

WireGuard bağlantısı kurulduktan sonra sudo wg show çıktısında latest handshake alanının güncel olması gerekir. Eğer handshake yoksa, istemci yapılandırmasındaki sunucu IP/port veya anahtarları kontrol edin.

Sonuç

WireGuard, modern ve güvenli bir VPN çözümü sunar. Basit yapılandırması ve yüksek performansı ile hem bireysel kullanım hem de kurumsal ağlar için idealdir. REXE sunucunuzda WireGuard kurarak tüm istemcilerinizin güvenli bağlantı kurmasını sağlayabilirsiniz.