HTTP proksi, SSH tunnel yoki VPN: to‘g‘ri qatlamni tanlang
Proksi, SSH tunnel va VPN turli trafikni tashiydi. Qatlamni vazifaga kerak bo‘lgan protokollar va nomlarni hal qilish bilan moslang, so‘ng yo‘lni tekshiring.
Uch muhandisdan ichki xizmatga qanday yetib borishni so‘rang va uchta loyiha olasiz: veb-proksi, SSH tunnel yoki to‘liq VPN. Uchalasi ham uzoqdagi xizmatni yetib boradigan qilib qo‘ya oladi va uchalasi ham trafikni boshqa joydan kelayotgandek ko‘rsata oladi. Farqlar keyinroq, ishlatilayotgan protokol tanlangan vosita taxmin qilgan protokol bo‘lmaganda ko‘rinadi. Brauzerda tez sinovdan o‘tgan loyiha ko‘pincha so‘rovga sabab bo‘lgan ilovada muvaffaqiyatsizlikka uchraydi.
Ikki faktga qarab qaror qiling: qaysi protokollar o‘tishi kerak va kim ishtirok etgan nomlarni hal qila oladi. Qolgani afzallik.
Proksi faqat tushunganini ko‘chiradi
Veb-proksi o‘zi uchun qurilgan protokolni tahlil qiladi. Mijoz unga so‘rov beradi va u so‘rovni keyinga uzatadi, shuning uchun proksi sozlamasi yo‘q ilova umuman qatnashmaydi. HTTPS uchun mijozga shaffof bo‘lmagan kanal kerak, proksi uni so‘rovni o‘qish o‘rniga CONNECT orqali taqdim etadi.
SSH dinamik yo‘naltirishi SOCKS gapiradigan mahalliy portni ochadi va bu port TCP oqimini mijoz aytgan istalgan manzilga uzatadi. TCP ustiga qurilgan protokollar odatda u orqali ishlaydi. UDP ishlamaydi, agar vosita ochiq ravishda qo‘llab-quvvatlash qo‘shmasa. Mahalliy yo‘naltirish yanada tor: bitta mahalliy port bitta qat’iy xost va portga bog‘langan bo‘lib, u bitta ma’lum xizmatga xizmat qiladi va boshqa hech narsaga.
ssh -D 1080 user@bastion
ssh -L 8443:fileserver.internal:443 user@bastionVPN paketlarni ko‘chiradi. Mijoz tunnelga yo‘naltirgan hamma narsa undan o‘tadi, UDP va ICMP ham, shuning uchun u bitta ulanishga emas, tarmoq talabiga mos keladi.
Nomni kimdir hal qilishi kerak
Maqsad nom faqat uzoq tarmoq DNSida mavjud bo‘lsa, qidiruvni bajaradigan qurilma o‘sha zonani ko‘rishi kerak. Veb-proksi qidiruvni o‘zi bajaradi, shuning uchun ichki nom noutbuk uni umuman hal qila olmasa ham u orqali ishlaydi. SOCKS ham shunday yo‘l tutishi mumkin, lekin faqat mijoz nomni oldinga uzatsa, allaqachon hal qilingan manzilga ulanmasa. Bu tanlov mijozda, serverda emas.
curl bo‘linishni aniq ko‘rsatadi: bir bayroq xost nomini proksiga beradi, boshqasi uni avval mahalliy hal qiladi. Mahalliy hal qilish bilan ichki nom har qanday tunnelga tegmasdan oldin muvaffaqiyatsiz bo‘ladi va xato aslida DNS qarori bo‘lgan narsada proksini ayblaydi.
VPN uchinchi yo‘lni tanlaydi: shaxsiy hal qiluvchi va qidiruv domenini marshrutlar yoniga o‘rnatadi. Bu qulay va tanish illyuziya yaratadi: hal qiluvchi javob bermasa ham mavjud bo‘lgan marshrut o‘lik tunnelga o‘xshab ko‘rinadi, garchi paketlar narigi tomonga yetib turgan bo‘lsa.
Tarmoq faqat bitta chiqishga ruxsat berganda
Ko‘plab korporativ tarmoqlar chiquvchi ulanishlarga faqat autentifikatsiyalangan veb-proksi orqali ruxsat beradi. OpenVPN va SSH ikkalasini ham u yerda ishlatish mumkin, birinchisi o‘z transportini proksi orqali tunnellab, ikkinchisi kichik CONNECT yordamchisini ishga tushiruvchi proksi buyrug‘i orqali.
TCP ustiga qurilgan tunnellar bu cheklovdan o‘tadi, UDPga asoslangan VPN esa o‘tmaydi, bu uyda ishlab ofisda muvaffaqiyatsiz bo‘ladigan juda ko‘p konfiguratsiyalarni tushuntiradi. Ikkinchi xarajatni sezmay qolish oson: proksilangan TCP ulanish ichida olib borilgan TCP tunnel endi qayta uzatuvchi ikki qatlamga ega va yo‘qotish sharoitida bu juftlik hech bir qatlam yolg‘iz hosil qilmaydigan tarzda to‘xtab qoladi.
Vositachilarni zanjirlash qatlam tanlashdan boshqa savol. Ikkinchi proksi yoki Tor qo‘shish kim nimani kuzatishini o‘zgartiradi, zanjirdagi o‘rin esa qaysi sakrash shifrlangan matnni ko‘rishini hal qiladi.
Tartib sakrashlar sonidan muhimroq. Tashqi sakrash shifrlangan oqimni kuzatadi, ichki sakrash esa u olib yurgan ochiq matnni ko‘radi, shuning uchun zanjir eng beparvo bo‘g‘ini qadar maxfiy. Sakrashlar orasida protokollarni aralashtirish buni avtomatik yaxshilamaydi. Ko‘proq nosozlik usullari haqida fikrlashni qiyinlashtiradi.
Soxta manzil variantlardan biri emas
Birovning manba manzili bilan paket yasash foydali hech narsa bermaydi: javoblar haqiqiy egasiga ketadi va aksariyat tarmoqlar trafikni darhol tashlab yuboradi. Vositachi aynan manbani o‘ylab topib bo‘lmagani uchun kerak va bu uchala loyihaning halol asosidir.
Bu ularning har biri nima da’vo qilishi mumkinligini ham cheklaydi. Muayyan manzildan kelayotgandek ko‘rinish bu manzil qonuniy ravishda qayerda ajratilgani va kim uni marshrutlay olishi haqidagi savol, qaysi vosita sarlavhani soxtalashtira olishi emas. Agar loyiha boshqacha taxmin qilsa, bu taxmin uni filtrlaydigan birinchi provayderda buziladi. Taxminni yozib qo‘ying, nosozlik kelganda tanilsin.
Protokollar va nomlar bo‘yicha qaror qiling
Bitta veb-mijozga bitta veb-xizmat kerak bo‘lsa va proksi sozlamalari bo‘lsa, proksiga murojaat qiling. Bir nechta ma’lum TCP xizmat yetarli bo‘lsa va SSH kirish allaqachon mavjud bo‘lsa, SSH tunneliga murojaat qiling. Bir nechta ilova, TCP bo‘lmagan trafik, shaxsiy DNS yoki qayta ishlatiladigan yo‘l talabning qismi bo‘lsa, VPNga murojaat qiling.
So‘ng haqiqiy mijoz va haqiqiy nom bilan tekshiring. Proksi orqali sahifa yuklash sizga UDP haqida hech narsa o‘rgatmaydi, bitta vositani SOCKS orqali ishlatish tizim hal qiluvchisi haqida hech narsa o‘rgatmaydi. Jarayon qaysi mahalliy manzilni bog‘laganini va qaysi hal qiluvchi javob berganini o‘qing. Ishlaydigan yo‘l bilan bir marta tasodifan ishlagan yo‘l orasidagi farq shu.