Nomlangan VPN profili ulanganda serverning ommaviy manzili uchun ICMP echo'ni yoqadigan firewall qoidasini tasavvur qiling. Bu «faqat tunnel orqali ping» deb o'qiladi, va bu o'qish jiddiy ma'noda noto'g'ri. Qoida kim hostga yetib borishini cheklamaydi; boshqa ulanish tasodifan faol bo'lganda ommaviy interfeys nimaga javob berishini o'zgartiradi. Bu ikki xil siyosat, va ulardan biri ta'sirni jimgina kengaytiradi.

Siz yozdim deb o'ylagan qoida

Ko'zlangan talab odatda tor: kuzatuv tizimi yoki VPN'dagi yagona administrator serverning tirikligini tasdiqlay olishi kerak. Gap sifatida yozilsa, u tunnel ustidagi kirishni boshqarishga o'xshaydi. Firewall obyekti sifatida yozilsa, u ommaviy profildagi shartga aylanadi, chunki echo so'rovi aynan o'sha yerga keladi.

Shart manba manzili emas, ulanish holati bo'lgach, ruxsat etilgan jo'natuvchilar to'plami endi VPN hamkorlari to'plami emas. Ommaviy manzilga yeta oladigan har kim darvoza ochiq turganda echo so'rovi yuborishi mumkin. Tunnel yo'l bo'lmadi; tunnel kalit bo'ldi.

Bu g'oyani targ'ib qiluvchilar odatda istagan ta'siri haqida yolg'on gapirmaydi. Ularga aloqa sog'lom bo'lgandagina javob beradigan tekshiruv kerak edi, aloqa sog'lig'ini VPN orqali kuzatish esa eng oson edi. Xato — mavjudlik signalini kirish qarori deb hisoblash va keyin uni avtomatlashtirish.

Darvoza aslida nimani boshqaradi

Bu loyiha ikki mustaqil narsani birlashtiradi, ularni ajratish esa tuzatishning katta qismi. Birinchisi — qamrov: qaysi lokal manzil, qaysi masofaviy manzillar, qaysi protokol va qaysi ICMP turi. Ikkinchisi — shart: qoida obyekti hozir yoqilganmi. Qamrovni firewall har bir paket uchun baholaydi; shartni skript siyosat omboriga yozadi, va ikkalasi butunlay boshqa soatlarda moslashtiriladi.

Agar talab haqiqatan faqat VPN hamkorlari bo'lsa, qamrov buni ulanish holatining hech qanday mantiqisiz hal qiladi: qoidani tunnel interfeysiga yoki tunnel manzillari oralig'iga bog'lang, masofaviy manzillarni mijozlar hovuzi bilan cheklang va «ICMP» o'rniga echo turini ko'rsating. Bu qoida hech qanday VPN yoqilmaganda ham to'g'ri qoladi, va aloqasi yo'q profil uni ocha olmaydi.

Agar talab haqiqatan ommaviy darvoza bo'lsa, buni siyosat matnida ayting, chunki qabul mezonlari o'zgaradi. Ommaviy darvoza aniq profilni nomlashi, «ulangan» nimani anglatishini belgilashi va ommaviy jo'natuvchilar loyiha bo'yicha qamrovda ekanini e'lon qilishi kerak. Chalkashlikning ko'p qismi kimnidir o'sha gapni yozishga majbur qilgan paytda yo'qoladi.

Obyektni bir marta quring, keyin uni almashtiring

Barqaror identifikatsiyaga ega bitta qoidani oldindan, o'chirilgan holatda tayyorlang va boshqaruvchi faqat uning yoqilgan holatini o'zgartirsin. Har bir ishga tushirishda ko'rsatiladigan nom bo'yicha qoidalar yaratish — siyosat ombori beshta deyarli bir xil obyekt bilan va ularni olib tashlashning ishonchli yo'li bo'lmagan holatga kelishining yo'li.

New-NetFirewallRule -Name "VpnGateEchoV4" -DisplayName "Public echo gated on VPN state" -Direction Inbound -Action Allow -Protocol ICMPv4 -IcmpType 8 -LocalAddress 203.0.113.10 -RemoteAddress Any -Enabled False
Set-NetFirewallRule -Name "VpnGateEchoV4" -Enabled True

Nom — barqaror identifikator; ko'rsatiladigan nom — inson tahrirlashi mumkin bo'lgan hujjat. -Name bo'yicha moslashtiring va skript nusxalar yaratishni to'xtatadi. Xuddi shu buyruq shakli IPv6 holatini -Protocol ICMPv6 -IcmpType 128 bilan qamrab oladi, lekin bu alohida qoida, chunki echo turi raqamlari ikki oilada farq qiladi.

Manzil oilasi va ICMP turini aniq saqlang, ikkinchi sabab ham bor: -Protocol ICMPv4 turisiz profil ruxsat bergan har bir ICMPv4 xabariga yo'l qo'yadi, siz hech qachon qabul qilishni o'ylamagan xabarlar ham. 8 turini nomlash qoidani echo so'roviga toraytiradi, va yetib borish tekshiruvi faqat shuni yuboradi.

Avtomatlashtirish niyatga qarama-qarshi bo'lgan joy

Mijoz profilini bir necha daqiqada bir so'rab turish bir zumlik chegara bera olmaydi. Aloqa uzilgandan keyingi so'rovgacha qoida ommaviy manzilda javob berishda davom etadi; aloqa ko'tarilgandan keyingi so'rovgacha javob bermaydi. Bu kechikishni tan olish halol, loyiha qat'iy invariantni talab qiladi deb da'vo qilish esa halol emas.

Holat tekshiruvining o'zida qamrov tuzog'i bor. Get-VpnConnection mashinada sozlangan mijoz profillarini xabar qiladi, sukut bo'yicha joriy foydalanuvchi uchun va -AllUserConnection bilan barcha foydalanuvchilar uchun. U hozir RRAS serveriga ulanib turgan masofaviy foydalanuvchilarni xabar qilmaydi; bu boshqa buyruq bilan qilingan boshqa kuzatuv. Noto'g'ri narsa ustiga qurilgan darvoza hech narsaga ulanmagan.

Keyin hech kim skript yozmaydigan holatlarni qamrab oling: oldingi ishga tushirishdan qoida allaqachon yoqilgan holda boshlash, darvoza ochiq turganda boshqaruvchining qulashi va qoidasi tirik qolganda profilning o'chirilishi. Har biriga belgilangan sukut kerak, va ommaviy ruxsat uchun xavfsiz sukut — o'chirilgan. Agar talab so'rov oynasiga chiday olmasa, holatga bog'langan qoida noto'g'ri asbob, va ijro tunnelga tegishli, ommaviy interfeysga emas.

Oxirida ommaviy so'rovni ikki marta sinab ko'ring: bir marta tanlangan ulanish yoqilganda, bir marta u o'chirilganda, VPN'da bo'lmagan hostdan. Tunnel ichidan muvaffaqiyatli ping bu siyosat haqida hech narsani isbotlamaydi, va ko'pchilik joylashtirishlar aynan shu o'lchovni o'tkazib yuboradi.

O'xshash maqolalar