Nima uchun Access Server mijozlariga LAN-dan yetib bo‘lmaydi
Yo‘naltirilgan mijozlar o‘z hovuz manzilini saqlaydi, shuning uchun javoblarga qaytish marshruti kerak. Xizmatdagi manbani o‘qing, so‘ng hovuz marshrutini to‘g‘ri shlyuzga qo‘shing.
Noutbuk ulanadi, tunnel ko‘tariladi va ichki xizmatga yuborilgan so‘rovlar ulanishda osilib qoladi. Xizmatning o‘zida so‘rov 10.90.0.25 kabi manzildan keladi, javob standart shlyuzga qarab chiqadi va hech narsa qaytmaydi, chunki bu shlyuz 10.90.0.25 qayerdaligini bilmaydi. Boshqa tomondan xuddi shu nosozlik ulangan mijozga ping yubora olmaydigan ichki xost kabi ko‘rinadi. Ikkalasi ham bitta yetishmayotgan obyekt: VPN mijozlar hovuziga qaytish marshruti, uni faqat xususiy tarmoq qo‘sha oladi.
Xizmat ko‘radigan manba manzilini o‘qing
Ana shu bitta maydon qolgan hamma narsani hal qiladi. Agar ichki xizmat hovuz manzilini ko‘rsa, Access Server mijoz trafigini yashirish o‘rniga marshrutlaydi va har bir javob hovuzga qaytarilishi kerak. Agar u o‘rniga serverning o‘z xususiy manzilini ko‘rsa, server masquerade qiladi va qaytish yo‘li allaqachon ishlaydi, lekin xizmat jurnallari va kirish qoidalarida har bir mijozning identifikatsiyasi yo‘qoladi.
Biror narsani o‘zgartirishdan oldin ikkala tomonni solishtiring. Serverda tunnel interfeyslari va ularning manzillarini sanang; mijozda u qaysi manzilni haqiqatda saqlayotganini tasdiqlang; ichki xostda faol ulanishni ko‘ring.
ip -br addr show
ss -tnp state established '( dport = :443 )'
ip route get 10.90.0.25Oxirgi buyruq buzilgan holatda muvaffaqiyatsiz bo‘ladigan buyruq: u yo tunnel prefiksini yetib bo‘lmaydigan deb xabar qiladi, yo undan ham yomoni, standart shlyuzingizni qaytaradi, shu bilan javoblar internetga chiqadi.
Faqat bitta hovuz bor deb o‘ylamang. Serverda dinamik diapazon va har bir foydalanuvchi uchun statik moslashtirishlar bo‘lishi mumkin, statik manzil esa dinamik prefiksdan butunlay tashqarida bo‘lishi mumkin. Faqat eslab qolgan diapazonni marshrutlasangiz, qat’iy manzilli foydalanuvchilar buzilgan holda qoladi, qolganlar esa muammo hal qilindi deb xabar beradi.
Marshrutni javob hal qilinadigan joyga qo‘shing
Marshrut ichki xizmat allaqachon ishlatayotgan shlyuzga tegishli, xizmatning o‘ziga emas, agar xizmat o‘z trafigini o‘zi marshrutlamasa. Uni Access Server’ning yetib bo‘ladigan xususiy manziliga yo‘naltiring, bu mijozdagi tunnel manzilidan boshqa qiymat.
ip route add 10.90.0.0/24 via 10.0.1.5
ip route get 10.90.0.25Bulutli tarmoqda xuddi shu bayonot marshrutlar jadvalining yozuviga aylanadi, uning maqsadi serverni ishlatayotgan instans yoki tarmoq interfeysi bo‘lib, o‘sha interfeysda manba va manzil tekshiruvi o‘chirilgan. Bu yozuv nima qilmasligiga e’tibor bering: marshrut kirish huquqi emas, shuning uchun xavfsizlik guruhlari, tarmoq ACL’lari va xostning tarmoq himoyasi trafikni baribir ruxsat berishi kerak.
Uni doimiy qiling va hovuzlar o‘lchamini halol saqlang. Qo‘shni bo‘lmagan ikkita hovuzga ikkita marshrut kerak, sozlangan prefiksdan oshib o‘sgan hovuz esa javoblari boradigan joyi yo‘q mijozlarni jimgina hosil qiladi. Agar hovuz diapazonlarini o‘zingiz boshqarsangiz, bir marta marshrutlab qo‘yib ketish mumkin bo‘lgan jamlanmani tanlang.
Uzatish va filtrlar marshrutga mos bo‘lishi kerak
Marshrutlash yo‘lning yarmi xolos. Serverga tunnel va xususiy interfeys o‘rtasida uzatishga ruxsat bo‘lishi kerak, bu Linux’da net.ipv4.ip_forward hamda interfeyslar juftiga ruxsat beruvchi uzatish zanjirini bildiradi, qattiqlashtirilgan xostda esa odatda har bir yo‘nalish uchun alohida aniq qoida.
sysctl net.ipv4.ip_forward
nft list ruleset | grep -A5 forwardHolatga asoslangan filtrlash odamlarni noto‘g‘ri yo‘lga soladigan belgini tushuntiradi. O‘rnatilgan oqim ichidagi javobga yangi kiruvchi qoida kerak emas, shuning uchun SYN-ACK’dan keyin osilib qolgan ulanish yetishmayotgan accept qoidasi bilan bloklanmayapti; u tashlab yuborilyapti yoki noto‘g‘ri marshrutlanyapti. Bu farqni saqlang, chunki u marshrutlash o‘zgarishini tarmoq himoyasi o‘zgarishidan ajratadi.
Asimmetrik qaytish yo‘llari xuddi shu muammoning jimroq ko‘rinishi. Agar hovuzga ikkita marshrut yetsa va javob so‘rov kelgan interfeysdan boshqa interfeys orqali chiqadigan marshrutni tanlasa, qat’iy teskari yo‘l filtri uni tashlab yuboradi va oqim faqat ba’zi mijozlarda muvaffaqiyatsiz bo‘ladi.
Marshrutlangan yoki masquerade: ongli tanlang
Marshrutlangan rejim mijozning hovuz manzilini xizmatda saqlaydi, bu har bir mijoz bo‘yicha jurnal va siyosatni imkonli qiladi, evaziga mijozga javob berishi kerak bo‘lgan har bir ichki tarmoq hovuz marshrutiga muhtoj bo‘ladi. Masquerade rejimi bu talabni olib tashlaydi, chunki javoblar serverga qaytadi, lekin xizmat endi bir mijozni boshqasidan ajrata olmaydi va aniq bir mijozga qarab biror narsa boshlay olmaydi.
Bu xatti-harakatni ishlab turgan serverda o‘zgartirish mavjud sessiyalarni uzadi, shuning uchun avval bitta mijoz va bitta oqim bilan sinab ko‘ring. Agar o‘zgartirish to‘g‘ri javob bo‘lsa, bu serverdagi konfiguratsiya qarori, keyin keraksiz bo‘lib qoladigan marshrutlar qo‘shib aylanib o‘tiladigan narsa emas.
Mijoz orqasidagi subnet alohida vazifadir
Noutbukning o‘z LAN’idagi qurilmaga yetib borish noutbukning tunnel manziliga yetib borish bilan bir xil emas. Buning uchun mijoz subnet shlyuzi sifatida ishlashi kerak: mijoz tomonida e’lon qilingan tarmoq, mijoz operatsion tizimida yoqilgan uzatish va o‘sha LAN’da mijozga qaytish marshruti. Noutbukning uy diapazoni uchun xususiy tarmoq marshrutini qo‘shish buni qilmaydi va ikki foydalanuvchining uy diapazoni bir xil bo‘lsa ziddiyat keltirib chiqaradi.
Yo‘nalish ham siyosat masalasi. Mijozga ichki xizmatga ulanish ochishga ruxsat berish ichki xostga o‘sha mijozga ulanish ochishga avtomatik ruxsat bermaydi. Yo‘l buzilgan degan xulosaga kelishdan oldin serverning kirish siyosatini va mijoz xostining tarmoq himoyasini tekshiring.
Bitta oqim va bitta yozib olish bilan tasdiqlang
Yo‘lni umumiy yetib borish testi o‘rniga bitta ulanish bilan isbotlang. Ikkala tomonda bir xil oqimni kuzating: xizmatga kelayotgan so‘rov va undan chiqayotgan javob.
tcpdump -ni any host 10.90.0.25 and port 443Tuzatishdan oldin yozib olish javob uni marshrutlamaydigan shlyuzga qarab chiqayotganini ko‘rsatadi. Tuzatishdan keyin javob serverga qarab chiqadi va oqim tugallanadi. So‘ng shlyuz ikkinchi mijoz manzili uchun ishlatadigan marshrutni tasdiqlang, toki siz qamrab olmagan hovuz bir haftadan keyin emas, hozir ko‘rinsin.
Buni yopadigan to‘rtta tekshiruv bilan yakunlang: xizmatdagi manba manzili siz ko‘zlagan rejimga mos, shlyuzda ishlatilayotgan har bir hovuzga marshrut bor, uzatish va filtrlar ikkala yo‘nalishga ruxsat beradi va bitta haqiqiy oqim boshidan oxirigacha tugallanadi. Access Server marshrutlash haqida ko‘p so‘raladigan savollar o‘rnatilgan versiya uchun xuddi shu tamoyilni bayon qiladi, uning qo‘llab-quvvatlanadigan konfiguratsiya interfeysi eski qo‘llanmalardan farq qilishi mumkin.