Tunel nefunguje, bezpečnostná skupina už povoľuje všetku prevádzku a záver je, že AWS blokuje VPN. Neblokuje nič. Spravovaná brána NAT preposiela dokumentovanú sadu vonkajších protokolov a natívny GRE ani natívny ESP v nej nie sú, takže žiadne pridané pravidlo neprinúti bránu ich prenášať. Pravidlo povolenia a schopnosť transportu sú dve rôzne veci a len jednu z nich môžete zmeniť.

Sada pravidiel nie je sada protokolov

Bezpečnostná skupina rozhoduje, ktorá prevádzka smie opustiť inštanciu. Brána NAT rozhoduje, čo dokáže preložiť a preposlať. Keď platí druhé obmedzenie, permisívne pravidlo vytvára presne ten príznak, ktorý si ľudia nesprávne vysvetľujú ako problém firewallu: pakety opúšťajú inštanciu, riadiaca výmena sa môže aj dokončiť a k partnerovi nič nedorazí.

Špecifikácia protokolov brány NAT od AWS uvádza TCP, UDP a ICMP pre spravovanú službu. To je celá podporovaná sada. Pravidlo povolenia pre iný IP protokol ju nemôže rozšíriť, pretože pravidlo sa vyhodnocuje dávno predtým, než sa dosiahne cesta preposielania brány.

Rozdiel je dôležitý, pretože obe zlyhania vyzerajú z pohľadu klienta rovnako a majú úplne odlišné opravy.

PPTP ukazuje, prečo test portu klame

PPTP je najjasnejší starý príklad kontroly portu, ktorá nič nedokazuje. Otvára riadiace spojenie TCP na porte 1723 a potom prenáša dáta tunela cez GRE, čo je IP protokol 47. Protokol 47 nie je TCP port 47 a tieto dve čísla nemajú nič spoločné okrem zdieľania číslic.

Operátor, ktorý testuje pripojenie na 1723 a vidí dokončené podanie ruky, usúdi, že cesta funguje. Dátový kanál potom nikdy neprepustí jediný paket, pretože brána nemá žiadnu podporu GRE, ktorú by ponúkla. To je výklad požiadaviek starého protokolu, nie rada nasadzovať PPTP, ktorý je roky zastaraný.

Rovnaká úvaha platí pre každý protokol, ktorého riadiaci kanál je TCP alebo UDP, zatiaľ čo jeho dátová cesta nie.

IPsec prežíva len ako UDP

IPsec je prípad, keď je odpoveď podmienená, nie rozhodné nie. AWS dokumentuje NAT traversal ako podporované usporiadanie pre IPsec cez bránu NAT. Po vyjednaní NAT-T sa ESP zapuzdruje do UDP a brána vidí bežný UDP namiesto protokolu 50.

Povolenie UDP 4500 neprinúti koncové body používať NAT traversal. Povoľuje pakety len vtedy, ak už takto vytvorené sú. Overte z vlastného vyjednávacieho výstupu klienta, ktoré zapuzdrenie bolo zvolené, a overte na prijímajúcej strane, že partner ho prijal. Dva koncové body nakonfigurované pre natívny ESP budú naďalej posielať natívny ESP, nech sada pravidiel hovorí čokoľvek.

VPN založená na TCP alebo UDP zapadá do dokumentovanej sady transportov a napriek tomu môže zlyhať z dôvodov smerovania, filtrovania alebo overovania. Zapadať do sady je nutné, nie postačujúce.

Skontrolujte cestu skôr, než rozšírite politiku

Overte skutočnú trasu podsiete pracovnej záťaže a totožnosť jej ďalšieho skoku najprv. Priama verejná cesta, inštancia NAT, spravovaná brána NAT a súkromná cesta cez tranzitnú bránu sú štyri rôzne návrhy a len jeden z nich je tu opísaná spravovaná služba.

Potom zaznamenajte pokusný koncový bod, rodinu adries, vonkajší protokol a port, kde ho protokol má. Použite diagnostiku klienta a pozorovania toku vlastníka siete namiesto úspešnej požiadavky prehliadača, ktorá dokazuje len to, že TCP a UDP fungujú. Potom prejdite bezpečnostnú skupinu, ACL podsiete, firewall hosťa a politiku služby pre oba smery toku.

Neotvárajte všetku prevádzku, aby ste kompenzovali transport, ktorý služba nevie preniesť. Zmena pravidla to neopraví a prežije incident.

Keď transport nevyhovuje

Ak je vonkajší protokol mimo podporovanej sady, oprava je architektonická: vyberte transport, ktorý cesta unesie, alebo presuňte výstup na niečo, čo prenesie ten, ktorý potrebujete. OpenVPN cez UDP, WireGuard cez UDP a tunely založené na TLS všetky zapadajú do dokumentovanej sady. Inštancia NAT spravovaná klientom je možnosť, keď musí prejsť konkrétny protokol a prevádzkové náklady na jej udržiavanie sú prijateľné.

Hostovanie prichádzajúceho VPN servera je samostatný problém so samostatnou odpoveďou. Brána NAT poskytuje odchádzajúci preklad a žiadne všeobecné presmerovanie prichádzajúcich portov, takže server za ňou potrebuje svoj schválený verejný vstup navrhnutý podľa vlastných podmienok.

Poradie práce: pomenujte vonkajší protokol, potvrďte ďalší skok, porovnajte ho s dokumentovanou sadou a potom zmeňte architektúru alebo transport. Iné číslo portu nepremení GRE na TCP a ďalšie permisívne pravidlo nepremení dokončenú riadiacu výmenu na funkčný dátový kanál.

Súvisiace články