AWS Client VPN végpont DNS: miért vall kudarcot a feloldott IP rögzítése
Cserélje ki az AWS Client VPN végpont nevét a feloldott címre, és az alagút később leáll. Tartsa meg az exportált nevet és annak véletlen előtagját.
Múlt héten dig +short egy címet adott az AWS Client VPN-profilja végpontnevéhez, és az alagút csatlakozott. Ezen a héten ugyanaz a profil 'Connecting' állapotban áll a laptopján, miközben egy kolléga érintetlen másolata továbbra is működik. Semmit nem blokkoltak, és a tanúsítvány nem járt le. Valaki lecserélte a végpont gazdagépnevét arra a feloldott címre, és a szolgáltatás már nem válaszol ott. Az exportált név az a rész, amelyet arra építettek, hogy túlélje ezt a változást.
Lehet, hogy a profilban lévő név nem az a név, amelyre a lekérdezés irányul
A Client VPN-ből exportált profilok gyakran tartalmaznak remote-random-hostname. Ha ez a beállítás be van kapcsolva, a kliens egy eldobható címkét épít, ponttal hozzáfűzi a végpont nevéhez, és feloldja az összetett nevet. A végpont zónájában lévő wildcard rekord bármely címkére válaszol, ezért oldódik fel egy kitalált előtag is, és ezért marad láthatatlan a trükk, amikor kézzel próbálja megismételni a lekérdezést.
Tehát amikor beilleszti a végpont nevét egy terminálba, és választ kap, más nevet oldott fel, mint amelyet a kliens csatlakozáskor használ. Ez az eltérés nem a profilban javítandó hiba. A címke szándékosan újragenerálódik: a beállítás megakadályozza, hogy a gyorsítótárak elavult választ tartsanak, és soha nem azonosítja a gépét vagy a munkamenetét.
Találkoztam azzal a kompatibilitási esettel, amikor a kliens teljesen figyelmen kívül hagyja a beállítást. Az AWS dokumentálja a megkerülést: tartsa meg az igazi végpontnevet, és tegyen elé egy véletlen karakterláncot meg egy pontot, névadási mintának tekintve, nem beillesztendő értéknek. Ezt egy régi kliensen alkalmazni észszerű; az előtagos karakterláncot végpontként keménykódolni nem az.
Miért nem maradhat helyes egy elmentett válasz
A Client VPN végpontcímeit az AWS kezeli, és idővel változnak, amit a legjobb gyakorlatok dokumentációja egyenesen kimond. A rögzített válasz egyetlen feloldás pillanatképe. Az ezt keménykódoló profil olyan profillá válik, amely egy üzemen kívül helyezett gazdagépre mutat, amint a szolgáltatás elmozdul, és a hiba ritkán hasonlít DNS-re: kapcsolódási időtúllépést vagy megakadt kézfogást kap, ezért az emberek az útválasztás és a tanúsítványok után rohannak.
Ugyanaz a válasz a /etc/hosts fájlban ugyanazt a lejáratot örökli egy plusz problémával. A hosts bejegyzés túléli az újraindításokat, az újraexportálást és a 'telepítse újra a klienst' javításokat, ezért a hiba minden alkalommal visszatér, amikor a cím elmozdul. Láttam egyet hetekig ártalmatlanul állni, majd minden gépet kikapcsolni, amely hordozta, miközben a friss telepítések normálisan csatlakoztak. Ez a szakadás, az egyik csoport hibázik, a másik rendben van ugyanabban a fiókban, a legolcsóbb nyom, amit kaphat.
A véletlenszerűsítés hatókörét is helyesen határozza meg. Kapcsolódási kísérletenként történik. A kiépült alagút nem oldja fel újra a végpontját, nem vált szervert a munkamenet közepén, és az egyes alkalmazáskérések nem választanak külön-külön új VPN-gazdagépet. Csak a következő kísérlet old fel újra, ezért az egész délután működő munkamenet semmit nem mond a holnap reggelről.
Mit ellenőriz a szolgáltatás, amikor az alagút feláll
A Client VPN megköveteli, hogy a csatlakozott cím megegyezzen a végpont DNS-nevéhez feloldott címmel. Ez az egy követelmény magyaráz több összefüggéstelennek tűnő hibát: egy máshová mutató egyéni DNS-rekordot, egy egyéni frontendet, amely a valódi végpontcímre továbbít, és egy nyers címre átírt profilt. Az AWS az egyéni rekord plusz továbbítás elrendezését hibaként dokumentálja az újabb AWS-kliensekkel. Az ellenőrzés szűk; nem mondja ki, hogy minden alias tilos.
Ez sem általános szabály a VPN-protokollokról. A numerikus remote teljesen érvényes egy szokásos OpenVPN-telepítésben, és sok így működik. A korlát a kezelt elrendezésből jön, nem az alatta lévő protokollból.
Ami a tanúsítvány-ellenőrzés lazítását rossz reflexszé teszi. Ha egy profil címcsere után meghibásodik, a kiszolgáló-ellenőrzés kikapcsolása elmozdítja a hibát ahelyett, hogy helyrehozná a feloldást vagy a címeegyezés követelményét, és olyan klienst hagy hátra, amely bármiben bízni fog. Tartsa meg az exportált CA-t, a kiszolgáló-ellenőrzést és a kölcsönös hitelesítés beállításait pontosan úgy, ahogy érkeztek.
Az engedélylisták, a kimenő forgalom és a privát DNS három külön probléma
A tűzfal-szabály, amelynek engedélyeznie kell egy célállomást, mielőtt a laptop csatlakozik, a külső figyelőről szól. Adja meg a hálózat tulajdonosának a végpontnevet, a szállítást és a beállított portot, majd kérdezze meg, követheti-e az irányításuk a szolgáltatás DNS-viselkedését. Az egyetlen rögzített címet tartó szabály íratlan lejáratú pillanatkép. Ha az irányítás csak változatlan célokat fogad el, a bevezetés előtt zárja be ezt a rést, ahelyett hogy csendben keménykódolna egy választ.
A partnernek, akinek fix forráscímre van szüksége az alagút felállása utáni kérésekhez, más a követelménye: a kimenő forgalom. Hogy egy webhely mit lát, az alkalmazásútvonaltól és az osztott alagút szabályzatától függ, nem attól a címtől, amelyhez a kliens csatlakozott. Az osztott alagút forgalma egyáltalán nem is érintheti az AWS-t.
Az alagúton belüli privát DNS a harmadik réteg. A klienseknek adott feloldó a csatlakozás után belső nevekre válaszol; a nyilvános végpontot nem tudja feloldani, mielőtt az alagút létezik. A végpontfeloldási hiba és a belső alkalmazásfeloldási hiba különböző szakaszokban történik, és összekeverésük a rossz naplóhoz vezet.
A címcsalád ugyanarra a listára tartozik. Az IPv4-válasz semmit nem mond az IPv6-os vagy kettős vermű végpont engedélyezett útvonaláról, ezért az egyik családban készült pillanatkép nem bizonyíték a másikra.
Ellenőrizzen kapcsolatot anélkül, hogy bármit rögzítene
Kezdje az exportált profillal, és olvassa el, mit kér valójában:
grep -nE '^remote|remote-random-hostname' profile.ovpn
dig +short cvpn-endpoint-ID.prod.clientvpn.REGION.amazonaws.com
ss -tnp | grep -E ':(443|1194)'Ezután hasonlítson össze három dolgot: a profilban lévő végpontnevet, a kliens által egy friss kísérlethez jelentett címet, és azt, hogy a név most mire oldódik fel. A feloldódó név csak azt bizonyítja, hogy a rekord válaszol; a szállítás és a hitelesítés különálló, és a végpontnak nem kell pingre válaszolnia. A középső elemhez egyedül a kliens saját naplója a forrás, ezért a kísérlet alatt rögzítse, nem utána.
| What you see | Usual cause | Next check |
|---|---|---|
| One machine fails, others connect | Pinned address or stale hosts entry on that machine | Diff its profile and hosts file against a working copy |
| Everyone fails at once, no config change | The endpoint address rotated | Confirm the current endpoint configuration with the account owner |
| Tunnel up, internal names fail | Client DNS policy, not endpoint resolution | Inspect the resolver pushed after connection |
A ma válaszoló cím a méről a bizonyíték; a név az, amit a szolgáltatás érvényben tart. Jegyezze fel a megfigyelést, küldje el a végpont tulajdonosának, és hagyja a profilt a névre mutatni.
Két szokást el kell hagyni: a tanúsítvány-ellenőrzések kikapcsolását egy megakadt kézfogás átlépéséhez, és a címkék halmozását a végpontnév elé abban a reményben, hogy az egyik megragad. A címke a wildcard rekordon keresztül oldódik fel, vagy a probléma máshol van. Ha egy helyesen beállított profil továbbra is meghibásodik, a pontos lekérdezést és a kapcsolódási eseményt küldje el, nem hosszabb gazdagépnevet.
Mielőtt lezárja: a profil továbbra is az exportált végpontnevet hordozza, semmilyen hosts fájl nem rögzíti a címet, a kliensnapló remote értéke aktuális feloldásnak felel meg, és a tűzfalszabály a végpontot nevezi meg, nem egy címet. Ez az az állapot is, amelyet át kell adni a következő embernek.