Napíšte názov hostiteľa do prehliadača a schéma rozhodne o cieľovom porte: 80 pre http, 443 pre https. Nič v odpovedi DNS to neprebíja a žiadne pravidlo presmerovania na vašom počítači nemôže na okraji poskytovateľa vymyslieť proces, ktorý počúva. Keď vám poskytovateľ VPN pridelí vysoký verejný port, napríklad 45000, explicitná URL funguje a čistá nie. Medzera je na vstupnom bode, nie vo vnútri aplikácie.

Prejdite cestu od prehliadača k procesu raz a tri možnosti publikovania prestanú vyzerať záhadne.

Pozrite sa, kam požiadavka skutočne ide

Prehliadač preloží názov na adresu a potom sa pripojí k tejto adrese na predvolenom porte schémy, ak URL neuvádza iný. O tom, čo sa stane s prichádzajúcim pripojením, rozhoduje okraj vášho poskytovateľa. Ak jeho presmerovacia tabuľka mapuje na vašu internú adresu len 45000, pripojenie na 80 nemá kam ísť a je odmietnuté alebo zahodené skôr, než sa váš počítač vôbec zapojí.

Toto odmietnutie sa deje na okraji, a preto vaše záznamy aplikácie neukazujú nič. Neprítomnosť záznamov je dôkazom o tom, kde sa paket zastavil, nie dôkazom, že aplikácia je pokazená.

Prečo lokálne pravidlo okraj neopraví

Presmerovanie alebo pravidlo DNAT na hostiteľovi aplikácie pôsobí na pakety, ktoré už dorazili. Pakety odoslané na port 80 u poskytovateľa nikdy nedorazia, takže pravidlo sa nikdy nevyhodnotí. Toto je najčastejšie premrhaná hodina v celom probléme.

Ani DNS nemôže prenášať port. špecifikácia HTTP definuje predvolené hodnoty schémy a záznam A alebo AAAA vracia adresu, zatiaľ čo CNAME vracia iné meno. Prehliadač stále pripája port schémy, takže cieľ mení len explicitný port v URL.

Možnosť prvá: zachovať explicitný port

Často je správna odpoveď tá neokázalá. Zverejnite plnú URL s portom, ukončite TLS na vstupe, ktorý to podporuje, a uistite sa, že každý generovaný odkaz zachováva rovnaký pôvod. Pre malé, kontrolované publikum je to úplné a nestojí to nič okrem viditeľného čísla portu.

Skontrolujte presmerovania a rozsah cookies, kým ste tam, pretože backend, ktorý zapisuje svoje vlastné meno hostiteľa do hlavičky Location, celé usporiadanie ruší.

Možnosť druhá: získať skutočný vstup na predvolenom porte

Niektorí poskytovatelia a hostingové riešenia preposielajú 80 a 443 na zdieľanej alebo vyhradenej adrese ako dokumentovanú službu. Spýtajte sa, čo je skutočne zahrnuté, namiesto toho, aby ste predpokladali, že verejná výstupná adresa znamená ľubovoľné prichádzajúce porty. Vyhradená výstupná adresa nič nehovorí o prichádzajúcom preposielaní.

Potvrďte vlastníctvo a dostupnosť písomne, vrátane toho, čo sa stane so vstupom, keď sa tunel znovu pripojí s inou adresou. Vstup, ktorý sa pohybuje s tunelom, vytvára výpadky, ktoré vyzerajú ako poruchy DNS.

Možnosť tretia: postaviť dopredu frontend

Reverzný proxy na dostupnej adrese môže počúvať na 443 a ukončiť TLS a otvoriť samostatné spojenie s backendom cez VPN. Návštevníci vidia meno a predvolený port frontendu, zatiaľ čo frontend hovorí s vysokým portom backendu vo vašom mene. Funguje to, pretože to mení architektúru namiesto boja so vstupným bodom. Backend potom na verejnom internete nepotrebuje žiadny prichádzajúci port.

Mení to aj to, čo prevádzkujete. Frontend vlastní verejné TLS, prístupovú politiku, záznamy a dostupnosť a musí obmedziť výber backendu na zamýšľanú službu. Ak skok z frontendu na backend používa HTTPS, ponechajte na tomto skoku overovanie certifikátu.

Zachovajte jeden pôvod

Verejné meno hostiteľa, schéma a port frontendu tvoria pôvod, ktorý návštevníci používajú, preto nakonfigurujte externú URL aplikácie, presmerovania a cookies pre tento pôvod. Posielajte pôvodného hostiteľa a preposlanú schému, ak aplikácia vytvára absolútne odkazy. Odpoveď, ktorá odráža používateľov na súkromné meno alebo vysoký port, ruší čistý vstup, ktorý ste práve postavili.

Potom sa rozhodnite s ohľadom na publikum. Krátka URL môže ospravedlniť spravovaný frontend a nestojí za to omylom premeniť súkromnú službu len pre VPN na verejnú.

Súvisiace články