Skip to main content

WireGuard VPN Kurulumu — Ubuntu 22.04 Üzerinde Güvenli Tünel (Açıklamalı)

Bu rehberde Ubuntu 22.04 üzerinde WireGuard VPN kurarak kendi güvenli tünelinizi oluşturmayı öğreneceksiniz.
Her adımın altında neden yaptığımızı açıklayan kısa notlar bulunuyor.


📝 Bu Rehberde Ne Öğreneceksiniz?

  • WireGuard kurulumu
  • Sunucu ve istemci için anahtar oluşturma
  • VPN IP aralıklarını tanımlama
  • NAT / IP yönlendirme ayarları
  • wg0.conf yapılandırması
  • Peer (istemci) ekleme
  • Tüneli başlatma ve doğrulama

WireGuard, modern kriptografi ve hafif yapısıyla eski VPN protokollerine göre çok daha hızlıdır.


🔑 WireGuard VPN Kurulum Adımları (Açıklamalı)


1. WireGuard Kurulumu ve Anahtar Üretimi

📦 WireGuard’ı sisteminize kurun:

sudo apt update
sudo apt install wireguard

Açıklama: WireGuard paketi “wg” ve “wg-quick” komutlarını sağlar.

🔐 Özel anahtar oluşturun:


wg genkey | sudo tee /etc/wireguard/private.key
sudo chmod go= /etc/wireguard/private.key

Açıklama: Özel anahtar sadece root tarafından okunmalıdır — ele geçirilirse VPN çöker.

🔓 Özel anahtardan genel anahtar üretin:


sudo cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key

Açıklama: Genel anahtar paylaşılır; özel anahtar asla paylaşılmaz.


2. VPN IP Aralıklarını Tanımlama

WireGuard tüneli için özel ağ IP blokları kullanılır.

✔ IPv4 Sunucu IP: 10.8.0.1/24

✔ IPv6 (opsiyonel) Sunucu IP: fd24:609a:6c18::1/64

Açıklama: IPv6, geleceğe dönük destek sağlar; kullanmak zorunlu değildir.


3. WireGuard Sunucu Yapılandırması (wg0.conf)

Yapılandırmayı açın:


sudo nano /etc/wireguard/wg0.conf

Aşağıdaki örneği kullanın:


[Interface]
PrivateKey = SUNUCU_OZEL_ANAHTAR
Address = 10.8.0.1/24, fd24:609a:6c18::1/64
ListenPort = 51820
SaveConfig = true

Açıklama: Sunucu hangi IP bloğunu ve hangi portu kullanacağını burada belirler.


4. IP Forwarding (Yönlendirme) Açma

VPN istemcilerinin internete çıkabilmesi için zorunludur.


sudo nano /etc/sysctl.conf

Ekleyin:


net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1

Uygulayın:


sudo sysctl -p

Açıklama: Linux çekirdeğinin paket yönlendirmesine izin verir.


5. NAT / UFW Güvenlik Duvarı Ayarları

Ağ arayüz adını bulun:


ip route list default

Örneğin: eth0

NAT kurallarını wg0.conf içine ekleyin:


sudo nano /etc/wireguard/wg0.conf

PostUp = ufw route allow in on wg0 out on eth0
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

PreDown = ufw route delete allow in on wg0 out on eth0
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Açıklama: Bu kurallar, VPN trafiğini sunucu IP’si üzerinden internete çıkarır.

UFW’de port açın:


sudo ufw allow 51820/udp
sudo ufw allow OpenSSH
sudo ufw disable
sudo ufw enable

Açıklama: UDP 51820 olmadan WireGuard çalışmaz.


6. WireGuard Servisini Başlatma


sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
sudo systemctl status wg-quick@wg0

Açıklama: wg-quick servis bir wg0.conf dosyasını otomatik okur.


7. Peer (İstemci) Yapılandırması

İstemciye WireGuard kurun:


