Bir VPN istemcisini kurumsal bir HTTP proxy'ye yönlendirin; ilk yararlı gerçek, proxy'nin VPN'in protokolünü konuşmadığıdır. Belirttiğiniz adrese sıradan bir TCP bağlantısı açar ve sonra kenara çekilir; istemciniz ile sunucu kendi alışverişlerini o akış üzerinden yapar. İstemcinin ihtiyaç duyduğu her şey, taşıma türünden sunucunun dinleyicisine kadar bu düzene uymalıdır. İki uyumsuzluk başarısızlıkların çoğunu açıklar: CONNECT proxy'ye yönelik bir UDP profili ve VPN hatası sanılan bir proxy yanıtı.

Proxy neyi taşır, neyi taşımaz

Proxy yalnızca bir taşıma adımıdır. Tarayıcı proxy'niz olmaz, tünel üzerinden ziyaret ettiğiniz siteleri önbelleğe almaz ve biri bilerek denetim yapılandırmadıkça iç trafiği görmez. Açtığı tünel, tasarımı gereği onun için saydam değildir.

Bu ayrıca proxy'nin eşleşen dinleyicisi olmayan bir sunucuyu onaramayacağı anlamına gelir. Bir hedefe ulaşma izni ile o hedefte dinleyen bir hizmet iki ayrı gerçektir ve yalnızca ilki proxy yöneticisine aittir.

Taşıyıcı iki uçta da TCP olmalıdır

Geleneksel bir CONNECT proxy yalnızca bir bayt akışı iletir , bu yüzden istemci akış taşıması kullanmalıdır. Bu durum için istemci parçası şöyle görünür:

proto tcp-client
remote vpn.example.net 1194
http-proxy proxy.corp.example 3128

Sunucu tarafı, remote satırında belirtilen bağlantı noktasında gerçek bir TCP dinleyicisi gerektirir. Profilde proto udp yerine proto tcp-client koymak, akış bekleyen bir istemci oluşturur; akışı karşı tarafta oluşturmaz. Aynı sunucu o bağlantı noktasında UDP ile de yanıt veriyorsa bu başka bir dinleyicidir, aynı dinleyicinin ikinci kipi değildir.

Ayrı bir TCP örneği olan yerde, tünel aygıtı, adres havuzu ve yönlendirmesi kendi kaynaklarıdır. Çalışan bir yapılandırmayı kopyalayıp taşıma sözcüğünü değiştirmek, bu kaynakları özgün örneğe işaret eder halde bırakır; bu da kimlik doğrulaması yapan ve sonra hiçbir şeyi yönlendirmeyen bir bağlantı üretir.

VPN sonucundan önce proxy yanıtını okuyun

İstemcinin ilk alışverişi, hedef ana bilgisayarı ve bağlantı noktasını adlandıran bir istek satırıdır. Bu satıra verilen yanıt, bir bayt akışının olup olmadığını söyler ve herhangi bir sertifika ya da kimlik bilgisi denetlenmeden önce gelir:

CONNECT vpn.example.net:1194 HTTP/1.1
Host: vpn.example.net:1194
Proxy replyWhat it meansWhere to look next
407 Proxy Authentication RequiredThe proxy wants its own credentialsThe client's proxy auth options, not the VPN account
403 ForbiddenThe destination or method is not permittedThe proxy's access policy for that host and port
503 Service UnavailableThe proxy could not complete the upstream connectionThe proxy's own logs and the server's listener

CONNECT'e 200 sınıfı bir yanıt, akışın var olduğu anlamına gelir. Ağ geçidi sertifikasının güvenilir olup olmadığını, ortak anahtarın eşleşip eşleşmediğini veya kullanıcı hesabının geçerli olup olmadığını söylemez. Bu denetimler sonradan, akışın içinde gerçekleşir ve HTTP durum satırı yerine istemcinin kendi iletileriyle başarısız olur. İstemci günlüğünde proxy el sıkışmasından sonraki ilk OpenVPN olayı arayın, pencere kapanmadan önceki son satırı değil.

Proxy kimlik bilgileri ile VPN kimlik bilgileri çoğu zaman farklı ekiplerin elindeki farklı kimliklerdir. 407, VPN hesabının yanlış parolası değildir ve reddedilen bir sertifika proxy izin sorunu değildir.

CONNECT neyi açığa çıkarmaz

Açık bir CONNECT tüneli dinleme değildir. Proxy baytları iletir ve VPN'in TLS oturumunu sonlandırmaz; bu yüzden istemcinin sunucu sertifikasını doğrulaması anlamlı kalır ve açık kalmalıdır. Bir proxy'yi aşmak için doğrulamayı kapatmak, sizinkinden farklı bir sorunu çözer.

Bir kuruluşun TLS'i bilerek sonlandırdığı ve denetlediği ayrı düzenlemeler vardır. Bunlar kendi güven yapılandırmalarını ve kendi politika kararlarını gerektirir ve sıradan bir http-proxy satırının istediği şey değildir.

TCP içinde TCP'nin maliyeti

Tüneli TCP üzerinden taşımak dış akışı düzenli ve yeniden iletimli tutar; iç trafik de genellikle TCP'dir. İki kurtarma mekanizması eşgüdüm sağlamaz, bu yüzden tek bir kayıp segment, o dış akışı paylaşan her şeyi yeniden iletilene kadar durdurabilir. Bu, uyumluluk için gerçek bir değiş tokuştur, ücretsiz bir yükseltme değildir.

Ağ size başka seçenek bırakmadığında proxy yolunu kullanın ve politikanın izin verdiği yerlerde doğrudan UDP yolunu tercih edin. Her durumda, bir değişiklikten sonra aynı proxy, hedef ve profilin sonraki aşamaya ulaştığını doğrulayın; o adreste sayfa yükleyen bir tarayıcı başka bir protokol çalıştırır ve tünel hakkında hiçbir şey kanıtlamaz.

İlgili makaleler