WireGuard Nedir? Nasıl Kurulur? Çalışma Prensibi Nedir?


WireGuard Nedir?
WireGuard, modern, hızlı ve basit bir VPN (Sanal Özel Ağ) protokolüdür. Hem güvenlik hem de performans açısından üstün niteliklere sahip olan bu protokol çeşitli platformlarda kullanılabilir ve son yıllarda büyük bir popülarite kazanmıştır. Bu makale size WireGuard'ın özellikleri, çalışma prensipleri, avantajları ve nasıl kurulacağı hakkında detaylı bilgiler sunacaktır.
WireGuard'ın Özellikleri
- Güvenlik: WireGuard, güvenlik açısından oldukça güçlüdür. Modern kriptografi algoritmaları kullanarak veri trafiğini şifreler. Bu protokol şifreleme için ChaCha20 ve Poly1305 gibi güvenli algoritmalar kullanır. Bu algoritmaları aşağıda anlatacağım. Bu sayede veri aktarımı sırasında yüksek güvenlik sağlanır.
- Hız ve Performans: WireGuard, düşük gecikme ve yüksek hız sunar. Protokol, minimalist bir tasarıma sahip olduğu için performans açısından oldukça verimlidir. Özellikle yüksek bant genişliği gerektiren uygulamalarda bu büyük bir avantaj sağlar.
- Basitlik: WireGuard, diğer VPN protokollerine kıyasla daha basit bir yapıdadır. Yaklaşık 4.000 satırlık kaynak kodu ile oldukça kompakt ve anlaşılır bir yapıya sahiptir. Bu yapı protokolün denetlenmesini ve yönetilmesini kolaylaştırır.
- Çapraz Platform Desteği: WireGuard; Linux, Windows, macOS, iOS ve Android gibi çeşitli işletim sistemlerinde kullanılabilir. Protokolün geniş bir kullanıcı kitlesi tarafından tercih edilmesini buna borçludur..
WireGuard'ın Çalışma Prensibi
WireGuard, veri trafiğini şifrelemek ve güvenli bir tünel oluşturmak için modern kriptografi algoritmaları kullanır. İşte WireGuard'ın temel çalışma prensipleri şunlardır:
Bağlantı Şeması:

