VPN türleri: IPsec ve WireGuard
- IPsec'in IKE ve ESP adımlarını, WireGuard'ın anahtar tabanlı yönlendirmesini okuyup tünelin durumunu komut çıktısından yorumlamayı öğren.
- IPsec ağ katmanında çalışır, WireGuard daha yeni ve daha sade bir tasarımla aynı işi yapar.
- Bu derste iki VPN türünün nasıl çalıştığını ve hangi durumda hangisinin tercih edildiğini göreceksin.
Puan bütün etkinlikleri cevaplayınca hesaba yazılır. Bu dersi tamamlayınca +50 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.
Altay Kargo'nun İzmir deposu merkeze internet üzerinden bağlanıyor. Depodaki el terminalleri stok bilgisini merkezdeki sunucuya yolluyor. Saha satış ekibi de otel ve kafe ağlarından şirket uygulamalarına giriyor. İki ihtiyacın ortak sorunu şudur: veri güvenilmeyen bir ağdan geçiyor.
VPN (sanal özel ağ) bu ağın üstünde şifreli bir tünel kurar. Tünelin içinden geçen veri, dışarıdan bakan biri için okunaksız bir paket yığınıdır. VPN iki işi birlikte yapar.
Önce iki uç birbirinin kimliğini doğrular. Sonra ortak bir oturum anahtarı üretilir ve bütün trafik bu anahtarla şifrelenir. Depo ile merkez arasındaki tünele siteler arası VPN, satış ekibinin bağlantısına uzaktan erişim VPN'i denir. Bu derste IPsec'i ve WireGuard'ı komut çıktılarıyla birlikte okuyacaksın.
IPsec'in parçaları
IPsec ağ katmanında çalışan bir protokol takımıdır. IP paketinin kendisini korur, bu yüzden üstündeki uygulama IPsec'in varlığından habersiz kalır. IPsec bir IETF standardıdır ve hemen her kurumsal duvar ve yönlendirici onu hazır destekler. Takımın parçaları ayrı numaralarla çalışır.
IKEv2, iki ucun kimliğini doğrulayan ve anahtar üzerinde anlaşan el sıkışmadır, UDP 500'ü kullanır. Yolda NAT varsa iki uç bunu el sıkışmada fark eder ve UDP 4500'e geçer; buna NAT geçişi (NAT-T) denir. ESP, veriyi şifreleyen ve bütünlüğünü koruyan katmandır. UDP ya da TCP değildir, IP başlığında kendi protokol numarasını, 50'yi taşır.
NAT arkasında ESP de UDP 4500'ün içine sarılır. AH'nin protokol numarası 51'dir. AH yalnız bütünlüğü korur, şifrelemez ve NAT'tan geçemez.
ESP iki modda çalışır. Taşıma modunda (transport mode) özgün IP başlığı yerinde kalır, yalnız yük korunur. Bu mod iki sunucu arasında uçtan uca koruma için uygundur. Tünel modunda (tunnel mode) özgün paketin tamamı başlığıyla birlikte şifrelenir ve yeni bir IP başlığının arkasına konur.
Dışarıdan bakan yalnız iki ağ geçidinin adresini görür. İzmir deposundaki el terminalinin merkeze yazdığı paket, iki ağ geçidi arasında tünel modunda taşınır. Dinleyen biri kimin kimle konuştuğunu değil, yalnız deponun merkezle konuştuğunu öğrenir. Siteler arası VPN'lerin neredeyse hepsi tünel modunda çalışır.
Şemadaki ağ katmanı IP paketlerinin taşındığı yerdir. IPsec tam burada devreye girer ve paketin kendisini korur. WireGuard ise taşıma katmanındaki UDP'yi bir taşıyıcı gibi kullanır, ama içine sardığı veri yine bir ağ katmanı paketidir. İkisi de sonunda aynı hedefe ulaşır: özgün paketi şifreli bir zarfın içine koymak.
Fark, zarfın hangi katmanda kapandığındadır. IPsec'te zarfı işletim sisteminin IP yığını kapatır. WireGuard'da ise sanal bir ağ arayüzüne yazılan paket şifrelenir ve UDP ile yola çıkar.
Etkinlik 1 / 7
IPsec, IP paketinin kendisini hangi katmanda şifreler?
Diyagramda doğru kutuyu tıkla.
Derinleş:AH neden NAT'tan geçemez
AH, paketin bütünlüğünü korurken IP başlığının yolda değişmeyen alanlarını da hesaba katar. Kaynak ve hedef adres bu alanlardandır. NAT cihazı paketin kaynak adresini kendi genel adresiyle değiştirir.
Alıcı bütünlük değerini yeniden hesapladığında sonuç tutmaz ve paketi atar. ESP ise dış IP başlığını korumaz, yalnız kendi başlığından sonrasını korur. Bu yüzden ESP, UDP 4500 içine sarılarak NAT'tan geçebilir. AH'nin sunduğu tek ek, dış başlığın da doğrulanmasıdır.
ESP şifrelemesiz, yalnız bütünlük modunda da çalışabildiği için bu fark pratikte önemini yitirdi. NIST SP 800-77 Rev. 1 de AH'yi eski (legacy) seçenekler arasında sayar ve ESP'yi önerir. Yeni bir kurulumda AH görürsen nedenini sorman yerinde olur.
Etkinlik 2 / 7
IPsec bileşenini duvarda açman gereken port ya da protokol numarasıyla eşleştir.
El sıkışmadan veri akışına
IKEv2 tüneli iki değişimle kurar. İlk değişim IKE_SA_INIT'tir. İki uç şifreleme önerilerini, Diffie-Hellman anahtar paylarını ve rastgele sayılarını (nonce) değiş tokuş eder. Sonunda ortak bir sır oluşur ama kimlik henüz doğrulanmamıştır.
İkinci değişim IKE_AUTH'tur ve mesajları artık şifrelidir. Uçlar sertifika ya da önceden paylaşılmış anahtarla kimliklerini kanıtlar, ilk ESP tünelinin ayarlarında anlaşır. İki değişim bitince bir IKE güvenlik ilişkisi ve bir IPsec güvenlik ilişkisi kurulmuş olur.
Güvenlik ilişkisi (SA), trafiğin hangi algoritma ve anahtarla korunacağını söyleyen kayıttır. Sonraki tüneller ve anahtar yenilemeleri CREATE_CHILD_SA değişimiyle yapılır.
Her IPsec SA tek yönlüdür, bu yüzden bir tünelde en az iki SA bulunur: gelen ve giden. Alıcı, gelen ESP paketinin hangi SA'ya ait olduğunu SPI değerinden anlar. SPI 32 bitlik bir sayıdır ve her ESP paketinin başında açık olarak durur.
Anahtarlar süresiz kullanılmaz. NIST SP 800-77 Rev. 1, IKE SA için 24 saat, IPsec SA için 8 saat ömür önerir. Yeniden anahtarlamada yeni bir Diffie-Hellman değişimi yapılırsa buna PFS (Perfect Forward Secrecy) denir.
PFS sayesinde bir anahtar sızsa bile önceki oturumların kaydı çözülemez. Tünelin kuruluşunu merkezdeki ağ geçidinde alınmış bir yakalamada izleyebilirsin.
$ tshark -r merkez-gw.pcapng -Y 'isakmp || esp || udp.port == 4500' 1 0.000000 198.51.100.20 → 203.0.113.10 ISAKMP 470 IKE_SA_INIT MID=00 Initiator Request 2 0.038211 203.0.113.10 → 198.51.100.20 ISAKMP 478 IKE_SA_INIT MID=00 Responder Response 3 0.080554 198.51.100.20 → 203.0.113.10 ISAKMP 382 IKE_AUTH MID=01 Initiator Request 4 0.121907 203.0.113.10 → 198.51.100.20 ISAKMP 318 IKE_AUTH MID=01 Responder Response 5 0.203341 198.51.100.20 → 203.0.113.10 ESP 170 ESP (SPI=0xc8f6a1b1) 6 0.241118 203.0.113.10 → 198.51.100.20 ESP 170 ESP (SPI=0xc1f3e8b0) 7 0.402870 198.51.100.20 → 203.0.113.10 ESP 1438 ESP (SPI=0xc8f6a1b1)
İlk dört satır el sıkışmadır. 198.51.100.20 İzmir deposunun ağ geçidi, 203.0.113.10 merkezin ağ geçididir. Başlatan (Initiator) depo, cevap veren (Responder) merkezdir.
MID mesaj kimliğidir ve her değişimde bir artar. IKE_AUTH'tan sonra ISAKMP görünmez, yalnız ESP akar. Beşinci ve altıncı satırdaki SPI değerleri farklıdır, çünkü her yönün kendi SA'sı vardır.
Depodan merkeze giden paketler hep 0xc8f6a1b1'i, dönüşler hep 0xc1f3e8b0'ı taşır. Yedinci satırdaki 1438 baytlık paket gerçek veridir. İçeriğini göremezsin, ama boyutu ve zamanlaması yine bilgi verir. SA ömrü dolunca yeni SPI değerleri belirir.
$ sudo swanctl --list-sas
izmir-merkez: #3, ESTABLISHED, IKEv2, 5f2a9c01d3b4e7a8_i 9b1e4c7d20a3f6e5_r*
local 'merkez-gw.altaykargo.example' @ 203.0.113.10[500]
remote 'izmir-gw.altaykargo.example' @ 198.51.100.20[500]
AES_GCM_16-256/PRF_HMAC_SHA2_384/ECP_384
established 1846s ago, rekeying in 11320s
depo-agi: #5, reqid 1, INSTALLED, TUNNEL, ESP:AES_GCM_16-256
installed 1846s ago, rekeying in 1652s, expires in 2114s
in c8f6a1b1, 48213744 bytes, 61230 packets, 2s ago
out c1f3e8b0, 9120433 bytes, 40117 packets, 2s ago
local 10.10.0.0/16
remote 10.50.0.0/24İlk satır IKE SA'yı özetler: bağlantının adı, ESTABLISHED durumu ve sürüm. Yıldız, iki SPI'dan hangisinin bu uca ait olduğunu gösterir.
Dördüncü satır anlaşılan algoritmaları verir: AES-GCM şifreleme, SHA-384 tabanlı PRF ve 20 numaralı DH grubu olan ECP_384. Alt blok IPsec SA'dır. INSTALLED ve TUNNEL, SA'nın çekirdeğe yüklendiğini ve tünel modunda çalıştığını söyler.
in ve out satırlarındaki SPI'lar tshark çıktısıyla aynıdır. SPI'yı paketi alan uç seçer, bu yüzden depodan gelen paketlerdeki c8f6a1b1 merkezde in satırında durur. Bayt sayaçları artıyorsa trafik akıyordur.
Sayaçlar sıfırda duruyorsa tünel kurulmuş ama trafik ona yönlenmiyordur; sebep çoğu zaman yanlış yazılmış bir ağ aralığıdır. Çekirdekteki SA'ları ip xfrm state komutu da listeler, ama anahtarları da gösterebilir. O çıktıyı paylaşmadan önce dikkat et.
Etkinlik 3 / 7
Bir ekip eski donanımla uyumlu, siteler arası kurumsal bir VPN bağlantısı kuracak ve birçok üreticinin desteklediği bir standart istiyor. Hangi seçenek bu ihtiyaca daha uygundur?
WireGuard: az seçenek, anahtar kimliği
WireGuard daha yeni bir tasarımdır ve sadeliği hedefler. Algoritma pazarlığı yoktur. Anahtar değişimi için Curve25519, şifreleme için ChaCha20-Poly1305, özet için BLAKE2s kullanır.
Seçenek olmadığı için zayıf bir algoritmayı yanlışlıkla açma riski de yoktur. Bir algoritma kırılırsa çözüm protokolün yeni sürümüdür. Linux uygulaması 4.000 satırın altında kodla yazıldı ve bu küçüklük denetimi kolaylaştırır.
WireGuard, Linux çekirdeğine 5.6 sürümüyle girdi. Her uç 32 baytlık bir gizli anahtar ve ondan türetilen açık anahtarla tanımlanır, tıpkı SSH anahtarları gibi. Bağlantı UDP üzerinden kurulur, yaygın port 51820'dir. Kurulum birkaç satırlık bir yapılandırma dosyasıyla biter.
WireGuard'ın en özgün fikri anahtar tabanlı yönlendirmedir (cryptokey routing). Her eş (peer) için bir açık anahtar ve bir AllowedIPs listesi yazılır. Liste iki yönde iş görür.
Giden pakette yönlendirme tablosu gibi davranır: hedefi 10.8.0.2 olan paket, bu adresi listesinde taşıyan eşin anahtarıyla şifrelenir. Gelen pakette erişim listesi gibi davranır: çözülen paketin kaynak adresi o eşin listesinde değilse paket atılır. Böylece bir eş başka birinin adresini taklit edemez.
İstemcide AllowedIPs = 0.0.0.0/0 yazmak tam tünel demektir, bütün trafik şirketten geçer. Yalnız şirket ağlarını yazmak bölünmüş tüneldir (split tunnel). Bölünmüş tünel bant genişliğini korur ama kullanıcının internet trafiği şirketin süzgecinden geçmez.
$ sudo wg show wg0 interface: wg0 public key: kXb3vR0y1nD5qVfA8cT2mW6pLz9eHs4uJoG7iBtNx0E= private key: (hidden) listening port: 51820 peer: 9sQe2LmVx7Rc4TbZkP1wYh8NfU3aGd6JoI5nCyEqM0s= endpoint: 198.51.100.77:40122 allowed ips: 10.8.0.2/32 latest handshake: 1 minute, 12 seconds ago transfer: 48.31 MiB received, 6.02 MiB sent peer: Tn4fW8yHq2Kc7VbL0xRm5Zs1PaJe9GuD3oNi6YtCwQk= endpoint: 203.0.113.20:51820 allowed ips: 10.8.0.3/32 latest handshake: 3 hours, 41 minutes, 5 seconds ago transfer: 220.19 KiB received, 1.07 MiB sent
Üst blok sunucunun kendi arayüzüdür. Gizli anahtar hiçbir zaman ekrana yazılmaz, yerinde (hidden) görünür. Her peer bloğu bir eştir ve açık anahtarıyla tanınır. endpoint, eşten son paketin geldiği adres ve porttur; kullanıcı ağ değiştirirse bu alan kendiliğinden güncellenir.
allowed ips, anahtar tabanlı yönlendirmenin listesidir. En değerli satır latest handshake'tir. Trafik akarken WireGuard oturum anahtarını iki dakikada bir yeniler ve üç dakikadan eski bir anahtarı kabul etmez. Birinci eşin el sıkışması bir dakika önce olmuştur, tünel canlıdır.
İkinci eşte son el sıkışma saatler öncedir. Bu eş ya boştadır ya da bağlantısı kopmuştur. Transfer sayaçları da artmıyorsa kopukluk ihtimali güçlenir.
Etkinlik 4 / 7
Bir satış dizüstüsünde wg show çıktısı böyle. Kullanıcı bir haber sitesini açtığında bu trafik nereden geçer?
Önce kodu oku, sonra çıktıyı seç.
peer: kXb3vR0y1nD5qVfA8cT2mW6pLz9eHs4uJoG7iBtNx0E= endpoint: 203.0.113.10:51820 allowed ips: 10.10.0.0/16, 10.50.0.0/24 latest handshake: 25 seconds ago
Hangi protokolü seçersen seç, tünelin gücü anahtarların korunmasına bağlıdır. WireGuard eşi yalnız anahtarından tanır. Gizli anahtar bir dizüstüden çalınırsa saldırgan o eş adına tünel kurar, tıpkı çalınan bir SSH anahtarı gibi. IPsec'te önceden paylaşılmış anahtar ya da sertifikanın gizli anahtarı sızarsa aynı risk doğar.
Anahtar dosyasını yalnız yöneticinin okuyabileceği izinlerle saklarsın. Cihaz kaybolunca o eşi sunucudan hemen silersin. WireGuard'da ayrıca önceden paylaşılmış isteğe bağlı bir anahtar da eklenebilir. Bu ek anahtar gizli anahtarın yerini tutmaz, yalnız ek bir katman olur.
Etkinlik 5 / 7
Doğru mu, yanlış mı?
WireGuard'da bir ucun kimliği anahtar çiftidir; gizli anahtarı ele geçiren saldırgan o uç adına tünel kurabilir.
Saldırı yüzeyi, sık hatalar ve izleme
VPN ağ geçidi internete açık durur ve iç ağın kapısıdır. Saldırganlar bu yüzden ona özel ilgi gösterir. MITRE ATT&CK, VPN gibi dışa açık uzaktan erişim servislerinin kötüye kullanımını T1133 (External Remote Services) olarak kaydeder. İki yol sık görülür: çalınmış kimlik bilgisiyle meşru giriş ve cihazın kendi yazılımındaki zafiyet.
2024'ün başında TLS tabanlı bir VPN ürününün birkaç zafiyeti geniş çapta sömürüldü. CISA ve ortakları AA24-060B uyarısında, saldırganların üreticinin bütünlük denetim aracını atlatabildiğini bildirdi. Bu cihazlar çoğu zaman kapalı kutudur, üstüne uç nokta koruması kurulamaz. Yamayı hızla uygulamak ve yönetim arayüzünü internete kapatmak bu yüzden kritik önlemdir.
NIST SP 800-77 Rev. 1 yapılandırma için açık öneriler verir. Yeni kurulumda IKEv1 kullanılmaz. IKEv1 zorunluysa agresif moddan (aggressive mode) kaçınırsın, çünkü ana moda göre çok daha zayıftır.
2 ve 5 numaralı Diffie-Hellman gruplarını kullanmazsın; 2048 bitlik 14 numaralı grubu ya da 19, 20, 21 numaralı eliptik eğri gruplarını seçersin. Aynı yönetim alanında önceden paylaşılmış anahtar yerine sertifika kullanırsın. Uzaktan erişimde rehber EAP-TLS ya da makine sertifikası önerir.
Sahada bir hata daha sık görülür: bütün kullanıcılara tek bir ortak anahtar dağıtmak. Bu anahtar bir kez sızarsa kimin bağlandığını ayırt edemezsin ve herkesi aynı anda yenilemek zorunda kalırsın.
Tespit için VPN kimlik doğrulama kayıtlarını SIEM'e gönderirsin. Üç işaret öne çıkar. Birincisi olağan dışı konumdur: kullanıcının hiç çalışmadığı bir ülkeden gelen giriş. İkincisi eş zamanlı oturumdur: aynı hesap aynı dakikada iki uzak adresten bağlıdır.
Üçüncüsü zamanlamadır: mesai dışında açılan ve kısa sürede yüksek veri taşıyan oturum. Savunmanın katmanları bellidir: çok faktörlü kimlik doğrulama, cihazın hızlı yamalanması, oturum süresine üst sınır ve VPN'den sonra da süren iç bölütleme. VPN'e giren kullanıcı bütün iç ağı görmemelidir. Sonraki derste bu fikri sıfır güvenle genişleteceksin.
Derinleş:WireGuard'ın sessizliği
WireGuard, kimliği doğrulanmamış pakete cevap vermez. Geçerli bir el sıkışma başlatma mesajı yazmak için alıcının açık anahtarını bilmek gerekir. Anahtarı bilmeyen biri port taraması yaptığında hiçbir cevap alamaz, port kapalıymış gibi görünür.
Her el sıkışma mesajı bir MAC alanı taşır. Alıcı önce bu ucuz denetimi yapar, pahalı eliptik eğri işlemine ancak ondan sonra girer.
Sunucu aşırı yük altındaysa bir çerez (cookie) mekanizması devreye girer ve başlatandan adresini kanıtlamasını ister. Bu tasarım VPN ağ geçidini internette daha az görünür kılar. Yine de sessizlik bir kimlik doğrulama yöntemi değildir; asıl koruma gizli anahtarın gizli kalmasıdır. Sunucunun açık anahtarını bilen biri bile, eş listesinde kayıtlı bir anahtarı yoksa cevap alamaz.
Etkinlik 6 / 7
Merkezdeki VPN ağ geçidinin bir günlük giriş kayıtları aşağıda. Araştırma gerektiren satırları seç.
Şüpheli satırlara tıkla. Birden fazla olabilir.
Etkinlik 7 / 7
Az sayıda uzak geliştiriciyi hızlı kurulumla ve sade yapılandırmayla bağlamak isteyen küçük bir ekip için hangi VPN türü daha uygundur?
Okumayı istediğin sırayla sürdürebilirsin. Ders, bütün etkinlikleri cevapladığında tamamlanır.