VPN дэд сүлжээ рүү порт дамжуулахад SNAT ашиглах ёстой юу?
VPN дэд сүлжээ рүү порт дамжуулах нь хүсэлтийг хүргэдэг ч хариуг алддаг. Маршруулагч дээрх нэг сонгомол эх-NAT дүрэм буцах замыг сэргээдэг.
Портыг маршруулагчийн өөрийн VPN клиентийн ард байрлах хост руу дамжуулах нь галт хананы асуудал мэт харагдах байдлаар бүтэлгүйтдэг, учир нь хүсэлт тодорхой ирдэг. Үйлчилгээ холболтыг бүртгэж, клиент хүлээж, юу ч буцаж ирдэггүй. Очих газрын орчуулга ажлаа хийсэн; буцах пакет бол алдагдсан хэсэг. Маршруулагч дээрх нэг сонгомол эх-NAT дүрэм үүнийг засдаг, харин сонирхолтой хэсэг нь тэр дүрэм хэр нарийн байж болохыг шийдэх явдал юм.
Хариу яагаад өөр замаар явдаг
Порт дамжуулалт нь пакет хаана явж байгааг дахин бичдэг, хаанаас ирснийг хэзээ ч бичдэггүй. Интернэт клиентийн хаяг туннелийн бүх замд эх талбарт үлддэг тул алслагдсан үйлчилгээ танихгүй хүнийг харж, мэддэг цорын ганц аргаар хариулдаг: өөрийн анхдагч гарцаар. Тэр гарц нь нөгөө талын VPN төвлөрүүлэгч бөгөөд дурын нийтийн хаяг руу буцах замгүй.
Туннелийн интерфэйс дээрх бичлэгийг хар, тэгш бус байдал тодорхой: хүсэлтийн пакетууд гадагш, дотогш юу ч байхгүй. Дамжуулах гинжин хэлхээ урсгалыг зөвшөөрч, туннель түүнийг зөөсөн тул хасалт нь алслагдсан хост буцах замаа аль хэдийн сонгосны дараа болдог.
Итгэхэд хангалттай нарийн эх дүрэм
Маршруулагчийг алслагдсан хост хариулдаг эх болго. Энэ зохион байгуулалтад WAN хаяг нь 203.0.113.24, LAN нь 192.168.88.0/24, маршруулагчийн туннелийн хаяг нь 172.20.5.1, үйлчилгээ нь 172.20.5.40:8443 дээр хариулдаг. Доорх дүрэм нь очих газрын орчуулгаас хойшхи пакеттай таарч байгаа тул нийтийн бус, орчуулсан хаягийг нэрлэдэг. Үүнд юу ч клиентийн хаягаас хамаарахгүй бөгөөд яг энэ нь гол зүйл юм.
iptables -t nat -A POSTROUTING -o tun0 -p tcp -d 172.20.5.40 --dport 8443 -j SNAT --to-source 172.20.5.1Тэр мөр дэх таарал бүр дахин бичилтийг нэг туннель дээрх нэг үйлчилгээнд локал байлгахын тулд байдаг. Интерфэйс эсвэл портыг хасвал асуудлаас шаардагдахаас илүү трафик дахин бичих бөгөөд ингэснээр зорилтот засвар дараагийн хүнд нууцлаг болдог.
Хэзээ бүх нийтийн маскарад шударга сонголт болдог
Хэрэв маршруулагч олон үйлчилгээг ижил VPN дэд сүлжээ рүү дамжуулдаг бол үйлчилгээ тус бүрийн дүрэм хэн ч арчлахгүй жагсаалт болдог. Туннелийн интерфэйсээс гарч буй бүгдийг маскадлах нь илүү энгийн бөгөөд урьдчилан таамагдахуйц боловч үнэ нь анхны клиентийг нөгөө талын хост бүрээс нуух явдал юм. Тэндхийн логийг хуваарилалтад ашигладаггүй бол үүнийг сонго; ашигладаг бол нарийн дүрмийг хадгал.
Хоёр сонголт бас өөр өөрөөр бүтэлгүйтдэг. Дутуу нарийн дүрэм нэг үйлчилгээг эвддэг; хэт олонд таардаг өргөн маскарад аль хэдийн ажиллаж байсан трафикийг, тэр дундаа маршруулагчийн өөрийн гарч буй холболтыг чимээгүй дахин бичиж болно.
Нийтлэхээс өмнө тоолуурыг шалга
Хэзээ ч таарахгүй дүрмүүд пакетуудыг тоолох хүртэл ажиллаж буй дүрмүүдтэй адилхан харагддаг. Ямар ч клиент холбогдохоос өмнө хүснэгтийг байтын тоолууруудтай дахин уншиж, дараа нь LAN бус сүлжээнээс холбогдоод дахин унш. Яг хоёр уншилт нь таамаглалыг баримт болгодог. Хоёр дахь нь хөдөлсний дараа л дамжуулалтыг нийтэл.
iptables -t nat -L POSTROUTING -v -n --line-numbersБодит холболтын дараа эх дүрэм дээрх тэг тоолуур нь таарал буруу гэсэн үг, ихэвчлэн очих газар эсвэл порт орчуулгын дараах пакеттай таарахгүй байна. Тоолуур өсөх боловч клиент хугацаа хэтэрсээр байвал буцах зам зассан бөгөөд өөр зүйл хариуг унагаж байна, тиймээс дараа нь нөгөө талын дамжуулалтын бодлогыг хар. LAN дотроос үсний тэвнээр нэвтрэх нь тусдаа асуудал бөгөөд өөрийн дүрмийг шаарддаг, үүний илүү өргөн хувилбарыг биш.