Tunnel ko’tariladi, mijoz autentifikatsiyadan o’tadi, lekin shlyuz orqasidagi LAN ko’rinmay qoladi. Buni tuzatishi kerak bo’lgan qoida VPN portiga ruxsat beradi va yozilganidek ishlaydi, chunki u qoida shlyuzning o’ziga manzillangan paketlarni boshqaradi. Shlyuz orqasidagi hostga ketayotgan mijoz trafigining boshqa manzili va boshqa zanjiri bor. Muvaffaqiyatli kirish yadro qaysi zanjirni ko’rishini o’zgartirmaydi.

Ikki zanjir, ikki xil manzil

Paketning taqdiri u qayerga ketayotgani bilan hal bo’ladi, qanday kelgani bilan emas. Shlyuzdagi manzilga ketayotgan trafik mahalliy tarzda yetkaziladi va kirish qoidalari bilan baholanadi. Shlyuz oldinga uzatayotgan trafik uzatish qoidalari bilan baholanadi. Xuddi shu tunnel interfeysi ikkala turdagi paketni ham chiqara oladi, shuning uchun bitta qoida ikkala ishni qamrab olmaydi.

Butun afsona bitta jumlada: tinglovchiga ruxsat berish uning orqasidagi tarmoqqa ruxsat berish haqida hech narsa demaydi. Bular alohida dalillarga ega ikki alohida qaror, ikkalasidagi interfeys nomi ularni birlashtirmaydi.

Tinglovchi qoidasi aslida nimaga ruxsat beradi

Tinglovchi paketlari VPN jarayonida tugaydi va aynan shu tunnel qurishga imkon beradi. Shlyuzning boshqaruv sahifasi va mahalliy diagnostik javob ham hostning o’z kirish yo’lidan foydalanadi, shuning uchun shlyuzga sinov muvaffaqiyatli bo’ladi, uning orqasidagi hamma narsa esa muvaffaqiyatsiz. Ikkala natija ham to’g’ri va hech biri LAN haqida emas.

Jarayon mijoz trafigini boshqa manzil uchun kapsuladan chiqarganda, paket uzatish yo’liga kiradi va u yerda ruxsat kerak. Muvaffaqiyatli autentifikatsiya mijozning kimligini hal qiladi; qayerga borishi mumkinligini hal qilmaydi. Ikki savolning egalari, jurnallari va xato xabarlari boshqacha.

Mijozdan sinang, hech qachon shlyuzdan emas

Shlyuzda tuzilgan sinov hostning o’z chiqish yo’lini kuzatadi va uzatish yo’li yopiq bo’lsa ham o’tishi mumkin. Sinovni mijozdan boshlang va oqimning ikki uchini kuzating.

nc -vz 10.40.7.25 445
tcpdump -ni tun0 host 10.40.7.25

Agar so’rov tun0 da ko’rinsa va manzilga hech narsa yetib bormasa, paket yetib kelgandan keyin tashlanadi, bu uzatish qoidalariga yoki manzilning o’z filtriga ishora qiladi. Agar tun0 da umuman hech narsa ko’rinmasa, mijoz uni tunnelga ham yubormaydi, muammo shlyuz siyosatida emas, mijoz marshrutlashida. Buni to’g’ri chiqib hech narsa qaytarmaydigan so’rov bilan solishtiring, bu qaytish yo’li holati.

Uzatish bitta emas, uchta narsani talab qiladi

Yadrodagi uzatish yoqilgan bo’lishi, filtr qoidasi oqimni qabul qilishi, manzilga yetish va javob qaytadigan yo’l bo’lishi kerak. Uchtadan biri bo’lmasa, mijoz nuqtai nazaridan sukunat bir xil.

sysctl net.ipv4.ip_forward
sudo iptables -S FORWARD
sudo iptables -S INPUT

Uch chiqishni birga o’qing. Birinchisida nol bo’lsa qolgan ikkisi ahamiyatsiz bo’ladi, ikkinchisidagi standart tashlash siyosati mijoz paketlarini tashlaydi, shlyuzning o’z trafigi esa ishlashda davom etadi. Uchinchi chiqish tinglovchi qoidasi nega hech qachon muammo bo’lmaganini ko’rsatadi.

Hujjatlarda ikki qoida to’plamini alohida saqlang

Tinglovchi qoidasini va uzatilgan xizmat qoidasini alohida satrlarga, alohida egalar va sabablar bilan yozing. VPN porti o’zgarganda yoki yangi xizmat e’lon qilinganda, bu ajratish bir o’zgarishning ikkinchisini jimgina kengaytirishini to’sadi.

Har bir autentifikatsiyadan o’tgan hamkorni ishonchli LAN a’zosi deb hisoblash o’rniga, kerakli mijoz diapazonlari va xizmatlar uchun tor qoidalardan foydalaning. StrongSwan uzatish eslatmalari xuddi shu chegaraning qaytish marshruti va tarjima tomonini tasvirlaydi, bu yana uchinchi qaror.

Oxirida, foydalanuvchi rad etilganda qatlamlarni to’g’ri tuting. Agar so’rov hostga yetib, ilova hisobni rad etsa, ilovaning ruxsatini o’sha qatlamda tuzating; uzatishni kengaytirish fayl almashish uchun hisob ma’lumotlarini bera olmaydi va muvaffaqiyatli ulanadigan barcha boshqalar uchun kirishni kengaytiradi.

O'xshash maqolalar