HTTP proxy üzerinden OpenVPN: önce CONNECT yanıtını okuyun
CONNECT proxy baytları iletir, bu yüzden iki uç da TCP gerektirir. Sertifikaları suçlamadan önce 407, 403 ve 503'ü okuyun ve sunucu doğrulamasını açık tutun.
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 3128Sunucu 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 reply | What it means | Where to look next |
|---|---|---|
407 Proxy Authentication Required | The proxy wants its own credentials | The client's proxy auth options, not the VPN account |
403 Forbidden | The destination or method is not permitted | The proxy's access policy for that host and port |
503 Service Unavailable | The proxy could not complete the upstream connection | The 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.