1. Güvenli VPN Tüneli (Secure VPN Tunnel)
İlk olarak tüm istemci cihazlar güvenli bir VPN tüneli üzerinden WireGuard sunucusuna bağlanır. Bu tünel internet üzerindeki veri paketlerinin şifrelenmesini ve güvenli bir şekilde iletilmesini sağlar.2.Şifreleme & Anahtar İşlemleri
1. Anahtar Değişimi (Key Exchange)
İlk adım client ve server arasında güvenli bir anahtar değişiminin gerçekleştirilmesidir. Bu adımda Curve25519 algoritması kullanılır.
- Curve25519: Bu eliptik eğri algoritması hızlı ve güvenli bir anahtar değişimi sağlar. Client ve server, kendi özel anahtarları ve birbirlerinin genel anahtarları ile bir ortak gizli anahtar (shared secret) oluşturur. Bu ortak gizli anahtar daha sonraki iletişimlerin şifrelenmesi için kullanılacak.
2. Şifreli İletişim Kurulması
Anahtar değişiminden sonra, client ve server arasında şifreli iletişim başlar. Bu iletişimde iki ana algoritma kullanılır: ChaCha20 ve Poly1305.
- ChaCha20: Bu simetrik anahtar şifreleme algoritması, verilerin şifrelenmesi için kullanılır. ChaCha20, yüksek hız ve güvenlik sağlar. Client ve server,daha önce oluşturulan ortak gizli anahtarı kullanarak veri paketlerini ChaCha20 ile şifreler.
- Poly1305: ChaCha20 ile şifrelenen veri paketlerinin bütünlüğünü ve doğruluğunu sağlamak için Poly1305 mesaj kimlik doğrulama kodu (MAC) kullanılır. Bu algoritma şifreli verinin değiştirilmediğinden ve doğruluğundan emin olmak için kullanılır.
3. Verilerin Şifrelenmesi ve Doğrulanması
Her veri paketi gönderilmeden önce ChaCha20 ile şifrelenir ve Poly1305 ile doğrulanır. Bu süreç verilerin hem gizli kalmasını hem de manipüle edilmemesini sağlar.
- ChaCha20: Her veri paketi, bu algoritma kullanılarak şifrelenir. ChaCha20'nin yüksek hızda çalışması, veri iletimini yavaşlatmaz.
- Poly1305: Şifrelenen veri paketine Poly1305 ile bir doğrulama etiketi (authentication tag) eklenir. Bu etiket alıcı tarafında paketin doğruluğunu kontrol etmek için kullanılır.
4. Hash Fonksiyonları
WireGuard, bazı içsel veri yapıları ve protokol mesajları için hızlı ve güvenli bir hash fonksiyonu olan BLAKE2s kullanır.
- BLAKE2s: Bu hash fonksiyonu, WireGuard'da veri bütünlüğünü sağlamak ve hızlı hash hesaplamaları yapmak için kullanılır. BLAKE2s, diğer hash fonksiyonlarına göre daha hızlı ve güvenli olduğu için tercih edilir.
2. WireGuard Sunucusu
WireGuard sunucusu tüm istemci bağlantılarını yöneten merkezdir. Şemada bu sunucunun dış IP adresi (WAN IP: Server Ext. IP) ve VPN üzerindeki IP adresi (VPN IP: 10.0.0.1) belirtilmiştir. Bu sunucu, istemcilerin birbirleriyle ve sunucu üzerindeki hizmetlerle güvenli bir şekilde iletişim kurmasını sağlar.
3. EnesBuyuk.com Sunucusu
WireGuard sunucusuna bağlandıktan sonra, istemci cihazlar EnesBuyuk.com web sunucusuna erişebilir. Bu sunucu, web sitesi ve diğer hizmetleri barındırır. Kullanıcılar, www.EnesBuyuk.com adresinden bu hizmetlere erişebilirler.
4. İstemci Cihazlar
- Şemada dört farklı istemci cihaz gösterilmiştir:
- Windows 11:
- Arch Linux:
- Android:
- iPhone 15
WAN IP: X.X.X.X VPN IP: 10.0.0.10
WAN IP: X.X.X.X VPN IP: 10.0.0.11
WAN IP: X.X.X.X VPN IP: 10.0.0.12
WAN IP: X.X.X.X VPN IP: 10.0.0.13
Her bir cihaz kendi internet (WAN) IP adresine sahiptir. WireGuard üzerinden bağlantı kurduklarında VPN IP adresleriyle tanımlanır. Bu cihazlar güvenli VPN tüneli aracılığıyla WireGuard sunucusuna ve dolayısıyla EnesBuyuk.com sunucusuna erişirler.
WireGuard'ın Avantajları
- Yüksek Güvenlik: WireGuard, modern ve güçlü şifreleme algoritmaları kullanarak yüksek güvenlik sağlar. Veri trafiğinin güvenli bir şekilde iletilmesini mümkün kılar.
- Düşük Gecikme: WireGuard, düşük gecikme süresi ile yüksek performans sunar. Özellikle oyun oynarken veya yüksek bant genişliği gerektiren uygulamalarda büyük bir avantajdır.
- Kolay Kurulum ve Yönetim: WireGuard'ın basit ve minimalist tasarımı, kurulum ve yönetim süreçlerini kolaylaştırır. Kullanıcılar ve sistem yöneticileri için büyük bir avantaj sağlar.
- Geniş Platform Desteği: WireGuard, çeşitli işletim sistemlerinde kullanılabilir. Bu özellik farklı cihazlar ve platformlar arasında uyum sağlar.
WireGuard Kurulumu
WireGuard'ı kurmak ve yapılandırmak oldukça basittir. Kurulum süreci, hem sunucu hem de istemci tarafında gerçekleştirildiğinde, peer (eş) bağlantısı düzgün bir şekilde yapılandırılmış olur. İlk olarak, WireGuard sunucusunun kurulumu ile başlayacağız, ardından istemci tarafında yapılması gereken adımları anlatacağım.
Bu süreç, kullanıcıların güvenli bir VPN bağlantısı kurmasını sağlarken, WireGuard'ın sağladığı yüksek hız ve düşük gecikme süresinden faydalanmalarını mümkün kılacaktır. Şimdi, adım adım kurulum ve yapılandırma aşamalarına geçelim.
WireGuard'ın Server Tarafına Kurulumu
- Kurulum: WireGuard'ın paket yöneticisi (örneğin, apt veya yum) kullanılarak kurulması gereklidir. Örneğin Linux sistemlerde aşağıdaki komut kullanılabilir:
- Anahtar Oluşturma: WireGuard, kullanıcılar arasında güvenli bir bağlantı kurmak için her iki tarafın da ortak bir anahtar kullanmasını gerektirir. Anahtarlar, wg komutu kullanılarak oluşturulabilir:
- Yapılandırma Dosyası: WireGuard'ın yapılandırma dosyası (/etc/wireguard/wg0.conf) oluşturulmalıdır. Bu dosya bağlantı ayarlarını ve anahtarları içerir. Örneğin:
- Bağlantının Başlatılması: WireGuard bağlantısı wg-quick komutu kullanılarak başlatılabilir:
sudo apt install wireguard
wg genkey | tee privatekey | wg pubkey > publickey
[Interface]
PrivateKey = <ServerPrivateKey> #Buraya server tarafında oluşturduğumuz privatekey dosyasındaki key'i giriniz.
Address = 10.0.0.1/24
ListenPort = 51820 #Server hangi porttan dinlenecek bunu belirtmelisiniz.
[Peer]
PublicKey = <PeerPublicKey> #Buraya peer'ın (client) public key'i girmelisiniz.
AllowedIPs = 10.0.0.2/32
sudo wg-quick up wg0
WireGuard'ın Client Tarafına Kurulumu
- Kurulum: İstemci tarafında da WireGuard'ın kurulması gereklidir:
- Anahtar Oluşturma: İstemci tarafında da bir çift anahtar oluşturulmalıdır:
- İstemci Yapılandırması: İstemci için bir yapılandırma dosyası oluşturulmalıdır (/etc/wireguard/wg0.conf):
- Bağlantının Başlatılması: İstemci tarafında bağlantıyı başlatmak için:
sudo apt install wireguard
wg genkey | tee client_privatekey | wg pubkey > client_publickey
[Interface]
PrivateKey = <ClientPrivateKey> #İstemci private key'i
Address = 10.0.0.2/24
[Peer]
PublicKey = <ServerPublicKey> #Server public key'i
Endpoint = sunucu.ip.adresi:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
sudo wg-quick up wg0
Güvenlik ve İzinler
WireGuard yapılandırma dosyalarının güvenliği çok önemlidir. Özel anahtarların ve yapılandırma dosyalarının izinlerinin doğru ayarlanması gerekir:
sudo chmod 600 /etc/wireguard/privatekey
sudo chmod 600 /etc/wireguard/wg0.conf
Bağlantı Testi
Bağlantının başarılı bir şekilde kurulduğunu kontrol etmek için aşağıdaki komutları kullanabilirsiniz:
sudo wg show
ping 10.0.0.1 #Server'a ping atma
ping 10.0.0.2 #Client'a ping atma
Otomatik Başlatma
WireGuard servisinin sistem başlangıcında otomatik olarak başlaması için:
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
WireGuard; modern, hızlı ve güvenli bir VPN protokolüdür. Minimalist tasarımı, yüksek performansı ve güçlü güvenlik özellikleri ile dikkat çeker. Kullanımı ve yönetimi kolay olan bu protokol çeşitli platformlarda kullanılabilir ve kullanıcılar için büyük avantajlar sunar. Bu makalede WireGuard'ın özellikleri, çalışma prensipleri, avantajları ve nasıl kurulacağı hakkında detaylı bilgiler verilmiştir. WireGuard'ı kullanarak, güvenli ve hızlı bir VPN deneyimi yaşayabilirsiniz.
Discussion (0)
No comments