Бүх портыг дамжуулах дүрэм таны WireGuard сонсогчийг залгиж болно
Өргөн дамжуулах дүрэм нь гарцын өөрийн WireGuard болон SSH сонсогчдыг залгиж болно. Нарийн дүрэм эсвэл тусдаа нийтийн хаяг сонгоод дараа нь удирдлагын замыг шалгаарай.
Нийтийн гарц аль хэдийн WireGuard-ыг UDP 51820, SSH-ыг 22, интернэтээс хүрэх ёстой нэг аппликейшныг ажиллуулж байна. Уруу татсан дүрэм бүх портыг пэр рүү дамжуулаад ажлыг дууссан гэж үзнэ. WireGuard гарц дээр ийм дүрэм туннелийн өөрийн тээврийг барьж аваад түүнийг дуусгаж буй машинаас таныг түгжиж болно. Нийтлэх нь удирдлагын хавтгайн үл хамаарах маршрутын шийдвэр, нэг DNAT мөр биш.
Нийтийн орц уу туннелийн орц уу: нэгийг сонго
Үйлчилгээг нийтлэх нь интернэтэд нэвтрэх шинэ цэг үүсгэдэг. Энэ нь пэрт VPN гишүүнчлэл өгөхтэй ижил биш, учир нь зочин хэзээ ч туннельд орохгүй, гарц нь бэкендийн нийтийн нүүр болно. Тэр ялгаа нь дүрмийн үзэгч ба түүний гэрчилгээг тодорхойлно.
Захиргааны интерфейсүүд тэр байр суурьт ховор тохиолддог. Зөвшөөрөгдсөн VPN клиентүүдийн хүрдэг админ хуудас халдлагын талбайг туннель дотор байлгаж, нэвтрэх маягтыг санамсаргүй скандалд ил гаргахаас зайлсхийдэг. Нийтийн аппликейшны төгсгөлийн цэгүүдэд өөрийн TLS гэрчилгээ, баталгаажуулалт, хурдны хязгаарлалт хэрэгтэй хэвээр; шифрлэгдсэн WireGuard алхам нь зочны гарц хүртэлх хэсгийг хамгаалахгүй.
Хэрэв үйлчилгээ үнэхээр нийтэд нээлттэй байх ёстой бол хостын нэр, түүнийг хамарсан гэрчилгээ, түүнд хүрэх ёстой зочдын хүрээг бичиж аваарай. Тэр гурван баримт дараа нь дүрмийн хэлбэр, шүүлтүүрийн бодлогыг тодорхойлно. Тэдгээрээс гадуурх бүхэн нийтийн сонсогч дээрх хамрах хүрээний өсөлт юм.
Нэг порт орж, нэг бэкенд гарна
Нэг нийтийн порт, нэг бэкенд үйлчилгээ ашиглаарай. Энэ жишээнд eth0 нийтийн 198.51.100.20 хаягийг агуулж, гарцын туннелийн хаяг 10.200.0.1, пэр аппликейшныг 10.200.0.7 дээр ажиллуулна. Нийтийн TCP 9443 нь пэрийн TCP 8443 руу бууна:
iptables -t nat -A PREROUTING -i eth0 -d 198.51.100.20 -p tcp --dport 9443 -j DNAT --to-destination 10.200.0.7:8443
iptables -t nat -A POSTROUTING -o wg0 -d 10.200.0.7 -p tcp --dport 8443 -m conntrack --ctorigdst 198.51.100.20 --ctorigdstport 9443 -j SNAT --to-source 10.200.0.1SNAT дүрэм орчуулагдсан бэкенд болон анхны нийтийн очих цэгтэй таарна, тиймээс мөн бэкенд үйлчилгээ рүү өөр холболт энэ буулгалтаас гадна үлдэнэ. Энэ нь мөн зочны хаягийг пэрээс нуудаг бөгөөд эх сурвалжийг хадгалсан маршрутлагдсан буцалтыг тусдаа загвар болгодог солилцоо нь тэр юм. iptables өргөтгөлүүдийн лавлагаа хоёр зорилт болон тэдгээрийн тохируулгын сонголтыг тайлбарлана.
Дамжуулалтыг асаах шаардлагатай хэвээр бөгөөд шүүлтүүрийн гинжид орчуулагдсан очих цэг, порт, тогтоосон хариунуудад зөвшөөрөл хэрэгтэй. FORWARD гинж DNAT-ын дараа орчуулагдсан очих цэгийг хардаг тул нийтийн хаягийн эсрэг бичсэн дүрэм дамжуулагдсан пакеттай таарахгүй. Зөвшөөрлийг бэкендийн кортежийн эсрэг бичээрэй, нийтийнхний эсрэг биш.
Пэр үйлчилгээний холболтыг гарцын туннелийн хаягаас хүлээн авч, хариуг туннелээр буцааж илгээх ёстой. Түүний AllowedIPs нь бодитоор хүлээн авч буй эх сурвалжид зөвшөөрөл өгөх ёстой бөгөөд эх сурвалжийн орчуулгын үед энэ нь гарцын туннелийн хаяг, мөн пэр бүр дээр өргөн 0.0.0.0/0 бичлэг энэ загварт шаардлагагүй. Буцах трафикийг унагадаг нь тухайн хаягийг жагсаалтаасаа орхигдуулсан пэр, эсвэл зочны өөрийн хаягийг оронд нь дамжуулдаг эх сурвалж хадгалагч загвар, тиймээс дүрэмд байгаа биш, пэр бодитоор харж буй эх сурвалжийг шалгаарай.
Гарцын өөрийн сонсогчдыг дүрмээс гадуур байлга
Очих цэгийн орчуулга нь машин пакетыг локал гэж шийдэхээс өмнө болдог, тиймээс UDP 51820 бүх пэрийн холболтыг барьж буй процесс руу биш, пэр рүү очиж болно. Дүрэм амжилттай ачаалагдаж, туннель үхдэг, энэ нь пэрийн талаас уншихад хэцүү алдаа юм.
SSH, хяналтын агентууд болон гарц дээр байрлах бусад үйлчилгээ ижил өртөлттэй. Бүгдийг дамжуулдаг дүрэм удирдлагын хавтгайг нийтэлсэн аппликейшноос ялгахгүй бөгөөд өөрчлөлтийн дараах анхны дахин ачаалалт нь түгжилт тодорхой болох мөч. Бүгдийг хамарсан дүрэм өөрөө чимээгүйхэн авч буй үйлчилгээний талаар анхааруулдаггүй. Дараагийн холболт бүтэлгүйтэхэд та үүнийг олж мэднэ.
Хэрэв өргөн дамжуулалт үнэхээр хэрэгтэй бол удирдлагын портуудыг бүгдийг хамарсан дүрмээс өмнө үлдээ эсвэл нийтлэхэд тусдаа нийтийн хаяг ашигла. Хоёр дахь сонголт илүү цэвэр, учир нь удирдлагын хаяг өөрийн бодлогыг хадгалдаг, гэхдээ үйлчилгээ үзүүлэгч тэр хаягийг өгөх ёстой; DNS бичлэг нэмэх нь нэгийг хуваарилдаггүй.
Өргөн TCP болон UDP дамжуулалт нь бүх протокол биш. ICMP, IPv6, замын MTU эргэн мэдээлэл, VPN-ийн гадаад тээвэрт өөрийн бодлого хэрэгтэй бөгөөд TCP болон UDP-г хамарсан дүрэм тэдгээр тохиолдлыг өгөгдмөл гинжид үлдээнэ.
Дүрэм бичихээс өмнө загвараа сонго
Дөрвөн хэлбэр нь гарцын нийтлэлийн ихэнхийг хамардаг бөгөөд сонголт нь та хэдэн үйлчилгээ ажиллуулж байгаа, удирдлагын хавтгайн хэдий хэмжээний эрсдэлийг тэсвэрлэх чадвараас хамаарна. Доорх хүснэгт тэдгээрийг хамгийн нарийнаас хамгийн өргөн рүү эрэмбэлнэ.
| Model | What it protects | Cost | Use when |
|---|---|---|---|
| Narrow port forward | Every other listener, including the VPN | One rule per service | Few services, stable ports |
| Catch-all with reserved ports | Ports named in the exception list | Rule order becomes critical | Many services and disciplined review |
| Separate public address | Control address fully isolated | Provider must supply the address | High-value publication |
| VPN-only access | No public entry at all | Visitors need the tunnel | Admin interfaces and internal tools |
Дараа нь илүү олон үйлчилгээ хүлээж байсан ч нарийн загвараас эхэл. Үүнийг аудит хийхэд хамгийн хялбар бөгөөд нарийн дүрмүүдийн багцыг шалгасан бүгдийг хамарсан дүрэм болгох нь өргөн дүрэм ямар сонсогчийг барьсныг олж мэдэхээс хялбар. Аль загварыг сонгосон ч дүрмүүдийг галт ханын эзэнд байлга. Ижил гинжүүдийг удирддаг UFW эсвэл nftables тохиргооны хажууд iptables мөрүүдийг хэрэглэх нь ачаалах дарааллаас хамаарч өөрчлөгддөг бодлого үүсгэдэг.
Нийтлэл болон удирдлагын замыг хоёуланг нь батал
Зөвшөөрөгдсөн хостын нэр болон түүнд хүчинтэй гэрчилгээгээр зөвшөөрөгдсөн гадаад клиентээс шалга. Аль бэкенд хариулсныг баталж, дараа нь холбоогүй нийтийн портууд хориглосон хэвээр байгааг шалга. Идэвхгүй болгосон гэрчилгээний шалгалт нь амжилттай HTTPS тест биш бөгөөд буруу бэкенд хүрсэн холболт бүтэлгүйтсэнээс дор.
Үүний дараа гарцыг өөрөө шалга: WireGuard пэр холбож, SSH сесс нээж, хяналт тайлагнах хэвээр байгааг батал. Нийтэлсэн үйлчилгээ удирдлагын хавтгай эвдэрсэн үед ажиллаж болзошгүй тул хоёр шалгалт нэг өөрчлөлтийн цонхонд байх ёстой. Дүрмүүд хүлээгдэж буй дарааллаар дахин хэрэгжиж байгааг батлахын тулд нэг удаа дахин ачаалж, дараа нь нийтлэлийг хасаж, хасалт нэмэлттэй үнэхээр тохирч байгааг батал. Эхлэлтийн олон нэмэлт, дутуу цэвэрлэгээ нь түр зуурын тестийг байнгын нээлт болгодог арга.