Бүрэн туннельтэй VPN өссөний дараа ч хост SSH-д хариулсаар байдаг бол ижил машин дээрх Docker-оор нийтэлсэн үйлчилгээ дуугүй болдог. Сонсогчид ямар ч асуудалгүй: контейнер ажиллаж байна, портын зураглал байна, пакет ирдэг. Контейнер эрүүл бөгөөд хүсэлт үнэхээр түүнд хүрдэг. Ялгаа нь Linux замаа сонгох үед хариу хаанаас эхлэхэд байгаа бөгөөд энэ ялгаа доорх хоёр загварын алийг нь хэрэгтэйг тодорхойлдог.

Tuple-ийг очих NAT-аар дамжуулан дага

Хост ав 192.0.2.10 дээр, TCP 2222-ыг 172.30.240.5:22 дээрх контейнерт нийтэлж байна. 198.51.100.25 -аас ирсэн хүсэлт контейнерт хүрэхээс өмнө хөрвүүлэгдэж, контейнер өөрөөрөө хариулдаг.

WAN request:      198.51.100.25 -> 192.0.2.10:2222
after DNAT:       198.51.100.25 -> 172.30.240.5:22
container reply:  172.30.240.5:22 -> 198.51.100.25

Хостын замын шийдвэрийн үед хариу контейнерийн эх хаягийг агуулсан хэвээр байна. Урвуу хөрвүүлэлт нийтэлсэн tuple-ийг дараа нь сэргээдэг, иймээс зам сонгогдох яг тэр мөчид пакет буруу харагддаг.

Яагаад зөвхөн хостод зориулсан дүрэм үүнийг алддаг вэ

WAN хүснэгтийг зөвхөн 192.0.2.10 -аас ирсэн пакетуудад сонгодог дүрэм хостын өөрийн демонуудыг хамардаг боловч энэ дамжуулсан хариуг бүрмөсөн алддаг. Хариу дээрх эх хаяг нь 172.30.240.5, хост биш.

Хэт засвар гэдэг нь контейнероос бүхнийг WAN-аар чиглүүлэх бөгөөд энэ нь контейнерийн хамааралгүй гадагш холболтыг ч VPN-ээс чөлөөлдөг. Энэ нь хүссэн бодлогоос өөр бөгөөд ихэвчлэн хожим хэн нэгнийг гайхшруулдаг.

DNAT-ын дараах тохируулга нь өөр hook

Docker-ийн firewall баримт бичиг нь ердийн хэрэглэгчийн шүүлтүүр DNAT-ын дараах очих хаягийг хардаг гэж тэмдэглэдэг, тиймээс ердийн дүрэмд нийтэлсэн 2222 портыг тохируулах нь контейнерийн 22 портыг тохируулахтай ижил биш. Хэрэв анхны tuple чухал бол аль порт харагдахыг таамаглахын оронд дэмжигдсэн анхны очих механизмыг ашигла.

Hook-уудын энэ будлиан зөв харагдах боловч хэзээ ч тохирохгүй дүрмүүдийг үүсгэдэг. Бодлогыг дахин бичихээс өмнө дүрэм дээрх тоолуурыг шалга. Цохилтгүй дүрэм нь пакет хэзээ ч хүрдэггүй газарт үнэлэгдэж байгааг хэлж өгдөг.

Загвар A: шийдвэрийг холболтын төлөв болгон зөөх

Холболтын тэмдэг нь орох шийдвэрийг хөрвүүлэлтээр зөөж чаддаг боловч чухал замын хайлтаас өмнө пакет дээр сэргээгдэх ёстой. Үе шатууд:

  1. Docker, VPN эсвэл өөр бодлогын эзэнтэй мөргөлдөхгүй тэмдгийн талбар болон дүрмийн тэргүүлэх чиглэлийг нөөцөл.
  2. Зөвхөн зорьсон шинэ WAN холболтыг холболт хянах боломжтой DNAT-ын өмнөх цэгт тодорхойл.
  3. Анхны хүсэлтийг өөрөө WAN хүснэгт рүү албадалгүйгээр шийдвэрийг холболтын тэмдэг дээр бич.
  4. Хариу чиглэлд чиглүүлэлтийн өмнө зөвхөн өөрийн тэмдгийн битүүдийг пакет дээр сэргээ.
  5. VPN дүрэм эхлээд ялж чадахгүй байхаар бүрэн WAN хүснэгтийг хангалттай эрт сонго.

Тэр хүснэгтэд бодит холбогдсон замууд болон гарц хэрэгтэй. Зам байхгүй үеийн тодорхойлогдсон зан төлөв ч хэрэгтэй. Туннель руу дуугүй унах нь хамгийн муу үр дүн, учир нь тохиргоо ажиллаж байгаа мэт харагдсаар байна. Оронд нь хаалттайгаар бүтэлгүйтэж, үүнийг бүртгэ.

Загвар B: хост дээр дуусгах

Хостын талд зориуд тохируулсан фронтенд, жишээ нь TCP прокси эсвэл контейнерийн өмнөх урвуу прокси нь хариуг хостын хаягаас үүссэн хэвээр байлгадаг. Тэгвэл хостод зориулж бичсэн дүрмүүд хүлээгдэж байгаагаар ажиллаж, контейнер өөрийн хувийн сүлжээнд үлддэг.

Өртөг нь өөрийн тохиргоо, эх хаягийн боловсруулалт, нэвтрэх хяналт бүхий өөр нэг хөдлөх хэсэг юм. Энэ нь ихэвчлэн илүү энгийн дэмжигдсэн хил бөгөөд чиглүүлэлтийн бодлогыг явж болох нэг хүн хадгалах бол түгээмэл зөв хариулт болдог.

Өөрчлөлтийг шалга, санаа бодлыг биш

Нийтийн талаас шинэ зөвшөөрөгдсөн холболт нээж, хариу зорьсон интерфейсээр гарч байгааг батал. Дараа нь контейнерийн эхлүүлсэн хамааралгүй хүсэлт VPN-ийг дагаж байгаа эсэхийг шалга.

Нэг дүрмийг туршихын тулд машины холболтын хүснэгтийг хоослож болохгүй: одоо байгаа бичлэгүүд өмнөх зураглалаа хадгалж, хоослолт хост дээрх бусад бүх зүйлийг эвддэг. Порт нийтлэх нь хүрэх боломжийг тодорхойлдог. Энэ нь хариуны замыг тодорхойлдоггүй. Сонгосон загварыг хүснэгтийн нэрсээр нь бичиж үлдээ, ингэснээр дараагийн хүн ослын үеэр үүнийг дахин нээх шаардлагагүй болно.

Холбоотой нийтлэлүүд