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 બાજુ ચુસ્તપણે બ્લોક હોવા છતાં ઇન્ટરનેટ સાથે વાત ચાલુ રાખી શકે છે, અને કિલ સ્વિચ આખા સમય દરમિયાન સફળતા જાહેર કરે છે.

GapWhat leaksControl
Resolver permitted for endpoint lookupEvery name queried while downPin the endpoint as an address, or block non-tunnel DNS
Rules only for IPv4Full IPv6 connectivityAdd the same rules for the other family
Application bound to physical interfaceIts own trafficFirewall 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 એડેપ્ટરને શું નામ આપે છે તેના પર આધાર રાખતું નથી.

સંબંધિત લેખો