İnternet trafiğinizi üçüncü taraf sağlayıcılara teslim etmeden güvenceye almak istiyorsanız, kendi sanal sunucunuz üzerinde wireguard vpn kurulumu yapmak en modern ve yüksek performanslı çözümdür. Bu rehberde, Ubuntu işletim sisteminde baştan sona WireGuard yapılandırmasını, güvenlik duvarı kurallarını ve mobil/masaüstü istemci bağlantılarını adım adım uygulayacağız.
WireGuard Nedir ve WireGuard VPN Kurulumu Neden OpenVPN'e Tercih Edilir?
WireGuard; IPsec ve OpenVPN gibi eski protokollere kıyasla çok daha sade, hızlı ve modern kriptografik temellere dayanan açık kaynaklı bir VPN protokolüdür. Linux çekirdeği (kernel space) içinde doğrudan çalışacak şekilde geliştirildiği için, kullanıcı alanında (user space) çalışan geleneksel VPN yazılımlarına oranla CPU tüketimi minimumdur ve ağ gecikmesi (ping) hissedilmeyecek seviyelere iner.
OpenVPN yüz binlerce satır kod içerirken, WireGuard yaklaşık 4.000 satırlık temiz bir kod tabanına sahiptir. Bu hafif mimari, hem güvenlik denetimlerini kolaylaştırır hem de saldırı yüzeyini ciddi oranda daraltır. Bir VDS sunucu kiralayarak kendi VPN ağınızı kurduğunuzda, ticari VPN sağlayıcılarının uygulayabileceği bant genişliği kısıtlamalarından ve log tutma risklerinden tamamen bağımsız hale gelirsiniz.
| Özellik | WireGuard | OpenVPN |
|---|---|---|
| Çalışma Alanı | Linux Çekirdeği (Kernel Module) | Kullanıcı Alanı (User Space) |
| Kod Tabanı Boyutu | ~4.000 satır | 100.000+ satır |
| Kriptografi | Modern ve sabit (ChaCha20, Curve25519) | Çoklu, karmaşık şifreleme kütüphaneleri |
| Bağlantı Kurulum Hızı | Anlık (Milisaniyeler içinde) | Birkaç saniye süren el sıkışma |
| Mobil Pil Tüketimi | Çok düşük (Sessiz mod desteği) | Yüksek (Sürekli keep-alive paketleri) |
Sunucu Hazırlığı ve WireGuard Paketlerinin Kurulumu
Kendi VPN sunucunuzu kurmaya başlamadan önce, sunucunuzun güvenliğini sağlamak amacıyla ilk olarak SSH güvenliği önlemlerini aldığınızdan emin olun. Ubuntu 20.04 ve 22.04 LTS sürümlerinde WireGuard resmi depolarda yerleşik olarak bulunur. Sisteminizi güncelleyip gerekli paketleri yüklemek için terminalde şu komutları çalıştırın:
sudo apt update && sudo apt upgrade -y
sudo apt install -y wireguard qrencode
Burada kurduğumuz wireguard paketi ana protokol araçlarını getirirken, qrencode paketi ise telefon veya tabletinizden VPN profillerini saniyeler içinde QR kod ile içe aktarabilmenizi sağlayacaktır.
Sunucu ve İstemci İçin Kriptografik Anahtarların Üretilmesi
WireGuard, asimetrik şifreleme prensibine dayanır. Her iki tarafın (sunucu ve istemci) birbiriyle güvenli iletişim kurabilmesi için birer özel anahtar (private key) ve genel anahtar (public key) çiftine ihtiyacı vardır. Özel anahtarlar gizli kalmalı, genel anahtarlar ise karşılıklı olarak yapılandırma dosyalarında paylaşılmalıdır.
Anahtarları güvenli bir dizin altında oluşturmak ve izinleri yalnızca root kullanıcısına açmak için şu adımları izleyin:
sudo -i
cd /etc/wireguard
umask 077
# Sunucu anahtarlarını üretin
wg genkey | tee server_private.key | wg pubkey > server_public.key
# İlk istemci (örneğin telefonunuz) için anahtarları üretin
wg genkey | tee client_private.key | wg pubkey > client_public.key
Üretilen anahtarları ekranda görüntülemek için cat komutunu kullanabilirsiniz. Bu değerleri bir kenara not edin; sunucu ve istemci dosyalarını hazırlarken bunlara ihtiyacınız olacak:
cat server_private.key
cat server_public.key
cat client_private.key
cat client_public.key
server_private.key ve client_private.key dosyalarının içeriğini asla halka açık yerlerde paylaşmayın veya sunucudan dışarıya aktarmayın. İstemcinin özel anahtarı yalnızca istemci cihazında bulunmalıdır.
Sunucu Yapılandırma Dosyasının (wg0.conf) Hazırlanması
WireGuard yapılandırması /etc/wireguard/wg0.conf dosyasında saklanır. Bu dosyayı düzenlemeden önce sunucunuzun dış dünyaya bağlanan fiziksel ağ arayüzünün (interface) adını öğrenmeniz gerekir. Terminalde şu komutu yazarak IP adresinizin bağlı olduğu arayüzü bulun:
ip -o -4 route show to default | awk '{print $5}'
Genellikle bu çıktı eth0, ens3 veya enp1s0 şeklinde görünür. Şimdi yapılandırma dosyasını nano editörüyle açın:
nano /etc/wireguard/wg0.conf
Dosyanın içine aşağıdaki içeriği yapıştırın. SUNUCU_OZEL_ANAHTARI, ISTEMCI_GENEL_ANAHTARI ve eth0 (eğer farklıysa) alanlarını kendi sunucu değerlerinizle güncelleyin:
[Interface]
Address = 10.8.0.1/24
SaveConfig = true
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
ListenPort = 51820
PrivateKey = SUNUCU_OZEL_ANAHTARI
[Peer]
PublicKey = ISTEMCI_GENEL_ANAHTARI
AllowedIPs = 10.8.0.2/32
Dosyayı CTRL+O ve Enter ile kaydedip CTRL+X ile çıkış yapın. Yapılandırma dosyasının güvenliğini sağlamak için izinleri kısıtlayın:
chmod 600 /etc/wireguard/wg0.conf
IP İletme (IP Forwarding) ve UFW Güvenlik Duvarı Ayarları
İstemci cihazınızdan gelen internet trafiğinin sunucu üzerinden dış dünyaya yönlendirilebilmesi için Linux çekirdeğinde IPv4 yönlendirme (packet forwarding) özelliğinin aktif edilmesi gerekir.
/etc/sysctl.conf dosyasını açın:
nano /etc/sysctl.conf
Aşağıdaki satırı bulun ve başındaki # işaretini kaldırın (veya dosyanın en altına ekleyin):
net.ipv4.ip_forward=1
Değişikliği hemen geçerli kılmak için şu komutu verin:
sysctl -p
Sunucunuzda güvenlik için UFW kullanıyorsanız, WireGuard'ın kullandığı 51820 UDP portuna izin vermeli ve temel koruma mekanizmalarını bozmamalısınız. UFW yapılandırması hakkında derinlemesine bilgi edinmek için UFW ve Fail2ban kurulumu rehberimizden faydalanabilirsiniz. Port iznini vermek için:
ufw allow 51820/udp
ufw allow ssh
ufw enable
WireGuard Servisinin Başlatılması ve Otomatik Çalıştırma
Yapılandırma tamamlandıktan sonra, WireGuard tünelini başlatabilir ve sunucunun yeniden başlatılması durumunda otomatik devreye girmesi için systemd servisi olarak etkinleştirebilirsiniz:
systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0
Servisin düzgün çalışıp çalışmadığını doğrulamak için tünel durumunu kontrol edin:
wg show
Bu komut sonucunda dinlenen port, arayüz adı ve kayıtlı eş (peer) bilgileri listelenmelidir. Herhangi bir hata mesajı almıyorsanız sunucu tarafı başarıyla ayağa kalkmıştır.
İstemci (Windows, Android ve iOS) Yapılandırması ve QR Kod Oluşturma
Artık istemci cihazınızın sunucuya bağlanabilmesi için istemci profil dosyasını oluşturabiliriz. Sunucunuzda /etc/wireguard/client.conf adında bir dosya oluşturun:
nano /etc/wireguard/client.conf
İçeriği aşağıdaki şablona göre düzenleyin. ISTEMCI_OZEL_ANAHTARI, SUNUCU_GENEL_ANAHTARI ve SUNUCU_IP_ADRESI kısımlarını kendi bilgilerinizle değiştirin:
[Interface]
PrivateKey = ISTEMCI_OZEL_ANAHTARI
Address = 10.8.0.2/24
DNS = 1.1.1.1, 1.0.0.1
[Peer]
PublicKey = SUNUCU_GENEL_ANAHTARI
Endpoint = SUNUCU_IP_ADRESI:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
AllowedIPs = 0.0.0.0/0 ifadesi, istemcinin tüm internet trafiğini (web siteleri, uygulamalar vb.) WireGuard tüneli üzerinden geçireceğini belirtir. Yalnızca belirli yerel ağlara erişmek istiyorsanız buraya sadece o IP bloklarını yazabilirsiniz.
Mobil Cihazlar İçin QR Kod Oluşturma
Android veya iOS cihazlarda WireGuard uygulamasını yükledikten sonra ayarları elle girmek yerine terminalde tek bir komutla QR kod oluşturabilirsiniz:
qrencode -t ansiutf8 < /etc/wireguard/client.conf
Terminal ekranında beliren QR kodu mobil uygulamadan taratarak saniyeler içinde profilinizi aktarabilir ve bağlantıyı başlatabilirsiniz. Windows ve macOS kullanıcıları ise client.conf dosyasını bilgisayarlarına indirerek resmi masaüstü istemcisine doğrudan aktarabilirler.
Bağlantı Testi, Hız Kontrolü ve DNS Sızıntısı Engelleme
İstemci cihazınızdan bağlantıyı açtıktan sonra, internet çıkışınızın gerçekten sunucu üzerinden gerçekleştiğini doğrulamak için bir tarayıcıdan genel IP sorgulama sitelerine girin. Gördüğünüz IP adresi ev veya mobil internetinizin adresi değil, sunucunuzun IP adresi olmalıdır.
Ayrıca sunucu terminalinden de anlık transfer edilen veriyi takip edebilirsiniz:
wg show
Çıktıda latest handshake satırında saniyeler öncesini belirten bir zaman damgası ve transfer alanında indirilen/yüklenen veri miktarını görüyorsanız tünel kusursuz çalışmaktadır.
Gizliliğin tam olması için DNS sızıntılarını (DNS Leak) önlemek şarttır. İstemci yapılandırmasında belirttiğimiz DNS = 1.1.1.1, 1.0.0.1 satırı, DNS isteklerinizin yerel servis sağlayıcınıza gitmesini önleyerek tünel içinden şifreli şekilde iletilmesini garanti altına alır.
Sonuç
Kendi sanal sunucunuz üzerinde gerçekleştireceğiniz wireguard vpn kurulumu, hem hız hem de kişisel veri gizliliği açısından en güvenli çözümü sunar. Günlük internet gezinmelerinizde, ortak Wi-Fi ağlarında ve hassas veri transferlerinde tam kontrolün sizde olduğu şifreli bir ağ tüneline sahip olursunuz.
VPN trafiğinizin kesintiye uğramaması ve yüksek indirme/yükleme hızlarına ulaşabilmesi için donanım altyapısı kritik öneme sahiptir. Yüksek port hızları ve NVMe SSD performansı sunan, Corero ve Stormwall filtreleme katmanlarıyla korunan MerkezHost DDoS korumalı VDS sunucu seçenekleriyle kendi özel VPN ağınızı hemen güvenle inşa edebilirsiniz.
Sık Sorulan Sorular
WireGuard için hangi portu açmam gerekir?
WireGuard varsayılan olarak 51820 numaralı UDP portunu kullanır. Güvenlik duvarınızda (UFW) bu port için UDP trafiğine izin vermeniz bağlantı için yeterlidir.
WireGuard bağlantısı kuruluyor ancak internete erişemiyorum, sebebi nedir?
Bu sorun çoğunlukla sunucuda IPv4 yönlendirmenin (sysctl net.ipv4.ip_forward=1) kapalı olmasından veya wg0.conf dosyasındaki iptables POSTROUTING arayüz adının yanlış yazılmasından kaynaklanır.
Birden fazla cihazı aynı anda bağlayabilir miyim?
Evet. Her cihaz için ayrı bir IP adresi (örneğin 10.8.0.3) ve ayrı bir anahtar çifti oluşturup wg0.conf dosyasına yeni bir [Peer] bloğu ekleyerek birden fazla cihazı bağlayabilirsiniz.
Kapak fotoğrafı: Yng_saad / Pixabay
