Ohjaa VPN-asiakas yrityksen HTTP-välityspalvelimeen, ja ensimmäinen hyödyllinen tosiasia on, ettei välityspalvelin puhu VPN:n protokollaa. Se avaa tavallisen TCP-yhteyden ilmoittamaasi osoitteeseen ja siirtyy sitten sivuun, jättäen asiakkaan ja palvelimen tekemään oman vaihtonsa tuon virran kautta. Kaiken, mitä asiakas tarvitsee, siirtotyypistä palvelimen kuuntelijaan, on vastattava tätä järjestelyä. Kaksi yhteensopimattomuutta selittää useimmat epäonnistumiset: UDP-profiili, joka on suunnattu CONNECT-välityspalvelimelle, ja välityspalvelimen vastaus, joka tulkitaan VPN-virheeksi.

Mitä välityspalvelin kuljettaa ja mitä ei

Välityspalvelin on vain siirtoporras. Siitä ei tule selaimesi välityspalvelinta, se ei tallenna välimuistiin sivustoja, joilla käyt tunnelin kautta, eikä se näe sisäistä liikennettä, ellei joku ole tarkoituksella määrittänyt tarkastusta. Avaamansa tunneli on sille suunnittelun mukaan läpinäkymätön.

Se tarkoittaa myös, ettei välityspalvelin voi korjata palvelinta, jolla ei ole vastaavaa kuuntelijaa. Lupa päästä kohteeseen ja kyseisessä kohteessa kuunteleva palvelu ovat kaksi erillistä tosiasiaa, ja vain ensimmäinen kuuluu välityspalvelimen ylläpitäjälle.

Kantajan on oltava TCP molemmissa päissä

Tavanomainen CONNECT-välityspalvelin välittää vain tavuvirran , joten asiakkaan on käytettävä virtaista siirtoa. Asiakas katkelma tuota tapausta varten näyttää tältä:

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

Palvelinpuoli tarvitsee todellisen TCP-kuuntelijan portissa, joka mainitaan remote-rivillä. Profiilissa proto udp vaihtaminen muotoon proto tcp-client luo asiakkaan, joka odottaa virtaa; se ei luo virtaa toisella puolella. Jos sama palvelin vastaa samassa portissa myös UDP:lla, se on eri kuuntelija, ei saman toinen tila.

Missä on erillinen TCP-instanssi, sen tunnelilaite, osoiteallas ja reititys ovat omia resurssejaan. Toimivan kokoonpanon kopioiminen ja siirtosanomun muuttaminen jättää nämä resurssit osoittamaan alkuperäiseen instanssiin, mikä tuottaa yhteyden, joka todentuu ja sitten ei reititä mitään.

Lue välityspalvelimen vastaus ennen VPN-tulosta

Asiakkaan ensimmäinen vaihto on pyyntörivi, joka nimeää kohdeisännän ja portin. Vastaus tuolle riville kertoo, onko tavuvirtaa ylipäätään olemassa, ja se saapuu ennen kuin mitään varmennetta tai tunnistetta tarkistetaan:

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

Luokan 200 vastaus CONNECT-pyyntöön tarkoittaa, että virta on olemassa. Se ei kerro, onko yhdyskäytävän varmenne luotettu, täsmääkö jaettu avain tai onko käyttäjätili kelvollinen. Ne tarkistukset tapahtuvat myöhemmin virran sisällä, ja ne epäonnistuvat asiakkaan omilla viesteillä eivätkä HTTP-tilarivillä. Etsi asiakkaan lokista ensimmäinen OpenVPN tapahtuma välityspalvelimen kättelyn jälkeen, älä viimeistä riviä ennen ikkunan sulkeutumista.

Välityspalvelimen tunnistetiedot ja VPN:n tunnistetiedot ovat usein eri identiteettejä eri tiimien hallussa. 407 ei ole VPN-tilin huono salasana, eikä hylätty varmenne ole välityspalvelimen käyttöoikeusongelma.

Mitä CONNECT ei paljasta

Selkeä CONNECT-tunneli ei ole sieppaus. Välityspalvelin välittää tavuja eikä lopeta VPN:n TLS-istuntoa, joten asiakkaan suorittama palvelinvarmenteen vahvistus pysyy merkityksellisenä ja sen pitäisi pysyä päällä. Vahvistuksen poistaminen käytöstä välityspalvelimen ohittamiseksi ratkaisee eri ongelman kuin sinun.

On erillisiä järjestelyjä, joissa organisaatio lopettaa ja tarkastaa TLS:n tarkoituksella. Ne vaativat oman luottamusmäärityksensä ja oman käytäntöpäätöksensä, eivätkä ne ole se, mitä tavallinen http-proxy-rivi pyytää.

TCP:n hinta TCP:n sisällä

Tunnelin kuljettaminen TCP:n yli pitää ulomman virran järjestyksessä ja uudelleenlähetettynä, ja sisäinen liikenne on yleensä myös TCP:tä. Kaksi palautumismekanismia ei koordinoi, joten yksi kadonnut segmentti voi pysäyttää kaiken, mikä jakaa tuon ulomman virran, kunnes se lähetetään uudelleen. Se on todellinen vaihtokauppa yhteensopivuudesta, ei ilmainen päivitys.

Käytä välityspalvelimen polkua, kun verkko ei jätä sinulle vaihtoehtoa, ja suosi suoraa UDP-polkua siellä, missä käytäntö sallii. Joka tapauksessa varmista muutoksen jälkeen, että sama välityspalvelin, kohde ja profiili saavuttavat seuraavan vaiheen; selain, joka lataa sivun tuossa osoitteessa, käyttää toista protokollaa eikä todista tunnelista mitään.

Aiheeseen liittyvät artikkelit