sshuttle бүрэн VPN-ийн эсрэг: түүний арга юуг үнэхээр хамардаг вэ
sshuttle нь дамжуулах арга нь дэмждэг зүйлийг л зөөнө: эхлээд TCP, DNS, UDP хамрах хүрээ, шаардлагатай локал эрх, алсын туслахыг шалгана уу.
sshuttle-г SSH аль хэдийн ажиллаж байгаа, криптограф танил санагддаг учраас сонгодог боловч энэ үндэслэл тохирох эсэхийг шийддэг цорын ганц асуултыг алгасдаг. Ямар пакетууд машинаас гардаг, нөгөө талд аль бүртгэл тэдгээрийг зөөдөг, багаж хэрэгсэл хэдэн локал эрх шаарддаг. Эдгээр гурван хариулт дамжуулах аргаас хамаарч өөр өөр байдаг тул нэг аппликейшнд ажилласан тохиргоо дараагийнхад нь чимээгүйхэн бүтэлгүйтэж болно. Доорх тайлбар аппликейшнд үнэхээр хэрэгтэй протоколоос эхэлнэ.
Аппликейшнд хэрэгтэй протоколоос эхлээрэй
sshuttle 2.0 дахь протоколын дэмжлэг таны сонгосон аргаас хамаарна. Linux-ийн NAT болон nft аргууд TCP, DNS-ийг хариуцдаг, TPROXY нь ерөнхий UDP нэмдэг. Платформ, арга бүр өөрийн хязгаартай, macOS огт өөр механизмаар саатуулдаг. Ямар нэгэн зүйл сонгохын өмнө суулгасан хувилбар, сонгосон арга, аппликейшнд хэрэгтэй протоколуудыг тэмдэглээрэй.
Тиймээс ажиллаж буй TCP хүсэлт UDP аппликейшн эсвэл DNS хайлт бүрийн талаар маш бага зүй нотолдог. sshuttle нь TCP-г бүхэл IP пакетыг туннельдэхийн оронд урсгал гэж үздэг тул ердийн VPN-ээс зээлсэн дамжуулах чадварын дүгнэлт энд хамаарахгүй. Таны үнэхээр ажиллуулж буй механизмыг үнэхээр байгаа ачаалалтай харьцуулна уу.
| Approach | What it carries | What it needs locally |
|---|---|---|
| SSH local forward | One explicitly named TCP destination | Nothing beyond the SSH client |
| sshuttle, nft or nat method | TCP and DNS to the routed prefixes | Root or sudo for firewall rules |
| sshuttle, tproxy method | TCP, DNS and general UDP | Root or sudo, and kernel support |
| IP VPN | Routed IP traffic in a tunnel | A client with the required privileges |
Клиентэд локал байдлаар юу хэрэгтэй вэ
Баримтжуулсан клиентийн зохион байгуулалт root эсвэл sudo шаарддаг, учир нь энэ нь туннелийн интерфэйс үүсгэхийн оронд локал саатуулах дүрэм суулгадаг. Энэ ганц баримт аюулгүй байдлын түүхийг өөрчилдөг: ийм эрхтэй процесс бүх машины трафикийг чиглүүлж чадна, зөвхөн нэг аппликейшныг ч биш. Эрхийг суулгацын дэлгэрэнгүй мэдээлэл биш, дизайны нэг хэсэг гэж үзээрэй.
Багаж ямар дүрэм суулгасныг, тэдгээр нь гарах үед алга болдог эсэхийг баталгаажуулна уу. Саатуулах дүрмүүдийг үлдээсэн нурсан сесс оператор холболт явсан гэж үзсэнээс нэлээд хожуу трафикийг хар нүх рүү илгээж болох бөгөөд шинж тэмдэг нь үлдсэн дүрэм мэт биш, сүлжээний доголдол мэт харагдана.
sudo sshuttle --method nft --dns 172.19.4.0/24
nft list ruleset | grep -i sshuttle
ip route
Эхний команд нь ердийн дуудлагын хэлбэр бөгөөд үнэхээр хэрэгтэй угтвартай. Хоёр дахь нь багаж юу суулгасныг харуулна, гурав дахь нь туннелийн интерфэйс гарч ирээгүйг баталгаажуулна, энэ нь энэхүү дизайнд хүлээгдэж буй үр дүн юм.
Алсын тал юу ажиллуулдаг вэ
Алсын тал нь эрх олгогдсон SSH бүртгэл болон нийцтэй Python туслах орчин юм. Хязгаарлагдмал бүрхүүл дор амжилттай нэвтрэх нь тэр туслахыг ажиллуулах зөвшөөрлийг автоматаар өгөхгүй, туслахыг ажиллуулж чадах бүртгэл зорилтот үйлчилгээ бүрт автоматаар хүрдэггүй. Хоёр баримт нь алдаа засах тэмдэглэлд биш, хандалтын хүсэлтэд хамаарна.
Хостын хувийн байдлын шалгалт, бүртгэлийн баталгаажуулалтыг хамгаалаарай. Эхний холболтыг ажиллуулахын тулд танихгүй хостын түлхүүрийг хүлээж авах нь алсын тал таны зорьсон машин мөн гэсэн шалгалтыг арилгадаг бөгөөд энэ нь энд нэг зорилгын дамжуулалтаас илүү чухал.
Алсын бүртгэлийг ажлын урсгалд хэрэгтэй үйлчилгээгээр хязгаарлаж, энэ хүрээг хостыг ажиллуулдаг хүмүүстэй тохиролцоно уу. Тэд итгэлцлийн харилцааны нэг хэсэг бөгөөд клиентийн талын ямар ч тохиргоо үүнийг өөрчлөхгүй.
Итгэлцлийн хил хаана байна
Хувийн API холболтыг SSH-ээр дамжуулах нь API үйлдэл бүрт зөвшөөрөл өгөхгүй. Аппликейшны TLS болон аппликейшнд нэвтрэх нь хэвээр үйлчилнэ, багаж нь баталгаажуулалтгүй үйлчилгээг аюулгүй болгож чадахгүй. Алсын хостоос хийх дараагийн үсрэлт ч автоматаар SSH сувагтай ижил хамгаалагдсан сегмент болохгүй, учир нь тэр хоёр дахь холболт алсын хостод байгаа бодлогыг дагадаг.
Хилийг нэг өгүүлбэрээр бичээрэй: эдгээр угтвар руу чиглэсэн трафик тэр хост дээрх энэ бүртгэлээр гарна. Хэрэв өгүүлбэрт үл хамаарах зүйлсийн догол мөр хэрэгтэй бол дизайн баримт бичигтээ тулгуурласнаас илүү их зүйл хийж байгаа бөгөөд үйлдвэрлэлд орохоос өмнө дахин харах нь зүйтэй.
Протокол бүрээр нотолж, дараа нь багажаа сонгоорой
Шаардлагатай протокол бүрийг хор хөнөөлгүй хүсэлтээр шалгаж, шийдвэрлэгчийн зам болон аппликейшны ашигладаг хаягийн гэр бүлийг оруулна уу. Туршилтад тасарлыг ч оруулбал аппликейшны зөвшөөрөгдсөн алдааны зан төлөв нь ослын үеийн гэнэтийн зүйл биш, мэдэгдэж буй үр дүн болно. Ажиллаж байхдаа зөв дамжуулсан сесс унасны дараа юу болохыг хэлж чадахгүй.
Тодорхой нэрлэсэн цөөн үйлчилгээний хувьд энгийн локал дамжуулалт эзэмших, аудит хийхэд хялбар. Өөрийн аргад тохирох аппликейшны трафикийн хувьд sshuttle хууль ёсны дунд замыг санал болгодог. Шаардлага нь өргөн IP холболт бол VPN дизайн нь шударга хариулт бөгөөд сонголт нь шифрлэлтийн алгоритмын зэрэглэл биш, хамрах хүрээ, ашиглалтын хариуцлагыг дагадаг.