Mae AWS Client VPN wedi cysylltu, ond mae EC2 yn dal i amseru allan
Mae cysylltu ond yn golygu bod y dystysgrif neu fewngofnodi SAML wedi gweithio. Mae rheolau awdurdodi, llwybrau endpoint a grwpiau diogelwch pob un yn gwarchod rhan o’r llwybr at host preifat.
Roedd fy laptop yn dweud cysylltu. Roedd cleient AWS Client VPN yn dangos ei gyflwr gwyrdd, roedd yr endpoint wedi cofnodi sesiwn, ac roeddwn i’n dal heb allu agor porth MongoDB ar enghraifft EC2 mewn is-rwyd breifat. Nid oedd unrhyw beth yn amlwg wedi torri: roedd y dystysgrif yn ddilys, roedd y proffil yn dod o’r consol, ac roedd y twnnel yn cario traffig. Fy nghamgymeriad i oedd o, oherwydd roeddwn i’n darllen cysylltu fel awdurdodedig.
Mae mewngofnodi yn ateb un cwestiwn yn union: a all yr hunaniaeth hon sefydlu sesiwn? Mae popeth ar ôl hynny’n cael ei benderfynu gan reolau ar wahân nad ydynt byth yn gweld eich tystysgrif. Mae sesiwn sy’n dilysu a phecyn sy’n cyrraedd yn ddau lwyddiant gwahanol, a’r bwlch rhyngddynt yw lle mae’r rhan fwyaf o adroddiadau’r math mae’r VPN i fyny ond nid yw’r host yn cyrraedd yn byw.
Y gwiriadau isod yw’r drefn rwy’n ei defnyddio nawr.
Beth mae sesiwn gysylltiedig yn ei brofi mewn gwirionedd
Yn ystod y handshake mae’r endpoint yn dilysu tystysgrif y cleient yn erbyn ei trust store, neu’n ailgyfeirio’r porwr at eich identity provider pan fydd SAML wedi’i ffurfweddu. Os yw hynny’n pasio, mae’r cleient yn cael cyfeiriad o CIDR cleient yr endpoint ac mae’r consol yn dangos cysylltiad gweithredol. Ar unrhyw adeg yn y cyfnewid hwnnw nid oes unrhyw beth yn gofyn a allwch gyrraedd 10.0.4.17 ar borth 27017.
Mae caniatâd ar gyfer cyrchfan yn wrthrych ar wahân ar yr endpoint. Mae pob fflŵ yn cael ei gyfateb yn erbyn y rheolau awdurdodi, ac mae pob un yn paru CIDR cyrchfan â’r grŵp y rhoddir y rheol iddo. Pan nad oes unrhyw reol yn cwmpasu’r gyrchfan, mae’r endpoint yn derbyn y sesiwn ac yn gollwng y traffig. Nid oes baner, dim dolen ailgysylltu, a dim byd yn rhyngwyneb y cleient sy’n dweud gwrthodwyd.
Cymharwch y rheol awdurdodi â’r adnodd, nid â’r VPC
Rhestrwch y rheolau a’u dal wrth ymyl y cyfeiriad sydd gan yr enghraifft mewn gwirionedd:
aws ec2 describe-client-vpn-authorization-rules \
--client-vpn-endpoint-id cvpn-endpoint-0a1b2c3d4e5f6a7b8Mae’r allbwn yn dangos CIDR cyrchfan ac ID grŵp fesul rheol. Mae dau fethiant yn cuddio ynddo. Gall y rheol awdurdodi 10.0.0.0/16 tra bod yr enghraifft mewn VPC cyfoedus ar 10.1.0.0/16; mae’r llwybr peering yn bodoli, ond nid oes neb wedi ysgrifennu rheol awdurdodi ar gyfer yr ail amrediad. Neu gall y rheol bwyntio at grŵp cyfeiriadur y mae’r defnyddiwr yn ymuno ag ef yn y cyfeiriadur ond nid yn y grŵp y mae’r endpoint yn ei werthuso.
Ysgrifennwch y rheol gulaf sy’n cwmpasu’r gyrchfan, ac ychwanegwch ail un yn unig pan fo ail CIDR ei wir angen. Mae rheol eang 0.0.0.0/0 o gychwyn cyflym yn gweithio, a dyna pam mae’n goroesi i gynhyrchu ac yn cuddio’r model.
Mae dwy dabl llwybr yn penderfynu a yw’r pecyn yn symud
Mae llwybr endpoint yn mapio CIDR cyrchfan i un o’r is-rwydo y mae’r endpoint yn gysylltiedig â nhw. Hanner llwybr yw hynny. Mae’n rhaid i dabl llwybr yr is-rwyd ei hun wybod o hyd sut i anfon y pecyn ymlaen, ac mae hynny’n bwysig yr eiliad y mae’r gyrchfan y tu ôl i gysylltiad peering, transit gateway, neu amrediad ar y safle y gellir ei gyrraedd dros dwnnel site-to-site.
aws ec2 describe-client-vpn-routes \
--client-vpn-endpoint-id cvpn-endpoint-0a1b2c3d4e5f6a7b8Chwiliwch am lwybr y mae ei gyrchfan yn cyfateb i CIDR yr adnodd ac y mae ei darged yn is-rwyd gysylltiedig. Os yw’r llwybr ar goll, ychwanegwch ef. Os yw’n bresennol ac mae’r host yn dal yn dawel, mae’r bwlch ar ochr y VPC, felly cymharwch â thabl llwybr yr is-rwyd gysylltu.
Mae un gosodiad ar ochr y cleient yn torri llwybro heb dorri’r twnnel: proffil sy’n cynnwys route-nopull. Mae’r gyfarwyddeb yn dweud wrth gleient sy’n seiliedig ar OpenVPN i anwybyddu’r llwybrau y mae’r gweinydd yn eu gwthio, felly mae’r rhyngwyneb yn codi gyda chyfeiriad yr endpoint yn unig ac mae’r gyrchfan heb lwybr yn syml. Gwiriwch gyda ip route show ar Linux neu netstat -rn ar macOS a oes llwybr drwy’r rhyngwyneb tun. Os nad oes, tynnwch route-nopull o’r proffil a allforiwyd ac ailgysylltwch fel bod y llwybrau a wthiwyd yn cael eu cymhwyso.
Nid yw grwpiau diogelwch yn gweld cyfeiriad eich cleient
Dyma’r rhan y bûm yn anghywir am brynhawn cyfan. Ar gyfer endpoint IPv4 sydd wedi’i gysylltu ag is-rwyd, mae’r gwasanaeth yn cyfieithu cyfeiriad ffynhonnell y cleient i gyfeiriad rhyngwyneb rhwydwaith yr endpoint yn yr is-rwyd honno. Nid yw’r pecyn sy’n cyrraedd yr enghraifft yn cario’r cyfeiriad a ddangosodd eich cleient, felly nid yw rheol grŵp diogelwch sy’n caniatáu’r pool cleient, dyweder 172.16.0.0/22, yn cyfateb i ddim o gwbl.
Caniatâwch y porth o grŵp diogelwch yr endpoint, sydd ynghlwm wrth ryngwyneb y cysylltiad, yn hytrach nag o CIDR y cleient. Mae cyfeirio at y grŵp yn fwy parhaol na chodio cyfeiriad yn galed, oherwydd nid eich un chi yw cyfeiriad y rhyngwyneb. Mae ACLs rhwydwaith yn ddilwrth, felly lle mae cofnodion personol, mae angen i’r cyfeiriad i mewn a’r cyfeiriad allan ill dau ganiatáu’r fflŵ.
Cysylltwch â chyfeiriad preifat yr enghraifft hefyd. Mae IP cyhoeddus yn cymryd y pecyn allan o’r VPC ac yn ei ddod yn ôl i mewn drwy lwybr gwahanol â rheolau gwahanol, felly nid yw prawf cyhoeddus yn dweud dim am y llwybr preifat.
Trefn ynysu sy’n stopio ar y methiant cyntaf
Ewch drwy’r rhain yn eu trefn a stopiwch lle mae un yn methu. Mae pob cam yn diystyru un haen yn hytrach na phob un.
- Cadarnhewch ba hunaniaeth a ddefnyddiodd y sesiwn a pha grŵp y mae’r endpoint yn ei werthuso. Nid yw tystysgrif o un trust store yr un prif berson â honiad SAML o’r cyfeiriadur.
- Cadarnhewch fod rheol awdurdodi yn cwmpasu CIDR yr adnodd ar gyfer y grŵp hwnnw.
- Cadarnhewch fod llwybr endpoint yn bodoli ac yn targedu is-rwyd gysylltiedig, yna cadarnhewch y gall tabl llwybr yr is-rwyd anfon ymlaen.
- Cadarnhewch fod y grŵp diogelwch yn caniatáu’r porth o ryngwyneb yr endpoint yn hytrach nag o’r pool cleient.
- Profwch o fewn y VPC, gan ddefnyddio sesiwn SSM ar enghraifft arall yn yr un is-rwyd, i wahanu problem cymhwysiad oddi wrth broblem llwybr y cleient.
Pan nad yw’r camau’n bendant, y tabl hwn yw fy nghefnlen:
| 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 |
Mae dau fanylyn cyfrif yn cynhyrchu symptomau sy’n edrych fel methiannau caniatâd. Mae angen tystysgrif cleient ar wahân ar bob defnyddiwr; mae rhannu un rhwng dwy beiriant yn gwneud i’r sesiynau ddadleoli ei gilydd, a’r canlyniad yw dolen ailgysylltu yn hytrach na gwrthodiad. Pan grëir endpoint newydd, mae’r consol yn dangos enw DNS nad yw rhai fersiynau cleient yn ei dderbyn ond gyda’r rhagddodiad ar hap a ddangosir ar dudalen yr endpoint, felly copïwch yr enw llawn yn hytrach na’i ailadeiladu.
Os yw cam pump yn eich dal, tynnwch log cysylltiad yr endpoint a darllenwch y cofnodion awdurdodi cyn newid unrhyw beth. Mae’r log yn enwi’r gyrchfan a wiriodd a’r rheol a gyfatebodd neu na chyfatebodd, sy’n colbynnu’r cwestiwn pedair haen yn un ateb.