AWS Client VPN ti sopọ, ṣùgbọ́n EC2 kò tí ì dáhùn
Sopọ túmọ̀ sí pé ìwé-ẹ̀rí tàbí ìwọlé SAML ṣiṣẹ́ nìkan. Àwọn òfin àṣẹ, àwọn ọ̀nà endpoint àti àwọn ẹgbẹ́ ààbò kọ̀ọ̀kan ń ṣọ́ apá kan ọ̀nà sí olùgbàlejò àdáni.
Kọ̀mpútà mí fi hàn pé ó sopọ. Oníbàárà AWS Client VPN fi ipò àwọ̀ ewé rẹ̀ hàn, endpoint ṣàkọsílẹ̀ ìpàdé kan, síbẹ̀ mi ò lè ṣí ibodè MongoDB kan lórí EC2 nínú subnet àdáni. Kò sí ohun tí ó hàn gbangba pé ó ti bàjẹ́: ìwé-ẹ̀rí wà lẹ́sẹ̀, profáìlì wá láti console, ọ̀nà abẹ́lẹ̀ sì ń gbé ìrìnàjò. Àṣìṣe jẹ́ tèmi, nítorí mo ń ka sopọ bí ẹni tí a fún ní àṣẹ.
Ìwọlé dáhùn ìbéèrè kan ṣoṣo: ṣé ìdánimọ̀ yìí lè dá ìpàdé sílẹ̀? Ohun gbogbo tí ó tẹ̀le ni àwọn òfin ọ̀tọ̀ ń pinnu, àwọn tí kì í rí ìwé-ẹ̀rí rẹ. Ìpàdé tí ó gba ìjẹ́rìí àti pákẹ́tì tí ó dé jẹ́ àṣeyọrí méjì ọ̀tọ̀, ààlà tí ó wà láàrín wọn ni ibi tí ọ̀pọ̀ ìròyìn irú VPN ti wà ṣùgbọ́n a kò lè dé olùgbàlejò ń gbé.
Àwọn àyẹ̀wò ní ìsàlẹ̀ ni ìtòlẹ́sẹẹsẹ tí mò ń lò báyìí.
Kí ni ìpàdé tí ó sopọ ń fi hàn ní tòótọ́
Nígbà ìfọwọ́sowọ́pọ̀, endpoint ń ṣàyẹ̀wò ìwé-ẹ̀rí oníbàárà pẹ̀lú trust store rẹ̀, tàbí ó ń darí ẹ̀rọ aṣàwákiri sí olùpèsè ìdánimọ̀ rẹ nígbà tí SAML bá ti ṣètò. Bí ìyẹn bá kọjá, oníbàárà gba àdírẹ́sì láti CIDR oníbàárà endpoint, console sì fi ìsopọ̀ tí ó ń ṣiṣẹ́ hàn. Kò sí àkókò kankan nínú ìpààrọ̀ yẹn tí ẹnikẹ́ni ń béèrè bóyá o lè dé 10.0.4.17 lórí ibodè 27017.
Àṣẹ fún ibi-ìlọ jẹ́ ohun ọ̀tọ̀ lórí endpoint. Gbogbo ṣíṣàn ni a fi wéra pẹ̀lú àwọn òfin àṣẹ, kọ̀ọ̀kan sì so CIDR ibi-ìlọ pọ̀ mọ́ ẹgbẹ́ tí a fún ní òfin náà. Nígbà tí kò sí òfin tí ó bo ibi-ìlọ, endpoint gba ìpàdé náà ó sì sọ ìrìnàjò nù. Kò sí banner, kò sí ìyípadà ìsopọ̀ mọ́, kò sì sí ohunkóhun nínú ojú-ìwé oníbàárà tí ó sọ pé a kọ̀.
Fi òfin àṣẹ wéra pẹ̀lú ohun-àmúlò, kì í ṣe pẹ̀lú VPC
Ṣe àkọsílẹ̀ àwọn òfin kí o sì gbé wọn lẹ́gbẹ̀ẹ́ àdírẹ́sì tí ẹ̀rọ náà ní ní tòótọ́:
aws ec2 describe-client-vpn-authorization-rules \
--client-vpn-endpoint-id cvpn-endpoint-0a1b2c3d4e5f6a7b8Ìjáde fi CIDR ibi-ìlọ àti ID ẹgbẹ́ hàn fún òfin kọ̀ọ̀kan. Ìkùnà méjì wà níbẹ̀. Òfin lè fún 10.0.0.0/16 ní àṣẹ nígbà tí ẹ̀rọ náà wà nínú VPC tí a so pọ̀ lórí 10.1.0.0/16; ọ̀nà peering wà, ṣùgbọ́n ẹnikẹ́ni kò kọ òfin àṣẹ fún ìwọ̀n kejì. Tàbí òfin tọ́ka sí ẹgbẹ́ ìtẹ̀wé tí olùlò wà nínú rẹ̀ nínú ìtẹ̀wé ṣùgbọ́n kì í ṣe nínú ẹgbẹ́ tí endpoint ń ṣàyẹ̀wò.
Kọ òfin tó jókòó jùlọ tí ó bo ibi-ìlọ, kí o sì fi kejì kún un nígbà tí CIDR kejì bá gbà ní tòótọ́. Òfin gbòòrò 0.0.0.0/0 láti ìbẹ̀rẹ̀ kíákíá ń ṣiṣẹ́, ìdí nìyẹn tí ó fi ń wà títí di ìgbékalẹ̀ ìgbẹ̀yìn, tí ó sì ń fi àwòrán náà pamọ́.
Tábìlì ọ̀nà méjì ni ó ń pinnu bóyá pákẹ́tì yóò lọ
Ọ̀nà endpoint ń so CIDR ibi-ìlọ mọ́ ọ̀kan nínú àwọn subnet tí endpoint so pọ̀ mọ́. Ìdajì ọ̀nà ni ìyẹn. Tábìlì ọ̀nà subnet fúnra rẹ̀ ṣì gbọdọ̀ mọ bí a ṣe ń tẹ̀síwájú pákẹ́tì, ìyẹn sì ṣe pàtàkì ní àkókò tí ibi-ìlọ wà lẹ́yìn ìsopọ̀ peering, transit gateway tàbí ìwọ̀n àdúgbò tí a lè dé pẹ̀lú ọ̀nà abẹ́lẹ̀ site-to-site.
aws ec2 describe-client-vpn-routes \
--client-vpn-endpoint-id cvpn-endpoint-0a1b2c3d4e5f6a7b8Wá ọ̀nà tí ibi-ìlọ rẹ̀ bá CIDR ohun-àmúlò mu, tí ibi tí ó ń lọ sì jẹ́ subnet tí ó so pọ̀. Bí ọ̀nà kò bá sí, fi kún un. Bí ó bá wà tí olùgbàlejò sì ṣì dákẹ́, ààlà wà ní ẹ̀gbẹ́ VPC, nítorí náà fi wéra pẹ̀lú tábìlì ọ̀nà subnet ìsopọ̀.
Ètò kan ní ẹ̀gbẹ́ oníbàárà ń ba ọ̀nà jẹ́ láì ba ọ̀nà abẹ́lẹ̀ jẹ́: profáìlì tí ó ní route-nopull. Ìtọ́nisọ́nà náà sọ fún oníbàárà tí ó dá lórí OpenVPN pé kí ó fojú fo àwọn ọ̀nà tí olùpín ń tì, nítorí náà ojú-ìwé ń gòkè wá pẹ̀lú àdírẹ́sì endpoint nìkan, ibi-ìlọ kò sì ní ọ̀nà rárá. Ṣàyẹ̀wò pẹ̀lú ip route show lórí Linux tàbí netstat -rn lórí macOS bóyá ọ̀nà wà nípasẹ̀ ojú-ìwé tun. Bí kò bá sí, yọ route-nopull kúrò nínú profáìlì tí a kójáde kí o sì tún so mọ́ kí àwọn ọ̀nà tí a tì lè wúlò.
Àwọn ẹgbẹ́ ààbò kò rí àdírẹ́sì oníbàárà rẹ
Èyí ni apá tí mo ṣàṣìṣe fún ìrọ̀lẹ́ kan. Fún endpoint IPv4 tí ó so mọ́ subnet, iṣẹ́ náà ń yí àdírẹ́sì orísun oníbàárà padà sí àdírẹ́sì ojú-ìwé ẹ̀rọ endpoint nínú subnet yẹn. Pákẹ́tì tí ó dé ẹ̀rọ kò gbé àdírẹ́sì tí oníbàárà rẹ fi hàn, nítorí náà òfin ẹgbẹ́ ààbò tí ó yọ̀ǹda àkópọ̀ oníbàárà, sọ pé 172.16.0.0/22, kò bá ohunkóhun mu.
Yọ̀ǹda ibodè náà láti ẹgbẹ́ ààbò endpoint, èyí tí a so mọ́ ojú-ìwé ìsopọ̀, kì í ṣe láti CIDR oníbàárà. Síṣe ìtọ́kasí ẹgbẹ́ náà dúró pẹ́ ju kíkọ àdírẹ́sì lọ́wọ́, nítorí àdírẹ́sì ojú-ìwé kì í ṣe tìrẹ láti ṣàkóso. ACL nẹ́tíwọ́kì kò ní ipò, nítorí náà níbi tí àwọn àkọsílẹ̀ àdáni bá wà, ọ̀nà ìwọlé àti ọ̀nà ìjáde gbọdọ̀ jẹ́ kí ṣíṣàn kọjá.
So mọ́ àdírẹ́sì àdáni ẹ̀rọ náà pẹ̀lú. IP gbogbogbò ń gbé pákẹ́tì jáde kúrò nínú VPC, ó sì ń gbé e padà wọlé pẹ̀lú ọ̀nà mìíràn àti òfin mìíràn, nítorí náà àyẹ̀wò lórí àdírẹ́sì gbogbogbò kò sọ ohunkóhun nípa ọ̀nà àdáni.
Ìtòlẹ́sẹẹsẹ àdásọ́tọ̀ tí ó dúró ní ìkùnà àkọ́kọ́
Lọ nípasẹ̀ àwọn wọ̀nyí ní ìtòlẹ́sẹẹsẹ kí o sì dúró níbi tí ọ̀kan bá kùnà. Ìgbésẹ̀ kọ̀ọ̀kan ń yọ ìpele kan kúrò, kì í ṣe gbogbo wọn.
- Jẹ́rìí ìdánimọ̀ tí ìpàdé lò àti ẹgbẹ́ tí endpoint ń ṣàyẹ̀wò. Ìwé-ẹ̀rí láti trust store kan kì í ṣe olórí kan náà pẹ̀lú ìṣàlẹ̀ SAML láti ìtẹ̀wé.
- Jẹ́rìí pé òfin àṣẹ bo CIDR ohun-àmúlò fún ẹgbẹ́ yẹn.
- Jẹ́rìí pé ọ̀nà endpoint wà tí ó ń tọ́ka sí subnet tí ó so pọ̀, lẹ́yìn náà pé tábìlì ọ̀nà subnet lè tẹ̀síwájú.
- Jẹ́rìí pé ẹgbẹ́ ààbò yọ̀ǹda ibodè náà láti ojú-ìwé endpoint kì í ṣe láti àkópọ̀ oníbàárà.
- Dánwò láti inú VPC, pẹ̀lú ìpàdé SSM lórí ẹ̀rọ mìíràn nínú subnet kan náà, láti ya ìṣòro ètò kúrò nínú ìṣòro ọ̀nà oníbàárà.
Nígbà tí àwọn ìgbésẹ̀ kò bá pinnu, tábìlì yìí ni mo gbára lé:
| 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 |
Àlàyé méjì nínú àkọsílẹ̀ ń dá àwọn àmì tí ó dàbí ìkùnà àṣẹ. Olùlò kọ̀ọ̀kan nílò ìwé-ẹ̀rí oníbàárà ọ̀tọ̀; pínpín ọ̀kan láàrín ẹ̀rọ méjì ń mú kí àwọn ìpàdé tì ara wọn, àbájáde sì jẹ́ ìyípadà ìsopọ̀ mọ́, kì í ṣe ìkọ̀. Nígbà tí a bá ṣẹ̀dá endpoint tuntun, console ń fi orúkọ DNS hàn tí àwọn ẹ̀yà oníbàárà kan gbà pẹ̀lú àkọ́sí àìròtẹ́lẹ̀ tí ó hàn lórí ojú-ìwé endpoint nìkan, nítorí náà ṣe àdàkọ orúkọ kíkún dípò kíkọ ọ́ lẹ́ẹ̀kan sí i.
Bí ìgbésẹ̀ kàrún bá dí ọ lọ́wọ́, fa àkọsílẹ̀ ìsopọ̀ endpoint jáde kí o sì ka àwọn àkọsílẹ̀ àṣẹ kí o tó yí ohunkóhun padà. Àkọsílẹ̀ náà ń dárúkọ ibi-ìlọ tí a ṣàyẹ̀wò àti òfin tí ó bá mu tàbí tí kò bá mu, ìyẹn sì ń sọ ìbéèrè ìpele mẹ́rin di ìdáhùn kan.