WireGuard VPN kurulumu: Ubuntu rehberi

📅 6 Ocak 2026Emre Karabulut
⏱️ Yaklaşık 9 dakikalık okuma süresi

WireGuard VPN Kurulumu: Ubuntu Rehberi

Günümüzün dijital dünyasında güvenlik ve gizlilik her zamankinden daha önemli hale gelmiştir. Sanal Özel Ağ (VPN) bu ihtiyaçları karşılamak için güçlü bir araçtır. Geleneksel VPN çözümlerine modern ve minimalist bir alternatif olarak ortaya çıkan WireGuard, hızı, basitliği ve üstün güvenliği ile öne çıkmaktadır. Bu rehberde, Ubuntu işletim sistemi üzerinde adım adım bir WireGuard VPN sunucusu kuracak ve istemcilerinizin bu sunucuya nasıl bağlanacağını yapılandıracağız.

WireGuard, Linux çekirdeğine entegre edilmiş bir VPN tünelidir. Daha az kod satırı sayesinde daha küçük bir saldırı yüzeyine sahiptir, bu da onu daha güvenli ve denetlemesi daha kolay kılar. Ayrıca, modern kriptografi kullanır ve performansı oldukça yüksektir.

Ön Gereksinimler

  • Bir Ubuntu Sunucusu (20.04 LTS veya üstü önerilir).
  • SSH erişimi olan bir terminal.
  • sudo yetkilerine sahip bir kullanıcı.
  • İstemci cihazlar (Linux, Windows, macOS, Android, iOS).
  • Sunucunuzun bir genel IP adresi (veya bir alan adı).

Adım 1: WireGuard Sunucusunu Hazırlama

1.1 Sistem Güncellemesi ve WireGuard Kurulumu

Öncelikle sunucunuzun paket listesini güncelleyelim ve yükseltmeleri yapalım. Ardından WireGuard paketini yükleyelim.

sudo apt update
sudo apt upgrade -y
sudo apt install wireguard -y

1.2 Anahtar Çifti Oluşturma

WireGuard, her arayüz için bir genel (public) ve özel (private) anahtar çifti kullanır. Bu anahtarlar, VPN tünelindeki şifrelemeyi ve kimlik doğrulamayı sağlar. Güvenlik için, bu anahtarları oluştururken doğru izinleri ayarlamak önemlidir.

umask 077
wg genkey | sudo tee /etc/wireguard/privatekey
sudo cat /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
sudo chmod 600 /etc/wireguard/{privatekey,publickey}

Şimdi sunucunuzun özel anahtarını ve genel anahtarını görüntüleyebilirsiniz (genel anahtara daha sonra istemci yapılandırmasında ihtiyacımız olacak).

echo "Sunucu Özel Anahtarı:"
sudo cat /etc/wireguard/privatekey
echo "Sunucu Genel Anahtarı:"
sudo cat /etc/wireguard/publickey

1.3 Sunucu Yapılandırma Dosyası Oluşturma

WireGuard, her arayüz için bir yapılandırma dosyası kullanır (örn. wg0.conf). Bu dosyayı oluşturup düzenleyelim:

sudo nano /etc/wireguard/wg0.conf

Aşağıdaki içeriği dosyaya yapıştırın. <SUNUCU_ÖZEL_ANAHTARI> kısmına az önce oluşturduğunuz sunucu özel anahtarını (privatekey içeriği) yapıştırmanız gerekmektedir. eth0 yerine sunucunuzun ana ağ arayüz adını (genellikle enpXsX veya ensX gibi) kontrol edip doğru olanı yazmalısınız. Bunu ip a komutu ile kontrol edebilirsiniz.

[Interface]
PrivateKey = <SUNUCU_ÖZEL_ANAHTARI>
Address = 10.0.0.1/24
ListenPort = 51820
SaveConfig = false
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o <ANA_AG_ARAYUZU> -j MASQUERADE; iptables -A FORWARD -o <ANA_AG_ARAYUZU> -j ACCEPT
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o <ANA_AG_ARAYUZU> -j MASQUERADE; iptables -D FORWARD -o <ANA_AG_ARAYUZU> -j ACCEPT

