VpnHood nasıl çalışır?
VpnHood uygulaması, cihaz trafiğini şifreli bir tünelle sunucunuza iletir; sunucunuz da trafiği internete aktarır. Bu sayfada trafiğin baştan sona izlediği yolu görebilirsiniz.
Cihaz tarafında
Uygulama, sistemin VPN uygulamalarına sağladığı sanal ağ bağdaştırıcısı üzerinden cihaz trafiğini yakalar. Üç tür trafiği taşır: TCP, UDP ve ping. Diğer tüm paketler doğrudan düşürülür.
Tünelleme kararı da cihaz tarafında verilir. Uygulama, ülke, alan adı veya IP adresine göre tünel dışı bırakılan trafik doğrudan internete gider ve sunucunuza hiç uğramaz. Seçenekleri incelemek için tünelleme sayfasına göz atın.
Uygulama ayrıca cihazın DNS ayarlarını düzenler: kullanıcının seçtiği DNS sunucuları kullanılır veya varsayılan olarak sunucunuzun kullandığı genel Google DNS sunucuları atanır. Tünelleme bir siteyi tünel dışına yönlendirse bile DNS sorguları tünelin içinde kalır.
Tünel
Uygulama, siz değiştirmediğiniz sürece varsayılan olarak sunucunuzun TCP bağlantı noktasına (443) HTTPS şifrelemesi olan TLS üzerinden bağlanır ve web uygulamaları gibi WebSocket ile iletişim kurar. Tüneldeki her şey, ilk baytından son baytına kadar TLS ile şifrelenir.
Uygulama herhangi bir veri göndermeden önce sunucunuzun sertifikasını doğrular. Yalnızca bir sertifika yetkilisi tarafından erişim anahtarındaki alan adı için imzalanmış sertifikaları veya anahtardaki parmak iziyle birebir eşleşen sertifikayı kabul eder. Sunucuların kendinden imzalı sertifikalarla çalışabilmesi ve güvenilir bir sertifika yenilendiğinde anahtarların geçerliliğini koruması bu sayede mümkün olur.
Kullanıcılar uygulama protokolü ayarlarından TCP yerine UDP veya QUIC seçebilir. UDP, cihaz paketlerini sunucunuzun UDP bağlantı noktasına AES-GCM ile şifrelenmiş veri paketleri halinde gönderir. QUIC ise kendi TLS katmanıyla TCP ile aynı iletileri QUIC üzerinden iletir. Sunucu, desteklediği protokolleri uygulamaya bildirir; örneğin bir ters proxy arkasındayken seçilen protokol sunulmuyorsa uygulama TCP'ye geçer. Ancak ağ UDP bağlantı noktasını engellerse, kullanıcı yeniden TCP'ye geçene kadar UDP modundaki uygulamadan trafik akışı sağlanamaz.
Sunucunuza bir VpnHood uygulamasından gelmeyen istekler, tıpkı oturum açma gerektiren bir web sitesinde olduğu gibi yalnızca bir HTTP hatası alır.
TCP: Paket tabanlı veya bağlantı başına tek istek
Uygulama varsayılan olarak TCP verilerini tünel üzerinden paketler halinde iletir; sunucunuz da tıpkı bir yönlendirici gibi bunları kendi ağ bağdaştırıcısı üzerinden yönlendirir. En hızlı ve pil dostu yöntem budur.
Cloak Mode etkinken uygulama her bağlantıyı doğrudan cihazda sonlandırır ve sunucunuzdan yeni bir istekle bağlantıyı açmasını ister. Sunucunuz web sitesine doğrudan bağlanarak verileri çift yönlü aktarır. Ağ açısından trafik artık tek bir kesintisiz tünel gibi değil, standart tarayıcı istekleri gibi görünür. Hızdan ve pilden ufak bir ödün verir; uygulama tamamlanan her isteğin bağlantısını bir sonraki için yeniden kullanır.
Uygulama, Docker gibi sunucunuzun kendine ait bir ağ bağdaştırıcısı bulunmadığı durumlarda ve kullanıcı trafiği alan adına göre tünellediğinde de Cloak Mode olmadan bu şekilde çalışır.
UDP ve ping
Uygulamanın kullandığı protokolden bağımsız olarak UDP verileri tünelden paketler halinde geçer. Ping istekleri de aynı şekilde iletilir; uygulama yalnızca yankı (echo) isteklerini taşır ve diğer ICMP paketlerini yok sayar. Sunucunuz her ikisini de ağ bağdaştırıcısı üzerinden veya bir bağdaştırıcı yoksa cihaz adına ping atarak kendi soketleri üzerinden iletir.
Sunucu tarafı
Linux üzerinde kurulu VpnHood! SERVER, kendi ağ bağdaştırıcısına sahiptir ve paketleri bir yönlendirici gibi NAT ile internete iletir. Docker konteynerlerinde bu bağdaştırıcı bulunmadığı için sunucu proxy gibi çalışır: Uygulamalar TCP isteklerini bağlantı başına bir istek olarak gönderir; sunucu her bağlantıyı, UDP soketini ve pingi kendisi açar. Uygulamalar bu moda otomatik olarak geçer.
Her iki durumda da kendi IP adreslerine veya bağlı olduğu yerel ağlara giden trafiği iletmez.
TCP bağlantı noktasının ve UDP kullanan uygulamalar için ilk kurulumda belirlenen UDP bağlantı noktasının açık olması gerekir. QUIC siz etkinleştirene kadar kapalı kalır. UDP bağlantı noktasını nasıl bulacağınızı öğrenmek için Sunucunuzun IP adreslerini ayarlayın sayfasına göz atın.
Yönetilen bir sunucu, bir uygulama bağlandığında her anahtarı doğrulamak ve veri kullanımını bildirmek için access.vpnhood.com üzerinden HTTPS ile VpnHood! MANAGER'a ulaşır. MANAGER sunucuya asla doğrudan bağlanmaz ve uygulamalar da MANAGER ile doğrudan iletişim kurmaz. MANAGER ayrıca uygulamaları sunucu kümesindeki başka bir sunucuya yönlendirebilir. Bağımsız sunucular ise anahtarları kendi yerel dosyalarından doğrular.
Erişim anahtarının içeriği
Erişim anahtarı, uygulamanın sunucunuzu bulması ve doğrulaması için gereken bilgileri barındırır: alan adı ve IP adresleri, bağlantı noktası, sertifika adı veya parmak izi ve anahtarın gizli parolası. Bu bilgiler şifrelenmez, yalnızca kodlanır (encoded); bu nedenle anahtara sahip olan herkes sunucu adreslerinizi görebilir ve sunucuya bağlanabilir. Anahtarları yalnızca güvendiğiniz kullanıcılara verin ve bir ağın tespit ettiği IP adreslerine uygulayabileceği yaptırımları öğrenmek için Sunucunuzun IP adresinin engellenmesini önleyin sayfasını inceleyin.