Dođite do radne stanice iza NAT-a bez prosljeđivanja porta
Radna stanica bez ulaznog porta ipak je dostupna kroz čvorište, relej ili broker aplikacija. Usporedite što svaki dizajn jamči prije nego odaberete jedan.
Dvije krajnje točke iza NAT-a operatera i zaključan uredski usmjerivač ne ostavljaju nijedan ulazni port za prosljeđivanje, a refleks je ipak zatražiti ga. Bolje pitanje je koja strana može zvati prema van i kojoj dostupnoj usluzi je dopušteno nositi promet. Četiri dizajna odgovaraju na to pitanje različito i podbacuju na različite načine kad je put blokiran. Odabir među njima usporedba je jamstava, a ne naziva protokola.
Četiri dizajna, četiri različita obećanja
Tablica ispod je kratka verzija. Čitajte srednji stupac kao obećanje koje možete testirati, a desni stupac kao obećanje koje nitko nije dao.
| Design | Who initiates | Promise you get | Promise you do not get |
|---|---|---|---|
| Routed VPN hub | Both ends, outbound to the hub | A routed path to permitted prefixes | Access to services no policy allows |
| Peer traversal with ICE | Both peers to a rendezvous service | A path tested between the two peers | A direct path through every NAT |
| TURN relay | Client outbound to a relay | Transport that survives symmetric NAT | Peer discovery or a usable directory |
| Application broker | Workstation outbound to a broker | One audited application session | Subnet-wide reachability |
Koji redak vrijedi ovisi o zadatku, a ne o sklonosti. Jedna sesija udaljene radne površine, jedan administrativni shell i pristup cijeloj privatnoj podmreži su tri zahtjeva kojima ne treba ista ulazna točka, čak i kad slučajno uključuju isti stroj.
Čvorište mijenja tko zove prema van, a ne što je dopušteno
U dizajnu s usmjerenim čvorištem udaljeni prijenosnik i radna stanica, ili mrežni prolaz ispred nje, svaki otvara odlazni tunel prema usluzi do koje oba mogu doći. Ništa ne prihvaća neželjenu vezu na usmjerivaču radne stanice, i upravo zato ovaj dizajn preživljava NAT i radi kad lokacija nema statičnu adresu. Zatim čvorište usmjerava promet između dviju unutarnjih adresa prema vlastitoj politici.
Cijena je da čvorište mora postojati, mora biti dostupno s obje strane i netko ga mora voditi. Odlazno filtriranje mora dopustiti prijenos, a mreža koja ga blokira osujetit će dizajn iako nikakvo prosljeđivanje porta nije bilo potrebno.
Suptilan dio je da su dostupnost i autorizacija odvojene odluke donesene na različitim mjestima. Ruta u prefiks ne govori ništa o tome kojoj usluzi na radnoj stanici identitet smije pristupiti, a pravilo vatrozida koje dopušta tunel ne govori ništa o tome može li se račun prijaviti. Konfigurirajte oboje, testirajte oboje i zadržite odluku o autorizaciji uz sustav koji posjeduje resurs, a ne uz tablicu usmjeravanja.
Probijanje radi samo kad ga implementiraju oba stacka
Probijanje između ravnopravnih čvorova sposobnost je određenog sustava, a ne postavka koja poboljšava VPN. Interactive Connectivity Establishment prikuplja nekoliko kandidatnih adresa i testira parove dok jedan ne proradi: kandidate hosta na lokalnim sučeljima, server-refleksivne kandidate izgrađene od onoga što NAT otkrije i relejne kandidate dodijeljene na releju. Privatna adresa sama po sebi nije put, jer druga strana ne može usmjeravati do nje.
Relejni slučaj vrijedi razumjeti prije nego što ga odbacite. RFC 8656 opisuje TURN kao protokol u kojem klijent traži od poslužitelja relejnu prijenosnu adresu, a poslužitelj prosljeđuje promet između tog klijenta i njegovih ravnopravnih čvorova. Relej dakle nosi podatke, što se bitno razlikuje od imenika koji samo pomaže krajnjim točkama da se sretnu. Razmjena relejne adrese s drugom stranom korak je koordinacije koji aplikacija mora izvesti.
Ono što ne možete obećati jest izravan put. Simetrični NAT i neki korporativni vatrozidi osujećuju probijanje rupa, a kad to učine, sustav se ili vraća na relej ili podbacuje. Također ne možete zaključiti da dva prevedena kraja nikad ne mogu razgovarati; podržan stack s relejnim fallbackom postoji upravo zato što često mogu. Odlučite je li važnija dostupnost ili izravnost, pa provjerite koji je put implementacija zaista odabrala, umjesto da pretpostavite povoljan slučaj.
Broker je uži od mreže
Kad je zahtjev jedna aplikacija, broker aplikacija ili obrnuta veza koju pokrene radna stanica može biti najmanji odgovor. Radna stanica zove prema van do brokera, broker autentificira udaljenog korisnika i nosi se samo ta aplikacijska sesija. Nikakva ruta do podmreže radne stanice ne nastaje, pa kompromitacija udaljene sesije ne nasljeđuje put do svakog uređaja pokraj nje.
Ta uskost ima cijenu: svaka dodatna aplikacija treba vlastitu integraciju, a sve što aplikacija pretpostavi o lokalnoj mreži, poput dijeljenja datoteka koje otvori na obližnjem poslužitelju, možda neće biti dostupno. Brokeri također koncentriraju politiku i zapisivanje na jednom mjestu, što je korisno dok to mjesto ne postane ispad.
Usporedite granice povjerenja, pa testirajte put
Čvorište koje završava tunele može čitati promet koji usmjerava. Relej može nositi neovisno zaštićenu razmjenu kad aplikacija šifrira od kraja do kraja, a broker obično završava sesiju koju predstavlja. Utvrdite gdje zaštita zaista prestaje prije nego zaključite da su dva dizajna ekvivalentna jer su oba šifrirana.
Zatim provjerite do čega radna stanica zaista dolazi prema van, jer svaki dizajn iznad ovisi o tome. Pokrenite ovo na radnoj stanici, zamjenjujući ime hosta koje namjeravate koristiti.
ss -lntup
nc -vz hub.example.com 443
curl -sS -o /dev/null -w "%{http_code}\n" https://hub.example.com
Prihvatite dizajn tek kad namjeravana udaljena operacija uspije pod dopuštenim identitetom, neodobreni identitet bude odbijen, a ponašanje kad izravan ili relejni put nije dostupan bude poznato i dokumentirano. Uključite ponovno povezivanje i uobičajen kontekst pokretanja radne stanice, jer sesija koja je počela u uredu preko LAN-a ne testira ništa o čemu ovisi udaljeni pristup.