Açıklamalar:

  • PrivateKey: Sunucunuzun özel anahtarı.
  • Address: WireGuard arayüzüne atanan özel IP adresi. Bu, VPN içindeki IP aralığınızdır.
  • ListenPort: WireGuard’ın gelen bağlantıları dinleyeceği UDP portu.
  • SaveConfig = false: WireGuard kapatıldığında yapılandırma dosyasını otomatik olarak güncellemesini engeller, manuel kontrol sağlar.
  • PostUp/PostDown: WireGuard arayüzü başlatıldığında/kapatıldığında çalıştırılacak komutlar. Bu komutlar, VPN tüneli üzerinden gelen trafiğin internete yönlendirilmesini (NAT/MASQUERADE) sağlar. <ANA_AG_ARAYUZU> kısmını sunucunuzun dışa dönük ağ arayüzü ile değiştirmeyi unutmayın (örn. eth0).

1.4 IP Yönlendirmeyi Etkinleştirme

Sunucunuzun VPN istemcilerinden gelen trafiği internete yönlendirebilmesi için IP yönlendirmeyi etkinleştirmemiz gerekir.

Geçici olarak etkinleştirme:

sudo sysctl -w net.ipv4.ip_forward=1

Kalıcı olarak etkinleştirme:

sudo nano /etc/sysctl.conf

Dosyada aşağıdaki satırı bulun ve yorum satırı ise başındaki # işaretini kaldırın, yoksa ekleyin:

net.ipv4.ip_forward=1

Değişiklikleri kaydettikten sonra aşağıdaki komutla uygulayın:

sudo sysctl -p

1.5 UFW Güvenlik Duvarını Yapılandırma

Eğer Ubuntu sunucunuzda UFW (Uncomplicated Firewall) kullanıyorsanız, WireGuard portu için bir kural eklememiz ve SSH erişimine izin vermemiz gerekecektir.

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

sudo ufw enable komutu çalıştığında, SSH bağlantınızın kesilebileceği uyarısıyla karşılaşabilirsiniz. Devam etmek için y yazıp Enter’a basın. SSH ve WireGuard portlarına izin verdiğiniz sürece bağlantılarınız sorunsuz devam etmelidir.

1.6 WireGuard Servisini Başlatma

Şimdi WireGuard arayüzünü başlatabilir ve sunucu açılışında otomatik başlaması için etkinleştirebiliriz.

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

Servisin durumunu kontrol edin:

sudo systemctl status wg-quick@wg0

Ayrıca WireGuard arayüzünün çalıştığını wg show komutu ile görebilirsiniz:

sudo wg show

Şu anda herhangi bir istemci eklemediğimiz için Peers (Eşler) bölümü boş olacaktır.

Adım 2: WireGuard İstemcisini Yapılandırma

Her istemci için bir yapılandırma dosyası oluşturmamız ve bunu sunucuya eklememiz gerekiyor. Bu örnekte, bir Linux istemcisi için CLI tabanlı bir yapılandırma göstereceğiz. Diğer işletim sistemleri için WireGuard’ın resmi uygulamalarını kullanabilirsiniz, adımlar benzer olacaktır.

2.1 İstemci Anahtarlarını Oluşturma

İstemci makinenizde (veya güvenlik amacıyla sunucuda oluşturup güvenli bir şekilde aktarın) özel ve genel anahtar çiftini oluşturun.

umask 077
wg genkey | tee privatekey_client
cat privatekey_client | wg pubkey | tee publickey_client

Bu anahtarları bir kenara not edin.

2.2 İstemci Yapılandırma Dosyası Oluşturma

İstemci için wg0.conf adında bir dosya oluşturun (örn. masaüstünüzde veya /etc/wireguard/ dizininde). Bu dosyayı WireGuard uygulaması aracılığıyla içe aktarabilirsiniz.

[Interface]
PrivateKey = <İSTEMCİ_ÖZEL_ANAHTARI>
Address = 10.0.0.2/24
DNS = 1.1.1.1, 8.8.8.8

[Peer]
PublicKey = <SUNUCU_GENEL_ANAHTARI>
Endpoint = <SUNUCU_GENEL_IP_ADRESİ_VEYA_ALAN_ADI>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

Açıklamalar:

  • PrivateKey: İstemcinizin özel anahtarı.
  • Address: İstemcinize atanan benzersiz IP adresi. (Her istemci için farklı bir IP, örneğin 10.0.0.2, 10.0.0.3 vb.).
  • DNS: İstemcinin kullanacağı DNS sunucuları (Cloudflare ve Google DNS örnek olarak verilmiştir).
  • PublicKey: Sunucunuzun genel anahtarı.
  • Endpoint: Sunucunuzun genel IP adresi (veya alan adı) ve WireGuard portu.
  • AllowedIPs: Bu IP’ler, VPN tüneli üzerinden yönlendirilecektir. 0.0.0.0/0 tüm trafiği VPN üzerinden göndermesini sağlar.
  • PersistentKeepalive: Her 25 saniyede bir boş paket göndererek NAT arkasındaki bağlantıların canlı kalmasına yardımcı olur.

