Nesillere göre VPN protokolleri ve seçim için 6 kontrol

VPN protokolü, uygulamanızla sunucunun uyduğu kurallar bütünüdür. Bu kurallar anahtar değişimini, trafiğinizin paketlenmesini ve başka ağlar üzerinden iletilmesini kapsar. Bağlantının ne kadar hızlı kurulacağını protokol belirler. Wi-Fi ağından mobil veriye geçişte bağlantının kopup kopmayacağını da etkiler. Bir üçüncü etken daha var: VPN bağlantısının aradaki ağa ne kadar görünür olduğu. Her protokol kendi döneminin bir sorunu için tasarlandı. 1990’larda bu, ofis ağına çevirmeli bağlantıyla erişmek demekti. Bugün ise VPN bağlantılarını ilk baytlarından tanıyan ağlar üzerinden erişmek demek. Aşağıda protokolleri nesillere göre grupladık. Sondaki 6 kontrol, aralarından birini seçmenize yardımcı olur.
Protokoller el sıkışma, taşıma ve parmak izinde farklılaşır
Bağdaştırıcıyı, tüneli ve sunucuyu VPN temelleri kılavuzumuzda anlattık. Her protokol tüneli kendi yöntemiyle kurar. Farklar 3 kısımda toplanır.
El sıkışma oturum anahtarlarını belirler
Veri aktarımı başlamadan önce uygulama ile sunucu birbirini doğrular ve oturum anahtarlarında anlaşır. WireGuard’a her yönde bir mesaj yeter, IKEv2 ise toplam 4 mesaj gerektirir. OpenVPN, kendi kontrol kanalının içinde tam bir TLS el sıkışması yürütür. Her yanıtın yavaş geldiği hatlarda gidiş-dönüş sayısı azaldıkça bağlantı daha hızlı kurulur. Uydu interneti ve yoğun mobil ağlar bu tür hatların tipik örnekleridir.
Kayıp paketler TCP üzerindeki tüneli yavaşlatır
UDP her paketi bir kez gönderir ve ulaşıp ulaşmadığını kontrol etmez. TCP ise gönderdiği veri için onay bekler. Onay zamanında gelmezse TCP veriyi yeniden gönderir ve gönderim hızını düşürür. TCP üzerindeki bir tünelde bu türden 2 katman iç içe çalışır. Tünel katmanı eksik paketi yeniden gönderir ve bu zaman alır. Bu arada tünelin içindeki tarayıcı bağlantısı paketi kayıp sayar. O da kendi kopyasını gönderir ve hızını düşürür. Sonuçta sayfalar düzensiz, tekrar tekrar duraklayarak yüklenir. Bu nedenle WireGuard yalnızca UDP üzerinden çalışır. Geliştiricileri WireGuard’a TCP modu eklenmeyeceğini belirtir, çünkü TCP içinde TCP kötü çalışır. Dezavantajı da şu: UDP’yi engelleyen bir ağda WireGuard bağlanamaz.
Ağ içeriği değil, parmak izini görür
İnternet sağlayıcınız tünelin içeriğini okuyamaz. Ancak portu, ilk mesajların boyutunu ve varsa şifrelenmemiş başlık alanlarını görebilir. Bu ayrıntılar bir araya gelince protokolün parmak izini oluşturur. Bazı filtreleme sistemleri şüpheli bir sunucuyu ayrıca yoklar ve verdiği yanıta bakar. Eski protokoller bu tür kontroller düşünülmeden tasarlandı. Yeni protokollerde ise parmak izi, tasarımın temel bir parçası.
1990’lardan 2020’lere 10 VPN protokolü
Yeni protokoller eskilerin yerini almadı. PPTP hâlâ router yazılımlarında bulunur. Windows ve macOS da L2TP ile IKEv2’yi yerleşik olarak destekler. Tabloda her protokolün ortaya çıktığı on yıl ve ilk amacı yer alır.
| Protokol | Ortaya çıkışı | Ne için geliştirildi |
|---|---|---|
| PPTP | 1990’lar | Ofis ağına çevirmeli bağlantıyı internet üzerinden taşımak |
| L2TP/IPsec | 2000 civarı | Tescilli PPTP’nin yerine açık bir standart koymak ve şifrelemeyi IPsec’e bırakmak |
| OpenVPN | 2000’ler | Her sisteme tek bir portta TLS tüneli sağlamak |
| IKEv2/IPsec | 2000’ler | Anahtarlarda daha hızlı anlaşmak ve ağ değişince oturumu korumak |
| SSTP | 2000’ler | Yalnızca HTTPS trafiğine izin veren ağlardan geçmek |
| Shadowsocks | 2010’lar | Trafikte hiçbir parmak izi bırakmamak |
| WireGuard | 2010’lar | Tüneli basit, kodu ise denetlenebilecek kadar küçük tutmak |
| VLESS + REALITY | 2020’ler | Gerçek ve tanınmış bir siteye yapılan HTTPS bağlantısı gibi görünmek |
| Hysteria2 | 2020’ler | Paket kaybı olan hatlarda hızlı kalmak ve HTTP/3 gibi görünmek |
| XHTTP | 2020’ler | Veriyi CDN’ler üzerinden de sıradan HTTP istekleri olarak taşımak |
PPTP ve L2TP/IPsec çevirmeli bağlantı döneminden kalma
PPTP
PPTP, modemli bir çalışanı internet üzerinden ofis ağına bağlamak için tasarlandı. Tünel içinde PPP taşır. PPP, internet sağlayıcısına çevirmeli bağlantıların kullandığı protokoldü. Protokolün spesifikasyonu olan RFC 2637, 1999’da yayımlandı. Kontrol kanalı TCP 1723 portunu kullanır, veri ise GRE içinde gider. GRE’de port yok. Bu yüzden ev router’larında hâlâ “PPTP Passthrough” ayarı bulunur.
Bruce Schneier ve Peiter Zatko (Mudge), PPTP’nin zayıf noktalarını 1998 ve 1999’da ortaya koydu. 2012’de bir DEF CON konuşması, ele geçirilen bir MS-CHAPv2 kimlik doğrulamasının tek bir DES anahtarına dayandığını gösterdi. Bu boyutta bir anahtar, kaba kuvvet yöntemiyle makul bir sürede bulunabilir. MPPE şifreleme anahtarı da aynı kimlik doğrulama verilerinden türetilir. Dolayısıyla anahtarın 128 bitlik uzunluğu ek koruma sağlamaz. Ardından Microsoft, MS-CHAPv2’nin ek koruma olmadan kullanılmasına karşı uyaran bir güvenlik duyurusu yayımladı. O zamandan beri PPTP güvenli kabul edilmiyor.
L2TP/IPsec
L2TP (RFC 2661, 1999), PPTP’nin ve Cisco’nun L2F protokolünün fikirlerini birleştirir. L2TP’nin kendi şifrelemesi yoktur. Bu nedenle neredeyse her zaman IPsec (RFC 3193, 2001) içinde çalışır. Her pakete önce L2TP, ardından IPsec olmak üzere 2 katman eklenir. İki katman da bayt ekler ve ikisinin de yapılandırılması gerekir. Anahtar değişimi UDP 500 portunu kullanır. Veri ise UDP 4500 üzerinden ya da ayrı ESP protokolüyle gider. Sabit portlar bu ikiliyi ağda görünür kılar. Birkaç güvenlik duvarı kuralı onu engellemeye yeter.
Microsoft, 2008’de SSTP’yi tanıttı. SSTP aynı PPP’yi HTTPS içinde, TCP 443 portu üzerinden taşır. Dışarıdan bakıldığında bağlantı sıradan bir web sitesi ziyaretine benzer. SSTP, yalnızca web trafiğine izin veren güvenlik duvarlarından da geçer. Masaüstü ve mobil sistemler arasında SSTP istemcisi yalnızca Windows’ta yerleşik olarak bulunur.
IKEv2, OpenVPN ve WireGuard’ın şifrelemesi güçlü, parmak izleri belirgin
Bu 3 protokol de verilerinizi iyi korur ve sıradan bir ağda sorun çıkarmadan çalışır. Ortak zayıflıkları, ağın tanıyabildiği bir parmak izidir. VPN bağlantılarını filtreleyen ağlarda bu zayıflık, şifrelemenin gücünden daha çok önem taşır.
IKEv2/IPsec
IKEv2 anahtarlarda 4 mesajla anlaşır, IKEv1’de ise başlangıç değişiminin 8 çeşidi vardı. Telefonlarda ve dizüstü bilgisayarlarda IKEv2, MOBIKE uzantısı (RFC 4555) sayesinde tercih edilir. MOBIKE ile dizüstü bilgisayar ofisin Wi-Fi ağından telefonun erişim noktasına geçebilir. Tünel, kimlik doğrulama tekrarlanmadan yeni adrese taşınır. Yerleşik IKEv2 istemcisi iOS, macOS ve Windows’ta, Android’de ise 11 ve üzeri sürümlerde bulunur. Bu sistemlerde IKEv2 için hiçbir şey kurmanız gerekmez. Ağlar IKEv2’yi aynı UDP portlarından, 500 ve 4500’den tanır.
OpenVPN
OpenVPN açık kaynaklı bir proje. Kendi protokolünü kullanır ve bu protokolün RFC’si yok. El sıkışmada TLS kullanılır, veriyi ise genellikle AES-GCM korur. OpenVPN, UDP veya TCP üzerinden herhangi bir portta çalışır. IANA kayıtlarında OpenVPN için 1194 numaralı port yer alır. Birçok router’da yerleşik olarak bulunur ve ayarları orada genellikle tek bir .ovpn dosyası olarak gelir. Zayıf noktası, her pakete eklediği başlıktır. Bu başlıktaki mesaj türü şifrelenmez ve her oturum aynı şekilde başlar. 2022’de araştırmacılar bunu gerçek bir internet sağlayıcısının ağında test etti. Tek bir baytın şifresini çözmeden bu trafikte OpenVPN bağlantılarını tespit ettiler.
WireGuard
Jason Donenfeld, WireGuard’ı 2017’de NDSS konferansında tanıttı. WireGuard 2020’de, 5.6 sürümüyle Linux çekirdeğinin bir parçası oldu. Tek ve sabit bir şifreleme algoritması seti kullanır (Noise el sıkışmasında Curve25519, ChaCha20-Poly1305 ve BLAKE2s). Böylece yanlışlıkla zayıf bir ayar seçemezsiniz. Sunucu, geçerli anahtarı olmayan paketlere yanıt vermez. Dışarıdan bakıldığında orada bir sunucu olduğu anlaşılmaz.
İstemci trafiğinin ise belirgin bir parmak izi var. El sıkışmanın ilk mesajı her zaman 148 bayt, yanıtı ise her zaman 92 bayttır. Mesaj türü şifrelenmeden gönderilir. WireGuard sitesi, protokolün gizlemeye (obfuscation) odaklanmadığını belirtir. Gizleme, WireGuard’ın üstündeki ayrı bir katmana bırakılır. WireGuard açık ağlarda iyi çalışır, filtrelenen ağlarda ise çabuk tespit edilir.
VLESS + REALITY, XHTTP, Hysteria2 ve Shadowsocks, VPN parmak izini gizler
Bu protokoller, VPN bağlantılarını tespit edip engelleyen ağlar için geliştirildi. Şifrelemeleri yukarıdaki protokollerinki kadar güçlü. Asıl amaçları ise parmak izini sıradan trafiğinkine yaklaştırmak. Tasarımları gereği proxy gibi çalışırlar. VPN uygulaması da cihazınızdan çıkan tüm trafiği bu protokoller üzerinden gönderir. VPN ile proxy karşılaştırmamız, ikisi arasındaki farkı anlatır.
VLESS + REALITY
VLESS kompakt bir protokol. Bugün onu Xray projesi geliştiriyor. Sunucuya istemci kimliğini ve hedef adresi gönderir. Verinin şifrelenmesi genellikle TLS katmanına bırakılır. REALITY, bağlantıyı gerçek bir üçüncü taraf web sitesine yapılan ziyaret gibi gösterir. Ağı izleyen biri, ilk pakette o sitenin adını görür. Ardından sıradan bir TLS 1.3 el sıkışması gelir ve içindeki sertifika zaten şifreli gider. Sunucunun kendi alan adına ve sertifikasına ihtiyacı yoktur. Sunucuyu anahtar olmadan yoklayan bir filtreleme sistemi, yanıtı gerçek siteden alır. REALITY bu tür bağlantıları doğrudan o siteye iletir.
XHTTP
XHTTP, Xray’deki taşıma yöntemlerinden biri. İlk sürümlerinin adı SplitHTTP idi. Veriyi parçalara böler ve parçaları HTTP istekleri içinde taşır. Modlardan birinde gönderilen veri, bir dizi POST isteği olarak gider. Aynı modda indirilen veri, bir GET isteğine verilen tek ve uzun bir yanıtla gelir. Bir HTTP proxy sunucusu ya da içerik dağıtım ağı (CDN), bunu sıradan web trafiği olarak görür. Bu sayede sunucu, birçok web sitesi gibi üçüncü taraf altyapısının arkasında çalışabilir.
Hysteria2
Hysteria2, QUIC (RFC 9000) üzerinde çalışır. QUIC, HTTP/3’ün altındaki UDP tabanlı taşıma protokolüdür. İstemci bağlanırken kendi hattının bant genişliğini bildirir. Hysteria2 veriyi bu hızda iletir ve kayıp paketleri hızı düşürmeden yeniden gönderir. Bu, trendeki mobil veri bağlantısı gibi paket kaybının sık olduğu hatlarda işe yarar. Parolası olmayan bir ziyaretçi sıradan bir HTTP/3 web sitesi görür. Sunucu, ayarlara göre bir 404 sayfası, dosyalar ya da başka bir site döndürür. UDP’ye kapalı bir ağda Hysteria2 çalışamaz.
Shadowsocks
2012’de ortaya çıkan Shadowsocks, bu 4 protokolün en eskisi ve en basiti. İlk bayttan itibaren şifreli bir proxy olarak çalışır. Başlık ya da tanınabilir bir el sıkışma kullanmaz. Ben's VPN uygulamasının temel aldığı Outline (bir Jigsaw projesi), Shadowsocks üzerinde çalışır. Bu gruptaki diğer 3 protokol, sıradan web trafiğinin parmak izini taklit eder. Shadowsocks trafiği ise bilinen hiçbir protokole benzemez. Hiçbir kalıba uymamak da bir parmak izidir. 2023’te araştırmacılar, bu tür bağlantıları birkaç basit kontrolden sonra engelleyen bir filtreleme sistemini anlattı. Kontroller yalnızca ilk pakete bakıyordu. Bu yüzden sıkı filtrelenen ağlarda tek başına Shadowsocks yetmez.
Protokol seçimi için 6 kontrol
Hiçbir VPN protokolü her duruma uymaz. Doğru protokol ağınıza ve amacınıza bağlıdır. Kontrolleri yukarıdan aşağıya sırayla yapın. Size uyan ilk kontrol çoğu zaman protokolü belirler.
Önce sunucunun sahibi karar verir
İş veya okul ağında sistem yöneticinizin verdiği profili kullanın. Kendi sunucunuz için yapılandırması en basit protokol WireGuard’dır. Yalnızca bir anahtar çifti ve kısa bir yapılandırma dosyası gerekir. Bir VPN hizmeti ise protokol seçimini genellikle kendi uygulamasına bırakır.
Filtrelenen ağda IKEv2, OpenVPN ve WireGuard elenir
VPN parmak izlerini arayan bir ağda IKEv2, OpenVPN ve WireGuard bağlantıları tespit edilir. Böyle bir ağda VLESS + REALITY, XHTTP ve Hysteria2 gibi sıradan trafiğe benzeyen protokolleri kullanın. Açık bir ağda ise IKEv2, OpenVPN ve WireGuard sorun çıkarmadan çalışır.
UDP’ye kapalı ağda TCP tabanlı protokol gerekir
Bazı şirket ve üniversite güvenlik duvarları web sitelerinden başka hiçbir şeye izin vermez. Tipik belirtisi şu: sayfalar açılır ama WireGuard veya IKEv2 hiç bağlanmaz. Böyle bir ağda çalışan protokoller arasında VLESS + REALITY, XHTTP ve TCP 443 portu üzerinden OpenVPN var.
Sık ağ değişikliğinde IKEv2 ve WireGuard öne çıkar
Telefon günde defalarca Wi-Fi ile mobil veri arasında geçiş yapar. IKEv2, MOBIKE sayesinde bu geçişlerde tüneli korur. WireGuard da bu geçişlerle başa çıkar ve istemcinin yeni adresini otomatik olarak kaydeder. VPN hizmetlerinin uygulamaları genellikle her geçişten sonra yeniden bağlanır.
Aramalar ve oyunlar UDP üzerinden daha iyi çalışır
Bir aramada kaybolan küçük bir ses parçası neredeyse fark edilmez. Gecikme ise hemen fark edilir. WireGuard ve Hysteria2, aramalara ve oyunlara uygun UDP protokollerine örnektir. TCP, kayıp paket yeniden gönderilene kadar sonraki tüm verileri bekletir. Bu yüzden ses gecikir.
Router yalnızca yazılımının desteklediği protokolleri çalıştırır
Router yazılımında OpenVPN seçeneği varsa PPTP yerine onu seçin. PPTP’yi yalnızca yazılım başka hiçbir protokolü desteklemiyorsa kullanın. O zaman bile yalnızca TV gibi bir cihazın başka bir ülkeye bağlanması gerektiğinde kullanın.
Ben's VPN uygulaması protokolü otomatik olarak seçer
VLESS + REALITY, XHTTP, Hysteria2 ve Shadowsocks, uygulamadaki 4 protokoldür. Uygulama protokolle birlikte rotayı da seçer. Ekranda protokol seçimi yok. Seçtiğiniz tek şey konum. İnternet sağlayıcınız bir sunucuya giden bağlantıyı görür, ama içindeki trafiği göremez. Diğer sistemler için sürümler VPN uygulamaları sayfasında.

