Yksi OpenVPN-portti, kolme palvelua: miksi sisäiset portit ovat tärkeitä
Yksi tunneli, kolme palvelua, yksi julkinen portti. Erota ulompi VPN-kuuntelija sovellusten sisäisistä porteista ja testaa sitten jokainen sisäinen lupa erikseen.
Yksi SSH-istunto, yksi verkkosovellus ja yksi nimikysely voivat jakaa yhden VPN-yhteyden ilman, että ne tappelevat porteista. Asiakas rakentaa yhden salatun virran yhdyskäytävälle, ja jokainen sovelluskeskustelu kulkee sen sisällä. Ulkopuolelta näkyvät vain tunnelin oma kuljetus ja portti. Sisällä jokainen palvelu pitää oman porttinsa ja tarvitsee edelleen oman lupansa.
Mitä ulompi virta kuljettaa ja mitä se kätkee
Asiakas käärii jokaisen paketin tunnelin kuljetukseen ennen kuin se lähtee koneesta. Tällä ulommalla virralla on yksi kohdeportti, joka kiinnitettiin VPN:ää määritettäessä. Kääreen sisällä jokainen alkuperäinen paketti säilyttää sen palvelun osoitteen ja portin, jota se tavoittelee. Yhdyskäytävä poistaa kääreen ja reitittää sisemmän otsikon perusteella, joten kohde näkee verkosta saapuvan tavallisen asiakkaan.
Siksi WAN-liitännän kaappaus näyttää yhden keskustelun, ei kolmea. Sisemmät portit ilmestyvät vasta purkamisen jälkeen. Siksi yksi palomuurin aukko voi kuljettaa SSH:n, HTTPS:n ja DNS:n samanaikaisesti.
# WAN side: one outer tuple, whatever the inner services are
tcpdump -ni wan0 'udp port 443'
# tunnel side: the inner tuples appear after decapsulation
tcpdump -ni tun0
TUN/TAP-dokumentaatio käsittelee luovutusta, jossa reititetty TUN-laite välittää IP-paketteja ytimen ja käyttäjätilan prosessin välillä. Juuri tämä luovutus tekee sisemmästä otsikosta näkyvän yhdyskäytävän reititys- ja palomuurikoodille. Se selittää myös, miksi ulompi portti ei kerro mitään siitä, mitkä palvelut on sallittu.
NAT-edelleenlähetys kuuluu kuuntelijalle, ei sovelluksille
IPv4 NAT:n takana oleva itse ylläpidetty yhdyskäytävä tarvitsee yhden saapuvan käännöksen: julkinen osoite ja portti kartoitetaan VPN-kuuntelijalle. SSH:lle, HTTPS:lle tai DNS:lle ei tarvita sääntöä vain siksi, että tunnelin käyttäjät pääsevät niihin. Näiden porttien julkaiseminen paljastaisi palveluja, joita tunneli jo suojaa. Edelleenlähetyssääntö kuvaa kuuntelijan saavutettavuutta, ei lupaa millekään sisällä.
Päinvastainen pätee myös. Tunnelin portin avaaminen ei paljasta mitään muuta, joten vain tunnelin kautta saavutettava palvelu pitää julkisen pintansa suljettuna. Tämä erottelu on yleensä juuri syy pitää palvelu yksityisenä.
Sisäinen käytäntö on se, missä pääsystä todella päätetään
Salaus suojaa polun; se ei valtuuta kohdetta. Asiakkaan reitit valitsevat, mitkä etuliitteet tulevat tunneliin, yhdyskäytävän edelleenlähetyskäytäntö päättää, saavatko paketit lähteä siitä, ja kohteen palomuuri sekä kirjautuminen päättävät, vastaako palvelu. DNS on selvin tapaus: kyselyjen kuljettaminen ei saa ratkaisijaa hyväksymään niitä asiakaspoolistasi. Jokainen kerros voi sanoa ei itsenäisesti.
Testaa jokaista palvelua erikseen tunnelin kautta. Onnistunut haku ei kerro mitään verkkoportista, eikä onnistunut verkkopyyntö kerro mitään SSH:sta.
dig @10.40.0.53 app.corp.example
nc -vz 10.40.0.10 8443
ssh -p 2222 [email protected]
Kun tunneli on pystyssä ja kaikki epäonnistuu, lue ensin asiakkaan reititystaulukko. Kun yksi palvelu epäonnistuu muiden toimiessa, vika on kyseisessä kohteessa. Nämä kaksi havaintoa osoittavat eri omistajiin, ja niiden sekoittaminen tuhlaa aikaa.
WireGuard vetää saman rajan
WireGuard nimeää ulomman kuuntelijansa ListenPort ja sisäsovellus käyttää edelleen tarvitsemaansa palveluporttia. AllowedIPs on joukko reititettyjä etuliitteitä, ei luettelo sallituista palveluporteista. Sen lukeminen porttien sallintaluettelona tuottaa sääntöjä, jotka eivät vastaa sitä, mitä tunneli tekee. Nimeäminen on erilaista; kerrostus ei.
Salli palvelu paikallisen syötteen käytännössä, kun se toimii itse päätepisteessä, tai edelleenlähetyskäytännössä, kun se sijaitsee kyseisen päätepisteen takana. Ero päättää, mikä sääntöjoukko näkee paketin.
Yleinen muoto on yksi ulompi kuljetus, jossa on monta sisäistä keskustelua. Tuotteet, jotka tarvitsevat useita ulompia vaihtoja tai erilaisen IP-protokollan, muistuttavat, että yhden julkisen portin malli kuvaa tätä suunnittelua eikä jokaista VPN:ää.