Windows-এর পাবলিক ফায়ারওয়াল প্রোফাইল দ্বারা VPN ক্লায়েন্ট ব্লকড
Windows VPN অ্যাডাপ্টারকে পাবলিক হিসেবে শ্রেণীবদ্ধ করে, তাই আপনার LAN নিয়ম কখনো প্রযোজ্য হয় না। প্রোফাইল যাচাই করুন, একটি ইনবাউন্ড নিয়ম পুলে সীমাবদ্ধ করুন, তারপর পোর্ট যাচাই করুন।
আপনার টানেল চালু, গেটওয়ে ping-এ সাড়া দেয়, আর ফাইল শেয়ারিং তবুও টাইমআউট হয়। এই সমন্বয় খুব কমই রাউটিং সমস্যা: Windows VPN অ্যাডাপ্টারের সাবনেট পাবলিক প্রোফাইলে রেখেছে, এবং প্রাইভেট বা ডোমেইনের জন্য লেখা প্রতিটি অনুমতি নিয়ম কখনোই প্রয়োগ হয়নি। আমি এটি এমন ল্যাপটপে পেয়েছি যা অফিসে ঠিকঠাক পৌঁছায় এবং এমন RRAS সার্ভারেও যা বাকি সব ক্লায়েন্টকে সেবা দেয়, আর সংশ্লিষ্ট প্রোফাইলের নাম বললেই মেরামত ছোট হয়ে যায়। এই হলো আমার কাজের ক্রম, সঙ্গে সেই পরীক্ষা যা বলে দেয় পরের ধাপের আগে কখন থামতে হবে।
ট্রাফিক আসলে কোন প্রোফাইলে আসে তা বের করুন
Windows ফায়ারওয়ালের কোনো একক বৈশ্বিক মোড নেই। প্রতিটি সংযুক্ত ইন্টারফেস একটি শ্রেণী বহন করে, এবং ইনবাউন্ড প্যাকেট যে ইন্টারফেসে আসে তার শ্রেণী অনুযায়ী ফিল্টার হয়, তাই টানেলে থাকা ক্লায়েন্ট কী পর্যন্ত পৌঁছাতে পারে তা VPN অ্যাডাপ্টারের প্রোফাইলই ঠিক করে, পাশের Wi-Fi বা ইথারনেট অ্যাডাপ্টার নয়। কিছু বদলানোর আগে দুটি তথ্য পড়ুন:
Get-NetConnectionProfile | Select-Object Name, InterfaceAlias, NetworkCategory, IPv4Connectivity
Get-NetFirewallProfile -Name Public | Select-Object Name, Enabled, DefaultInboundAction
সাধারণ OpenVPN বা WireGuard ইনস্টলেশনে VPN অ্যাডাপ্টার অপরিচিত নেটওয়ার্ক হিসেবে দেখা যায় এবং পাবলিক প্রোফাইলে পড়ে, যা Windows শ্রেণীবদ্ধ করতে না পারা যেকোনো নেটওয়ার্কের ডিফল্ট: এর উপর কোনো ডোমেইন কন্ট্রোলার সাড়া দেয়নি এবং কোনো গেটওয়ে প্রোফাইল মেলেনি। ইন্টারফেসের নাম এখানে গুরুত্বপূর্ণ নয়, তাই অ্যাডাপ্টারকে "VPN" বা "Corp" বললে কিছুই বদলায় না। DomainAuthenticated-এর জন্য ডোমেইনে যুক্ত মেশিন দরকার , যা ওই ইন্টারফেস দিয়ে সত্যিই ডোমেইন কন্ট্রোলারে পৌঁছাতে পারে; শুধু একটি সাবনেট বহন করা স্প্লিট টানেল এই শর্ত পূরণ করবে না।
আপনার দরকারি নিয়ম যদি ইতিমধ্যে VPN পুলে সীমাবদ্ধ থাকে এবং আপনি এইমাত্র পড়া শ্রেণীতে ইতিমধ্যে প্রযোজ্য হয়, তবে এখানেই থামুন: ফিল্টারিং আপনার স্তর নয়, আর দেখার পরের জায়গা হলো সার্ভিস কনফিগারেশন। এই পরীক্ষায় দশ সেকেন্ড লাগে এবং এক ঘণ্টার নিয়ম সম্পাদনা বাঁচায়। শ্রেণীর নাম ও প্রতিটি কী কভার করে তা Get-NetConnectionProfile রেফারেন্স-এ নথিভুক্ত।
নিয়ম সম্পাদনার আগে নিশ্চিত করুন এটি ফিল্টারিং, রাউটিং নয়
Ping একটি দুর্বল পরীক্ষা। ICMP পার হতে পারে যখন সার্ভিস পোর্ট বাদ দেওয়া হয়, আর হোস্ট LAN থেকে উত্তর দিতে পারে যখন একই অনুরোধ টানেল দিয়ে প্রত্যাখ্যান করে। ক্লায়েন্টের দরকারি পোর্টটি ক্লায়েন্ট থেকে পরীক্ষা করুন:
Test-NetConnection 10.8.0.1 -Port 445
Test-NetConnection 10.8.0.1 -Port 3389 -InformationLevel Detailed
পোর্ট পরীক্ষা ব্যর্থ হলে দুটি স্তর আলাদা করুন। টানেল বা রুটের ত্রুটি সাধারণত গেটওয়ে ঠিকানা থেকে কোনো উত্তর না আসা হিসেবে দেখা যায়, আর ফায়ারওয়ালের বাদ দেওয়া এমন গেটওয়ে দেখায় যা উত্তর দেয় এবং এমন সার্ভিস পোর্ট যা উত্তর দেয় না। RRAS দিয়ে পুল প্রকাশ করা Windows সার্ভারে একই পরীক্ষা ক্লায়েন্ট থেকে চালান এবং সার্ভারের নিজের প্রোফাইল পড়ুন: RAS ইন্টারফেস এমন শ্রেণীতে থাকতে পারে যার ইনবাউন্ড নিয়ম কখনো ক্লায়েন্ট রেঞ্জের উল্লেখ করে না, আর তাই মেশিনটি নিজের LAN-এ সেবা দেয় এবং টানেলের প্রতিটি ক্লায়েন্টকে প্রত্যাখ্যান করে।
ফলাফল এখনো অস্পষ্ট হলে সংশ্লিষ্ট প্রোফাইলের ড্রপ লগ করুন এবং পড়ুন:
Set-NetFirewallProfile -Name Public -LogBlocked True `
-LogFileName "$env:systemroot\system32\LogFiles\Firewall\pfirewall.log"
ক্লায়েন্টের ঠিকানা ও পোর্ট DROP সহ উল্লেখ করা এন্ট্রি সিদ্ধান্তকর, এবং কোন নিয়মটি অনুপস্থিত ছিল তাও বলে। এমন লগ যেখানে কিছু নেই অথচ ক্লায়েন্টের SYN কখনো দেখা যায় না, হোস্টের উপরের দিকে নির্দেশ করে, তাই অন্য ফায়ারওয়াল অবজেক্ট ধরার আগে টানেল, NAT নিয়ম বা পুল রুটে ফিরে যান।
একটি ইনবাউন্ড নিয়ম ক্লায়েন্ট পুলে সীমাবদ্ধ করুন
মেরামত হলো একটিমাত্র ইনবাউন্ড অনুমতি নিয়ম যার দূরবর্তী ঠিকানা পুল, পুরো বিশ্ব নয়। উন্নত সেশন থেকে:
New-NetFirewallRule -DisplayName "VPN clients - SMB 445" `
-Direction Inbound -Action Allow -Protocol TCP -LocalPort 445 `
-RemoteAddress 10.8.0.0/24 -Profile Publicসার্ভিস একক বাইনারি ফাইল হলে পোর্ট তালিকার বদলে -Program প্যারামিটারযুক্ত প্রোগ্রাম-সীমিত নিয়মকে অগ্রাধিকার দিন; এতে ব্যতিক্রম প্রক্রিয়া ও উৎস রেঞ্জ উভয়েই সীমাবদ্ধ থাকে।
প্রোফাইল নির্বাচনই সেই জায়গা যেখানে একই ভুল উল্টো দিকে হয়। -Profile Public তখনই যথেষ্ট যখন অ্যাডাপ্টার পাবলিক এবং পাবলিকই থাকে। -Profile Any তখন ন্যায্য যখন সার্ভিসকে Windows অ্যাডাপ্টারকে যেভাবেই শ্রেণীবদ্ধ করুক না কেন চলতে হয়, কিন্তু কেবল ততক্ষণ যতক্ষণ দূরবর্তী পরিধি থাকে। যা কখনো ন্যায্য নয় তা হলো -RemoteAddress Any পাবলিক প্রোফাইলে: ওই নিয়ম ল্যাপটপের সঙ্গে সঙ্গে তার যোগ দেওয়া প্রতিটি ক্যাফে ও হোটেল নেটওয়ার্কে যায় এবং ওই সাবনেট ভাগ করা প্রত্যেকের জন্য পোর্ট খুলে দেয়।
নিয়মের পাশে পুলটি লিখে রাখুন। -RemoteAddress 10.8.0.0/24 যেদিন VPN পুল পুনঃসংখ্যায়িত হয় সেদিন চুপচাপ মেলা বন্ধ করে দেয়, আর ব্যর্থতা হুবহু মূল বাগের মতো দেখায়, তাই এটি আরেকটি বিকেল খায়। নিয়মের নাম সার্ভিস ও উৎস রেঞ্জ অনুযায়ী দিন, সেগুলো -Group-এর সঙ্গে রাখুন, এবং পুলের সংজ্ঞা বদলালে সেগুলো আবার পড়ুন। এক স্ক্রিনে যাচাই করা যায় এমন নিয়মের তালিকা এমন সঠিক নিয়মের চেয়ে ভালো যা কেউ খুঁজে পায় না।
শ্রেণী তখনই বদলান যখন শ্রেণীই সিদ্ধান্ত
ইন্টারফেসকে প্রাইভেটে বদলানোও কাজ করে, এবং এটি ভুল ডিফল্ট। প্রাইভেট প্রোফাইলে অনেক অন্তর্নির্মিত অনুমতি নিয়ম থাকে, যা ফাইল ও প্রিন্টার শেয়ারিং, নেটওয়ার্ক আবিষ্কার, রিমোট ডেস্কটপ এবং বেসলাইন অনুযায়ী আরও অনেক কিছু কভার করে, তাই VPN অ্যাডাপ্টার পুনঃশ্রেণীবদ্ধ করলে সেগুলো টানেলের প্রতিটি ক্লায়েন্টের জন্য একসঙ্গে সক্রিয় হয়ে যায়। একটি সীমিত নিয়ম একটি রেঞ্জকে একটি সার্ভিস দেয়। যে ল্যাপটপ অবিশ্বস্ত নেটওয়ার্কেও যোগ দেয়, সেখানে এই পার্থক্য বাহ্যিক নয়।
এমন ক্ষেত্র আছে যেখানে শ্রেণীবিভাগ সত্যিই ভুল: অফিসের সাবনেট বহন করা সর্বদা-চালু বা সাইট-থেকে-সাইট টানেল নির্ভরযোগ্য অবকাঠামো, আর ওই অ্যাডাপ্টারকে প্রাইভেট চিহ্নিত করা একবার নীতিতে নেওয়া বৈধ নকশা সিদ্ধান্ত, প্রতিটি টিকিটে নয়। যখন করবেন, স্পষ্টভাবে করুন:
Set-NetConnectionProfile -InterfaceAlias "OpenVPN TAP-Windows6" -NetworkCategory Privateব্যবস্থাপিত ডিভাইসে আগে দেখুন সেটিংটি কোনো গ্রুপ পলিসি বা MDM বেসলাইনের মালিকানাধীন কি না। যদি হয়, স্থানীয় পরিবর্তন পরের রিফ্রেশে ফিরিয়ে নেওয়া হয়, এবং gpresult /h ওই নীতির নাম বলবে; সেখানেই ঠিক করুন, এন্ডপয়েন্টে নয়।
দুই প্রান্ত থেকে যাচাই করুন এবং চিহ্ন রেখে যান
পরিবর্তনের পরে ব্যবহারকারীর জানানো প্রবাহ ক্লায়েন্ট থেকে যাচাই করুন:
Test-NetConnection 10.8.0.1 -Port 445
Get-NetFirewallRule -DisplayName "VPN clients - SMB 445" | Get-NetFirewallAddressFilter | Select-Object RemoteAddress
Get-NetFirewallRule -DisplayName "VPN clients - SMB 445" | Get-NetFirewallPortFilter | Select-Object Protocol, LocalPort
তারপর পরের সপ্তাহে ভাঙবে এমন বিষয়ে চক্র বন্ধ করুন। হোস্ট পুনরায় চালু করে আবার পরীক্ষা করুন, কারণ ভুল প্রোফাইলে সীমাবদ্ধ নিয়ম অ্যাডাপ্টার অন্য শ্রেণীতে ফিরে আসা পর্যন্ত কাজ করতে থাকে। দ্বিতীয় ক্লায়েন্ট থেকে পরীক্ষা করুন, কারণ পুরোনো লিজ ধরা একটি ক্লায়েন্ট পুলের অমিল লুকাতে পারে। যোগ করা নিয়মগুলো সরানো নিয়মের সঙ্গে গুনুন, কারণ ওভারল্যাপিং ব্যতিক্রমই সেই পথ যেখানে দুই লাইনের মেরামত এমন ফিল্টারিং নীতি হয়ে ওঠে যা কেউ পর্যালোচনা করতে পারে না।
এটি সম্পন্ন বলার আগে:
- নিয়মে উল্লেখিত প্রোফাইল হলো যে ইন্টারফেসে ট্রাফিক আসে তার প্রোফাইল।
- দূরবর্তী পরিধি হলো VPN পুল, এবং সেই পুল সার্ভার আসলে যা বিতরণ করে তার সঙ্গে মেলে।
- আপনার যোগ করা কোনো নিয়মই
-RemoteAddress Anyপাবলিক প্রোফাইলে ব্যবহার করে না। - পরীক্ষা পাস করাতে কিছুই বন্ধ করা হয়নি, এবং প্রতিটি শ্রেণী পরিবর্তন নথিভুক্ত করে কে অনুমোদন করেছে।