Vložíte adresu z uvítacího e-mailu, klient se dostane k bráně a přihlašovací formulář, který se objeví, je obecný portál, nikoli partnerský, který popsal operátor. Nic nehlásí chybu, a právě to mate: tunel se může dokonce zvednout, jen za špatným vstupním bodem. Cesta v té URL dělala práci a co ji nahradilo, tu práci zahodilo.

Oddělte dvě věci, které v tiketu přicházejí jako jeden řetězec: adresu, která se dostane ke službě, a vstup, který rozhoduje, kde začíná autentizace. Opravit první a ignorovat druhou je způsob, jak správný název hostitele stále dává špatné přihlášení.

Co klient pošle, než uvidíte formulář

S adresou jako https://vpn.example.net/partners je prvním krokem klienta požadavek HTTPS na tuto cestu, nikoli na holý hostitel. Zpět obvykle přichází přesměrování na přihlašovací koncový bod, nebo samotný formulář. Klient, kterému dáte jen vpn.example.net, začne na výchozí přistávací stránce, ať už je jakákoli, což může být jiný portál, jiný seznam skupin nebo stránka očekávající úplně jiný protokol. Rozdíl je vidět v hlavičkách odpovědi dávno předtím, než je zadán jakýkoli údaj.

Proto funkční karta prohlížeče a nefunkční profil klienta mohou jmenovat stejnou bránu a přesto se rozcházet. Prohlížeč šel po cestě; profil ji nikdy neměl.

Dva vstupy, které vypadají zaměnitelně a nejsou

OpenConnect vystavuje počáteční cestu HTTPS jako --usergroup a stránka manuálu považuje plnou URL s touto cestou za tentýž požadavek napsaný jinak. --authgroup je samostatná volba: vybírá záznam ze seznamu, který brána zobrazuje uvnitř přihlašovacího formuláře. Některé protokoly nazývají tento záznam skupinou, jiné doménou nebo bránou, a právě tady se oba přepínače pletou.

Služba může legitimně potřebovat obojí. Cesta vás může dostat na správný portál, zatímco formulář po vás stále chce vybrat skupinu uvnitř něj. Zadání názvu portálu jako názvu skupiny, nebo naopak, vytvoří přihlášení, které vypadá přijaté a pak neautorizuje, protože hodnota byla syntakticky platná a sémanticky špatná.

Požádejte operátora o každou hodnotu na samostatném řádku: vstupní cestu, volbu ve formuláři a zda jsou potřeba obě. Neodvozujte jedno z druhého jen proto, že popisky znějí podobně.

Proč zkrácení cesty mění výsledek

Klienti, kteří přijímají jen hostitele a port, se často stejně připojí, takže symptom je zřídka tvrdé selhání. Místo toho dostanete špatnou přihlašovací stránku, prázdný seznam skupin, název certifikátu, který už neodpovídá tomu, co operátor publikoval, nebo tunel, který se zvedne bez trasy ke službě, kterou jste chtěli. Každý z nich sedí v jiné vrstvě a žádný se neopraví vložením delšího řetězce do pole dokumentovaného jako název hostitele. Dva z nich jsou také zvenčí nerozlišitelné, protože oba přicházejí jako přihlašovací formulář, který prostě nepokračuje.

Nahrazení názvu hostitele adresou IP je samostatná chyba, která s touto často cestuje. Výběr služby podle názvu i ověření certifikátu závisí na názvu, takže číselná adresa může proměnit problém formátu cesty v chybu TLS.

Adresy v prohlížeči nesou i víc než cesty. Identifikátory relace, cíle přesměrování, jazykové předpony a dočasné přihlašovací parametry se všechny objevují v adresním řádku a nic z toho nepatří do uloženého profilu klienta.

Potvrďte vstupní bod, než upravíte cokoli dalšího

Přečtěte si hlavičky pro cestu, kterou jste dostali. Požadavek jako curl -sS -o /dev/null -D - https://vpn.example.net/partners vypíše stavový řádek a případnou hlavičku Location, aniž by následoval přesměrování. 302 ukazující na pojmenovaný přihlašovací koncový bod potvrzuje, že cesta existuje, a ukazuje, kam vede; 404 znamená, že adresa operátora je zastaralá.

Poté reprodukujte stejný vstupní bod ve schváleném klientovi, například openconnect --usergroup=partners vpn.example.net, a sledujte, který formulář se objeví. Pokud je formulář správný a tunel stále selhává, cesta nikdy nebyla problémem a další zastávkou je politika nebo směrování.

Zapište název hostitele, port, protokol, vstupní cestu a volbu ve formuláři jako pět samostatných polí v tiketu. Právě tento seznam umožní dalšímu inženýrovi rozlišit nedostupný server od odmítnutí TLS, odmítnuté volby a tunelu, který se zvedl bez potřebných tras.

Související články