მხოლოდ Windows-ის ფაირვოლი როგორც VPN გამორთვის გადამრთველი: უძლებს?
ინტერფეისის ტიპის წესებს შეუძლია ფიზიკური ადაპტერების დაბლოკვა, მაგრამ მესამე მხარის გვირაბი ხშირად სადენიანად ჩანს. შეამოწმეთ კლასიფიკაცია, საბოლოო წერტილის მარშრუტი, შემდეგ DNS.
იკითხეთ, შეუძლია თუ არა Windows-ის ფაირვოლს დამოუკიდებლად იმუშაოს როგორც გადაუდებელ გადამრთველად, და მიიღებთ ორ თავდაჯერებულ და შეუთავსებელ პასუხს. ერთი ამბობს, რომ ინტერფეისის ტიპის წესი მთელ სამუშაოს ასრულებს; მეორე — რომ სკრიპტების გარეშე არ მუშაობს. ორივე ერთი და იმავე მექანიზმის ნახევარს აღწერს. ფაირვოლს შეუძლია ბლოკის გამოხატვა, და თუ შედეგი ნამდვილად დახურულად ვერ იმუშავებს, ეს სამ რამეზეა დამოკიდებული: როგორ ახარისხებს Windows გვირაბის ადაპტერს, გადარჩება თუ არა საბოლოო წერტილის გამონაკლისი და დაფარულია თუ არა სახელის გარჩევა და IPv6. ერთ-ერთში შეცდებით და მანქანა ან გაჟონავს, ან მთელ კავშირს დაკარგავს.
სამი პირობა, ამ თანმიმდევრობით
პირველი პირობა კლასიფიკაციაა და ის წყვეტს, საერთოდ გამოსახავია თუ არა სასურველი წესი. Windows-ის ფაირვოლის წესები შეიძლება შეიზღუდოს ინტერფეისის ტიპით: სადენიანი, უსადენო ან დისტანციური წვდომა. პოლიტიკა, რომელიც ბლოკავს გამავალ ტრაფიკს ფიზიკურ ტიპებზე და ნებას რთავს გვირაბს, მუშაობს მხოლოდ მაშინ, როცა Windows გვირაბს დისტანციურ წვდომად ცნობს.
მეორე პირობა საბოლოო წერტილის გამონაკლისია. სანამ რაიმე გვირაბი არსებობს, კლიენტმა VPN სერვერს უნდა მიაღწიოს ფიზიკური ადაპტერით, ამიტომ ამ ადაპტერზე სრული ბლოკი ზუსტად იმ კავშირს აფერხებს, რომელიც ბლოკს ზედმეტს გახდიდა. გამონაკლისმა უნდა დაასახელოს სერვერი და მისი პორტი, ხოლო პაკეტი ფიზიკური კარიბჭიდან უნდა გავიდეს და არა ჯერ არგახსნილ გვირაბში.
მესამე დაფარვაა. წესების ერთობლიობა, რომელიც ბლოკავს IPv4-ს და ივიწყებს IPv6-ს, ან ნებას რთავს ლოკალურ გამხსნელს საბოლოო წერტილის ძიებაზე და ამით ყველა სხვა ძიებასაც უშვებს, ღიად ვარდება ზუსტად იმ ფანჯარაში, რომლისთვისაც გადაუდებელი გადამრთველი არსებობს. ეს დიზაინის ხარვეზია და არა ფაირვოლის ხარვეზი. ეს ის ხვრელია, რომელიც მაგიდაზე ყველა გამოცდას გადაურჩება.
კლასიფიკაცია პირველი კარიბჭეა
ნახეთ, რას ფიქრობს Windows ადაპტერებზე, სანამ ერთ წესს დაწერთ. Windows-ის მშობლიური VPN კავშირი ჩვეულებრივ დისტანციურ წვდომად ჩანს. მესამე მხარის კლიენტი, რომელიც საკუთარ ვირტუალურ ადაპტერს ქმნის, ხშირად სადენიანად ჩანს, რაც ნიშნავს, რომ სადენიან ადაპტერებზე შეზღუდული ბლოკი გვირაბსაც ბლოკავს.
Get-NetConnectionProfile | Select-Object Name,InterfaceAlias,NetworkCategory
Get-NetAdapter | Select-Object Name,InterfaceDescription,Status,ifIndex
Get-NetFirewallProfile | Select-Object Name,Enabled,DefaultOutboundAction
მესამე ბრძანება გეუბნებათ, უკვე ძალაშია თუ არა ნაგულისხმევი გამავალი ბლოკი, რაც დიზაინის მთელ ფორმას ცვლის. თუ ნაგულისხმევად უკვე ბლოკია, თქვენ ნებადამრთველ წესებს წერთ და არა გამონაკლისებს ნებადამრთველი საფუძვლის მიმართ, და ამაზე ფიქრი გაცილებით ადვილია.
თუ თქვენი გვირაბის ადაპტერი სადენიანად იტყობინება, მხოლოდ ფაირვოლი არ არის სწორი ინსტრუმენტი დახურული წარუმატებლობის დიზაინისთვის და წესების არავითარი რეგულირება ამას არ შეცვლის. ეს ის შემთხვევაა, როცა ყველა ფორუმის თემაში მეორე აზრი მართალია.
საბოლოო წერტილის გამონაკლისს წესთან ერთად მარშრუტიც სჭირდება
დავუშვათ, კლასიფიკაცია მუშაობს. გამონაკლისი ორი ნაწილისგან შედგება და ისინი სხვადასხვა ქვესისტემაში ცხოვრობენ. ფაირვოლის წესი ტრაფიკს უშვებს; ჰოსტის მარშრუტი მას სწორი ინტერფეისიდან გამოჰყავს, სანამ გვირაბი ჩამოშვებულია.
New-NetFirewallRule -DisplayName "VPN endpoint allow" -Direction Outbound -Action Allow \
-Protocol TCP -RemoteAddress 203.0.113.9 -RemotePort 443 -InterfaceType Wired,Wireless
New-NetRoute -DestinationPrefix 203.0.113.9/32 -InterfaceIndex 12 -NextHop 192.168.1.1
Get-NetRoute -DestinationPrefix 203.0.113.9/32
მარშრუტის გარეშე გამონაკლისი მხოლოდ მანამ ეხმარება, სანამ ნაგულისხმევი მარშრუტი ჯერ ფიზიკურ კარიბჭეზე მიუთითებს. როგორც კი კლიენტი საკუთარ ნაგულისხმევ მარშრუტს დააყენებს და შემდეგ მოკვდება, ნებადართულ პაკეტებს გასასვლელი გონივრული ადგილი აღარ აქვთ და კავშირი ვერ აღდგება. ეს წარუმატებლობა გატეხილ კლიენტს ჰგავს და სინამდვილეში დაკარგული მარშრუტია.
შეინარჩუნეთ გამონაკლისი იმდენად ვიწრო, რამდენადაც კლიენტი იძლევა საშუალებას. ერთი მისამართი და ერთი პორტი გადასამოწმებელია; მთელი პროვაიდერის ქსელის დამფარავი დიაპაზონი — არა. ეს უფრო ფართო წესი ასევე უშვებს ყველაფერს სხვას, რაც იმავე პროვაიდერთანაა განთავსებული, და ეს ჩვეულებრივ მეტია, ვიდრე გინდოდათ.
DNS და IPv6 ის ადგილებია, სადაც ის ღიად ვარდება
სახელის გარჩევა კლასიკური გაჟონვაა. თუ საბოლოო წერტილი ჰოსტის სახელია, კლიენტმა ის გვირაბის არსებობამდე უნდა გადაწყვიტოს, რაც ნიშნავს, რომ ფიზიკურ ადაპტერს გამხსნელამდე მიღწევის ნება უნდა მიეცეს. იგივე ნებართვა ყველა სხვა ძიებას ათავისუფლებს, სანამ გვირაბი ჩამოშვებულია, და ერთი ძიებაც საკმარისია იმის გასამჟღავნებლად, რის ნახვასაც აპირებდით.
IPv6 მეორეა. IPv4-ისთვის დაწერილი წესები მეორე ოჯახს არ ფარავს და ბევრი კლიენტი მხოლოდ IPv4 მარშრუტებს აყენებს. ამიტომ მშობლიური IPv6 კავშირის მქონე მანქანას შეუძლია ინტერნეტთან საუბარი გააგრძელოს, სანამ IPv4 მხარე მყარად დაბლოკილია, და გადაუდებელი გადამრთველი მთელი დროის განმავლობაში წარმატებას აცნობს.
| Gap | What leaks | Control |
|---|---|---|
| Resolver permitted for endpoint lookup | Every name queried while down | Pin the endpoint as an address, or block non-tunnel DNS |
| Rules only for IPv4 | Full IPv6 connectivity | Add the same rules for the other family |
| Application bound to physical interface | Its own traffic | Firewall cannot fix this; change the binding |
მესამე სტრიქონი გასაგებია და არა გვერდის ასავლელი. ფაირვოლი პაკეტებზე წყვეტს, და არა იმაზე, თუ რომელი ინტერფეისი მოითხოვა აპლიკაციამ, და ცხადად მიბმული პროგრამის შეკავება შეიძლება რთული იყოს. ეს არგუმენტია კლიენტის მხარეს მდებარე გადამრთველის სასარგებლოდ, რომელიც აპლიკაციის ქვემოთ მუშაობს, და არა მეტი წესის სასარგებლოდ.
შეამოწმეთ კლიენტის გაჩერებით და არა კაბელის გამოძრავებით
ერთადერთი მნიშვნელოვანი გამოცდა ის არის, რომელიც იმ წარუმატებლობას ბაძავს, რისგანაც იცავთ თავს. გააჩერეთ სერვისი, მოკალით პროცესი ან გამორთეთ კლიენტის მიერ შექმნილი ადაპტერი, შემდეგ სცადეთ ინტერნეტსა და სახელს მიაღწიოთ:
Stop-Service -Name "YourVpnService" -Force
Test-NetConnection -ComputerName 1.1.1.1 -Port 443
Resolve-DnsName example.com
Test-NetConnection -ComputerName 2606:4700:4700::1111 -Port 443
სამივე უნდა ჩავარდეს. თუ პირველი წარმატდა, ბლოკი ძალაში არ არის; თუ მეორე წარმატდა იქ, სადაც პირველი ჩავარდა, თქვენ გაქვთ DNS გაჟონვა; თუ მესამე წარმატდა, IPv6 დაფარული არ არის. ყოველი შედეგი ზემოთ მოცემული ხვრელებიდან ზუსტად ერთზე მიუთითებს.
გაიმეორეთ გამოცდა ძილისა და გაღვიძების შემდეგ, რადგან ფაირვოლის პროფილი შეიძლება შეიცვალოს, როცა Windows გადაწყვეტს, რომ ქსელი საჯაროა თუ კერძო, და პროფილზე შეზღუდული წესები მას მიჰყვება. დიზაინი, რომელიც მაგიდაზე ძლებს და მატარებელში ვარდება, ერთხელ გამოცდილი დიზაინია.
თუ კლასიფიკაციის კარიბჭე ან DNS-ის მოთხოვნა მხოლოდ-ფაირვოლის მიდგომას გამოუსადეგარს ხდის, კლიენტის მხარეს მდებარე გადამრთველი პატიოსანი პასუხია. თუ გვირაბი სამაგიეროდ როუტერზე სრულდება, პოლიტიკა როუტერს უნდა ეკუთვნოდეს, რადგან იქ ერთი წესი მის უკან ყველა მოწყობილობას ფარავს და არ არის დამოკიდებული იმაზე, როგორ უწოდებს Windows ადაპტერს.