Bağlantı zayıfken uygulama, “Kötü bağlantı” uyarısını ve uyarıdaki “Sorunu çöz” düğmesini gösterir. Düğmeye dokunduğunuzda 2 seçenek görürsünüz: başka bir konum ya da çalışan bir sunucu araması. Arama, sunucuyu yeniden test eder ve yeni IP adresleri alır. Bu da sonuç vermezse uygulama, üçüncü bir ülkedeki ara sunucu üzerinden multihop’u açar. Aramanın tamamı en fazla 2 dakika sürer. Aynı “Çalışan sunucuyu bul” düğmesi “Hesap” → “Ayarlar” bölümünde de var.
Keenetic, OpenWrt ve MikroTik router’ları, Ben's VPN uygulamasını kendi üzerlerinde çalıştırabilir. Diğer router’lar yalnızca kendi yazılımlarındaki protokolleri kullanabilir. Bunlar için hesap sayfanızın “Router” → “Diğer router’lar” bölümünde PPTP ve OpenVPN ayarları var. İki protokol için de aynı kullanıcı adı ve şifre geçerlidir. Bu bilgiler aynı anda yalnızca bir router’da çalışır. Router kurulum sayfası, yapılandırmanın her adımını anlatır.
Sorular ve yanıtlar
VPN gizleme (obfuscation) nedir, şifrelemeden farkı ne?
Şifreleme içeriği gizler ve anahtar olmadan paketleri kimse okuyamaz. Gizleme ise bağlantının bir VPN bağlantısı olduğunu saklar. Paketlerin boyutunu, sırasını ve biçimini sıradan trafiğe benzetir. WireGuard trafiği iyi şifreler ama gizlemez. REALITY ve Hysteria2, şifrelemenin üstüne gizleme ekler.
Kendi sunucumda WireGuard mı çalıştırmalıyım, OpenVPN mi?
UDP’ye ve VPN bağlantılarına izin veren bir ağda WireGuard’ı yapılandırmak daha basittir ve WireGuard daha hızlı bağlanır. OpenVPN ise daha esnek: UDP ya da TCP üzerinden herhangi bir portta çalışır. Bu esneklik, yalnızca TCP’ye izin veren ağlarda işe yarar. Filtrelenen bir ağda iki protokol de parmak izinden tanınır.
Multihop ayrı bir protokol mü?
Hayır. Multihop bir protokol değil, bir rotadır. Trafiğiniz önce üçüncü bir ülkedeki ara sunucuya gider. Oradan seçtiğiniz konumdaki sunucuya geçer. Multihop trafiğin şifrelemesini değil, yolunu değiştirir. Ben's VPN uygulamasında “Otomatik” modu, kararlı bir bağlantı için gerektiğinde multihop’u açar.
Site zaten HTTPS kullanıyorsa VPN protokolü ne ekler?
HTTPS sayfayı şifreler, ama ağ hangi siteyi açtığınızı yine de görür. Sitenin IP adresini ve bağlantının başında sitenin adını görür. VPN protokolü bu bilgileri de gizler. Bu durumda internet sağlayıcınız yalnızca bir sunucuya giden bağlantıyı görür. Sunucudan sonra istek, siteye tünelin dışından gider. Yolun bu kısmında isteği yine HTTPS korur.