sudo apt install wireguard

İstemci anahtarlarını oluşturun:


wg genkey | sudo tee /etc/wireguard/private.key
sudo chmod go= /etc/wireguard/private.key
cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key

İstemci yapılandırması:


sudo nano /etc/wireguard/wg0.conf

[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.8.0.2/24, fd24:609a:6c18::2/64
DNS = 1.1.1.1

[Peer]
PublicKey = SUNUCU_PUBLIC_KEY
Endpoint = SERVER_IP:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

Açıklama: AllowedIPs = tüm trafiği VPN’den geçirmek için kullanılır.


8. Peer’ı Sunucuya Ekleme

Peer genel anahtarını alın:


cat /etc/wireguard/public.key

Sunucuya ekleyin:


sudo wg set wg0 peer CLIENT_PUBLIC_KEY allowed-ips 10.8.0.2/32,fd24:609a:6c18::2/128

Servisi yeniden başlatın:


sudo systemctl restart wg-quick@wg0

Açıklama: Peer’ın VPN içinde hangi IP’yi kullanacağını belirler.


🧩 Önemli Dosyalar (Açıklamalı Tablo)

Dosya YoluAçıklama
/etc/wireguard/private.keyÖzel anahtar — ASLA paylaşılmaz, yalnızca root okuyabilir.
/etc/wireguard/public.keyGenel anahtar — peer cihazlarla paylaşılır.
/etc/wireguard/wg0.confWireGuard’ın ana yapılandırma dosyasıdır. Arayüz, adres, port ve peer ayarlarını içerir.
/etc/sysctl.confIP yönlendirme (IP forwarding) gibi çekirdek ağ ayarlarını içerir.

❓ SSS — Sıkça Sorulan Sorular

1. WireGuard neden bu kadar hızlı?

Kernel seviyesinde çalışır ve modern kriptografi kullanır.

2. 0.0.0.0/0 neden tüm trafiği VPN’den geçirir?

Bu ifade tüm IPv4 trafiğini kapsar; ::/0 ise tüm IPv6’yı.

3. WireGuard TCP destekliyor mu?

Hayır, sadece UDP.

4. Özel anahtar neden gizli tutulmalı?

VPN’in kimliği özel anahtar ile doğrulanır. Ele geçirilirse VPN biter.

5. Peer ekledikten sonra yeniden başlatmak şart mı?

Hayır, wg set ile canlı eklenebilir, ama restart önerilir.


🎯 Sonuç

Bu rehberde Ubuntu 22.04 üzerinde WireGuard VPN kurulumunun tüm aşamalarını tamamladın.
Hem sunucuda hem istemci tarafında anahtar üretmeyi, özel IPv4/IPv6 adres aralıkları tanımlamayı, NAT ve yönlendirme (IP Forwarding) yapılandırmayı ve güvenlik duvarı kurallarını doğru şekilde oluşturmayı öğrendin.

Artık:

  • Sunucun güvenli bir VPN tüneli açacak şekilde yapılandırıldı.
  • İstemciler (peer) kolayca ağa eklenebilir hale geldi.
  • Tüm trafik sunucudan yönlendirilebildiği için ortak WiFi gibi güvensiz ağlarda bile rahatça gezinebilirsin.
  • AllowedIPs ayarı sayesinde ister sadece VPN içi kaynakları, ister tüm interneti sunucun üzerinden yönlendirebilirsin.
  • Modern, hızlı ve hafif bir VPN çözümü kurmuş oldun.

WireGuard’ın düşük gecikme süresi, modern kriptografisi ve basit mimarisi sayesinde performansın OpenVPN/IPSec gibi eski protokollerden çok daha yüksek olacaktır.

Bu kurulumu aynı zamanda;
Rabisu Bulut üzerindeki yüksek hızlı sanal sunucularında deneyebilir, birden fazla peer ekleyerek kurumsal veya kişisel özel ağını genişletebilirsin.