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 Yolu | Açıklama |
|---|---|
| /etc/wireguard/private.key | Özel anahtar — ASLA paylaşılmaz, yalnızca root okuyabilir. |
| /etc/wireguard/public.key | Genel anahtar — peer cihazlarla paylaşılır. |
| /etc/wireguard/wg0.conf | WireGuard’ın ana yapılandırma dosyasıdır. Arayüz, adres, port ve peer ayarlarını içerir. |
| /etc/sysctl.conf | IP 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.