2.3 Sunucuya İstemci Ekleme

Şimdi sunucuya geri dönün ve /etc/wireguard/wg0.conf dosyasını düzenleyerek yeni istemcinizi bir Peer olarak ekleyin.

sudo nano /etc/wireguard/wg0.conf

Dosyanın sonuna aşağıdaki bölümü ekleyin. <İSTEMCİ_GENEL_ANAHTARI> kısmına istemcinizin genel anahtarını yapıştırmayı unutmayın.

[Peer]
PublicKey = <İSTEMCİ_GENEL_ANAHTARI>
AllowedIPs = 10.0.0.2/32

AllowedIPs = 10.0.0.2/32, sunucunun sadece bu belirli IP adresinden gelen trafiği bu istemciye yönlendireceğini belirtir.

Değişiklikleri yaptıktan sonra, WireGuard’ı yeniden başlatmanıza gerek kalmadan yapılandırmayı uygulamak için aşağıdaki komutu kullanın:

sudo wg syncconf wg0 < /etc/wireguard/wg0.conf

Veya basitleştirmek için servisi yeniden başlatabilirsiniz (bu, anlık bağlantı kesintilerine neden olur):

sudo systemctl restart wg-quick@wg0

Adım 3: Bağlantıyı Test Etme

3.1 İstemci Tarafında Bağlantı Kurma (Linux Örneği)

Eğer istemciniz de bir Linux makinesiyse, WireGuard’ı kurup yapılandırma dosyasını /etc/wireguard/wg0.conf konumuna kopyaladıktan sonra şu komutlarla bağlantıyı başlatabilirsiniz:

sudo apt install wireguard -y (eğer kurulu değilse)
sudo cp /path/to/client_wg0.conf /etc/wireguard/wg0.conf
sudo wg-quick up wg0

Bağlantı durumunu kontrol edin:

sudo wg show

Ayrıca genel IP adresinizin değişip değişmediğini kontrol edebilirsiniz:

curl ifconfig.me

Bu komut, VPN sunucunuzun genel IP adresini göstermelidir.

İstemcideki bağlantıyı durdurmak için:

sudo wg-quick down wg0

3.2 Diğer İstemciler (Windows, macOS, Android, iOS)

Diğer işletim sistemleri için WireGuard’ın resmi uygulamalarını indirin. Genellikle, oluşturduğunuz wg0.conf dosyasını (veya QR kodunu) uygulamaya içe aktararak kolayca kurulum yapabilirsiniz.

İpuçları ve Sorun Giderme

  • Günlükleri Kontrol Edin: Sorun yaşadığınızda sunucu ve istemci üzerindeki WireGuard günlüklerini kontrol edin.
    sudo journalctl -u wg-quick@wg0
  • Güvenlik Duvarı: Sunucunuzdaki güvenlik duvarının (UFW, iptables) WireGuard portuna (varsayılan 51820 UDP) izin verdiğinden emin olun.
  • IP Yönlendirme: Sunucunuzda IP yönlendirme (net.ipv4.ip_forward=1) etkin olduğundan emin olun.
  • Anahtar Eşleşmesi: Sunucu ve istemci yapılandırma dosyalarındaki genel/özel anahtarların doğru eşleştiğinden emin olun.
  • IP Adresleri: Her istemcinin VPN içindeki IP adresinin (10.0.0.2, 10.0.0.3 vb.) benzersiz olduğundan ve sunucu yapılandırmasındaki AllowedIPs ile eşleştiğinden emin olun.
  • Ağ Arayüzü: Sunucu yapılandırmasındaki PostUp/PostDown komutlarındaki ağ arayüz adının (örn. eth0) doğru olduğundan emin olun.

Sonuç

Tebrikler! Ubuntu sunucunuzda başarılı bir şekilde bir WireGuard VPN kurdunuz ve ilk istemcinizi yapılandırdınız. WireGuard’ın basitliği ve performansı sayesinde, artık internet bağlantılarınız için güvenli ve hızlı bir tüneliniz var. Daha fazla istemci eklemek için 2. ve 2.3 adımlarını tekrarlamanız yeterlidir. Güvenli internet deneyimleriniz olsun!

Emre Karabulut
📊 Bu yazı 5 kez okundu.