AWS Client VPN ass verbonnen, awer EC2 äntwert nach ëmmer net
Verbonnen heescht just, datt den Zertifikat oder de SAML-Login fonctionnéiert huet. Autorisatiounsregelen, Endpoint-Routen an Sécherheetsgruppe bewaachen all een Deel vum Wee bei en private Host.
Mäin Laptop huet verbonnen uginn. Den AWS Client VPN-Client huet säi gréngen Zoustand gewisen, den Endpoint huet eng Sessioun protokolléiert, an trotzdem konnt ech keen MongoDB-Port op enger EC2-Instanz an engem private Subnetz opmaachen. Nichts war offensichtlech futti: den Zertifikat war gülteg, de Profil koum aus der Konsole, an den Tunnel huet Verkéier gedroen. De Feeler war mäin, well ech verbonnen als autoriséiert gelies hunn.
De Login äntwert op genee eng Fro: däerf dës Identitéit eng Sessioun opbauen? Alles duerno entscheeden eegel Regelen, déi Ären Zertifikat ni gesinn. Eng Sessioun déi sech authentifizéiert an e Paket deen ukënnt sinn zwee verschidde Succèsen, an de Spalt dozwëschen ass do wou déi meescht Meldungen vum Typ de VPN steet awer den Host ass net erreechbar wunnen.
D'Kontrollen hei drënner sinn d'Uerdnung déi ech elo benotzen.
Wat eng verbonnen Sessioun tatsächlech beweise kann
Wärend dem Handshake validéiert den Endpoint de Client-Zertifikat géint säin Trust Store, oder leet de Browser op Ären Identity Provider ëm, wann SAML konfiguréiert ass. Wann dat duerchgeet, kritt de Client eng Adress aus dem Client-CIDR vum Endpoint an d'Konsole weist eng aktiv Verbindung. Zu kengem Zäitpunkt vun deem Austausch freet eppes ob Dir 10.0.4.17 op Port 27017 erreeche kënnt.
D'Erlaabnis fir en Zil ass en eegene Objet um Endpoint. All Flow gëtt géint d'Autorisatiounsregelen ofgeglach, an all Regel verbënnt en Zil-CIDR mat der Grupp där d'Regel gëtt. Wann keng Regel d'Zil deckt, akzeptéiert den Endpoint d'Sessioun an verwërft de Verkéier. Et gëtt keen Banner, keng Reconnect-Schleef an näischt an der Client-Interface dat refuséiert seet.
Vergläicht d'Autorisatiounsregel mat der Ressource, net mat der VPC
Lëscht d'Regelen op a setzt se niewent d'Adress déi d'Instanz tatsächlech huet:
aws ec2 describe-client-vpn-authorization-rules \
--client-vpn-endpoint-id cvpn-endpoint-0a1b2c3d4e5f6a7b8D'Ausgab weist pro Regel en Zil-CIDR an eng Grupp-ID. Dobannen verstoppen sech zwee Feeler. D'Regel kann 10.0.0.0/16 autoriséieren während d'Instanz an enger gepeerter VPC op 10.1.0.0/16 sëtzt; d'Peering-Route existéiert, awer kee well eng Autorisatiounsregel fir den zweeten Beräich geschriwwen. Oder d'Regel weist op eng Verzeechnisgrupp an där de Benotzer am Verzeechnis Member ass, awer net an der Grupp déi den Endpoint auswäert.
Schreift déi schmuelst Regel déi d'Zil deckt, a füügt eng zweet nëmmen dann derbäi wann en zweet CIDR wierklech néideg ass. Eng breet 0.0.0.0/0-Regel aus engem Quick Start funktionéiert, an dofir iwwerlieft se an d'Produktioun an deckt de Modell zou.
Zwee Routentabellen entscheeden ob d'Paket sech beweegt
Eng Endpoint-Route mappt en Zil-CIDR op ee vun de Subnetzer mat deenen den Endpoint verbonnen ass. Dat ass d'Halschent vum Wee. D'Routentabell vum Subnetz selwer muss nach ëmmer wëssen wéi d'Paket weidergeleet gëtt, an dat zielt an deem Moment wou d'Zil hannert enger Peering-Verbindung, engem Transit Gateway oder engem lokale Beräich läit deen iwwer en Site-to-Site-Tunnel erreechbar ass.
aws ec2 describe-client-vpn-routes \
--client-vpn-endpoint-id cvpn-endpoint-0a1b2c3d4e5f6a7b8Sicht eng Route där hiert Zil mam CIDR vun der Ressource iwwerenee kënnt an där hiert Zil en associéierten Subnetz ass. Wann d'Route feelt, füügt se derbäi. Wann se do ass an den Host nach ëmmer stëll ass, ass de Spalt op der VPC-Säit, also vergläicht mat der Routentabell vum Associatiouns-Subnetz.
Eng Astellung op der Client-Säit brécht d'Routing ouni den Tunnel ze briechen: e Profil mat route-nopull. D'Direktiv seet engem OpenVPN-baséierte Client d'Routen ze ignoréieren déi de Server dréckt, sou datt d'Interface nëmme mat der eegener Adress vum Endpoint eropkënnt an d'Zil einfach keng Route huet. Kontrolléiert mat ip route show op Linux oder netstat -rn op macOS ob et eng Route iwwer d'tun-Interface gëtt. Wann net, hëlt route-nopull aus dem exportéierte Profil eraus a verbënnt Iech erëm sou datt déi gedréckte Routen ugewannt ginn.
Sécherheetsgruppe gesinn Är Client-Adress net
Dëst ass den Deel wou ech en nomëtteg laang falsch louch. Fir en IPv4-Endpoint dee mat engem Subnetz verbonnen ass, iwwersetzt de Service d'Quelladress vum Client an d'Adress vun der Netzwierk-Interface vum Endpoint an deem Subnetz. D'Paket dat bei der Instanz ukënnt dréit d'Adress net déi Äre Client ugewisen huet, also eng Sécherheetsgruppregel déi de Client-Pool, soe mer 172.16.0.0/22, erlaabt, passt op näischt.
Erlaabt de Port aus der Sécherheetsgrupp vum Endpoint, déi un der Interface vun der Associatioun hänkt, an net aus dem Client-CIDR. Op d'Grupp ze referenzéieren ass dauerhafter wéi eng Adress ze hardcodéieren, well d'Adress vun der Interface net Är ass ze kontrolléieren. Netz-ACLe si stateslos, also wou et eege Bäiträg gëtt, mussen déi erakommend an déi erausgoend Richtung de Flow erlaben.
Verbindt Iech och mat der privater Adress vun der Instanz. Eng ëffentlech IP bréngt d'Paket aus der VPC eraus an iwwer en anere Wee mat aneren Regelen erëm eran, also seet en ëffentlechen Test näischt iwwer de private Wee.
Eng Isolatiounsuerdnung déi beim éischte Feeler stoppt
Schafft dës an der Uerdnung duerch a stoppt wou een feelt. All Schrëtt schléisst eng Schicht aus an net all.
- Bestätegt wéi eng Identitéit d'Sessioun benotzt huet a wéi eng Grupp den Endpoint auswäert. En Zertifikat aus engem Trust Store ass net dee selwechte Principal wéi eng SAML-Behauptung aus dem Verzeechnis.
- Bestätegt datt eng Autorisatiounsregel den CIDR vun der Ressource fir déi Grupp deckt.
- Bestätegt datt et eng Endpoint-Route gëtt déi op en associéierten Subnetz gezilt ass, an dann datt d'Routentabell vum Subnetz weiderleet.
- Bestätegt datt d'Sécherheetsgrupp de Port aus der Endpoint-Interface erlaabt an net aus dem Client-Pool.
- Test aus der VPC eraus, mat enger SSM-Sessioun op enger anerer Instanz am selwechte Subnetz, fir en Applikatiounsproblem vun engem Client-Wee-Problem ze trennen.
Wann d'Schrëtt net entscheedend sinn, ass dës Tabell op déi ech zréckgräifen:
| Symptom | Layer to inspect |
|---|---|
| Client shows connected, host times out, no byte growth on the interface | Authorization rule, then security group |
| Ping fails but a TCP connect to the port succeeds | ICMP is blocked; not an access failure |
| Tunnel reconnects every few minutes | Two machines sharing one client certificate |
| Works on one laptop, fails on another | Local profile has route-nopull or stale pushed routes |
Zwee Kontodetailer produzéieren Symptomer déi wéi Erlaabnisfeeler ausgesinn. All Benotzer brauch een eegenen Client-Zertifikat; een iwwer zwee Maschinnen ze deelen hëlt datt d'Sessiounen sech géigesäiteg verdrängen, an d'Resultat ass eng Reconnect-Schleef an net eng Refusatioun. Wann en neien Endpoint ugeluecht gëtt, weist d'Konsole en DNS-Numm deen e puer Client-Versiounen nëmme mam zoufällegen Prefix akzeptéieren deen op der Endpoint-Säit steet, also kopéiert den ganzen Numm an net rekonstruéiert en.
Wann de fënnefte Schrëtt Iech hänkt, zitt de Verbindungslog vum Endpoint a liest d'Autorisatiounsbäiträg ier Dir eppes ännert. De Log nennt d'Zil dat kontrolléiert gouf an d'Regel déi gepasst huet oder net, an dat reduzéiert d'Fro mat véier Schichten op eng eenzeg Äntwert.