EC2 дээр strongSwan: VPC ажлын ачааллыг чиглүүлэх
Гарцаас ажиллаж буй туннель зөвхөн гарцыг л нотолно. Ажлын ачааллын дэд сүлжээг чиглүүлж, зочин дээр дамжуулалтыг асааж, селекторуудыг өргөжүүлээд дараа нь түүнээс шалгана уу.
Туннель ажиллаж байна, гарцын инстанс алслагдсан сүлжээг ping хийж чадна, харин түүний хажууд байгаа програмын инстанс юунд ч хүрч чадахгүй. Юу ч эвдээгүй. Амжилттай тест VPN хост дээр эхэлсэн бөгөөд тэр хост ижил IPsec харилцаагаар өөр эх сурвалжийн хаяг зөөж чадах эсэхийг хэзээ ч асуугаагүй. Энэхүү гарын авлага тэр цоорхойг дөрвөн алхамаар хааж, алдаа бүрийг харагдахуйц байлгах дарааллаар гүйцэтгэнэ.
Эхлээд дөрвөн хаягийг бичээрэй
Доорх алхам бүр эдгээрт хамаарах тул чиглүүлэлтийн хүснэгтэд хүрэхээс өмнө өөрийн бүртгэлд бөглөөрэй.
VPC: 10.60.0.0/16
Gateway subnet: 10.60.1.0/24, gateway ENI address 10.60.1.10
Workload subnet: 10.60.2.0/24, application address 10.60.2.20
Remote network: 10.90.0.0/24
Жишээ нь батлагдсан, ажиллаж буй бодлогод суурилсан IPsec холболт болон эх сурвалжийг хадгалсан урсгалыг тооцно. Энэ нь нэг хуваарилагдсан хаягийг зээлдэг NAT-тай алсын хандалтын клиент биш бөгөөд энэ ялгаа нь селекторуудыг өөрчлөх шаардлагатай эсэхийг шийднэ.
1-р алхам: ажлын ачааллын дэд сүлжээнд чиглэл өгнө үү
Ажлын ачааллын дэд сүлжээтэй үнэхээр холбогдсон чиглүүлэлтийн хүснэгтэд алслагдсан префиксэд зориулж гарцын сүлжээний интерфейс рүү заах зам хэрэгтэй. Инстанс дотор суулгасан зочны чиглэл нь тэр AWS чиглүүлэлтийн хүснэгтэд бүртгэл болохгүй бөгөөд ямар ч хэмжээний strongSwan тохиргоо үүнийг үүсгэхгүй.
AWS-ийн төхөөрөмжөөр дамжуулан чиглүүлэх заавар нь сүлжээний интерфейсийн зорилтууд болон дамжуулж буй инстансын эх сурвалж/очих шалгалтын шаардлагыг тайлбарладаг. Энэ шалгалтын өөрчлөлтийг гарцын үүргээр хязгаарлаж, энгийн програмын инстансуудыг тайван орхино уу.
Нэг батлагдсан сүлжээнд орон зай гаргахын тулд VPC-ийн локал чиглэл эсвэл бүх одоо байгаа бүртгэлийг бүү соль. Хэн ч ашигладаггүй чиглүүлэлтийн хүснэгтийн талаар консолын хуудас юу харуулж байгааг бус, юу холбогдсон, идэвхтэй байгааг шалга. Ижил харагдах хоёр хүснэгт өөр өөр холболттой байж болно. Чухал нь ажлын ачааллын дэд сүлжээ холбогдсон хүснэгт юм.
2-р алхам: зочин дээр дамжуулалтыг асаана уу
sysctl -w net.ipv4.ip_forward=1
# persist in /etc/sysctl.d/ and re-apply after reboot
Цөм дамжуулах ёстой бөгөөд хостын галт хана нэвтрэлтийг зөвшөөрөх ёстой. Бүгдийг хүлээж авахын оронд ажлын ачаалал болон алслагдсан префиксүүдэд зориулсан дамжуулалтын дүрмүүдийг нэмж, гарцын дэд сүлжээ өөрийн урсгалд ашиглаж болох тээврийн чиглэлийг хадгалж байгааг батал.
Аюулгүй байдлын бүлгүүд нь энэ алхам ихэвчлэн гацдаг газар юм. Завсрын төхөөрөмж инстансуудын шууд харилцааны аюулгүй байдлын бүлгийн лавлагааны зан төлөвийг өвлөдөггүй тул удирдлагатай Client VPN-ийн жишээнээс хуулсан дүрэм хэзээ ч тохирохгүй байж болно. Бодит зам дээр аюулгүй байдлын бүлэг болон дэд сүлжээний ACL-ийг хоёр чиглэлд шалга.
3-р алхам: селекторуудыг бодит эх сурвалж руу өргөжүүлнэ үү
AWS талд зөвхөн 10.60.1.10/32-г хамарсан бодлого нь 10.60.2.20-г хамрахгүйгээр гарцаас эхэлсэн амжилтыг тайлбарладаг. Алслагдсан очих газар руу чиглэсэн зам нь урсгалын селекторыг өргөжүүлэхгүй бөгөөд энэ нь мөнөөх гайхшралын хоёр дахь хагас юм.
swanctl --list-sas
# read the installed CHILD-SA local and remote traffic selectors
Хэрэв тохиролцсон загвар бүх VPC-г хамгаалж байвал хоёр тал 10.60.0.0/16 болон 10.90.0.0/24-г хүлээн зөвшөөрөх ёстой. Хэрэв нэг ажлын ачааллыг хамгаалж байвал тэр нарийн префиксийг зориуд ашигла. Аль ч тохиолдолд суулгасан CHILD-SA бодлогыг шалга, учир нь таны засварласан тохиргоо болон өөрөөр нарийсгасан тал нь ижил гэрээ биш юм.
Алслагдсан тал нь хадгалагдсан VPC эх сурвалжуудын хариуг мөн зориулсан IPsec гарцаар буцааж чиглүүлэх ёстой. Өөр эх сурвалжийн NAT дүрэм байгаа газарт хамгаалагдсан урсгалд зориулсан дэмжигдсэн NAT чөлөөлөлтийг хадгал; батлагдаагүй ажлын ачааллыг зөвшөөрөгдсөн хостын хаяг руу хөрвүүлэх нь өөр таних гэрээ бөгөөд хүссэн хандалтад хүрэх товч зам биш.
4-р алхам: шалгаад, шаардлагатай бол буцаана уу
Ажлын ачааллаас өөрөөс нь шинэ зөвшөөрөгдсөн програмын үйлдлээр туршиж, дараа нь хасагдах ёстой очих газраар давтана уу. Алслагдсан үйлчилгээний харж буй эх сурвалжийн хаяг болон түүний ашиглаж буй буцах замыг тэмдэглэ. Гарц руу ping хийх эсвэл ногоон IKE төлөв нь тэр тест биш.
Хэрэв гарц ажиллаж байхад ажлын ачаалал алдаа гарсаар байвал алхмуудаар эрэмбээр буцаж яв: селектор, дараа нь дамжуулалт ба аюулгүй байдлын бүлгүүд, дараа нь холбогдсон чиглүүлэлтийн хүснэгт. Тус бүр өөрийн шинж тэмдэгтэй бөгөөд таамаглах нь үнэхээр буруу байгааг алгасдаг.
Буцаах нь ижил дарааллыг эргүүлнэ. Ажлын ачааллын дэд сүлжээний чиглэлийг хамгийн сүүлд устга, өмнөх селекторуудыг сэргээсний дараа, эх сурвалжуудыг нь цаашид хамгаалахгүй гарц руу заасан дэд сүлжээ үлдээхгүйн тулд. Эдгээр гэрээ хүчинтэй үед өөрөө байршуулах нь гарцын хостоос илүү үйлчилж чадна, харин AWS-ийн удирддаг Site-to-Site VPN нь strongSwan харилцагчийн гарцын талд сууж болох өөр үйл ажиллагааны загвар юм.